Changeset 331 for EcnlProtoTool/trunk/tcc-0.9.27/lib/Makefile
- Timestamp:
- Jan 21, 2018, 12:10:09 AM (6 years ago)
- Location:
- EcnlProtoTool/trunk/tcc-0.9.27
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/tcc-0.9.27/lib/Makefile
r279 r331 5 5 TOP = .. 6 6 include $(TOP)/Makefile 7 VPATH = $(top_srcdir)/lib $(top_srcdir)/win32/lib 7 VPATH = $(TOPSRC)/lib $(TOPSRC)/win32/lib 8 T = $(or $(CROSS_TARGET),$(NATIVE_TARGET),unknown) 9 X = $(if $(CROSS_TARGET),$(CROSS_TARGET)-) 10 BIN = $(TOP)/$(X)libtcc1.a 8 11 9 ifndef TARGET 10 ifdef CONFIG_WIN64 11 TARGET = x86_64-win32 12 else 13 ifdef CONFIG_WIN32 14 TARGET = i386-win32 15 else 16 ifeq ($(ARCH),i386) 17 TARGET = i386 18 ifneq ($(TARGETOS),Darwin) 19 XCC = $(CC) 20 endif 21 else 22 ifeq ($(ARCH),x86-64) 23 TARGET = x86_64 24 ifneq ($(TARGETOS),Darwin) 25 XCC = $(CC) 26 endif 27 endif 28 endif 29 endif 30 endif 31 BCHECK_O = bcheck.o 12 XTCC ?= $(TOP)/$(X)tcc$(EXESUF) 13 XCC = $(XTCC) 14 XAR = $(XTCC) -ar 15 XFLAGS-unx = -B$(TOPSRC) 16 XFLAGS-win = -B$(TOPSRC)/win32 -I$(TOPSRC)/include 17 XFLAGS = $(XFLAGS$(XCFG)) 18 XCFG = $(or $(findstring -win,$T),-unx) 19 20 # in order to use gcc, tyoe: make <target>-libtcc1-usegcc=yes 21 arm-libtcc1-usegcc ?= no 22 23 ifeq "$($(T)-libtcc1-usegcc)" "yes" 24 XCC = $(CC) 25 XAR = $(AR) 26 XFLAGS = $(CFLAGS) -fPIC 32 27 endif 33 28 34 DIR = $(TARGET) 29 # only for native compiler 30 $(X)BCHECK_O = bcheck.o 35 31 36 native : ../libtcc1.a 37 cross : $(DIR)/libtcc1.a 38 39 native : TCC = $(TOP)/tcc$(EXESUF) 40 cross : TCC = $(TOP)/$(TARGET)-tcc$(EXESUF) 41 42 I386_O = libtcc1.o alloca86.o alloca86-bt.o $(BCHECK_O) 43 X86_64_O = libtcc1.o alloca86_64.o 44 WIN32_O = $(I386_O) crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o 45 WIN64_O = $(X86_64_O) crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o 46 47 ifeq "$(TARGET)" "i386-win32" 48 OBJ = $(addprefix $(DIR)/,$(WIN32_O)) 49 TGT = -DTCC_TARGET_I386 -DTCC_TARGET_PE 50 XCC = $(TCC) -B$(top_srcdir)/win32 -I$(top_srcdir)/include 51 XAR = $(DIR)/tiny_libmaker$(EXESUF) 52 else 53 ifeq "$(TARGET)" "x86_64-win32" 54 OBJ = $(addprefix $(DIR)/,$(WIN64_O)) 55 TGT = -DTCC_TARGET_X86_64 -DTCC_TARGET_PE 56 XCC = $(TCC) -B$(top_srcdir)/win32 -I$(top_srcdir)/include 57 XAR = $(DIR)/tiny_libmaker$(EXESUF) 58 else 59 ifeq "$(TARGET)" "i386" 60 OBJ = $(addprefix $(DIR)/,$(I386_O)) 61 TGT = -DTCC_TARGET_I386 62 XCC ?= $(TCC) -B$(TOP) 63 else 64 ifeq "$(TARGET)" "x86_64" 65 OBJ = $(addprefix $(DIR)/,$(X86_64_O)) 66 TGT = -DTCC_TARGET_X86_64 67 XCC ?= $(TCC) -B$(TOP) 68 else 69 $(error libtcc1.a not supported on target '$(TARGET)') 70 endif 71 endif 72 endif 73 endif 74 75 XFLAGS = $(CPPFLAGS) $(CFLAGS) $(TGT) 76 77 ifeq ($(TARGETOS),Darwin) 78 XAR = $(DIR)/tiny_libmaker$(EXESUF) 79 XFLAGS += -D_ANSI_SOURCE 32 ifeq ($(CONFIG_musl)$(CONFIG_uClibc),yes) 80 33 BCHECK_O = 81 34 endif 82 35 83 ifdef XAR84 AR = $(XAR) 36 ifdef CONFIG_OSX 37 XFLAGS += -D_ANSI_SOURCE 85 38 endif 86 39 87 $(DIR)/libtcc1.a ../libtcc1.a : $(OBJ) $(XAR) 88 $(AR) rcs $@ $(OBJ) 89 $(DIR)/%.o : %.c 40 I386_O = libtcc1.o alloca86.o alloca86-bt.o 41 X86_64_O = libtcc1.o alloca86_64.o alloca86_64-bt.o 42 ARM_O = libtcc1.o armeabi.o alloca-arm.o armflush.o 43 ARM64_O = lib-arm64.o 44 WIN_O = crt1.o crt1w.o wincrt1.o wincrt1w.o dllcrt1.o dllmain.o 45 46 OBJ-i386 = $(I386_O) $(BCHECK_O) 47 OBJ-x86_64 = $(X86_64_O) va_list.o $(BCHECK_O) 48 OBJ-x86_64-osx = $(X86_64_O) va_list.o 49 OBJ-i386-win32 = $(I386_O) chkstk.o bcheck.o $(WIN_O) 50 OBJ-x86_64-win32 = $(X86_64_O) chkstk.o bcheck.o $(WIN_O) 51 OBJ-arm64 = $(ARM64_O) 52 OBJ-arm = $(ARM_O) 53 OBJ-arm-fpa = $(ARM_O) 54 OBJ-arm-fpa-ld = $(ARM_O) 55 OBJ-arm-vfp = $(ARM_O) 56 OBJ-arm-eabi = $(ARM_O) 57 OBJ-arm-eabihf = $(ARM_O) 58 OBJ-arm-wince = $(ARM_O) $(WIN_O) 59 60 $(BIN) : $(patsubst %.o,$(X)%.o,$(OBJ-$T)) 61 $(XAR) rcs $@ $^ 62 63 $(X)%.o : %.c 90 64 $(XCC) -c $< -o $@ $(XFLAGS) 91 $(DIR)/%.o : %.S 65 66 $(X)%.o : %.S 92 67 $(XCC) -c $< -o $@ $(XFLAGS) 93 $(DIR)/%$(EXESUF) : $(TOP)/win32/tools/%.c94 $(CC) -o $@ $< $(XFLAGS) $(LDFLAGS)95 68 96 $(OBJ) $(XAR) : $(DIR)/exists 97 $(DIR)/exists : 98 mkdir -p $(DIR) 99 @echo $@ > $@ 69 $(X)crt1w.o : crt1.c 70 $(X)wincrt1w.o : wincrt1.c 100 71 101 72 clean : 102 rm - rfv i386-win32 x86_64-win32 i386 x86_6473 rm -f *.a *.o $(BIN)
Note:
See TracChangeset
for help on using the changeset viewer.