diff options
| author | jiang <30155751@qq.com> | 2014-04-29 16:05:16 +0800 |
|---|---|---|
| committer | jiang <30155751@qq.com> | 2014-04-29 16:05:16 +0800 |
| commit | 2a8905c93b4f67a21e3dbf297c3e93c598831528 (patch) | |
| tree | 6f7491150cfe01700c9863946906203adad0de13 /lib/Makefile | |
| parent | 02e2fe3c260415f4cb1cbcaca9b2403a17f7ff2e (diff) | |
| parent | e20c1eb99e1003c1e59522c136dbb15c52d7cc7c (diff) | |
| download | tinycc-2a8905c93b4f67a21e3dbf297c3e93c598831528.tar.gz tinycc-2a8905c93b4f67a21e3dbf297c3e93c598831528.tar.bz2 | |
So that the generated code, and more short
Diffstat (limited to 'lib/Makefile')
| -rw-r--r-- | lib/Makefile | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/lib/Makefile b/lib/Makefile index 300fa46..e9e12f1 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -6,7 +6,7 @@ TOP = .. include $(TOP)/Makefile VPATH = $(top_srcdir)/lib $(top_srcdir)/win32/lib -ifndef TARGET +ifndef TARGET # native library ifdef CONFIG_WIN64 TARGET = x86_64-win32 else @@ -24,6 +24,11 @@ ifndef TARGET ifneq ($(TARGETOS),Darwin) XCC = $(CC) endif + else + ifeq ($(ARCH),arm) + TARGET = arm + XCC = $(CC) + endif endif endif endif @@ -41,20 +46,27 @@ cross : TCC = $(TOP)/$(TARGET)-tcc$(EXESUF) I386_O = libtcc1.o alloca86.o alloca86-bt.o $(BCHECK_O) X86_64_O = libtcc1.o alloca86_64.o +ARM_O = libtcc1.o armeabi.o alloca-arm.o WIN32_O = $(I386_O) crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o WIN64_O = $(X86_64_O) crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o +# build TCC runtime library to contain PIC code, so it can be linked +# into shared libraries +PICFLAGS = -fPIC + ifeq "$(TARGET)" "i386-win32" 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) + PICFLAGS = else ifeq "$(TARGET)" "x86_64-win32" 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) + PICFLAGS = else ifeq "$(TARGET)" "i386" OBJ = $(addprefix $(DIR)/,$(I386_O)) @@ -66,13 +78,19 @@ ifeq "$(TARGET)" "x86_64" TGT = -DTCC_TARGET_X86_64 XCC ?= $(TCC) -B$(TOP) else +ifeq "$(TARGET)" "arm" + OBJ = $(addprefix $(DIR)/,$(ARM_O)) + TGT = -DTCC_TARGET_ARM + XCC ?= $(TCC) -B$(TOP) +else $(error libtcc1.a not supported on target '$(TARGET)') endif endif endif endif +endif -XFLAGS = $(CPPFLAGS) $(CFLAGS) $(TGT) +XFLAGS = $(CPPFLAGS) $(CFLAGS) $(PICFLAGS) $(TGT) ifeq ($(TARGETOS),Darwin) XAR = $(DIR)/tiny_libmaker$(EXESUF) @@ -100,6 +118,3 @@ $(DIR)/exists : clean : rm -rfv i386-win32 x86_64-win32 i386 x86_64 - -Makefile: $(top_srcdir)/lib/Makefile - cp $< $@ |
