fix #H4287 - inconsistent handling of CPPFLAGS

[Subject should mention Unix, but would exceed 50 characters.]

Explicit build rules ignore $(CPPFLAGS), but the implicit C rule
(at least in GNU make) specifies it.  If user has a value for this
in the environment, that value would apply to building some source
files but not others.  This patch gives it an explicit empty value,
so building via implicit rule should expand it to nothing and match
the fact that it's omitted from explicit rules.

There was one C++ file which relied on the implicit C++ rule.  I've
added it to the files processed by 'make depend' and re-run that.
It now will get built via an explicit rule.

Also, a small amount of reformatting for HACKCSRC.
This commit is contained in:
PatR
2016-04-01 16:49:49 -07:00
parent dc9b6dc43d
commit d63ff7700d
3 changed files with 29 additions and 11 deletions

View File

@@ -167,6 +167,11 @@ CXX=g++
#CXX=arm-linux-g++
#LINK=arm-linux-gcc
# we specify C preprocessor flags via CFLAGS; files built with default rules
# might include $(CPPFLAGS) which could get a value from user's environment;
# we avoid that by forcing it empty rather than by overriding default rules
CPPFLAGS =
# file for regular expression matching
REGEXOBJ = posixregex.o
#REGEXOBJ = pmatchregex.o
@@ -333,11 +338,11 @@ HACKCSRC = allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c \
mkmaze.c mkobj.c mkroom.c mon.c mondata.c monmove.c monst.c \
mplayer.c mthrowu.c muse.c music.c o_init.c objects.c objnam.c \
options.c pager.c pickup.c pline.c polyself.c potion.c pray.c \
priest.c quest.c questpgr.c read.c rect.c region.c restore.c rip.c \
rnd.c role.c rumors.c save.c shk.c shknam.c sit.c sounds.c sp_lev.c \
spell.c steal.c steed.c sys.c teleport.c timeout.c topten.c track.c \
trap.c \
u_init.c uhitm.c vault.c version.c vision.c weapon.c were.c wield.c \
priest.c quest.c questpgr.c read.c rect.c region.c restore.c \
rip.c rnd.c role.c rumors.c save.c shk.c shknam.c sit.c sounds.c \
sp_lev.c spell.c steal.c steed.c sys.c teleport.c timeout.c \
topten.c track.c trap.c u_init.c \
uhitm.c vault.c version.c vision.c weapon.c were.c wield.c \
windows.c wizard.c worm.c worn.c write.c zap.c
# all operating-system-dependent .c (for dependencies and such)
@@ -347,6 +352,7 @@ SYSCSRC = ../sys/atari/tos.c ../sys/share/pcmain.c ../sys/share/pcsys.c \
../sys/share/random.c \
../sys/share/ioctl.c ../sys/share/unixtty.c ../sys/unix/unixmain.c \
../sys/unix/unixunix.c ../sys/unix/unixres.c ../sys/be/bemain.c
SYSCXXSRC = ../sys/share/cppregex.cpp
# generated source files (tile.c is handled separately via WINxxxSRC)
GENCSRC = monstr.c vis_tab.c #tile.c
@@ -501,8 +507,10 @@ $(MAKEDEFS): $(FIRSTOBJ) \
# Source files created by 'makedefs' at build time.
# Each is given an artificial dependency upon the one before
# so that parallel makes will have to build them sequentially and
# not clobber makedefs by attempting simultaneous builds of it.
# so that parallel makes will have to build them sequentially.
# (More for documentation than effect; 'make' should know not
# to try to build $(MAKEDEFS) for bar.h while it is in the
# process of building it for foo.h.)
../include/onames.h: $(MAKEDEFS)
@( cd ../util ; $(MAKE) ../include/onames.h )
../include/pm.h: $(MAKEDEFS) ../include/onames.h
@@ -559,11 +567,11 @@ spotless: clean
depend: ../sys/unix/depend.awk \
$(SYSCSRC) $(WINCSRC) $(WINCXXSRC) $(CHAINSRC) $(GENCSRC) \
$(HACKCSRC)
$(SYSCSRC) $(WINCSRC) $(SYSCXXSRC) $(WINCXXSRC) \
$(CHAINSRC) $(GENCSRC) $(HACKCSRC)
$(AWK) -f ../sys/unix/depend.awk ../include/*.h \
$(SYSCSRC) $(WINCSRC) $(WINCXXSRC) $(CHAINSRC) $(GENCSRC) \
$(HACKCSRC) >makedep
$(SYSCSRC) $(WINCSRC) $(SYSCXXSRC) $(WINCXXSRC) \
$(CHAINSRC) $(GENCSRC) $(HACKCSRC) >makedep
@echo '/^# DO NOT DELETE THIS LINE OR CHANGE ANYTHING BEYOND IT/+2,$$d' >eddep
@echo '$$r makedep' >>eddep
@echo 'w' >>eddep
@@ -718,6 +726,8 @@ load_img.o: ../win/gem/load_img.c ../include/load_img.h
gr_rect.o: ../win/gem/gr_rect.c ../include/gr_rect.h
$(CC) $(CFLAGS) -c ../win/gem/gr_rect.c
tile.o: tile.c $(HACK_H)
cppregex.o: ../sys/share/cppregex.cpp
$(CXX) $(CXXFLAGS) -c ../sys/share/cppregex.cpp
qt_win.o: ../win/Qt/qt_win.cpp $(HACK_H) ../include/func_tab.h \
../include/dlb.h ../include/patchlevel.h ../include/tile2x11.h \
../include/qt_win.h ../include/qt_clust.h ../include/qt_kde0.h \