diff options
| author | seyko <seyko2@gmail.com> | 2015-03-04 11:47:52 +0300 |
|---|---|---|
| committer | seyko <seyko2@gmail.com> | 2015-03-04 11:47:52 +0300 |
| commit | 48d12e42ada846e6d573bbccc3e3b8e7eaa1e1a7 (patch) | |
| tree | dfc310af301b0327411858d8388444e6f23d4a79 | |
| parent | 76af94862352a3f1d26249d9ea6f795d107c1d7f (diff) | |
| download | tinycc-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-- | Makefile | 14 | ||||
| -rwxr-xr-x | configure | 18 | ||||
| -rw-r--r-- | lib/Makefile | 6 |
3 files changed, 20 insertions, 18 deletions
@@ -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 @@ -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" |
