From eb78e9430066a627353ea91e1816a976f8c431b6 Mon Sep 17 00:00:00 2001 From: Henry Kroll III Date: Sat, 24 Apr 2010 21:58:12 -0700 Subject: [PATCH] reverse make win32 version of libtcc1.a patch --- Makefile | 47 ++++++++++++++++++++++++++++++++++--------- make_libtcc1_win32.sh | 22 -------------------- 2 files changed, 37 insertions(+), 32 deletions(-) delete mode 100755 make_libtcc1_win32.sh diff --git a/Makefile b/Makefile index 77e5d18..eb3c82b 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ LIBTCCA=libtcc.a ifdef DISABLE_STATIC CFLAGS+=-fPIC LIBTCCA= -LIBTCCL=-ltcc +LIBTCCL=-L. -ltcc LIBTCCSO=libtcc.so.1 endif LIBTCCB=$(LIBTCCA) @@ -110,11 +110,11 @@ PROGS_CROSS=$(WIN64_CROSS) $(I386_CROSS) $(X64_CROSS) $(ARM_CROSS) $(C67_CROSS) else ifeq ($(ARCH),i386) NATIVE_FILES=$(I386_FILES) -PROGS_CROSS=$(X64_CROSS) libtcc1_win32 $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS) +PROGS_CROSS=$(X64_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS) else ifeq ($(ARCH),x86-64) NATIVE_FILES=$(X86_64_FILES) -PROGS_CROSS=$(I386_CROSS) libtcc1_win32 $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS) +PROGS_CROSS=$(I386_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS) else ifeq ($(ARCH),arm) NATIVE_FILES=$(ARM_FILES) @@ -125,14 +125,13 @@ endif endif ifdef CONFIG_CROSS - PROGS+=$(PROGS_CROSS) endif all: $(PROGS) $(LIBTCC1) $(BCHECK_O) $(LIBTCCB) tcc-doc.html tcc.1 libtcc_test$(EXESUF) # Host Tiny C Compiler -tcc$(EXESUF): tcc.o $(LIBTCCA) +tcc$(EXESUF): tcc.o $(LIBTCCB) $(CC) -o $@ $^ $(LIBS) $(LIBTCCL) # Cross Tiny C Compilers @@ -179,11 +178,22 @@ libtcc.so.1: $(LIBTCC_OBJ) $(CC) -shared -Wl,-soname,$@ -o $@.0 $^ ln -sf libtcc.so.1.0 libtcc.so.1 ln -sf libtcc.so.1.0 libtcc.so -libtcc1_win32: - ./make_libtcc1_win32.sh -libtcc_test$(EXESUF): tests/libtcc_test.c $(LIBTCCA) +libtcc_test$(EXESUF): tests/libtcc_test.c $(LIBTCCB) $(CC) -o $@ $^ -I. $(CFLAGS) $(LIBS) $(LIBTCCL) +ifdef CONFIG_CROSS +ifndef CONFIG_WIN32 + echo "ARCH=i386" >> config.mak + make i386-win32-tcc + cp i386-win32-tcc tcc.exe + mv libtcc1.a libtcc1.bak + make CONFIG_WIN32=1 libtcc1.a + mv libtcc1.a lib + mv libtcc1.bak libtcc1.a + head -n -1 config.mak > config.bak + mv config.bak config.mak +endif +endif libtest: libtcc_test$(EXESUF) $(LIBTCC1) ./libtcc_test$(EXESUF) lib_path=. @@ -239,10 +249,20 @@ endif $(INSTALL) -m644 $(addprefix include/,$(TCC_INCLUDES)) "$(tccdir)/include" mkdir -p "$(libdir)" $(INSTALL) -m644 $(LIBTCCB) "$(libdir)" +ifeq ($(LIBTCCB),$(LIBTCCSO)) + $(INSTALL) -m644 $(LIBTCCB,.1.0=.1) "$(libdir)" + $(INSTALL) -m644 $(LIBTCCB,.1.0=) "$(libdir)" +endif mkdir -p "$(includedir)" $(INSTALL) -m644 libtcc.h "$(includedir)" mkdir -p "$(docdir)" - -$(INSTALL) -m644 tcc-doc.html "$(docdir)" + $(INSTALL) -m644 tcc-doc.html "$(docdir)" +ifdef CONFIG_CROSS + mkdir -p "$(tccdir)/lib" + $(INSTALL) -m644 win32/lib/*.def lib/libtcc1.a "$(tccdir)/lib" + cp -r win32/include/. "$(tccdir)/include" + cp -r win32/examples/. "$(tccdir)/examples" +endif uninstall: rm -fv $(foreach P,$(PROGS),"$(bindir)/$P") @@ -250,7 +270,14 @@ uninstall: rm -fv $(foreach P,$(TCC_INCLUDES),"$(tccdir)/include/$P") rm -fv "$(docdir)/tcc-doc.html" "$(mandir)/man1/tcc.1" rm -fv "$(libdir)/$(LIBTCCB)" "$(includedir)/libtcc.h" - +ifeq ($(LIBTCCB),$(LIBTCCSO)) + rm -fv "$(libdir)/$(LIBTCCB,.1.0=.1)" "$(libdir)/$(LIBTCCB,.1.0=)" +endif +ifdef CONFIG_CROSS + rm -rf "$(tccdir)/include" + rm -rf "$(tccdir)/lib" + rm -rf "$(tccdir)/examples" +endif else install: $(PROGS) $(LIBTCC1) libtcc.a tcc-doc.html mkdir -p "$(tccdir)" diff --git a/make_libtcc1_win32.sh b/make_libtcc1_win32.sh deleted file mode 100755 index a13203f..0000000 --- a/make_libtcc1_win32.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -a=$(mktemp) -b=$(mktemp) -c=$(mktemp) -cp config.h $a -cp config.mak $b -# force 386 build on x86_64 -./configure --cpu=x86 -# configure doesn't provide a way to set tccdir -tccdir=$(grep TCCDIR $a|awk '{gsub("\"","",$3);print $3}') -grep -v CONFIG_TCCDIR $a > $c -echo "#define CONFIG_TCCDIR \"${tccdir}/win32\"" >> $c -mv $c config.h -make i386-win32-tcc -mv i386-win32-tcc tcc.exe -sync -make CONFIG_WIN32=1 libtcc1.a -cp include/* win32/include -mv libtcc1.a win32/lib -mv $a config.h -mv $b config.mak -rm tcc.exe