2 # Tiny C Compiler Makefile for libtcc1.a
6 include $(TOP
)/Makefile
7 VPATH
= $(TOPSRC
)/lib
$(TOPSRC
)/win32
/lib
8 T
= $(or
$(CROSS_TARGET
),$(NATIVE_TARGET
),unknown
)
9 X
= $(if
$(CROSS_TARGET
),$(CROSS_TARGET
)-)
11 TCC
= $(TOP
)/$(X
)tcc
$(EXESUF
)
14 XFLAGS-unx
= -B
$(TOPSRC
)
15 XFLAGS-win
= -B
$(TOPSRC
)/win32
-I
$(TOPSRC
)/include
16 XFLAGS
= $(XFLAGS
$(XCFG
))
17 XCFG
= $(or
$(findstring -win
,$T),-unx
)
24 XFLAGS
= $(CFLAGS
) -fPIC
28 ifeq ($(TARGETOS
),Darwin
)
29 XFLAGS
+= -D_ANSI_SOURCE
33 ifeq ($(CONFIG_musl
),yes
)
37 I386_O
= libtcc1.o alloca86.o alloca86-bt.o
$(BCHECK_O
)
38 X86_64_O
= libtcc1.o alloca86_64.o alloca86_64-bt.o
$(BCHECK_O
)
39 ARM_O
= libtcc1.o armeabi.o alloca-arm.o
41 WIN_O
= crt1.o crt1w.o wincrt1.o wincrt1w.o dllcrt1.o dllmain.o
44 TGT-i386
= -DTCC_TARGET_I386
46 OBJ-x86_64
= $(X86_64_O
)
47 TGT-x86_64
= -DTCC_TARGET_X86_64
49 OBJ-x86_64-osx
= $(X86_64_O
)
50 TGT-x86_64-osx
= -DTCC_TARGET_X86_64
-DTCC_TARGET_MACHO
53 TGT-arm
= -DTCC_TARGET_ARM
55 OBJ-arm64
= $(ARM64_O
)
56 TGT-arm64
= -DTCC_TARGET_ARM64
58 OBJ-i386-win32
= $(I386_O
) chkstk.o
$(WIN_O
)
59 TGT-i386-win32
= -DTCC_TARGET_I386
-DTCC_TARGET_PE
61 OBJ-x86_64-win32
= $(X86_64_O
) chkstk.o
$(WIN_O
)
62 TGT-x86_64-win32
= -DTCC_TARGET_X86_64
-DTCC_TARGET_PE
64 OBJ-arm-wince
= $(ARM_O
) $(WIN_O
)
65 TGT-arm-wince
= -DTCC_TARGET_ARM
-DTCC_TARGET_PE
69 $(BIN
) : $(patsubst %.o
,$(X
)%.o
,$(OBJ-
$T))
73 $(XCC
) -c
$< -o
$@
$(TGT-
$T) $(XFLAGS
)
76 $(XCC
) -c
$< -o
$@
$(TGT-
$T) $(XFLAGS
)
79 $(X
)wincrt1w.o
: wincrt1.c