From 0a624782dfc8fee6f0600066b135d3b20e4274f4 Mon Sep 17 00:00:00 2001 From: grischka Date: Sat, 1 Oct 2016 21:06:33 +0200 Subject: build: revert Makefiles to 0.9.26 state (mostly) Except - that libtcc1.a is now installed in subdirs i386/ etc. - the support for arm and arm64 - some of the "Darwin" fixes - tests are mosly unchanged Also - removed the "legacy links for cross compilers" (was total mess) - removed "out-of-tree" build support (was broken anyway) --- Makefile | 342 ++++++++++++++++++++++++--------------------------------------- 1 file changed, 130 insertions(+), 212 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 2d6590c..75d73aa 100644 --- a/Makefile +++ b/Makefile @@ -4,49 +4,52 @@ TOP ?= . include $(TOP)/config.mak -VPATH = $(top_srcdir) +VPATH = $(TOP) -CPPFLAGS += -I$(TOP) # for config.h - -ifneq (-$(findstring gcc,$(CC))-,-gcc-) -ifeq (-$(findstring clang,$(CC))-,-clang-) -# make clang accept gnuisms in libtcc1.c -CFLAGS+=-fheinous-gnu-extensions -endif +ifeq (-$(findstring gcc,$(CC))-,-gcc-) + ifeq (-$(GCC_MAJOR)-$(findstring $(GCC_MINOR),56789)-,-4--) + CFLAGS += -D_FORTIFY_SOURCE=0 + endif +else + ifeq (-$(findstring clang,$(CC))-,-clang-) + # make clang accept gnuisms in libtcc1.c + CFLAGS+=-fheinous-gnu-extensions + endif endif -CPPFLAGS_P=$(CPPFLAGS) -DCONFIG_TCC_STATIC -CFLAGS_P=$(CFLAGS) -pg -static +CFLAGS_P = $(CFLAGS) -pg -static -DCONFIG_TCC_STATIC LIBS_P= -LDFLAGS_P=$(LDFLAGS) +LDFLAGS_P = $(LDFLAGS) -ifdef CONFIG_WIN64 -CONFIG_WIN32=yes -endif +LIBTCC = libtcc.a +LIBTCC1 = libtcc1.a +LINK_LIBTCC = +LIBS = -ifndef CONFIG_WIN32 -LIBS=-lm -ifndef CONFIG_NOLDL -LIBS+=-ldl -endif -endif - -# make libtcc as static or dynamic library? -ifdef DISABLE_STATIC -ifndef CONFIG_WIN32 -LIBTCC=libtcc.so.1.0 +ifdef CONFIG_WIN32 + ifeq ($(ARCH),x86-64) + CONFIG_WIN64=yes + endif + STRIP_BINARIES = yes + LIBTCC = libtcc.dll else -LIBTCC=libtcc.dll -LIBTCC_DLL=yes -LIBTCC_EXTRA=libtcc.def libtcc.a -endif -LINK_LIBTCC=-Wl,-rpath,"$(libdir)" -ifdef DISABLE_RPATH -LINK_LIBTCC= + LIBS=-lm + ifndef CONFIG_NOLDL + LIBS+=-ldl + endif + # make libtcc as static or dynamic library? + ifdef DISABLE_STATIC + LIBTCC=libtcc.so + ifndef DISABLE_RPATH + LINK_LIBTCC += -Wl,-rpath,"$(libdir)" + export LD_LIBRARY_PATH := $(CURDIR)/$(TOP) + endif + endif endif -else -LIBTCC=libtcc.a -LINK_LIBTCC= + +ifeq ($(TARGETOS),Darwin) + CFLAGS += -Wl,-flat_namespace,-undefined,warning + export MACOSX_DEPLOYMENT_TARGET:=10.2 endif CONFIG_$(ARCH) = yes @@ -64,53 +67,20 @@ NATIVE_DEFINES += $(NATIVE_DEFINES_yes) ifeq ($(TOP),.) PROGS=tcc$(EXESUF) -I386_CROSS = i386-linux-gnu-tcc$(EXESUF) -WIN32_CROSS = i386-win-mingw32-tcc$(EXESUF) -WIN64_CROSS = x86_64-win-mingw32-tcc$(EXESUF) -WINCE_CROSS = arm-win-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) +I386_CROSS = i386-tcc$(EXESUF) +WIN32_CROSS = i386-win32-tcc$(EXESUF) +WIN64_CROSS = x86_64-win32-tcc$(EXESUF) +WINCE_CROSS = arm-wince-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) +ARM_EABIHF_CROSS = arm-eabihf-tcc$(EXESUF) ARM_CROSS = $(ARM_FPA_CROSS) $(ARM_FPA_LD_CROSS) $(ARM_VFP_CROSS) $(ARM_EABI_CROSS) ARM64_CROSS = arm64-tcc$(EXESUF) C67_CROSS = c67-tcc$(EXESUF) -# Legacy symlinks for cross compilers -$(I386_CROSS)_LINK = i386-tcc$(EXESUF) -$(WIN32_CROSS)_LINK = i386-win-tcc$(EXESUF) -$(WIN64_CROSS)_LINK = x86_64-win-tcc$(EXESUF) -$(WINCE_CROSS)_LINK = arm-win-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) - -ifeq ($(TARGETOS),Windows) -ifeq ($(ARCH),i386) -PROGS:=$($(WIN32_CROSS)_LINK) -$($(WIN32_CROSS)_LINK)_TCC = yes -endif -ifeq ($(ARCH),x86-64) -PROGS:=$($(WIN64_CROSS)_LINK) -$($(WIN64_CROSS)_LINK)_TCC = yes -endif -endif - -ifeq ($(TARGETOS),Linux) -ifeq ($(ARCH),i386) -PROGS:=$($(I386_CROSS)_LINK) -$($(I386_CROSS)_LINK)_TCC = yes -endif -ifeq ($(ARCH),x86-64) -PROGS:=$($(X64_CROSS)_LINK) -$($(X64_CROSS)_LINK)_TCC = yes -endif -endif - 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 @@ -126,102 +96,84 @@ ifdef CONFIG_WIN64 PROGS+=tiny_impdef$(EXESUF) NATIVE_FILES=$(WIN64_FILES) PROGS_CROSS=$(WIN32_CROSS) $(I386_CROSS) $(X64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) -LIBTCC1_CROSS=lib/i386-win/libtcc1.a -LIBTCC1=libtcc1.a +LIBTCC1_CROSS=lib/i386-win32/libtcc1.a + else ifdef CONFIG_WIN32 PROGS+=tiny_impdef$(EXESUF) NATIVE_FILES=$(WIN32_FILES) PROGS_CROSS=$(WIN64_CROSS) $(I386_CROSS) $(X64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) -LIBTCC1_CROSS=lib/x86_64-win/libtcc1.a -LIBTCC1=libtcc1.a +LIBTCC1_CROSS=lib/x86_64-win32/libtcc1.a + else ifeq ($(ARCH),i386) NATIVE_FILES=$(I386_FILES) -PROGS_CROSS=$($(X64_CROSS)_LINK) $($(WIN32_CROSS)_LINK) $($(WIN64_CROSS)_LINK) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) -LIBTCC1_CROSS=lib/i386-win/libtcc1.a lib/x86_64-win/libtcc1.a lib/i386/libtcc1.a lib/x86_64/libtcc1.a \ - lib/arm64/libtcc1.a -LIBTCC1=libtcc1.a +PROGS_CROSS=$(X64_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) +LIBTCC1_CROSS=lib/i386-win32/libtcc1.a lib/x86_64-win32/libtcc1.a + else ifeq ($(ARCH),x86-64) -ifeq ($(TARGETOS),Darwin) -NATIVE_FILES=$(X86_64_FILES) -PROGS_CROSS=$($(I386_CROSS)_LINK) $($(WIN32_CROSS)_LINK) $($(WIN64_CROSS)_LINK) $(ARM_CROSS) $(C67_CROSS) $(WINCE_CROSS) -LIBTCC1_CROSS=lib/i386-win/libtcc1.a lib/x86_64-win/libtcc1.a lib/i386/libtcc1.a lib/x86_64/libtcc1.a -LIBTCC1=libtcc1.a -else NATIVE_FILES=$(X86_64_FILES) -PROGS_CROSS=$($(I386_CROSS)_LINK) $($(WIN32_CROSS)_LINK) $($(WIN64_CROSS)_LINK) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) -LIBTCC1_CROSS=lib/i386-win/libtcc1.a lib/x86_64-win/libtcc1.a lib/i386/libtcc1.a lib/x86_64/libtcc1.a \ - lib/arm64/libtcc1.a -LIBTCC1=libtcc1.a -endif +PROGS_CROSS=$(I386_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) +LIBTCC1_CROSS=lib/i386-win32/libtcc1.a lib/x86_64-win32/libtcc1.a + else ifeq ($(ARCH),arm) NATIVE_FILES=$(ARM_FILES) PROGS_CROSS=$(I386_CROSS) $(X64_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) -LIBTCC1=libtcc1.a -LIBTCC1_CROSS=lib/i386-win/libtcc1.a lib/x86_64-win/libtcc1.a lib/i386/libtcc1.a + else ifeq ($(ARCH),arm64) NATIVE_FILES=$(ARM64_FILES) PROGS_CROSS=$(I386_CROSS) $(X64_CROSS) $(WIN32_CROSS) $(WIN64_CROSS) $(ARM_CROSS) $(C67_CROSS) $(WINCE_CROSS) -LIBTCC1=libtcc1.a -LIBTCC1_CROSS=lib/i386-win/libtcc1.a lib/x86_64-win/libtcc1.a lib/i386/libtcc1.a endif -PROGS_CROSS_LINK=$(foreach PROG_CROSS,$(PROGS_CROSS),$($(PROG_CROSS)_LINK)) -PROGS+=tiny_libmaker$(EXESUF) +ifeq ($(TARGETOS),Darwin) + PROGS += tiny_libmaker$(EXESUF) +endif -TCCLIBS = $(LIBTCC1) $(LIBTCC) $(LIBTCC_EXTRA) +TCCLIBS = $(LIBTCC1) $(LIBTCC) TCCDOCS = tcc.1 tcc-doc.html tcc-doc.info ifdef CONFIG_CROSS -PROGS+=$(PROGS_CROSS) -TCCLIBS+=$(LIBTCC1_CROSS) + PROGS += $(PROGS_CROSS) + TCCLIBS += $(LIBTCC1_CROSS) endif all: $(PROGS) $(TCCLIBS) $(TCCDOCS) -ifdef ONE_SOURCE -NATIVE_TCC_REQUISITES=tcc.o -else -NATIVE_TCC_REQUISITES=tcc.o $(LIBTCC) -endif - # Host Tiny C Compiler -tcc$(EXESUF): $(NATIVE_TCC_REQUISITES) - $(CC) -o $@ $^ $(LIBS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(LINK_LIBTCC) +tcc$(EXESUF): tcc.c $(LIBTCC) + $(CC) -o $@ $^ $(LIBS) $(CFLAGS) $(LDFLAGS) $(LINK_LIBTCC) # Cross Tiny C Compilers %-tcc$(EXESUF): tcc.c - $(CC) -o $@ $< -DONE_SOURCE $(if $($@_TCC),$(NATIVE_DEFINES),$(DEFINES)) $(CPPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) - $(if $($@_LINK),ln -sf $@ $($@_LINK)) - $(if $($@_TCC),ln -sf $@ tcc$(EXESUF)) + $(CC) -o $@ $< -DONE_SOURCE $(DEFINES) $(CFLAGS) $(LIBS) $(LDFLAGS) # profiling version tcc_p$(EXESUF): $(NATIVE_FILES) $(CC) -o $@ $< -DONE_SOURCE $(NATIVE_DEFINES) $(CPPFLAGS_P) $(CFLAGS_P) $(LIBS_P) $(LDFLAGS_P) -$(I386_CROSS) $($(I386_CROSS)_LINK): DEFINES = -DTCC_TARGET_I386 -$(X64_CROSS) $($(X64_CROSS)_LINK): DEFINES = -DTCC_TARGET_X86_64 -$(WIN32_CROSS) $($(WIN32_CROSS)_LINK): DEFINES = -DTCC_TARGET_I386 -DTCC_TARGET_PE \ +$(I386_CROSS): DEFINES = -DTCC_TARGET_I386 \ + -DCONFIG_TCCDIR="\"$(tccdir)/i386\"" +$(X64_CROSS) : DEFINES = -DTCC_TARGET_X86_64 + -DCONFIG_TCCDIR="\"$(tccdir)/x86_64\"" +$(WIN32_CROSS) : DEFINES = -DTCC_TARGET_I386 -DTCC_TARGET_PE \ -DCONFIG_TCCDIR="\"$(tccdir)/win32\"" \ -DCONFIG_TCC_LIBPATHS="\"{B}/lib/32;{B}/lib\"" -$(WIN64_CROSS) $($(WIN64_CROSS)_LINK): DEFINES = -DTCC_TARGET_X86_64 -DTCC_TARGET_PE \ +$(WIN64_CROSS) : DEFINES = -DTCC_TARGET_X86_64 -DTCC_TARGET_PE \ -DCONFIG_TCCDIR="\"$(tccdir)/win32\"" \ -DCONFIG_TCC_LIBPATHS="\"{B}/lib/64;{B}/lib\"" $(WINCE_CROSS): DEFINES = -DTCC_TARGET_PE -$(C67_CROSS): DEFINES = -DTCC_TARGET_C67 +$(C67_CROSS): DEFINES = -DTCC_TARGET_C67 -w # disable warnigs $(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 -DTCC_ARM_VFP $(ARM64_CROSS): DEFINES = -DTCC_TARGET_ARM64 -$(I386_CROSS) $($(I386_CROSS)_LINK): $(I386_FILES) -$(X64_CROSS) $($(X64_CROSS)_LINK): $(X86_64_FILES) -$(WIN32_CROSS) $($(WIN32_CROSS)_LINK): $(WIN32_FILES) -$(WIN64_CROSS) $($(WIN64_CROSS)_LINK): $(WIN64_FILES) -$(WINCE_CROSS) $($(WINCE_CROSS)_LINK): $(WINCE_FILES) -$(C67_CROSS) $($(C67_CROSS)_LINK): $(C67_FILES) +$(I386_CROSS) : $(I386_FILES) +$(X64_CROSS) : $(X86_64_FILES) +$(WIN32_CROSS) : $(WIN32_FILES) +$(WIN64_CROSS) : $(WIN64_FILES) +$(WINCE_CROSS) : $(WINCE_FILES) +$(C67_CROSS) : $(C67_FILES) $(ARM_FPA_CROSS) $(ARM_FPA_LD_CROSS) $(ARM_VFP_CROSS) $(ARM_EABI_CROSS): $(ARM_FILES) -$($(ARM_FPA_CROSS)_LINK) $($(ARM_FPA_LD_CROSS)_LINK) $($(ARM_VFP_CROSS)_LINK) $($(ARM_EABI_CROSS)_LINK): $(ARM_FILES) $(ARM64_CROSS): $(ARM64_FILES) # libtcc generation and test @@ -236,34 +188,33 @@ tcc.o : NATIVE_DEFINES += -DONE_SOURCE endif $(LIBTCC_OBJ) tcc.o : %.o : %.c $(LIBTCC_INC) - $(CC) -o $@ -c $< $(NATIVE_DEFINES) $(CPPFLAGS) $(CFLAGS) + $(CC) -o $@ -c $< $(NATIVE_DEFINES) $(CFLAGS) -ifndef LIBTCC_DLL libtcc.a: $(LIBTCC_OBJ) $(AR) rcs $@ $^ -endif -libtcc.so.1.0: $(LIBTCC_OBJ) +libtcc.so: $(LIBTCC_OBJ) $(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDFLAGS) -libtcc.so.1.0: CFLAGS+=-fPIC +libtcc.so: CFLAGS+=-fPIC -ifdef LIBTCC_DLL -libtcc.dll libtcc.def libtcc.a: $(LIBTCC_OBJ) - $(CC) -shared $^ -o $@ $(LDFLAGS) -Wl,--output-def,libtcc.def,--out-implib,libtcc.a -endif +# windows : libtcc.dll +libtcc.dll : $(LIBTCC_OBJ) tiny_impdef$(EXESUF) + $(CC) -shared $(LIBTCC_OBJ) -o $@ $(LDFLAGS) + ./tiny_impdef $@ + +libtcc.dll : NATIVE_DEFINES += -DLIBTCC_AS_DLL -# windows utilities -tiny_impdef$(EXESUF): win32/tools/tiny_impdef.c - $(CC) -o $@ $< $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -tiny_libmaker$(EXESUF): win32/tools/tiny_libmaker.c - $(CC) -o $@ $< $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) +# windows : utilities +tiny_%$(EXESUF): $(SRCTOP)/win32/tools/tiny_%.c + $(CC) -o $@ $< $(CFLAGS) $(LDFLAGS) $(NATIVE_DEFINES) +ifneq ($(LIBTCC1),) # TinyCC runtime libraries -libtcc1.a : FORCE $(PROGS) +$(LIBTCC1) : FORCE $(PROGS) $(MAKE) -C lib native - if test ! -d $(ARCH); then mkdir $(ARCH); fi - if test ! -L $(ARCH)/$@; then ln -sf ../$@ $(ARCH)/$@; fi +endif + lib/%/libtcc1.a : FORCE $(PROGS_CROSS) $(MAKE) -C lib cross TARGET=$* @@ -272,27 +223,20 @@ FORCE: # install TCC_INCLUDES = stdarg.h stddef.h stdbool.h float.h varargs.h INSTALL=install + ifdef STRIP_BINARIES -INSTALLBIN=$(INSTALL) -s + INSTALLBIN=$(INSTALL) -s else -INSTALLBIN=$(INSTALL) -endif - -ifdef CONFIG_WIN32 -CONFIG_WIN=yes -endif -ifdef CONFIG_WIN64 -CONFIG_WIN=yes + INSTALLBIN=$(INSTALL) endif install-strip: install strip $(foreach PROG,$(PROGS),"$(bindir)"/$(PROG)) -ifndef CONFIG_WIN +ifndef CONFIG_WIN32 install: $(PROGS) $(TCCLIBS) $(TCCDOCS) mkdir -p "$(bindir)" $(INSTALLBIN) -m755 $(PROGS) "$(bindir)" - cp -P tcc$(EXESUF) "$(bindir)" mkdir -p "$(mandir)/man1" -$(INSTALL) -m644 tcc.1 "$(mandir)/man1" mkdir -p "$(infodir)" @@ -300,46 +244,32 @@ install: $(PROGS) $(TCCLIBS) $(TCCDOCS) mkdir -p "$(tccdir)" mkdir -p "$(tccdir)/include" ifneq ($(LIBTCC1),) - mkdir -p "$(tccdir)/$(ARCH)" - $(INSTALL) -m644 $(LIBTCC1) "$(tccdir)/$(ARCH)" + $(INSTALL) -m644 $(LIBTCC1) "$(tccdir)" endif - $(INSTALL) -m644 $(addprefix $(top_srcdir)/include/,$(TCC_INCLUDES)) $(top_srcdir)/tcclib.h "$(tccdir)/include" + $(INSTALL) -m644 $(addprefix include/,$(TCC_INCLUDES)) tcclib.h "$(tccdir)/include" mkdir -p "$(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" -endif mkdir -p "$(includedir)" - $(INSTALL) -m644 $(top_srcdir)/libtcc.h "$(includedir)" + $(INSTALL) -m644 libtcc.h "$(includedir)" mkdir -p "$(docdir)" -$(INSTALL) -m644 tcc-doc.html "$(docdir)" ifdef CONFIG_CROSS mkdir -p "$(tccdir)/win32/lib/32" mkdir -p "$(tccdir)/win32/lib/64" - mkdir -p "$(tccdir)/i386" - mkdir -p "$(tccdir)/x86-64" -ifneq ($(HOST_OS),Darwin) - mkdir -p "$(tccdir)/arm64" - $(INSTALL) -m644 lib/arm64/libtcc1.a "$(tccdir)/arm64" -endif - $(INSTALL) -m644 lib/i386/libtcc1.a "$(tccdir)/i386" - $(INSTALL) -m644 lib/x86_64/libtcc1.a "$(tccdir)/x86-64" - $(INSTALL) -m644 $(top_srcdir)/win32/lib/*.def "$(tccdir)/win32/lib" - $(INSTALL) -m644 lib/i386-win/libtcc1.a "$(tccdir)/win32/lib/32" - $(INSTALL) -m644 lib/x86_64-win/libtcc1.a "$(tccdir)/win32/lib/64" - cp -r $(top_srcdir)/win32/include/. "$(tccdir)/win32/include" + $(INSTALL) -m644 win32/lib/*.def "$(tccdir)/win32/lib" + -$(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 win32/include/. "$(tccdir)/win32/include" cp -r "$(tccdir)/include" "$(tccdir)/win32" endif uninstall: rm -fv $(foreach P,$(PROGS),"$(bindir)/$P") - rm -fv "$(bindir)/tcc$(EXESUF)" rm -fv $(foreach P,$(LIBTCC1),"$(tccdir)/$P") rm -fv $(foreach P,$(TCC_INCLUDES),"$(tccdir)/include/$P") rm -fv "$(mandir)/man1/tcc.1" "$(infodir)/tcc-doc.info" rm -fv "$(libdir)/$(LIBTCC)" "$(includedir)/libtcc.h" - rm -fv "$(libdir)/libtcc.so*" + rm -fv $(libdir)/libtcc.so* rm -rv "$(tccdir)" rm -rv "$(docdir)" else @@ -351,24 +281,23 @@ install: $(PROGS) $(TCCLIBS) $(TCCDOCS) mkdir -p "$(tccdir)/examples" mkdir -p "$(tccdir)/doc" mkdir -p "$(tccdir)/libtcc" - $(INSTALLBIN) -m755 $(PROGS) "$(tccdir)" - $(INSTALLBIN) -m755 tcc.exe "$(tccdir)" - $(INSTALL) -m644 $(LIBTCC1) $(top_srcdir)/win32/lib/*.def "$(tccdir)/lib" - cp -r $(top_srcdir)/win32/include/. "$(tccdir)/include" - cp -r $(top_srcdir)/win32/examples/. "$(tccdir)/examples" - $(INSTALL) -m644 $(addprefix $(top_srcdir)/include/,$(TCC_INCLUDES)) $(top_srcdir)/tcclib.h "$(tccdir)/include" - $(INSTALL) -m644 tcc-doc.html $(top_srcdir)/win32/tcc-win32.txt "$(tccdir)/doc" - $(INSTALL) -m644 $(top_srcdir)/libtcc.h $(LIBTCC_EXTRA) "$(tccdir)/libtcc" - $(INSTALL) -m644 $(LIBTCC) "$(tccdir)" + $(INSTALLBIN) -m755 $(PROGS) $(LIBTCC) "$(tccdir)" + $(INSTALL) -m644 libtcc1.a win32/lib/*.def "$(tccdir)/lib" + cp -r win32/include/. "$(tccdir)/include" + cp -r win32/examples/. "$(tccdir)/examples" + cp tests/libtcc_test.c "$(tccdir)/examples" + $(INSTALL) -m644 $(addprefix include/,$(TCC_INCLUDES)) tcclib.h "$(tccdir)/include" + $(INSTALL) -m644 tcc-doc.html win32/tcc-win32.txt "$(tccdir)/doc" + $(INSTALL) -m644 libtcc.h libtcc.def "$(tccdir)/libtcc" ifdef CONFIG_CROSS mkdir -p "$(tccdir)/lib/32" mkdir -p "$(tccdir)/lib/64" - -$(INSTALL) -m644 lib/i386-win/libtcc1.a "$(tccdir)/lib/32" - -$(INSTALL) -m644 lib/x86_64-win/libtcc1.a "$(tccdir)/lib/64" + -$(INSTALL) -m644 lib/i386-win32/libtcc1.a "$(tccdir)/lib/32" + -$(INSTALL) -m644 lib/x86_64-win32/libtcc1.a "$(tccdir)/lib/64" endif uninstall: - rm -rfv "$(tccdir)/*" + rm -rfv "$(tccdir)/"* endif # documentation and man page @@ -376,30 +305,21 @@ tcc-doc.html: tcc-doc.texi -makeinfo --no-split --html --number-sections -o $@ $< tcc.1: tcc-doc.texi - -$(top_srcdir)/texi2pod.pl $< tcc.pod - -pod2man --section=1 --center="Tiny C Compiler" --release=`cat $(top_srcdir)/VERSION` tcc.pod > $@ + -texi2pod.pl $< tcc.pod + -pod2man --section=1 --center="Tiny C Compiler" --release="$(VERSION)" tcc.pod > $@ tcc-doc.info: tcc-doc.texi -makeinfo $< # in tests subdir -export LIBTCC1 - -%est: - $(MAKE) -C tests $@ 'PROGS_CROSS=$(PROGS_CROSS)' +test: + $(MAKE) -C tests clean: rm -vf $(PROGS) tcc_p$(EXESUF) tcc.pod *~ *.o *.a *.so* *.out *.log \ - *.exe a.out tags TAGS libtcc_test$(EXESUF) tcc$(EXESUF) - -rm -r $(ARCH) arm64 -ifeq ($(HOST_OS),Linux) - -rm -r ./C: -endif - -rm *-tcc$(EXESUF) + lib*.def *.exe *.dll a.out tags TAGS libtcc_test$(EXESUF) tcc$(EXESUF) $(MAKE) -C tests $@ -ifneq ($(LIBTCC1),) $(MAKE) -C lib $@ -endif distclean: clean rm -vf config.h config.mak config.texi tcc.1 tcc-doc.info tcc-doc.html @@ -408,15 +328,13 @@ config.mak: @echo "Please run ./configure." @exit 1 -tags: - ctags $(top_srcdir)/*.[ch] $(top_srcdir)/include/*.h $(top_srcdir)/lib/*.[chS] - -TAGS: - etags $(top_srcdir)/*.[ch] $(top_srcdir)/include/*.h $(top_srcdir)/lib/*.[chS] +TAGFILES = *.[ch] include/*.h lib/*.[chS] +tags : ; ctags $(TAGFILES) +TAGS : ; etags $(TAGFILES) # create release tarball from *current* git branch (including tcc-doc.html # and converting two files to CRLF) -TCC-VERSION := tcc-$(shell cat $(top_srcdir)/VERSION) +TCC-VERSION = $(VERSION) tar: tcc-doc.html mkdir $(TCC-VERSION) ( cd $(TCC-VERSION) && git --git-dir ../.git checkout -f ) @@ -428,6 +346,6 @@ tar: tcc-doc.html rm -rf $(TCC-VERSION) git reset -.PHONY: all clean tar tags TAGS distclean install uninstall FORCE +.PHONY: all clean test tar tags TAGS distclean install uninstall FORCE endif # ifeq ($(TOP),.) -- cgit v1.3.1