make win32 version of libtcc1.a for cross-compiler on x86 / x86_64
This commit is contained in:
parent
b0b29d8013
commit
80b4c698c2
2 changed files with 28 additions and 4 deletions
8
Makefile
8
Makefile
|
|
@ -10,7 +10,6 @@ CFLAGS_P=$(CFLAGS) -pg -static -DCONFIG_TCC_STATIC
|
||||||
LIBS_P=
|
LIBS_P=
|
||||||
LIBS=.
|
LIBS=.
|
||||||
|
|
||||||
# My distro wants shared libs, not static ones
|
|
||||||
LIBTCCA=libtcc.a
|
LIBTCCA=libtcc.a
|
||||||
ifdef DISABLE_STATIC
|
ifdef DISABLE_STATIC
|
||||||
CFLAGS+=-fPIC
|
CFLAGS+=-fPIC
|
||||||
|
|
@ -111,11 +110,11 @@ PROGS_CROSS=$(WIN64_CROSS) $(I386_CROSS) $(X64_CROSS) $(ARM_CROSS) $(C67_CROSS)
|
||||||
else
|
else
|
||||||
ifeq ($(ARCH),i386)
|
ifeq ($(ARCH),i386)
|
||||||
NATIVE_FILES=$(I386_FILES)
|
NATIVE_FILES=$(I386_FILES)
|
||||||
PROGS_CROSS=$(X64_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS)
|
PROGS_CROSS=$(X64_CROSS) libtcc1_win32 $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS)
|
||||||
else
|
else
|
||||||
ifeq ($(ARCH),x86-64)
|
ifeq ($(ARCH),x86-64)
|
||||||
NATIVE_FILES=$(X86_64_FILES)
|
NATIVE_FILES=$(X86_64_FILES)
|
||||||
PROGS_CROSS=$(I386_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS)
|
PROGS_CROSS=$(I386_CROSS) libtcc1_win32 $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS)
|
||||||
else
|
else
|
||||||
ifeq ($(ARCH),arm)
|
ifeq ($(ARCH),arm)
|
||||||
NATIVE_FILES=$(ARM_FILES)
|
NATIVE_FILES=$(ARM_FILES)
|
||||||
|
|
@ -126,6 +125,7 @@ endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_CROSS
|
ifdef CONFIG_CROSS
|
||||||
|
|
||||||
PROGS+=$(PROGS_CROSS)
|
PROGS+=$(PROGS_CROSS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
@ -179,6 +179,8 @@ libtcc.so.1: $(LIBTCC_OBJ)
|
||||||
$(CC) -shared -Wl,-soname,$@ -o $@.0 $^
|
$(CC) -shared -Wl,-soname,$@ -o $@.0 $^
|
||||||
ln -sf libtcc.so.1.0 libtcc.so.1
|
ln -sf libtcc.so.1.0 libtcc.so.1
|
||||||
ln -sf libtcc.so.1.0 libtcc.so
|
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 $(LIBTCCA)
|
||||||
$(CC) -o $@ $^ -I. $(CFLAGS) $(LIBS) $(LIBTCCL)
|
$(CC) -o $@ $^ -I. $(CFLAGS) $(LIBS) $(LIBTCCL)
|
||||||
|
|
|
||||||
22
make_libtcc1_win32.sh
Executable file
22
make_libtcc1_win32.sh
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
#!/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
|
||||||
Loading…
Add table
Reference in a new issue