aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgrischka <grischka>2016-10-02 01:39:07 +0200
committergrischka <grischka>2016-10-02 01:39:07 +0200
commitf350487e1e5d4606c8b1508f920b7325c3c50bc1 (patch)
tree978b07fddd3d8d8791a036b3ea470e5ffe46b5ff
parent49d3118621a68f6583228f123efd16f0f803d908 (diff)
downloadtinycc-f350487e1e5d4606c8b1508f920b7325c3c50bc1.tar.gz
tinycc-f350487e1e5d4606c8b1508f920b7325c3c50bc1.tar.bz2
win32/64: msys2 support
Support ./configure && make under msys2 (a new msys fork) on win32 and win64. Get rid of CONFIG_WIN64 make-var. (On windows, WIN32 in general is used for both 32 and 64 bit platforms) Also: - cleanup win32/build-tcc.bat - adjust win32/(doc/)tcc-win32.tx
-rw-r--r--Makefile27
-rwxr-xr-xconfigure1
-rw-r--r--lib/Makefile11
-rw-r--r--win32/build-tcc.bat15
-rw-r--r--win32/tcc-win32.txt2
5 files changed, 27 insertions, 29 deletions
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