aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorjiang <30155751@qq.com>2014-04-29 16:05:16 +0800
committerjiang <30155751@qq.com>2014-04-29 16:05:16 +0800
commit2a8905c93b4f67a21e3dbf297c3e93c598831528 (patch)
tree6f7491150cfe01700c9863946906203adad0de13 /Makefile
parent02e2fe3c260415f4cb1cbcaca9b2403a17f7ff2e (diff)
parente20c1eb99e1003c1e59522c136dbb15c52d7cc7c (diff)
downloadtinycc-2a8905c93b4f67a21e3dbf297c3e93c598831528.tar.gz
tinycc-2a8905c93b4f67a21e3dbf297c3e93c598831528.tar.bz2
So that the generated code, and more short
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile64
1 files changed, 38 insertions, 26 deletions
diff --git a/Makefile b/Makefile
index 4a27364..4f18567 100644
--- a/Makefile
+++ b/Makefile
@@ -66,7 +66,7 @@ NATIVE_DEFINES_$(CONFIG_i386) += -DTCC_TARGET_I386
NATIVE_DEFINES_$(CONFIG_x86-64) += -DTCC_TARGET_X86_64
NATIVE_DEFINES_$(CONFIG_WIN32) += -DTCC_TARGET_PE
NATIVE_DEFINES_$(CONFIG_uClibc) += -DTCC_UCLIBC
-NATIVE_DEFINES_$(CONFIG_arm) += -DTCC_TARGET_ARM -DWITHOUT_LIBTCC
+NATIVE_DEFINES_$(CONFIG_arm) += -DTCC_TARGET_ARM
NATIVE_DEFINES_$(CONFIG_arm_eabihf) += -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT
NATIVE_DEFINES_$(CONFIG_arm_eabi) += -DTCC_ARM_EABI
NATIVE_DEFINES_$(CONFIG_arm_vfp) += -DTCC_ARM_VFP
@@ -75,18 +75,30 @@ NATIVE_DEFINES += $(NATIVE_DEFINES_yes)
ifeq ($(TOP),.)
PROGS=tcc$(EXESUF)
-I386_CROSS = i386-tcc$(EXESUF)
-WIN32_CROSS = i386-win32-tcc$(EXESUF)
-WIN64_CROSS = x86_64-win32-tcc$(EXESUF)
-WINCE_CROSS = arm-win32-tcc$(EXESUF)
-X64_CROSS = x86_64-tcc$(EXESUF)
-ARM_FPA_CROSS = arm-fpa-tcc$(EXESUF)
-ARM_FPA_LD_CROSS = arm-fpa-ld-tcc$(EXESUF)
-ARM_VFP_CROSS = arm-vfp-tcc$(EXESUF)
-ARM_EABI_CROSS = arm-eabi-tcc$(EXESUF)
+I386_CROSS = i386-linux-gnu-tcc$(EXESUF)
+WIN32_CROSS = i386-w64-mingw32-tcc$(EXESUF)
+WIN64_CROSS = x86_64-w64-mingw32-tcc$(EXESUF)
+WINCE_CROSS = arm-wince-mingw32ce-tcc$(EXESUF)
+X64_CROSS = x86_64-linux-gnu-tcc$(EXESUF)
+ARM_FPA_CROSS = arm-linux-fpa-tcc$(EXESUF)
+ARM_FPA_LD_CROSS = arm-linux-fpa-ld-tcc$(EXESUF)
+ARM_VFP_CROSS = arm-linux-gnu-tcc$(EXESUF)
+ARM_EABI_CROSS = arm-linux-gnueabi-tcc$(EXESUF)
+ARM_EABIHF_CROSS = arm-linux-gnueabihf-tcc$(EXESUF)
ARM_CROSS = $(ARM_FPA_CROSS) $(ARM_FPA_LD_CROSS) $(ARM_VFP_CROSS) $(ARM_EABI_CROSS)
C67_CROSS = c67-tcc$(EXESUF)
+# Legacy symlinks for cross compilers
+$(I386_CROSS)_LINK = i386-tcc$(EXESUF)
+$(WIN32_CROSS)_LINK = i386-win32-tcc$(EXESUF)
+$(WIN64_CROSS)_LINK = x86_64-win32-tcc$(EXESUF)
+$(WINCE_CROSS)_LINK = arm-win32-tcc$(EXESUF)
+$(X64_CROSS)_LINK = x86_64-tcc$(EXESUF)
+$(ARM_FPA_CROSS)_LINK = arm-fpa-tcc$(EXESUF)
+$(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)
+
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
I386_FILES = $(CORE_FILES) i386-gen.c i386-asm.c i386-asm.h i386-tok.h
@@ -122,16 +134,15 @@ LIBTCC1=libtcc1.a
else ifeq ($(ARCH),arm)
NATIVE_FILES=$(ARM_FILES)
PROGS_CROSS=$(I386_CROSS) $(X64_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(C67_CROSS)
+LIBTCC1=libtcc1.a
+LIBTCC1_CROSS=lib/i386-win32/libtcc1.a lib/x86_64-win32/libtcc1.a lib/i386/libtcc1.a
endif
+PROGS_CROSS_LINK=$(foreach PROG_CROSS,$(PROGS_CROSS),$($(PROG_CROSS)_LINK))
ifeq ($(TARGETOS),Darwin)
PROGS+=tiny_libmaker$(EXESUF)
endif
-ifdef CONFIG_USE_LIBGCC
-LIBTCC1=
-endif
-
TCCLIBS = $(LIBTCC1) $(LIBTCC) $(LIBTCC_EXTRA)
TCCDOCS = tcc.1 tcc-doc.html tcc-doc.info
@@ -149,6 +160,7 @@ tcc$(EXESUF): tcc.o $(LIBTCC)
# Cross Tiny C Compilers
%-tcc$(EXESUF): tcc.c
$(CC) -o $@ $< -DONE_SOURCE $(DEFINES) $(CPPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS)
+ $(if $($@_LINK),ln -sf $@ $($@_LINK))
# profiling version
tcc_p$(EXESUF): $(NATIVE_FILES)
@@ -168,7 +180,7 @@ $(C67_CROSS): DEFINES = -DTCC_TARGET_C67
$(ARM_FPA_CROSS): DEFINES = -DTCC_TARGET_ARM
$(ARM_FPA_LD_CROSS)$(EXESUF): DEFINES = -DTCC_TARGET_ARM -DLDOUBLE_SIZE=12
$(ARM_VFP_CROSS): DEFINES = -DTCC_TARGET_ARM -DTCC_ARM_VFP
-$(ARM_EABI_CROSS): DEFINES = -DTCC_TARGET_ARM -DTCC_ARM_EABI
+$(ARM_EABI_CROSS): DEFINES = -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_VFP
$(I386_CROSS): $(I386_FILES)
$(X64_CROSS): $(X86_64_FILES)
@@ -229,18 +241,21 @@ else
INSTALLBIN=$(INSTALL)
endif
+install-strip: install
+ strip $(foreach PROG,$(PROGS),"$(bindir)"/$(PROG))
+
ifndef CONFIG_WIN32
install: $(PROGS) $(TCCLIBS) $(TCCDOCS)
mkdir -p "$(bindir)"
ifeq ($(CC),tcc)
- $(INSTALL) -m755 $(PROGS) "$(bindir)"
+ $(INSTALL) -m755 $(PROGS) $(PROGS_CROSS_LINK) "$(bindir)"
else
$(INSTALLBIN) -m755 $(PROGS) "$(bindir)"
endif
mkdir -p "$(mandir)/man1"
- -$(INSTALL) tcc.1 "$(mandir)/man1"
+ -$(INSTALL) -m644 tcc.1 "$(mandir)/man1"
mkdir -p "$(infodir)"
- -$(INSTALL) tcc-doc.info "$(infodir)"
+ -$(INSTALL) -m644 tcc-doc.info "$(infodir)"
mkdir -p "$(tccdir)"
mkdir -p "$(tccdir)/include"
ifneq ($(LIBTCC1),)
@@ -248,7 +263,7 @@ ifneq ($(LIBTCC1),)
endif
$(INSTALL) -m644 $(addprefix $(top_srcdir)/include/,$(TCC_INCLUDES)) $(top_srcdir)/tcclib.h "$(tccdir)/include"
mkdir -p "$(libdir)"
- $(INSTALL) -m755 $(LIBTCC) "$(libdir)"
+ $(INSTALL) -m644 $(LIBTCC) "$(libdir)"
ifdef DISABLE_STATIC
ln -sf "$(ln_libdir)/libtcc.so.1.0" "$(libdir)/libtcc.so.1"
ln -sf "$(ln_libdir)/libtcc.so.1.0" "$(libdir)/libtcc.so"
@@ -260,7 +275,7 @@ endif
ifdef CONFIG_CROSS
mkdir -p "$(tccdir)/win32/lib/32"
mkdir -p "$(tccdir)/win32/lib/64"
-ifeq ($(ARCH),x86-64)
+ifneq ($(ARCH),i386)
mkdir -p "$(tccdir)/i386"
$(INSTALL) -m644 lib/i386/libtcc1.a "$(tccdir)/i386"
cp -r "$(tccdir)/include" "$(tccdir)/i386"
@@ -269,7 +284,7 @@ endif
$(INSTALL) -m644 lib/i386-win32/libtcc1.a "$(tccdir)/win32/lib/32"
$(INSTALL) -m644 lib/x86_64-win32/libtcc1.a "$(tccdir)/win32/lib/64"
cp -r $(top_srcdir)/win32/include/. "$(tccdir)/win32/include"
- cp -r $(top_srcdir)/include/. "$(tccdir)/win32/include"
+ cp -r "$(tccdir)/include" "$(tccdir)/win32"
endif
uninstall:
@@ -282,7 +297,7 @@ uninstall:
rm -fv "$(libdir)/libtcc.so*"
rm -rf "$(tccdir)/win32"
-rmdir $(tccdir)/include
-ifeq ($(ARCH),x86-64)
+ifneq ($(ARCH),i386)
rm -rf "$(tccdir)/i386"
endif
else
@@ -328,7 +343,7 @@ tcc-doc.info: tcc-doc.texi
export LIBTCC1
%est:
- $(MAKE) -C tests $@
+ $(MAKE) -C tests $@ 'PROGS_CROSS=$(PROGS_CROSS)'
clean:
rm -vf $(PROGS) tcc_p$(EXESUF) tcc.pod *~ *.o *.a *.so* *.out *.exe libtcc_test$(EXESUF)
@@ -358,9 +373,6 @@ tar: tcc-doc.html
rm -rf $(TCC-VERSION)
git reset
-Makefile: $(top_srcdir)/Makefile
- cp $< $@
-
.PHONY: all clean tar distclean install uninstall FORCE
endif # ifeq ($(TOP),.)