@@ -20,18 +20,15 @@ LIBTCC = libtcc.a
20
20
LIBTCC1 = libtcc1.a
21
21
LINK_LIBTCC =
22
22
LIBS =
23
- CFLAGS += -I$(TOP )
24
23
CFLAGS += $(CPPFLAGS )
25
24
VPATH = $(TOPSRC )
25
+ -LTCC = $(TOP ) /$(LIBTCC )
26
26
27
27
ifdef CONFIG_WIN32
28
28
CFG = -win
29
29
ifneq ($(CONFIG_static),yes)
30
30
LIBTCC = libtcc$(DLLSUF )
31
31
LIBTCCDEF = libtcc.def
32
- -LTCC = $(bindir ) /libtcc.dll
33
- else
34
- -LTCC = -ltcc -L$(libdir )
35
32
endif
36
33
ifneq ($(CONFIG_debug),yes)
37
34
LDFLAGS += -s
76
73
endif
77
74
export MACOSX_DEPLOYMENT_TARGET := 10.6
78
75
endif
79
- -LTCC = -ltcc
80
76
endif
81
77
82
78
# run local version of tcc with local libraries and includes
@@ -89,42 +85,15 @@ TCC = $(TCC_LOCAL) $(TCCFLAGS)
89
85
# run tests with the installed tcc instead
90
86
ifdef TESTINSTALL
91
87
TCC_LOCAL = $(bindir ) /tcc
92
- TCCFLAGS-unx = -I..
93
- TCCFLAGS-win = -I.. -B$(bindir )
94
- LIBTCC =
95
- LIBS += $(-LTCC )
88
+ TCCFLAGS-unx = -I$(TOP )
89
+ TCCFLAGS-win = -B$(bindir ) -I$(TOP )
90
+ -LTCC = $(libdir ) /$(LIBTCC ) $(LINK_LIBTCC )
96
91
endif
97
92
98
93
CFLAGS_P = $(CFLAGS ) -pg -static -DCONFIG_TCC_STATIC -DTCC_PROFILE
99
94
LIBS_P = $(LIBS )
100
95
LDFLAGS_P = $(LDFLAGS )
101
96
102
- CONFIG_$(ARCH) = yes
103
- NATIVE_DEFINES_$(CONFIG_i386) += -DTCC_TARGET_I386
104
- NATIVE_DEFINES_$(CONFIG_x86_64) += -DTCC_TARGET_X86_64
105
- NATIVE_DEFINES_$(CONFIG_WIN32) += -DTCC_TARGET_PE
106
- NATIVE_DEFINES_$(CONFIG_OSX) += -DTCC_TARGET_MACHO
107
- NATIVE_DEFINES_$(CONFIG_uClibc) += -DTCC_UCLIBC
108
- NATIVE_DEFINES_$(CONFIG_musl) += -DTCC_MUSL
109
- NATIVE_DEFINES_$(CONFIG_libgcc) += -DCONFIG_USE_LIBGCC
110
- NATIVE_DEFINES_$(CONFIG_selinux) += -DHAVE_SELINUX
111
- NATIVE_DEFINES_$(CONFIG_arm) += -DTCC_TARGET_ARM
112
- NATIVE_DEFINES_$(CONFIG_arm_eabihf) += -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT
113
- NATIVE_DEFINES_$(CONFIG_arm_eabi) += -DTCC_ARM_EABI
114
- NATIVE_DEFINES_$(CONFIG_arm_vfp) += -DTCC_ARM_VFP
115
- NATIVE_DEFINES_$(CONFIG_arm64) += -DTCC_TARGET_ARM64
116
- NATIVE_DEFINES_$(CONFIG_riscv64) += -DTCC_TARGET_RISCV64
117
- NATIVE_DEFINES_$(CONFIG_BSD) += -DTARGETOS_$(TARGETOS )
118
- NATIVE_DEFINES_$(CONFIG_Android) += -DTARGETOS_ANDROID
119
- NATIVE_DEFINES_$(CONFIG_pie) += -DCONFIG_TCC_PIE
120
- NATIVE_DEFINES_$(CONFIG_pic) += -DCONFIG_TCC_PIC
121
- NATIVE_DEFINES_no_$(CONFIG_new_macho) += -DCONFIG_NEW_MACHO=0
122
- NATIVE_DEFINES_$(CONFIG_codesign) += -DCONFIG_CODESIGN
123
- NATIVE_DEFINES_$(CONFIG_new-dtags) += -DCONFIG_NEW_DTAGS
124
- NATIVE_DEFINES_no_$(CONFIG_bcheck) += -DCONFIG_TCC_BCHECK=0
125
- NATIVE_DEFINES_no_$(CONFIG_backtrace) += -DCONFIG_TCC_BACKTRACE=0
126
- NATIVE_DEFINES += $(NATIVE_DEFINES_yes ) $(NATIVE_DEFINES_no_no )
127
-
128
97
DEF-i386 = -DTCC_TARGET_I386
129
98
DEF-i386-win32 = -DTCC_TARGET_I386 -DTCC_TARGET_PE
130
99
DEF-i386-OpenBSD = $(DEF-i386 ) -DTARGETOS_OpenBSD
@@ -150,8 +119,6 @@ DEF-x86_64-FreeBSD = $(DEF-x86_64) -DTARGETOS_FreeBSD
150
119
DEF-x86_64-NetBSD = $(DEF-x86_64 ) -DTARGETOS_NetBSD
151
120
DEF-x86_64-OpenBSD = $(DEF-x86_64 ) -DTARGETOS_OpenBSD
152
121
153
- DEF-$(NATIVE_TARGET) = $(NATIVE_DEFINES )
154
-
155
122
ifeq ($(INCLUDED ) ,no)
156
123
# --------------------------------------------------------------------------
157
124
# running top Makefile
@@ -192,7 +159,7 @@ endif
192
159
T = $(or $(CROSS_TARGET ) ,$(NATIVE_TARGET ) ,unknown)
193
160
X = $(if $(CROSS_TARGET ) ,$(CROSS_TARGET ) -)
194
161
195
- DEFINES += $(DEF-$T ) $( DEF-all )
162
+ DEFINES += $(DEF-$T )
196
163
DEFINES += $(if $(ROOT-$T ) ,-DCONFIG_SYSROOT="\"$(ROOT-$T ) \"")
197
164
DEFINES += $(if $(CRT-$T ) ,-DCONFIG_TCC_CRTPREFIX="\"$(CRT-$T ) \"")
198
165
DEFINES += $(if $(LIB-$T ) ,-DCONFIG_TCC_LIBPATHS="\"$(LIB-$T ) \"")
@@ -202,10 +169,15 @@ DEFINES += $(DEF-$(or $(findstring win,$T),unx))
202
169
203
170
ifneq ($(X ) ,)
204
171
$(if $(DEF-$T ) ,,$(error error : unknown target: '$T'))
205
- DEF-all += -DCONFIG_TCC_CROSSPREFIX="\"$X\""
172
+ DEF-$T += -DCONFIG_TCC_CROSS
173
+ DEF-$(NATIVE_TARGET) =
174
+ DEF-$T += -DCONFIG_TCC_CROSSPREFIX="\"$X\""
206
175
ifneq ($(CONFIG_WIN32 ) ,yes)
207
176
DEF-win += -DCONFIG_TCCDIR="\"$(tccdir ) /win32\""
208
177
endif
178
+ else
179
+ # using values from config.h
180
+ DEF-$(NATIVE_TARGET) =
209
181
endif
210
182
211
183
# include custom configuration (see make help)
@@ -255,15 +227,16 @@ ifeq ($(ONE_SOURCE),yes)
255
227
LIBTCC_OBJ = $(X ) libtcc.o
256
228
LIBTCC_INC = $($T_FILES )
257
229
TCC_FILES = $(X ) tcc.o
258
- tcc.o : DEFINES += -DONE_SOURCE=0
259
- $(X ) tcc.o $(X ) libtcc.o : $(TCCDEFS_H )
230
+ $(X ) tcc.o $(X ) libtcc.o : $(TCCDEFS_H )
260
231
else
261
232
LIBTCC_OBJ = $(patsubst % .c,$(X ) % .o,$(LIBTCC_SRC ) )
262
233
LIBTCC_INC = $(filter % .h % -gen.c % -link.c,$($T_FILES ) )
263
234
TCC_FILES = $(X ) tcc.o $(LIBTCC_OBJ )
264
- $(TCC_FILES ) : DEFINES += -DONE_SOURCE=0
265
235
$(X ) tccpp.o : $(TCCDEFS_H )
236
+ $(X ) libtcc.o : DEFINES += -DONE_SOURCE=0
266
237
endif
238
+ tcc.o : DEFINES += -DONE_SOURCE=0
239
+ DEFINES += -I$(TOP )
267
240
268
241
GITHASH: =$(shell git rev-parse --abbrev-ref HEAD 2>/dev/null || echo no)
269
242
ifneq ($(GITHASH ) ,no)
@@ -283,15 +256,15 @@ endif
283
256
284
257
# target specific object rule
285
258
$(X ) % .o : % .c $(LIBTCC_INC )
286
- $S $(CC ) -o $@ -c $< $(DEFINES ) $(CFLAGS )
259
+ $S $(CC ) -o $@ -c $< $(addsuffix , $( DEFINES ) $(CFLAGS ) )
287
260
288
261
# additional dependencies
289
262
$(X ) tcc.o : tcctools.c
290
263
$(X ) tcc.o : DEFINES += $(DEF_GITHASH )
291
264
292
265
# Host Tiny C Compiler
293
266
tcc$(EXESUF ) : tcc.o $(LIBTCC )
294
- $S $(CC ) -o $@ $^ $(LIBS ) $(LDFLAGS ) $(LINK_LIBTCC )
267
+ $S $(CC ) -o $@ $^ $(addsuffix , $( LIBS ) $(LDFLAGS ) $(LINK_LIBTCC ) )
295
268
296
269
# Cross Tiny C Compilers
297
270
# (the TCCDEFS_H dependency is only necessary for parallel makes,
@@ -318,8 +291,8 @@ libtcc.a: $(LIBTCC_OBJ)
318
291
libtcc.so : $(LIBTCC_OBJ )
319
292
$S $(CC ) -shared -Wl,-soname,$@ -o $@ $^ $(LIBS ) $(LDFLAGS )
320
293
321
- libtcc.so : CFLAGS+= -fPIC
322
- libtcc.so : LDFLAGS+= -fPIC
294
+ libtcc.so : override CFLAGS += -fPIC
295
+ libtcc.so : override LDFLAGS += -fPIC
323
296
324
297
# OSX dynamic libtcc library
325
298
libtcc.dylib : $(LIBTCC_OBJ )
@@ -529,13 +502,12 @@ help:
529
502
@echo " make test-install"
530
503
@echo " run tests with the installed tcc"
531
504
@echo " Other supported make targets:"
532
- @echo " install install-strip doc clean tags ETAGS tar distclean help"
505
+ @echo " install install-strip uninstall doc [dist] clean tags ETAGS tar help"
533
506
@echo " Custom configuration:"
534
507
@echo " The makefile includes a file 'config-extra.mak' if it is present."
535
- @echo " This file may contain some custom configuration. For example:"
536
- @echo " NATIVE_DEFINES += -D..."
537
- @echo " Or for example to configure the search paths for a cross-compiler"
538
- @echo " assuming the support files in /usr/i686-linux-gnu:"
508
+ @echo " This file may contain some custom configuration. For example to"
509
+ @echo " configure the search paths for a cross-compiler, assuming the"
510
+ @echo " support files in /usr/i686-linux-gnu:"
539
511
@echo " ROOT-i386 = /usr/i686-linux-gnu"
540
512
@echo " CRT-i386 = {R}/lib"
541
513
@echo " LIB-i386 = {B}:{R}/lib"
0 commit comments