2 # Tiny C Compiler Makefile for libtcc1.a
6 include $(TOP
)/config.mak
17 ifneq ($(TARGETOS
),Darwin
)
23 ifneq ($(TARGETOS
),Darwin
)
35 cross
: $(DIR
)/libtcc1.a
37 native
: TCC
= $(TOP
)/tcc
$(EXESUF
)
38 cross
: TCC
= $(TOP
)/$(TARGET
)-tcc
$(EXESUF
)
40 I386_O
= libtcc1.o alloca86.o alloca86-bt.o
41 X86_64_O
= libtcc1.o alloca86_64.o
42 WIN32_O
= $(I386_O
) crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o bcheck.o
43 WIN64_O
= $(X86_64_O
) crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o
45 VPATH
= $(TOP
)/lib
$(TOP
)/win32
/lib
47 ifeq "$(TARGET)" "i386-win32"
48 OBJ
= $(addprefix $(DIR
)/,$(WIN32_O
))
49 TGT
= -DTCC_TARGET_I386
-DTCC_TARGET_PE
50 XCC
= $(TCC
) -B
$(TOP
)/win32
-I
$(TOP
)/include
51 XAR
= $(DIR
)/tiny_libmaker
$(EXESUF
)
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
)/win32
-I
$(TOP
)/include
57 XAR
= $(DIR
)/tiny_libmaker
$(EXESUF
)
59 ifeq "$(TARGET)" "i386"
60 OBJ
= $(addprefix $(DIR
)/,$(I386_O
))
61 TGT
= -DTCC_TARGET_I386
62 XCC ?
= $(TCC
) -B
$(TOP
) -m32
-D_ANSI_SOURCE
63 ifeq ($(TARGETOS
),Darwin
)
64 XAR
= $(DIR
)/tiny_libmaker
$(EXESUF
)
67 ifeq "$(TARGET)" "x86_64"
68 OBJ
= $(addprefix $(DIR
)/,$(X86_64_O
))
69 TGT
= -DTCC_TARGET_X86_64
70 XCC ?
= $(TCC
) -B
$(TOP
) -m64
-D_ANSI_SOURCE
71 ifeq ($(TARGETOS
),Darwin
)
72 XAR
= $(DIR
)/tiny_libmaker
$(EXESUF
)
75 $(error libtcc1.a not supported on target
'$(TARGET)')
85 $(DIR
)/libtcc1.a ..
/libtcc1.a
: $(OBJ
) $(XAR
)
88 $(XCC
) -c
$< -o
$@
$(CPPFLAGS
) $(TGT
) $(CFLAGS
)
90 $(XCC
) -c
$< -o
$@
$(CPPFLAGS
) $(TGT
) $(CFLAGS
)
91 $(DIR
)/%$(EXESUF
) : $(TOP
)/win32
/tools
/%.c
92 $(CC
) -Os
-s
-w
-o
$@
$< $(CPPFLAGS
) $(TGT
) $(CFLAGS
) $(LDFLAGS
)
94 $(OBJ
) $(XAR
) : $(DIR
)/exists
100 rm -rfv i386-win32 x86_64-win32 i386 x86_64