Unified · Split
| @@ -104,8 +104,7 @@ PROGS_CROSS=$(X64_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS) · 103 unmodified lines | |||
| 104 | else | 104 | else |
| 105 | ifeq ($(ARCH),x86-64) | 105 | ifeq ($(ARCH),x86-64) |
| 106 | NATIVE_FILES=$(X86_64_FILES) | 106 | NATIVE_FILES=$(X86_64_FILES) |
| 107 | # $(WIN32_CROSS) is buit more carefully on this platform. See win32libcc1: | 107 | PROGS+=$(WIN32_CROSS) |
| 108 | # PROGS+=$(WIN32_CROSS) | ||
| 109 | PROGS_CROSS=$(I386_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS) | 108 | PROGS_CROSS=$(I386_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS) |
| 110 | else | 109 | else |
| 111 | ifeq ($(ARCH),arm) | 110 | ifeq ($(ARCH),arm) |
| @@ -129,7 +128,7 @@ ifdef CONFIG_CROSS · 17 unmodified lines | |||
| 129 | PROGS+=$(PROGS_CROSS) | 128 | PROGS+=$(PROGS_CROSS) |
| 130 | # Try to build win32 cross-compiler lib on *nix | 129 | # Try to build win32 cross-compiler lib on *nix |
| 131 | ifndef CONFIG_WIN32 | 130 | ifndef CONFIG_WIN32 |
| 132 | LIBTCCLIBS+=win32libcc1 | 131 | LIBTCCLIBS+=LinuxWIN32libtcc1 |
| 133 | endif | 132 | endif |
| 134 | endif | 133 | endif |
| 135 | 134 | ||
| @@ -186,27 +185,12 @@ libtcc.so.1.0: $(LIBTCC_OBJ) · 50 unmodified lines | |||
| 186 | 185 | ||
| 187 | libtcc_test$(EXESUF): tests/libtcc_test.c $(LIBTCCB) | 186 | libtcc_test$(EXESUF): tests/libtcc_test.c $(LIBTCCB) |
| 188 | $(CC) -o $@ $^ -I. $(CFLAGS) $(LIBS) $(LIBTCCL) | 187 | $(CC) -o $@ $^ -I. $(CFLAGS) $(LIBS) $(LIBTCCL) |
| 189 | 188 | ||
| 190 | # To build cross-compilers on Linux we must make a fake 32 bit tcc.exe | 189 | # use i386-win32-tcc instead of tcc.exe to build libtcc1.a on Linux |
| 191 | # and use it to build ELF objects into win32 version of libtcc1.a | 190 | # ar t libtcc1.a will list the ELF objects |
| 192 | win32libcc1: | 191 | LinuxWIN32libtcc1: $(WIN32_CROSS) |
| 193 | mv config.mak config.mak.bak | 192 | $(MAKE) ARCH=i386 CONFIG_WIN32=1 TCC=./i386-win32-tcc libtcc1.a |
| 194 | mv config.h config.h.bak | 193 | @-mv libtcc1.a win32/lib |
| 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 | ||
| 210 | 194 | ||
| 211 | libtest: libtcc_test$(EXESUF) $(LIBTCC1) | 195 | libtest: libtcc_test$(EXESUF) $(LIBTCC1) |
| 212 | ./libtcc_test$(EXESUF) lib_path=. | 196 | ./libtcc_test$(EXESUF) lib_path=. |
| @@ -229,7 +213,7 @@ VPATH+=lib · 16 unmodified lines | |||
| 229 | ifdef CONFIG_WIN32 | 213 | ifdef CONFIG_WIN32 |
| 230 | # for windows, we must use TCC because we generate ELF objects | 214 | # for windows, we must use TCC because we generate ELF objects |
| 231 | LIBTCC1_OBJS+=crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o bcheck.o | 215 | 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) |
| 233 | VPATH+=win32/lib | 217 | VPATH+=win32/lib |
| 234 | endif | 218 | endif |
| 235 | 219 | ||
| @@ -274,7 +258,7 @@ endif · 38 unmodified lines | |||
| 274 | $(INSTALL) -m644 tcc-doc.html "$(docdir)" | 258 | $(INSTALL) -m644 tcc-doc.html "$(docdir)" |
| 275 | ifdef CONFIG_CROSS | 259 | ifdef CONFIG_CROSS |
| 276 | mkdir -p "$(tccdir)/lib" | 260 | 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" |
| 278 | cp -r win32/include/. "$(tccdir)/include" | 262 | cp -r win32/include/. "$(tccdir)/include" |
| 279 | cp -r win32/examples/. "$(tccdir)/examples" | 263 | cp -r win32/examples/. "$(tccdir)/examples" |
| 280 | endif | 264 | endif |
| @@ -334,7 +318,7 @@ tar: · 53 unmodified lines | |||
| 334 | $(MAKE) -C tests $@ | 318 | $(MAKE) -C tests $@ |
| 335 | 319 | ||
| 336 | clean: | 320 | 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) |
| 338 | $(MAKE) -C tests $@ | 322 | $(MAKE) -C tests $@ |
| 339 | 323 | ||
| 340 | distclean: clean | 324 | distclean: clean |