History

Makefile: --enable-cross on x86_64 simplified

Henry Kroll III committed 15 years ago

Commit 3d35b6b1 parent f332bb31 file · +11 −27Browse files

Unified · Split

Makefile+11−27
@@ -104,8 +104,7 @@ PROGS_CROSS=$(X64_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS) · 103 unmodified lines
104104 else
105105 ifeq ($(ARCH),x86-64)
106106 NATIVE_FILES=$(X86_64_FILES)
107−# $(WIN32_CROSS) is buit more carefully on this platform. See win32libcc1:
108−# PROGS+=$(WIN32_CROSS)
107+PROGS+=$(WIN32_CROSS)
109108 PROGS_CROSS=$(I386_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS)
110109 else
111110 ifeq ($(ARCH),arm)
@@ -129,7 +128,7 @@ ifdef CONFIG_CROSS · 17 unmodified lines
129128 PROGS+=$(PROGS_CROSS)
130129 # Try to build win32 cross-compiler lib on *nix
131130 ifndef CONFIG_WIN32
132−LIBTCCLIBS+=win32libcc1
131+LIBTCCLIBS+=LinuxWIN32libtcc1
133132 endif
134133 endif
135134
@@ -186,27 +185,12 @@ libtcc.so.1.0: $(LIBTCC_OBJ) · 50 unmodified lines
186185
187186 libtcc_test$(EXESUF): tests/libtcc_test.c $(LIBTCCB)
188187 $(CC) -o $@ $^ -I. $(CFLAGS) $(LIBS) $(LIBTCCL)
189−
190−# To build cross-compilers on Linux we must make a fake 32 bit tcc.exe
191−# and use it to build ELF objects into win32 version of libtcc1.a
192−win32libcc1:
193− mv config.mak config.mak.bak
194− mv config.h config.h.bak
195− cp config.h.bak config.h
196− cp config.mak.bak config.mak
197− echo "ARCH=i386" >> config.mak
198− echo "#undef HOST_X86_64" >> config.h
199− echo "#define HOST_I386 1" >> config.h
200− echo "CFLAGS=-O2 -g -pipe -Wall -m32" >> config.mak
201− echo "ARCH=i386" >> config.mak
202− $(MAKE) $(WIN32_CROSS) CC=gcc
203− -ln -s $(WIN32_CROSS) tcc.exe
204− -mv libtcc1.a libtcc1.bak
205− $(MAKE) CONFIG_WIN32=1 libtcc1.a
206− mv libtcc1.a lib
207− -mv libtcc1.bak libtcc1.a
208− mv config.mak.bak config.mak
209− mv config.h.bak config.h
188+
189+# use i386-win32-tcc instead of tcc.exe to build libtcc1.a on Linux
190+# ar t libtcc1.a will list the ELF objects
191+LinuxWIN32libtcc1: $(WIN32_CROSS)
192+ $(MAKE) ARCH=i386 CONFIG_WIN32=1 TCC=./i386-win32-tcc libtcc1.a
193+ @-mv libtcc1.a win32/lib
210194
211195 libtest: libtcc_test$(EXESUF) $(LIBTCC1)
212196 ./libtcc_test$(EXESUF) lib_path=.
@@ -229,7 +213,7 @@ VPATH+=lib · 16 unmodified lines
229213 ifdef CONFIG_WIN32
230214 # for windows, we must use TCC because we generate ELF objects
231215 LIBTCC1_OBJS+=crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o bcheck.o
232−LIBTCC1_CC=./tcc.exe -Bwin32 -Iinclude $(NATIVE_DEFINES)
216+LIBTCC1_CC=./$(TCC)$(EXESUF) -Bwin32 -Iinclude $(NATIVE_DEFINES)
233217 VPATH+=win32/lib
234218 endif
235219
@@ -274,7 +258,7 @@ endif · 38 unmodified lines
274258 $(INSTALL) -m644 tcc-doc.html "$(docdir)"
275259 ifdef CONFIG_CROSS
276260 mkdir -p "$(tccdir)/lib"
277− $(INSTALL) -m644 win32/lib/*.def lib/libtcc1.a "$(tccdir)/lib"
261+ $(INSTALL) -m644 win32/lib/*.def win32/lib/libtcc1.a "$(tccdir)/lib"
278262 cp -r win32/include/. "$(tccdir)/include"
279263 cp -r win32/examples/. "$(tccdir)/examples"
280264 endif
@@ -334,7 +318,7 @@ tar: · 53 unmodified lines
334318 $(MAKE) -C tests $@
335319
336320 clean:
337− rm -vf $(PROGS) tcc_p$(EXESUF) tcc.pod *~ *.o *.a *.out *.so* *.exe libtcc_test$(EXESUF) lib/libtcc1.a $(WIN32_CROSS)
321+ rm -vf $(PROGS) tcc_p$(EXESUF) tcc.pod *~ *.o *.a *.out *.so* *.exe libtcc_test$(EXESUF) win32/lib/libtcc1.a $(WIN32_CROSS)
338322 $(MAKE) -C tests $@
339323
340324 distclean: clean

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t