| @@ -4,50 +4,53 @@ · 3 unmodified lines |
| 4 | @set PROMPT=$G$S | 4 | @set PROMPT=$G$S |
| 5 | | 5 | |
| 6 | echo>..\config.h #define TCC_VERSION "0.9.25" | 6 | echo>..\config.h #define TCC_VERSION "0.9.25" |
| 7 | echo>>..\config.h #define TCC_TARGET_PE 1 | | |
| 8 | echo>>..\config.h #define CONFIG_TCCDIR "." | 7 | echo>>..\config.h #define CONFIG_TCCDIR "." |
| 9 | echo>>..\config.h #define CONFIG_SYSROOT "" | 8 | echo>>..\config.h #define CONFIG_SYSROOT "" |
| | 9 | @set target=-DTCC_TARGET_PE -DTCC_TARGET_I386 |
| | 10 | @set CC=gcc |
| | 11 | @set AR=ar |
| 10 | | 12 | |
| 11 | @if _%PROCESSOR_ARCHITEW6432%_==_AMD64_ goto x86_64 | 13 | @if _%PROCESSOR_ARCHITEW6432%_==_AMD64_ goto x86_64 |
| 12 | @if _%PROCESSOR_ARCHITECTURE%_==_AMD64_ goto x86_64 | 14 | @if _%PROCESSOR_ARCHITECTURE%_==_AMD64_ goto x86_64 |
| 13 | @goto tools | 15 | @goto tools |
| 14 | | 16 | |
| 15 | :x86_64 | 17 | :x86_64 |
| 16 | echo>>..\config.h #define TCC_TARGET_X86_64 1 | 18 | @set target=-DTCC_TARGET_PE -DTCC_TARGET_X86_64 |
| 17 | @set P=x86_64-pc-mingw32- | 19 | @set CC=x86_64-pc-mingw32-gCC |
| | 20 | @set AR=x86_64-pc-mingw32-ar |
| 18 | @set S=_64 | 21 | @set S=_64 |
| 19 | @goto tools | 22 | @goto tools |
| 20 | | 23 | |
| 21 | :tools | 24 | :tools |
| 22 | %P%gcc -Os tools/tiny_impdef.c -o tiny_impdef.exe -s | 25 | %CC% %target% -Os tools/tiny_impdef.c -o tiny_impdef.exe -s |
| 23 | %P%gcc -Os tools/tiny_libmaker.c -o tiny_libmaker.exe -s | 26 | %CC% %target% -Os tools/tiny_libmaker.c -o tiny_libmaker.exe -s |
| 24 | | 27 | |
| 25 | :libtcc | 28 | :libtcc |
| 26 | if not exist libtcc\nul mkdir libtcc | 29 | if not exist libtcc\nul mkdir libtcc |
| 27 | copy ..\libtcc.h libtcc\libtcc.h | 30 | copy ..\libtcc.h libtcc\libtcc.h |
| 28 | %P%gcc -Os -fno-strict-aliasing ../libtcc.c -c -o libtcc.o | 31 | %CC% %target% -Os -fno-strict-aliasing ../libtcc.c -c -o libtcc.o |
| 29 | %P%ar rcs libtcc/libtcc.a libtcc.o | 32 | %AR% rcs libtcc/libtcc.a libtcc.o |
| 30 | | 33 | |
| 31 | :tcc | 34 | :tcc |
| 32 | %P%gcc -Os -fno-strict-aliasing ../tcc.c -o tcc.exe -s -DTCC_USE_LIBTCC -ltcc -Llibtcc | 35 | %CC% %target% -Os -fno-strict-aliasing ../tcc.c -o tcc.exe -s -DTCC_USE_LIBTCC -ltcc -Llibtcc |
| 33 | | 36 | |
| 34 | :copy_std_includes | 37 | :copy_std_includes |
| 35 | copy ..\include\*.h include | 38 | copy ..\include\*.h include |
| 36 | | 39 | |
| 37 | :libtcc1.a | 40 | :libtcc1.a |
| 38 | .\tcc -c lib/crt1.c | 41 | .\tcc %target% -c lib/crt1.c |
| 39 | .\tcc -c lib/wincrt1.c | 42 | .\tcc %target% -c lib/wincrt1.c |
| 40 | .\tcc -c lib/dllcrt1.c | 43 | .\tcc %target% -c lib/dllcrt1.c |
| 41 | .\tcc -c lib/dllmain.c | 44 | .\tcc %target% -c lib/dllmain.c |
| 42 | .\tcc -c ../lib/libtcc1.c | 45 | .\tcc %target% -c ../lib/libtcc1.c |
| 43 | .\tcc -c lib/chkstk.S | 46 | .\tcc %target% -c lib/chkstk.S |
| 44 | .\tcc -c ../lib/alloca86%S%.S | 47 | .\tcc %target% -c ../lib/alloca86%S%.S |
| 45 | | 48 | |
| 46 | @set LIBFILES=crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o libtcc1.o alloca86%S%.o | 49 | @set LIBFILES=crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o libtcc1.o alloca86%S%.o |
| 47 | | 50 | |
| 48 | @if not _%P%==_ goto makelib | 51 | @if not _%P%==_ goto makelib |
| 49 | .\tcc -c ../lib/alloca86-bt%S%.S | 52 | .\tcc %target% -c ../lib/alloca86-bt%S%.S |
| 50 | .\tcc -c ../lib/bcheck.c | 53 | .\tcc %target% -c ../lib/bcheck.c |
| 51 | | 54 | |
| 52 | @set LIBFILES=%LIBFILES% alloca86-bt%S%.o bcheck.o | 55 | @set LIBFILES=%LIBFILES% alloca86-bt%S%.o bcheck.o |
| 53 | | 56 | |