aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@celest.fr>2011-06-18 00:24:47 +0200
committerThomas Preud'homme <thomas.preudhomme@celest.fr>2011-06-18 00:45:20 +0200
commitcb2138f8b098feb1b51a407343a4b99e25d5b506 (patch)
tree7d5478518bd141a0f3dee5ea61898b7812768325
parent3511e6e2a8b08f306cba73805fe7622a67d74fac (diff)
downloadtinycc-cb2138f8b098feb1b51a407343a4b99e25d5b506.tar.gz
tinycc-cb2138f8b098feb1b51a407343a4b99e25d5b506.tar.bz2
Make examples' shebang use target tcc bindir path
Use @BINDIR@ in shebang of examples to put the right path on the target system. That is, use #!/usr/local/bin/tcc if tcc is installed in /usr/local/bin and #!/usr/bin/tcc if tcc is installed in /usr/bin/tcc.
-rw-r--r--Makefile14
-rw-r--r--README3
-rw-r--r--[-rwxr-xr-x]examples/ex1.c.template (renamed from examples/ex1.c)2
-rw-r--r--[-rwxr-xr-x]examples/ex4.c.template (renamed from examples/ex4.c)2
4 files changed, 14 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index d1dfbda..8a04f8e 100644
--- a/Makefile
+++ b/Makefile
@@ -141,15 +141,16 @@ ifdef CONFIG_USE_LIBGCC
LIBTCC1=
endif
-TCCLIBS = $(LIBTCC1) $(LIBTCC) $(BCHECK_O)
-TCCDOCS = tcc.1 tcc-doc.html tcc-doc.info
+TCCLIBS := $(LIBTCC1) $(LIBTCC) $(BCHECK_O)
+TCCDOCS := tcc.1 tcc-doc.html tcc-doc.info
+TCCEXS := $(patsubst ex%.c.template,ex%.c,$(wildcard examples/ex*.c.template))
ifdef CONFIG_CROSS
PROGS+=$(PROGS_CROSS)
TCCLIBS+=$(LIBTCC1_CROSS)
endif
-all: $(PROGS) $(TCCLIBS) $(TCCDOCS)
+all: $(PROGS) $(TCCLIBS) $(TCCDOCS) $(TCCEXS)
# Host Tiny C Compiler
tcc$(EXESUF): tcc.o $(LIBTCC)
@@ -324,6 +325,11 @@ tcc.1: tcc-doc.texi
tcc-doc.info: tcc-doc.texi
-makeinfo tcc-doc.texi
+# examples
+examples/ex%.c: examples/ex%.c.template
+ sed '1s/@BINDIR@/$(subst /,\/,$(bindir))/' $< > $@
+ chmod a+x $@
+
.PHONY: all clean tar distclean install uninstall FORCE
# tar release (use 'make -k tar' on a checkouted tree)
@@ -341,7 +347,7 @@ export LIBTCC1
$(MAKE) -C tests $@
clean:
- rm -vf $(PROGS) tcc_p$(EXESUF) tcc.pod *~ *.o *.a *.so* *.out *.exe libtcc_test$(EXESUF)
+ rm -vf $(PROGS) tcc_p$(EXESUF) tcc.pod *~ *.o *.a *.so* *.out *.exe libtcc_test$(EXESUF) $(TCCEXS)
$(MAKE) -C tests $@
ifneq ($(LIBTCC1),)
$(MAKE) -C lib $@
diff --git a/README b/README
index bfaab39..0ead1ee 100644
--- a/README
+++ b/README
@@ -65,7 +65,8 @@ operations given a list of numbers (benchmark).
ex3.c: compute fibonacci numbers (benchmark).
ex4.c: more complicated: X11 program. Very complicated test in fact
-because standard headers are being used !
+because standard headers are being used ! As for ex1.c, can also be launched
+directly as a script: './ex4.c'.
ex5.c: 'hello world' with standard glibc headers.
diff --git a/examples/ex1.c b/examples/ex1.c.template
index 28139f9..8744f58 100755..100644
--- a/examples/ex1.c
+++ b/examples/ex1.c.template
@@ -1,4 +1,4 @@
-#! /usr/local/bin/tcc -run
+#! @BINDIR@/tcc -run
#include <tcclib.h>
int main()
diff --git a/examples/ex4.c b/examples/ex4.c.template
index b33b033..81aa00d 100755..100644
--- a/examples/ex4.c
+++ b/examples/ex4.c.template
@@ -1,4 +1,4 @@
-#!./tcc -run -L/usr/X11R6/lib -lX11
+#! @BINDIR@/tcc -run -L/usr/X11R6/lib -lX11
#include <stdlib.h>
#include <stdio.h>
#include <X11/Xlib.h>