From cb2138f8b098feb1b51a407343a4b99e25d5b506 Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Sat, 18 Jun 2011 00:24:47 +0200 Subject: [PATCH] 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. --- Makefile | 14 ++++++++++---- README | 3 ++- examples/{ex1.c => ex1.c.template} | 2 +- examples/{ex4.c => ex4.c.template} | 2 +- 4 files changed, 14 insertions(+), 7 deletions(-) rename examples/{ex1.c => ex1.c.template} (74%) mode change 100755 => 100644 rename examples/{ex4.c => ex4.c.template} (92%) mode change 100755 => 100644 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 old mode 100755 new mode 100644 similarity index 74% rename from examples/ex1.c rename to examples/ex1.c.template index 28139f9..8744f58 --- a/examples/ex1.c +++ b/examples/ex1.c.template @@ -1,4 +1,4 @@ -#! /usr/local/bin/tcc -run +#! @BINDIR@/tcc -run #include int main() diff --git a/examples/ex4.c b/examples/ex4.c.template old mode 100755 new mode 100644 similarity index 92% rename from examples/ex4.c rename to examples/ex4.c.template index b33b033..81aa00d --- 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 #include #include