mirror of
https://github.com/mirror/tinycc.git
synced 2025-02-04 06:30:10 +08:00
Honour *FLAGS everywhere
Add CPPFLAGS, CFLAGS and LDFLAGS everywhere it's missing.
This commit is contained in:
parent
5eb64357b1
commit
a7f010ee8a
20
Makefile
20
Makefile
@ -5,8 +5,10 @@
|
|||||||
TOP ?= .
|
TOP ?= .
|
||||||
include $(TOP)/config.mak
|
include $(TOP)/config.mak
|
||||||
|
|
||||||
CFLAGS_P=$(CFLAGS) -pg -static -DCONFIG_TCC_STATIC
|
CPPFLAGS_P=$(CPPFLAGS) -DCONFIG_TCC_STATIC
|
||||||
|
CFLAGS_P=$(CFLAGS) -pg -static
|
||||||
LIBS_P=
|
LIBS_P=
|
||||||
|
LDFLAGS_P=$(LDFLAGS)
|
||||||
|
|
||||||
ifneq ($(GCC_MAJOR),2)
|
ifneq ($(GCC_MAJOR),2)
|
||||||
CFLAGS+=-fno-strict-aliasing
|
CFLAGS+=-fno-strict-aliasing
|
||||||
@ -171,11 +173,11 @@ all: $(PROGS) $(TCCLIBS) $(TCCDOCS)
|
|||||||
|
|
||||||
# Host Tiny C Compiler
|
# Host Tiny C Compiler
|
||||||
tcc$(EXESUF): tcc.o $(LIBTCC)
|
tcc$(EXESUF): tcc.o $(LIBTCC)
|
||||||
$(CC) -o $@ $^ $(LIBS) $(CFLAGS) $(LDFLAGS) $(LINK_LIBTCC)
|
$(CC) -o $@ $^ $(LIBS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(LINK_LIBTCC)
|
||||||
|
|
||||||
# Cross Tiny C Compilers
|
# Cross Tiny C Compilers
|
||||||
%-tcc$(EXESUF):
|
%-tcc$(EXESUF):
|
||||||
$(CC) -o $@ tcc.c -DONE_SOURCE $(DEFINES) $(CFLAGS) $(LIBS) $(LDFLAGS)
|
$(CC) -o $@ tcc.c -DONE_SOURCE $(DEFINES) $(CPPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS)
|
||||||
|
|
||||||
$(I386_CROSS): DEFINES = -DTCC_TARGET_I386 \
|
$(I386_CROSS): DEFINES = -DTCC_TARGET_I386 \
|
||||||
-DCONFIG_TCCDIR="\"$(tccdir)/i386\""
|
-DCONFIG_TCCDIR="\"$(tccdir)/i386\""
|
||||||
@ -212,25 +214,25 @@ libtcc.o : NATIVE_DEFINES += -DONE_SOURCE
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
$(LIBTCC_OBJ) tcc.o : %.o : %.c $(LIBTCC_INC)
|
$(LIBTCC_OBJ) tcc.o : %.o : %.c $(LIBTCC_INC)
|
||||||
$(CC) -o $@ -c $< $(NATIVE_DEFINES) $(CFLAGS)
|
$(CC) -o $@ -c $< $(NATIVE_DEFINES) $(CPPFLAGS) $(CFLAGS)
|
||||||
|
|
||||||
libtcc.a: $(LIBTCC_OBJ)
|
libtcc.a: $(LIBTCC_OBJ)
|
||||||
$(AR) rcs $@ $^
|
$(AR) rcs $@ $^
|
||||||
|
|
||||||
libtcc.so.1.0: $(LIBTCC_OBJ)
|
libtcc.so.1.0: $(LIBTCC_OBJ)
|
||||||
$(CC) -shared -Wl,-soname,$@ -o $@ $^
|
$(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDFLAGS)
|
||||||
|
|
||||||
libtcc.so.1.0: CFLAGS+=-fPIC
|
libtcc.so.1.0: CFLAGS+=-fPIC
|
||||||
|
|
||||||
# profiling version
|
# profiling version
|
||||||
tcc_p$(EXESUF): $(NATIVE_FILES)
|
tcc_p$(EXESUF): $(NATIVE_FILES)
|
||||||
$(CC) -o $@ $< $(NATIVE_DEFINES) $(CFLAGS_P) $(LIBS_P)
|
$(CC) -o $@ $< $(NATIVE_DEFINES) $(CPPFLAGS_P) $(CFLAGS_P) $(LIBS_P) $(LDFLAGS_P)
|
||||||
|
|
||||||
# windows utilities
|
# windows utilities
|
||||||
tiny_impdef$(EXESUF): win32/tools/tiny_impdef.c
|
tiny_impdef$(EXESUF): win32/tools/tiny_impdef.c
|
||||||
$(CC) -o $@ $< $(CFLAGS)
|
$(CC) -o $@ $< $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
|
||||||
tiny_libmaker$(EXESUF): win32/tools/tiny_libmaker.c
|
tiny_libmaker$(EXESUF): win32/tools/tiny_libmaker.c
|
||||||
$(CC) -o $@ $< $(CFLAGS)
|
$(CC) -o $@ $< $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
|
||||||
|
|
||||||
# TinyCC runtime libraries
|
# TinyCC runtime libraries
|
||||||
libtcc1.a : FORCE
|
libtcc1.a : FORCE
|
||||||
@ -238,7 +240,7 @@ libtcc1.a : FORCE
|
|||||||
lib/%/libtcc1.a : FORCE $(PROGS_CROSS)
|
lib/%/libtcc1.a : FORCE $(PROGS_CROSS)
|
||||||
@$(MAKE) -C lib cross TARGET=$*
|
@$(MAKE) -C lib cross TARGET=$*
|
||||||
bcheck.o : lib/bcheck.c
|
bcheck.o : lib/bcheck.c
|
||||||
gcc -c $< -o $@ $(CFLAGS)
|
gcc -c $< -o $@ $(CPPFLAGS) $(CFLAGS)
|
||||||
FORCE:
|
FORCE:
|
||||||
|
|
||||||
# install
|
# install
|
||||||
|
@ -85,11 +85,11 @@ endif
|
|||||||
$(DIR)/libtcc1.a ../libtcc1.a : $(OBJ) $(XAR)
|
$(DIR)/libtcc1.a ../libtcc1.a : $(OBJ) $(XAR)
|
||||||
$(AR) rcs $@ $(OBJ)
|
$(AR) rcs $@ $(OBJ)
|
||||||
$(DIR)/%.o : %.c
|
$(DIR)/%.o : %.c
|
||||||
$(XCC) -c $< -o $@ $(TGT)
|
$(XCC) -c $< -o $@ $(CPPFLAGS) $(TGT) $(CFLAGS)
|
||||||
$(DIR)/%.o : %.S
|
$(DIR)/%.o : %.S
|
||||||
$(XCC) -c $< -o $@ $(TGT)
|
$(XCC) -c $< -o $@ $(CPPFLAGS) $(TGT) $(CFLAGS)
|
||||||
$(DIR)/%$(EXESUF) : $(TOP)/win32/tools/%.c
|
$(DIR)/%$(EXESUF) : $(TOP)/win32/tools/%.c
|
||||||
$(CC) -Os -s -w -o $@ $< $(TGT)
|
$(CC) -Os -s -w -o $@ $< $(CPPFLAGS) $(TGT) $(CFLAGS) $(LDFLAGS)
|
||||||
|
|
||||||
$(OBJ) $(XAR) : $(DIR)/exists
|
$(OBJ) $(XAR) : $(DIR)/exists
|
||||||
$(DIR)/exists :
|
$(DIR)/exists :
|
||||||
|
@ -68,13 +68,13 @@ libtest: libtcc_test$(EXESUF) $(LIBTCC1)
|
|||||||
./libtcc_test$(EXESUF) lib_path=..
|
./libtcc_test$(EXESUF) lib_path=..
|
||||||
|
|
||||||
libtcc_test$(EXESUF): libtcc_test.c ../$(LIBTCC)
|
libtcc_test$(EXESUF): libtcc_test.c ../$(LIBTCC)
|
||||||
$(CC) -o $@ $^ -I.. $(CFLAGS) $(NATIVE_DEFINES) $(LIBS) $(LINK_LIBTCC)
|
$(CC) -o $@ $^ -I.. $(CPPFLAGS) $(CFLAGS) $(NATIVE_DEFINES) $(LIBS) $(LINK_LIBTCC) $(LDFLAGS)
|
||||||
|
|
||||||
# test.ref - generate using gcc
|
# test.ref - generate using gcc
|
||||||
# copy only tcclib.h so GCC's stddef and stdarg will be used
|
# copy only tcclib.h so GCC's stddef and stdarg will be used
|
||||||
test.ref: tcctest.c
|
test.ref: tcctest.c
|
||||||
cp ../include/tcclib.h .
|
cp ../include/tcclib.h .
|
||||||
$(CC) -o tcctest.gcc $< -I. -w $(CFLAGS) $(NATIVE_DEFINES) -std=gnu99
|
$(CC) -o tcctest.gcc $< -I. $(CPPFLAGS) -w $(CFLAGS) $(NATIVE_DEFINES) -std=gnu99 $(LDFLAGS)
|
||||||
./tcctest.gcc > $@
|
./tcctest.gcc > $@
|
||||||
|
|
||||||
# auto test
|
# auto test
|
||||||
@ -149,14 +149,14 @@ speedtest: ex2 ex3
|
|||||||
time $(TCC) -run ../examples/ex3.c 35
|
time $(TCC) -run ../examples/ex3.c 35
|
||||||
|
|
||||||
weaktest: test.ref
|
weaktest: test.ref
|
||||||
$(TCC) -c tcctest.c -o weaktest.tcc.o
|
$(TCC) -c tcctest.c -o weaktest.tcc.o $(CPPFLAGS) $(CFLAGS)
|
||||||
$(CC) -c tcctest.c -o weaktest.gcc.o -I. -w $(CFLAGS)
|
$(CC) -c tcctest.c -o weaktest.gcc.o -I. $(CPPFLAGS) -w $(CFLAGS)
|
||||||
objdump -t weaktest.tcc.o | grep ' w ' | sed -e 's/.* \([a-zA-Z0-9_]*\)$$/\1/' | LC_ALL=C sort > weaktest.tcc.o.txt
|
objdump -t weaktest.tcc.o | grep ' w ' | sed -e 's/.* \([a-zA-Z0-9_]*\)$$/\1/' | LC_ALL=C sort > weaktest.tcc.o.txt
|
||||||
objdump -t weaktest.gcc.o | grep ' w ' | sed -e 's/.* \([a-zA-Z0-9_]*\)$$/\1/' | LC_ALL=C sort > weaktest.gcc.o.txt
|
objdump -t weaktest.gcc.o | grep ' w ' | sed -e 's/.* \([a-zA-Z0-9_]*\)$$/\1/' | LC_ALL=C sort > weaktest.gcc.o.txt
|
||||||
diff weaktest.gcc.o.txt weaktest.tcc.o.txt && echo "Weak Auto Test OK"
|
diff weaktest.gcc.o.txt weaktest.tcc.o.txt && echo "Weak Auto Test OK"
|
||||||
|
|
||||||
ex%: ../examples/ex%.c
|
ex%: ../examples/ex%.c
|
||||||
$(CC) -o $@ $< $(CFLAGS)
|
$(CC) -o $@ $< $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
|
||||||
|
|
||||||
# tiny assembler testing
|
# tiny assembler testing
|
||||||
asmtest.ref: asmtest.S
|
asmtest.ref: asmtest.S
|
||||||
|
Loading…
Reference in New Issue
Block a user