diff --git a/win32/build-tcc64.bat b/win32/build-tcc64.bat new file mode 100755 index 0000000..7792cbc --- /dev/null +++ b/win32/build-tcc64.bat @@ -0,0 +1,49 @@ +@rem ---------------------------------------------------- +@rem batch file to build tcc using mingw gcc +@rem ---------------------------------------------------- + +@set /p VERSION= < ..\VERSION +echo>..\config.h #define TCC_VERSION "%VERSION%" + +@set target=-DTCC_TARGET_PE -DTCC_TARGET_X86_64 +@rem mingw 64 has an ICE with -Os +@set CC=c:\cygwin\bin\i686-w64-mingw32-gcc.exe -O0 -s -fno-strict-aliasing +@set P=64 + +%CC% %target% tools/tiny_impdef.c -o tiny_impdef.exe +%CC% %target% tools/tiny_libmaker.c -o tiny_libmaker.exe + +:libtcc +if not exist libtcc\nul mkdir libtcc +copy ..\libtcc.h libtcc\libtcc.h +%CC% %target% -shared -DLIBTCC_AS_DLL -DONE_SOURCE ../libtcc.c -o libtcc.dll -Wl,-out-implib,libtcc/libtcc.a -static-libgcc +tiny_impdef libtcc.dll -o libtcc/libtcc.def + +:tcc +%CC% %target% ../tcc.c -o tcc.exe -ltcc -Llibtcc + +:copy_std_includes +copy ..\include\*.h include + +:libtcc1.a +.\tcc %target% -c ../lib/libtcc1.c +.\tcc %target% -c lib/crt1.c +.\tcc %target% -c lib/wincrt1.c +.\tcc %target% -c lib/dllcrt1.c +.\tcc %target% -c lib/dllmain.c +.\tcc %target% -c lib/chkstk.S +goto lib%P% + +:lib32 +.\tcc %target% -c ../lib/alloca86.S +.\tcc %target% -c ../lib/alloca86-bt.S +.\tcc %target% -c ../lib/bcheck.c +tiny_libmaker lib/libtcc1.a libtcc1.o alloca86.o alloca86-bt.o crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o bcheck.o +@goto the_end + +:lib64 +.\tcc %target% -c ../lib/alloca86_64.S +tiny_libmaker lib/libtcc1.a libtcc1.o alloca86_64.o crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o + +:the_end +del *.o