mirror of
https://github.com/frida/tinycc
synced 2024-11-24 00:29:38 +03:00
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
This commit is contained in:
parent
49d3118621
commit
f350487e1e
27
Makefile
27
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)
|
||||
|
1
configure
vendored
1
configure
vendored
@ -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;;
|
||||
|
11
lib/Makefile
11
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
|
||||
|
@ -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 ***
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user