From 87ec08ecc88e498e3f23703a93ab8858697547f0 Mon Sep 17 00:00:00 2001 From: seyko Date: Tue, 10 Mar 2015 13:39:26 +0300 Subject: [PATCH] A native tcc for MSYS (Windows) must be i386-win-tcc.exe and not i386-tcc.exe i386-tcc.exe is a compiler for i386 Linux. A HOST_OS variable in Makefile is introduced and used to select a native compiler (which one to name as tcc.exe) --- Makefile | 13 +++++++++++++ configure | 5 ++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 16b806c2..cf3010c6 100644 --- a/Makefile +++ b/Makefile @@ -89,6 +89,18 @@ $(ARM_FPA_LD_CROSS)_LINK = arm-fpa-ld-tcc$(EXESUF) $(ARM_VFP_CROSS)_LINK = arm-vfp-tcc$(EXESUF) $(ARM_EABI_CROSS)_LINK = arm-eabi-tcc$(EXESUF) +ifeq ($(HOST_OS),Windows) +ifeq ($(ARCH),i386) +PROGS:=$($(WIN32_CROSS)_LINK) +$($(WIN32_CROSS)_LINK)_TCC = yes +endif +ifeq ($(ARCH),x86-64) +PROGS:=$($(WIN64_CROSS)_LINK) +$($(WIN64_CROSS)_LINK)_TCC = yes +endif +endif + +ifeq ($(HOST_OS),Linux) ifeq ($(ARCH),i386) PROGS:=$($(I386_CROSS)_LINK) $($(I386_CROSS)_LINK)_TCC = yes @@ -97,6 +109,7 @@ ifeq ($(ARCH),x86-64) PROGS:=$($(X64_CROSS)_LINK) $($(X64_CROSS)_LINK)_TCC = yes endif +endif CORE_FILES = tcc.c libtcc.c tccpp.c tccgen.c tccelf.c tccasm.c tccrun.c CORE_FILES += tcc.h config.h libtcc.h tcctok.h diff --git a/configure b/configure index a3f57bfc..d33092ad 100755 --- a/configure +++ b/configure @@ -47,11 +47,12 @@ tcc_elfinterp="" tcc_lddir= confvars= cpu= +host_os=Linux # OS specific targetos=`uname -s` case $targetos in - MINGW32*) mingw32=yes;; + MINGW32*) mingw32=yes; host_os=Windows; ;; DragonFly) noldl=yes;; OpenBSD) noldl=yes;; FreeBSD) noldl=yes;; @@ -407,6 +408,7 @@ echo "cross compilers $build_cross" if test "$build_cross" = "no"; then echo "Target CPU $cpu" fi +echo "Host OS $host_os" echo "Target OS $targetos" echo "Big Endian $bigendian" echo "gprof enabled $gprof" @@ -435,6 +437,7 @@ CFLAGS=$CFLAGS LDFLAGS=$LDFLAGS LIBSUF=$LIBSUF EXESUF=$EXESUF +HOST_OS=$host_os EOF if test "$mingw32" = "yes"; then cat >>config.mak <