mirror of
https://github.com/mirror/tinycc.git
synced 2025-02-06 06:40:07 +08:00
Improve cygwin Makefile that now support TARGET=32/64 to force final version for 32/64 platform
This commit is contained in:
parent
43d9a7de9b
commit
5550e4336f
@ -19,6 +19,16 @@ NATIVE = -m$(ARCH) -DTCC_TARGET_I386
|
||||
PREFIX = i386
|
||||
endif
|
||||
|
||||
TARGET = $(ARCH)
|
||||
|
||||
ifeq ($(TARGET), 64)
|
||||
TFLAGS = -m$(TARGET) -DTCC_TARGET_X86_64
|
||||
TPREFIX = x86_64
|
||||
else
|
||||
TFLAGS = -m$(TARGET) -DTCC_TARGET_I386
|
||||
TPREFIX = i386
|
||||
endif
|
||||
|
||||
all: pre bootstrap libs rebuild
|
||||
@chmod 775 *.exe
|
||||
@ls -ls *.exe
|
||||
@ -70,7 +80,7 @@ lib/32/libtcc1.a: tiny_libmaker32.exe
|
||||
@./tiny_libmaker32 lib/32/libtcc1.a libtcc1.o alloca86.o alloca86-bt.o crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o
|
||||
@rm *.o
|
||||
|
||||
lib/64/libtcc1.a: tcc.exe tiny_libmaker64.exe
|
||||
lib/64/libtcc1.a: tiny_libmaker64.exe
|
||||
@echo Building $*.a with tcc -m64
|
||||
@./tcc -m64 -DTCC_TARGET_PE -DTCC_TARGET_X86_64 -c ../lib/libtcc1.c
|
||||
@./tcc -m64 -DTCC_TARGET_PE -DTCC_TARGET_X86_64 -c ../lib/alloca86_64.S
|
||||
@ -88,14 +98,14 @@ libs: lib/32/libtcc1.a lib/64/libtcc1.a
|
||||
PHONY += libs
|
||||
|
||||
rebuild:
|
||||
@echo Rebuild using tcc itself - default $(ARCH)bits
|
||||
@./$(PREFIX)-win32-tcc $(NATIVE) -DTCC_TARGET_PE -DONE_SOURCE -o tcc.exe ../tcc.c libtcc.dll
|
||||
@./$(PREFIX)-win32-tcc $(NATIVE) -DTCC_TARGET_PE -DONE_SOURCE -o tiny_libmaker.exe tools/tiny_libmaker.c
|
||||
@./tcc $(NATIVE) -DTCC_TARGET_PE -DONE_SOURCE -DLIBTCC_AS_DLL -o libtcc.dll -shared ../libtcc.c
|
||||
@./tcc -m$(ARCH) -DTCC_TARGET_PE -DONE_SOURCE -DTCC_TARGET_I386 -o tmp-tcc.exe ../tcc.c && mv tmp-tcc.exe i386-win32-tcc.exe
|
||||
@./tcc -m$(ARCH) -DTCC_TARGET_PE -DONE_SOURCE -DTCC_TARGET_X86_64 -o tmp-tcc.exe ../tcc.c && mv tmp-tcc.exe x86_64-win32-tcc.exe
|
||||
@./tcc -m$(ARCH) -DTCC_TARGET_PE -DONE_SOURCE -DTCC_TARGET_I386 -o tiny_libmaker32.exe tools/tiny_libmaker.c
|
||||
@./tcc -m$(ARCH) -DTCC_TARGET_PE -DONE_SOURCE -DTCC_TARGET_X86_64 -o tiny_libmaker64.exe tools/tiny_libmaker.c
|
||||
@echo Rebuild using tcc itself - default $(TARGET)bits
|
||||
@./$(TPREFIX)-win32-tcc $(TFLAGS) -DTCC_TARGET_PE -DONE_SOURCE -o tcc.exe ../tcc.c
|
||||
@./$(TPREFIX)-win32-tcc $(TFLAGS) -DTCC_TARGET_PE -DONE_SOURCE -o tiny_libmaker.exe tools/tiny_libmaker.c
|
||||
@./tcc $(TFLAGS) -DTCC_TARGET_PE -DONE_SOURCE -DLIBTCC_AS_DLL -o libtcc.dll -shared ../libtcc.c
|
||||
@./tcc -m$(TARGET) -DTCC_TARGET_PE -DONE_SOURCE -DTCC_TARGET_I386 -o tmp-tcc.exe ../tcc.c && mv tmp-tcc.exe i386-win32-tcc.exe
|
||||
@./tcc -m$(TARGET) -DTCC_TARGET_PE -DONE_SOURCE -DTCC_TARGET_X86_64 -o tmp-tcc.exe ../tcc.c && mv tmp-tcc.exe x86_64-win32-tcc.exe
|
||||
@./tcc -m$(TARGET) -DTCC_TARGET_PE -DONE_SOURCE -DTCC_TARGET_I386 -o tiny_libmaker32.exe tools/tiny_libmaker.c
|
||||
@./tcc -m$(TARGET) -DTCC_TARGET_PE -DONE_SOURCE -DTCC_TARGET_X86_64 -o tiny_libmaker64.exe tools/tiny_libmaker.c
|
||||
|
||||
PHONY += rebuild
|
||||
|
||||
@ -110,7 +120,6 @@ tarball:
|
||||
@cp -r lib $(TARNAME)
|
||||
@cp -r libtcc $(TARNAME)
|
||||
@cp -r tools $(TARNAME)
|
||||
# @cp -r vs2015 $(TARNAME)
|
||||
@cp -r build-tcc.bat $(TARNAME)
|
||||
@cp -r i386-win32-tcc.exe $(TARNAME)
|
||||
@cp -r libtcc.def $(TARNAME)
|
||||
@ -128,4 +137,4 @@ tarball:
|
||||
PHONY += tarball
|
||||
|
||||
clean:
|
||||
rm -f *.o *.exe *.dll lib/*/*.a
|
||||
rm -f *.o *.exe *.dll lib/*/*.a *.pdb *.obj *.exp *.def *.lib
|
||||
|
@ -128,6 +128,16 @@
|
||||
Also you can copy/install everything into another directory:
|
||||
> build-tcc.bat -i <dir>
|
||||
|
||||
* You can also bootstrap a native tcc Windows toolchain with cygwin.
|
||||
https://www.cygwin.com/
|
||||
|
||||
Install Base, gcc, make
|
||||
Launch Cygwin Terminal
|
||||
> make
|
||||
or to force 32bit executables (including 64bit backend)
|
||||
> make TARGET=32
|
||||
or to force 64bit executables (including 32bit backend)
|
||||
> make TARGET=64
|
||||
|
||||
Limitations:
|
||||
------------
|
||||
|
Loading…
Reference in New Issue
Block a user