2 # Tiny C Compiler Makefile for libtcc1.a
6 include $(TOP
)/Makefile
7 VPATH
= $(TOPSRC
)/lib
$(TOPSRC
)/win32
/lib
10 TCC
= $(TOP
)/tcc
$(EXESUF
)
14 TCC
= $(TOP
)/$(TARGET
)-tcc
$(EXESUF
)
15 OUT
= libtcc1-
$(TARGET
).a
18 XCC
= $(TCC
) -B
$(TOPSRC
)
21 I386_O
= libtcc1.o alloca86.o alloca86-bt.o
$(BCHECK_O
)
22 X86_64_O
= libtcc1.o alloca86_64.o alloca86_64-bt.o
$(BCHECK_O
)
23 ARM_O
= libtcc1.o armeabi.o alloca-arm.o
25 WIN_O
= crt1.o crt1w.o wincrt1.o wincrt1w.o dllcrt1.o dllmain.o
27 ifeq "$(TARGET)" "i386-win32"
28 OBJ
= $(I386_O
) chkstk.o
$(WIN_O
)
29 TGT
= -DTCC_TARGET_I386
-DTCC_TARGET_PE
30 XCC
= $(TCC
) -B
$(TOPSRC
)/win32
-I
$(TOPSRC
)/include
31 else ifeq "$(TARGET)" "x86_64-win32"
32 OBJ
= $(X86_64_O
) chkstk.o
$(WIN_O
)
33 TGT
= -DTCC_TARGET_X86_64
-DTCC_TARGET_PE
34 XCC
= $(TCC
) -B
$(TOPSRC
)/win32
-I
$(TOPSRC
)/include
35 else ifeq "$(TARGET)" "arm-wince"
36 OBJ
= $(ARM_O
) $(WIN_O
)
37 TGT
= -DTCC_TARGET_ARM
-DTCC_TARGET_PE
38 XCC
= $(TCC
) -B
$(TOPSRC
)/win32
-I
$(TOPSRC
)/include
39 else ifeq "$(TARGET)" "i386"
41 TGT
= -DTCC_TARGET_I386
42 else ifeq "$(TARGET)" "x86_64"
44 TGT
= -DTCC_TARGET_X86_64
45 else ifeq "$(TARGET)" "arm-eabihf"
47 TGT
= -DTCC_TARGET_ARM
51 XFLAGS
= $(CFLAGS
) -fPIC
54 else ifeq "$(TARGET)" "arm64"
56 TGT
= -DTCC_TARGET_ARM64
57 else ifneq "$(TARGET)" ""
58 $(error libtcc1.a not supported on target
'$(TARGET)')
61 ifeq ($(TARGETOS
),Darwin
)
62 XFLAGS
+= -D_ANSI_SOURCE
68 $(OUT
) : $(patsubst %.o
,%-$(TARGET
).o
,$(OBJ
))
71 $(XCC
) -c
$< -o
$@
$(TGT
) $(XFLAGS
)
73 $(XCC
) -c
$< -o
$@
$(TGT
) $(XFLAGS
)
75 crt1w-
$(TARGET
).o
: crt1.c
76 wincrt1w-
$(TARGET
).o
: wincrt1.c
77 bcheck-
$(TARGET
).o
: XFLAGS
+= -w