aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorgrischka <grischka>2009-07-18 22:06:54 +0200
committergrischka <grischka>2009-07-18 22:06:54 +0200
commitfc977d56c90b6c6a54b7e831b5c88e37f54a5cae (patch)
tree51d2b865b88ba820373d8240377926bca63f857d /Makefile
parentc0fc0fa0c4276debb7d0fd24f91e3af38128ad28 (diff)
downloadtinycc-fc977d56c90b6c6a54b7e831b5c88e37f54a5cae.tar.gz
tinycc-fc977d56c90b6c6a54b7e831b5c88e37f54a5cae.tar.bz2
x86-64: chkstk, alloca
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile43
1 files changed, 17 insertions, 26 deletions
diff --git a/Makefile b/Makefile
index 448860a..01c3e27 100644
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,9 @@ LIBS_P=
ifneq ($(GCC_MAJOR),2)
CFLAGS+=-fno-strict-aliasing
+ifneq ($(GCC_MAJOR),3)
+CFLAGS+=-Wno-pointer-sign -Wno-sign-compare -D_FORTIFY_SOURCE=0
+endif
endif
ifeq ($(ARCH),i386)
@@ -19,15 +22,8 @@ ifeq ($(GCC_MAJOR),2)
CFLAGS+=-m386 -malign-functions=0
else
CFLAGS+=-march=i386 -falign-functions=0
-ifneq ($(GCC_MAJOR),3)
-CFLAGS+=-Wno-pointer-sign -Wno-sign-compare -D_FORTIFY_SOURCE=0
endif
endif
-endif
-
-ifeq ($(ARCH),x86-64)
-CFLAGS+=-Wno-pointer-sign
-endif
ifndef CONFIG_WIN32
LIBS=-lm
@@ -36,26 +32,29 @@ LIBS+=-ldl
endif
endif
-ifdef CONFIG_WIN32
-NATIVE_TARGET=-DTCC_TARGET_PE
-LIBTCC1=libtcc1.a
-else
ifeq ($(ARCH),i386)
NATIVE_TARGET=-DTCC_TARGET_I386
LIBTCC1=libtcc1.a
BCHECK_O=bcheck.o
-else
-ifeq ($(ARCH),arm)
-NATIVE_TARGET=-DTCC_TARGET_ARM
-NATIVE_TARGET+=$(if $(wildcard /lib/ld-linux.so.3),-DTCC_ARM_EABI)
-NATIVE_TARGET+=$(if $(shell grep -l "^Features.* \(vfp\|iwmmxt\) " /proc/cpuinfo),-DTCC_ARM_VFP)
+ALLOCA_O=alloca86.o alloca86-bt.o
else
ifeq ($(ARCH),x86-64)
NATIVE_TARGET=-DTCC_TARGET_X86_64
LIBTCC1=libtcc1.a
+BCHECK_O=
+ALLOCA_O=alloca86_64.o
endif
endif
+
+ifeq ($(ARCH),arm)
+NATIVE_TARGET=-DTCC_TARGET_ARM
+NATIVE_TARGET+=$(if $(wildcard /lib/ld-linux.so.3),-DTCC_ARM_EABI)
+NATIVE_TARGET+=$(if $(shell grep -l "^Features.* \(vfp\|iwmmxt\) " /proc/cpuinfo),-DTCC_ARM_VFP)
endif
+
+ifdef CONFIG_WIN32
+NATIVE_TARGET+=-DTCC_TARGET_PE
+BCHECK_O=
endif
ifneq ($(wildcard /lib/ld-uClibc.so.0),)
@@ -70,7 +69,6 @@ endif
ifeq ($(TOP),.)
PROGS=tcc$(EXESUF)
-
I386_CROSS = i386-tcc$(EXESUF)
WIN32_CROSS = i386-win32-tcc$(EXESUF)
WIN64_CROSS = x86_64-win32-tcc$(EXESUF)
@@ -171,26 +169,19 @@ tiny_libmaker$(EXESUF): win32/tools/tiny_libmaker.c
$(CC) -o $@ $< $(CFLAGS)
# TinyCC runtime libraries
-LIBTCC1_OBJS=libtcc1.o
+LIBTCC1_OBJS=libtcc1.o $(ALLOCA_O)
LIBTCC1_CC=$(CC)
VPATH+=lib
+
ifdef CONFIG_WIN32
# for windows, we must use TCC because we generate ELF objects
LIBTCC1_OBJS+=crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o
LIBTCC1_CC=./tcc.exe -Bwin32 -Iinclude $(NATIVE_TARGET)
VPATH+=win32/lib
endif
-ifeq ($(ARCH),i386)
-LIBTCC1_OBJS+=alloca86.o alloca86-bt.o
-else
-ifeq ($(ARCH),x86-64)
-LIBTCC1_OBJS+=alloca86_64.o
-endif
-endif
%.o: %.c
$(LIBTCC1_CC) -o $@ -c $< -O2 -Wall
-
%.o: %.S
$(LIBTCC1_CC) -o $@ -c $<