diff --git a/Makefile b/Makefile index 2bc8075..f6401f4 100644 --- a/Makefile +++ b/Makefile @@ -28,9 +28,6 @@ LINK_LIBTCC = LIBS = ifdef CONFIG_WIN32 - ifeq ($(ARCH),x86-64) - CONFIG_WIN64=yes - endif STRIP_BINARIES = yes LIBTCC = libtcc.dll else @@ -93,18 +90,18 @@ ARM_FILES = $(CORE_FILES) arm-gen.c ARM64_FILES = $(CORE_FILES) arm64-gen.c C67_FILES = $(CORE_FILES) c67-gen.c tcccoff.c -ifdef CONFIG_WIN64 -PROGS+=tiny_impdef$(EXESUF) -NATIVE_FILES=$(WIN64_FILES) -PROGS_CROSS=$(WIN32_CROSS) $(I386_CROSS) $(X64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) -LIBTCC1_CROSS=lib/i386-win32/libtcc1.a - -else ifdef CONFIG_WIN32 -PROGS+=tiny_impdef$(EXESUF) -NATIVE_FILES=$(WIN32_FILES) -PROGS_CROSS=$(WIN64_CROSS) $(I386_CROSS) $(X64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) -LIBTCC1_CROSS=lib/x86_64-win32/libtcc1.a - +ifdef CONFIG_WIN32 + PROGS+=tiny_impdef$(EXESUF) tiny_libmaker$(EXESUF) +ifeq ($(ARCH),x86-64) + NATIVE_FILES=$(WIN64_FILES) + PROGS_CROSS=$(WIN32_CROSS) + LIBTCC1_CROSS=lib/i386-win32/libtcc1.a +else + NATIVE_FILES=$(WIN32_FILES) + PROGS_CROSS=$(WIN64_CROSS) + LIBTCC1_CROSS=lib/x86_64-win32/libtcc1.a +endif + PROGS_CROSS+=$(X64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) else ifeq ($(ARCH),i386) NATIVE_FILES=$(I386_FILES) PROGS_CROSS=$(X64_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) diff --git a/configure b/configure index b6a0b21..c2668a5 100755 --- a/configure +++ b/configure @@ -50,6 +50,7 @@ cpu= targetos=`uname` case $targetos in MINGW32*) mingw32=yes;; + MSYS*) mingw32=yes;; DragonFly) noldl=yes;; OpenBSD) noldl=yes;; FreeBSD) noldl=yes;; diff --git a/lib/Makefile b/lib/Makefile index da678ef..9b4a884 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -8,11 +8,12 @@ VPATH = $(TOPSRC)/lib $(TOPSRC)/win32/lib ifndef TARGET # we're building the native libtcc1.a - ifdef CONFIG_WIN64 - TARGET = x86_64-win32 - # using tcc - else ifdef CONFIG_WIN32 - TARGET = i386-win32 + ifdef CONFIG_WIN32 + ifeq ($(ARCH),x86-64) + TARGET = x86_64-win32 + else + TARGET = i386-win32 + endif # using tcc else ifeq ($(ARCH),i386) TARGET = i386 diff --git a/win32/build-tcc.bat b/win32/build-tcc.bat index cdb4272..c795c19 100644 --- a/win32/build-tcc.bat +++ b/win32/build-tcc.bat @@ -5,19 +5,17 @@ @set /p VERSION= < ..\VERSION echo>..\config.h #define TCC_VERSION "%VERSION%" -@if _%1_==_AMD64_ shift /1 && goto x86_64 -@if _%1_==_x64_ shift /1 && goto x86_64 +@if _%PROCESSOR_ARCHITECTURE%_==_AMD64_ goto x86_64 +@if _%PROCESSOR_ARCHITEW6432%_==_AMD64_ goto x86_64 @set target=-DTCC_TARGET_PE -DTCC_TARGET_I386 -@set CC=gcc -Os -s -fno-strict-aliasing -@if _%1_==_debug_ set CC=gcc -g -ggdb +@set CC=gcc -m32 -Os -s -fno-strict-aliasing @set P=32 @goto tools :x86_64 @set target=-DTCC_TARGET_PE -DTCC_TARGET_X86_64 -@set CC=x86_64-w64-mingw32-gcc -Os -s -fno-strict-aliasing -@if _%1_==_debug_ set CC=x86_64-w64-mingw32-gcc -g -ggdb +@set CC=gcc -m64 -Os -s -fno-strict-aliasing @set P=64 @goto tools @@ -36,6 +34,8 @@ tiny_impdef libtcc.dll -o libtcc/libtcc.def :copy_std_includes copy ..\include\*.h include +copy ..\tcclib.h include +copy ..\tests\libtcc_test.c examples :libtcc1.a .\tcc %target% -c ../lib/libtcc1.c @@ -59,10 +59,9 @@ tiny_libmaker lib/libtcc1.a libtcc1.o alloca86_64.o crt1.o wincrt1.o dllcrt1.o d :the_end del *.o -copy ..\tests\libtcc_test.c examples :makedoc if not exist doc md doc copy tcc-win32.txt doc echo>..\config.texi @set VERSION %VERSION% -makeinfo --html --no-split -o doc\tcc-doc.html ../tcc-doc.texi +makeinfo --html --no-split -o doc\tcc-doc.html ../tcc-doc.texi || echo *** tcc-doc.html was not built *** diff --git a/win32/tcc-win32.txt b/win32/tcc-win32.txt index 1cb35c5..da07e44 100644 --- a/win32/tcc-win32.txt +++ b/win32/tcc-win32.txt @@ -54,7 +54,7 @@ tcc examples/libtcc_test.c -I libtcc libtcc/libtcc.def - Compiling with MinGW: - gcc examples/libtcc_test.c -I libtcc libtcc.dll + gcc examples/libtcc_test.c -I libtcc libtcc.dll -o libtcc_test.exe - Compiling with MSVC: lib /def:libtcc\libtcc.def /out:libtcc.lib