aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorseyko <seyko2@gmail.com>2015-03-04 11:47:52 +0300
committerseyko <seyko2@gmail.com>2015-03-04 11:47:52 +0300
commit48d12e42ada846e6d573bbccc3e3b8e7eaa1e1a7 (patch)
treedfc310af301b0327411858d8388444e6f23d4a79
parent76af94862352a3f1d26249d9ea6f795d107c1d7f (diff)
downloadtinycc-48d12e42ada846e6d573bbccc3e3b8e7eaa1e1a7.tar.gz
tinycc-48d12e42ada846e6d573bbccc3e3b8e7eaa1e1a7.tar.bz2
gcc options and mingw: move a gcc options detection from a makefile to the configure
+ define XCC and XAR if mingw32 defined + use XCC and XAR in lib/Makefile if defined Try "./configure --enable-mingw32; make". This must work
-rw-r--r--Makefile14
-rwxr-xr-xconfigure18
-rw-r--r--lib/Makefile6
3 files changed, 20 insertions, 18 deletions
diff --git a/Makefile b/Makefile
index 04c1828..4fde879 100644
--- a/Makefile
+++ b/Makefile
@@ -8,19 +8,7 @@ VPATH = $(top_srcdir)
CPPFLAGS += -I$(TOP) # for config.h
-ifeq (-$(findstring gcc,$(CC))-,-gcc-)
-ifeq (-$(findstring $(GCC_MAJOR),01)-,--)
-CFLAGS+=-fno-strict-aliasing
-ifeq (-$(findstring $(GCC_MAJOR),23)-,--)
-CFLAGS+=-Wno-pointer-sign -Wno-sign-compare
-ifeq (-$(GCC_MAJOR)-$(findstring $(GCC_MINOR),56789)-,-4--)
-CFLAGS+=-D_FORTIFY_SOURCE=0
-else
-CFLAGS+=-Wno-unused-result
-endif
-endif
-endif
-else # not GCC
+ifneq (-$(findstring gcc,$(CC))-,-gcc-)
ifeq (-$(findstring clang,$(CC))-,-clang-)
# make clang accept gnuisms in libtcc1.c
CFLAGS+=-fheinous-gnu-extensions
diff --git a/configure b/configure
index 9b0c34a..3637252 100755
--- a/configure
+++ b/configure
@@ -373,8 +373,16 @@ else
fi
# a final configuration tuning
-W_PRESENT="$($cc -v --help 2>&1 | grep deprecated-declarations)"
-if test -n "$W_PRESENT"; then cc="$cc -Wno-deprecated-declarations"; fi
+W_OPTIONS="deprecated-declarations strict-aliasing pointer-sign sign-compare unused-result uninitialized"
+for i in $W_OPTIONS; do
+ O_PRESENT="$($cc -v --help 2>&1 | grep -- -W$i)"
+ if test -n "$O_PRESENT"; then CFLAGS="$CFLAGS -Wno-$i"; fi
+done
+F_OPTIONS="strict-aliasing"
+for i in $F_OPTIONS; do
+ O_PRESENT="$($cc -v --help 2>&1 | grep -- -f$i)"
+ if test -n "$O_PRESENT"; then CFLAGS="$CFLAGS -fno-$i"; fi
+done
if test -z "$tcc_lddir" -a "$cpu" = "x86-64"; then tcc_lddir="lib64"; fi
echo "Binary directory $bindir"
@@ -420,6 +428,12 @@ LDFLAGS=$LDFLAGS
LIBSUF=$LIBSUF
EXESUF=$EXESUF
EOF
+if test "$mingw32" = "yes"; then
+cat >>config.mak <<EOF
+XCC=$cc
+XAR=$ar
+EOF
+fi
print_inc() {
if test -n "$2"; then
diff --git a/lib/Makefile b/lib/Makefile
index bb70dea..2288600 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -60,15 +60,15 @@ CFLAGS := $(filter-out -fstack-protector-strong,$(CFLAGS))
ifeq "$(TARGET)" "i386-win"
OBJ = $(addprefix $(DIR)/,$(WIN32_O))
TGT = -DTCC_TARGET_I386 -DTCC_TARGET_PE
- XCC = $(TCC) -B$(top_srcdir)/win32 -I$(top_srcdir)/include
- XAR = $(DIR)/tiny_libmaker$(EXESUF)
+ XCC ?= $(TCC) -B$(top_srcdir)/win32 -I$(top_srcdir)/include
+ XAR ?= $(DIR)/tiny_libmaker$(EXESUF)
PICFLAGS =
else
ifeq "$(TARGET)" "x86_64-win"
OBJ = $(addprefix $(DIR)/,$(WIN64_O))
TGT = -DTCC_TARGET_X86_64 -DTCC_TARGET_PE
XCC = $(TCC) -B$(top_srcdir)/win32 -I$(top_srcdir)/include
- XAR = $(DIR)/tiny_libmaker$(EXESUF)
+ XAR ?= $(DIR)/tiny_libmaker$(EXESUF)
PICFLAGS =
else
ifeq "$(TARGET)" "i386"