From 31c7a0862372947841eae59d247baa27a7513570 Mon Sep 17 00:00:00 2001 From: ariclone <> Date: Tue, 6 Nov 2001 20:23:05 +0000 Subject: [PATCH] More cross-compiler Makefile updates - all it should take now is creating a separate Rules.make.WIN32 using setup and mv, and then 'make win32' to make use of it --- Makefile | 50 ++++++++++++++++++++++++----------------- setup | 14 +++++++----- src/Makefile | 21 ++++++++--------- src/action/Makefile | 4 ++-- src/ai/Makefile | 4 ++-- src/beos/Makefile | 4 ++-- src/game/Makefile | 4 ++-- src/include/Makefile | 3 ++- src/map/Makefile | 4 ++-- src/network/Makefile | 4 ++-- src/pathfinder/Makefile | 4 ++-- src/sound/Makefile | 4 ++-- src/stratagus/Makefile | 4 ++-- src/ui/Makefile | 4 ++-- src/unit/Makefile | 4 ++-- src/video/Makefile | 4 ++-- 16 files changed, 74 insertions(+), 62 deletions(-) diff --git a/Makefile b/Makefile index 054f12d7f..ea1abaff8 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,10 @@ TOPDIR= . -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +WINRULESFILE = Rules.make.WIN32 + +include $(TOPDIR)/$(RULESFILE) MAKE= make TOPDIR=`pwd` MODULES= src tools @@ -76,12 +79,12 @@ doc:: doxygen contrib/doxygen-freecraft.cfg doc++:: - @$(MAKE) -C src doc + @$(MAKE) -C src RULESFILE=$(RULESFILE) doc @if [ ! -d srcdoc ]; then mkdir srcdoc; fi @$(DOCPP) -v -H -A -a -b -c -j -d srcdoc `find . -name "*.doc" -print` src:: - @$(MAKE) -C src all + @$(MAKE) -C src RULESFILE=$(RULESFILE) all etlib/$(OBJDIR)hash.$(OE): etlib/hash.c @if [ ! -d etlib/$(OBJDIR) ]; then mkdir etlib/$(OBJDIR); fi @@ -95,6 +98,12 @@ etlib/$(OBJDIR)prgname.$(OE): etlib/prgname.c @if [ ! -d etlib/$(OBJDIR) ]; then mkdir etlib/$(OBJDIR); fi $(CC) -c $(CFLAGS) $< -o $@ +src/$(OBJDIR)main.$(OE): src/main.c + @if [ ! -d src/$(OBJDIR) ]; then mkdir src/$(OBJDIR); fi + $(CC) -c $(CFLAGS) $< -o $@ + +src/$(OBJDIR)/libclone.a: ; + # UNIX-TARGET freecraft: src etlib/$(OBJDIR)hash.$(OE) src/$(OBJDIR)libclone.a $(CCLD) -o freecraft src/$(OBJDIR)libclone.a etlib/$(OBJDIR)hash.$(OE) $(CLONELIBS) -I. $(CFLAGS) @@ -117,38 +126,38 @@ echo:: @-echo LIBS: $(CLONELIBS) tools:: - @$(MAKE) -C tools all + @$(MAKE) -C tools RULESFILE=$(RULESFILE) all clean:: - @set -e; for i in $(MODULES) ; do $(MAKE) -C $$i clean ; done + @set -e; for i in $(MODULES) ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) clean ; done $(RM) core gmon.out cscope.out *.doc etlib/$(OBJDIR)*.$(OE) .#* clobber: clean - @set -e; for i in $(MODULES) ; do $(MAKE) -C $$i clobber ; done + @set -e; for i in $(MODULES) ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) clobber ; done $(RM) freecraft$(EXE) gmon.sum *~ $(RM) -r srcdoc/* - @$(MAKE) -C tools clobber + @$(MAKE) -C tools RULESFILE=$(RULESFILE) clobber distclean: clobber @echo ci:: - @set -e; for i in $(MODULES) ; do $(MAKE) -C $$i ci ; done - ci -l Makefile Common.mk Rules.make .indent.pro \ + @set -e; for i in $(MODULES) ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) ci ; done + ci -l Makefile Common.mk $(RULESFILE) .indent.pro \ contrib/doxygen-freecraft.cfg \ $(CCLS) $(DOCS) lockver:: - @set -e; for i in $(MODULES) ; do $(MAKE) -C $$i lockver ; done - $(LOCKVER) Makefile Common.mk Rules.make .indent.pro \ + @set -e; for i in $(MODULES) ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) lockver ; done + $(LOCKVER) Makefile Common.mk $(RULESFILE) .indent.pro \ contrib/doxygen-freecraft.cfg \ $(CCLS) $(DOCS) tags:: - @$(MAKE) -C src tags + @$(MAKE) -C src RULESFILE=$(RULESFILE) tags depend:: - @$(MAKE) -C src depend + @$(MAKE) -C src RULESFILE=$(RULESFILE) depend ############################################################################## # Distributions @@ -196,7 +205,7 @@ distdir = freecraft-$(mydate) dist:: $(RM) $(DISTLIST) - @set -e; for i in $(MODULES); do $(MAKE) -C $$i distlist ; done + @set -e; for i in $(MODULES); do $(MAKE) -C $$i RULESFILE=$(RULESFILE) distlist ; done echo >>$(DISTLIST) echo $(PICS) >>$(DISTLIST) echo $(MISC) >>$(DISTLIST) @@ -218,8 +227,8 @@ dist:: small-dist:: @$(RM) $(DISTLIST) - $(MAKE) -C src distlist - $(MAKE) -C tools distlist + $(MAKE) -C src RULESFILE=$(RULESFILE) distlist + $(MAKE) -C tools RULESFILE=$(RULESFILE) distlist echo $(MISC) >>$(DISTLIST) echo $(CCLS) >>$(DISTLIST) echo $(DOCS) >>$(DISTLIST) @@ -288,7 +297,7 @@ win32-bin-dist2:: win32 win32-bin-dist: win32 @export PATH=/usr/local/cross-tools/i386-mingw32msvc/bin:$$PATH; \ - $(MAKE) $(WIN32) win32-bin-dist2 + $(MAKE) RULESFILE=$(WINRULESFILE) $(WIN32) win32-bin-dist2 win32-exe-dist: win32-bin-dist cat tools/SFXWiz32-gcc.exe freecraft-$(mydate)-win32bin.zip \ @@ -354,8 +363,8 @@ difffile= freecraft-`date +%y%m%d`.diff diff: @$(RM) $(difffile) @$(RM) $(DISTLIST) - $(MAKE) -C src distlist - $(MAKE) -C tools distlist + $(MAKE) -C src RULESFILE=$(RULESFILE) distlist + $(MAKE) -C tools RULESFILE=$(RULESFILE) distlist echo $(MISC) >>$(DISTLIST) echo $(CCLS) >>$(DISTLIST) echo $(DOCS) >>$(DISTLIST) @@ -389,8 +398,7 @@ WIN32= \ EXE='.exe' \ XLDFLAGS='' \ XIFLAGS='' \ - VIDEO='-DUSE_WIN32 $(SDL)' \ - VIDEOLIB='-L/usr/local/cross-tools/i386-mingw32msvc/lib $(SDLLIB) -lwsock32 -lws2_32' + RULESFILE=$(WINRULESFILE) win32new: @$(MAKE) distclean diff --git a/setup b/setup index 15feaceb2..7bfe230c8 100755 --- a/setup +++ b/setup @@ -426,11 +426,13 @@ case $VIDSEL in echo "SDLLIB = $SDLLIB" >> $RULESFILE echo >> $RULESFILE +if [ "$WIN32" != "1" ] ; then echo "VIDEO = \$(SDL)" >> $RULESFILE -if [ "$BEOS" != "1" ] ; then - echo "VIDEOLIB = \$(SDLLIB) -ldl" >> $RULESFILE -else - echo "VIDEOLIB = \$(SDLLIB)" >> $RULESFILE + if [ "$BEOS" != "1" ] ; then + echo "VIDEOLIB = \$(SDLLIB) -ldl" >> $RULESFILE + else + echo "VIDEOLIB = \$(SDLLIB)" >> $RULESFILE + fi fi echo @@ -475,9 +477,9 @@ echo "" >> $RULESFILE if test "$WIN32" = "1" ; then echo "VIDEO = -DUSE_WIN32 \$(SDL)" >> $RULESFILE if test "`gcc -v 2>&1 | grep -is mingw32` x" = " x" ; then - echo "VIDEOLIB = \$(SDLLIB) -lwsock32" >> $RULESFILE + echo "VIDEOLIB = \$(SDLLIB) -lwsock32 -lws2_32" >> $RULESFILE else - echo "VIDEOLIB = \$(SDLLIB) -lwsock32" >> $RULESFILE + echo "VIDEOLIB = \$(SDLLIB) -lwsock32 -lws2_32" >> $RULESFILE fi fi diff --git a/src/Makefile b/src/Makefile index a00668e00..4874d63e9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -26,7 +26,8 @@ ## TOPDIR= .. -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) OBJS= @@ -37,41 +38,41 @@ all:: @if [ ! -d ./$(OBJDIR) ] ; then mkdir ./$(OBJDIR) ; fi @set -e; for i in $(MODULES) ; do\ if [ ! -d $$i/$(OBJDIR) ] ; then mkdir $$i/$(OBJDIR) ; fi ;\ - $(MAKE) -C $$i all ;\ + $(MAKE) -C $$i RULESFILE=$(RULESFILE) all ;\ done doc:: - @set -e; for i in $(MODULES) include ; do $(MAKE) -C $$i doc ; done + @set -e; for i in $(MODULES) include ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) doc ; done clean:: - @set -e; for i in $(MODULES) include ; do $(MAKE) -C $$i clean ; done + @set -e; for i in $(MODULES) include ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) clean ; done $(RM) $(OBJS) $(OBJDIR)libclone.a -@$(RM) $(OBJDIR)main.$(OE) $(OBJDIR)freecraftrc.$(OE) clobber:: clean - @set -e; for i in $(MODULES) include ; do $(MAKE) -C $$i clobber ; done + @set -e; for i in $(MODULES) include ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) clobber ; done $(RM) .depend tags depend:: @echo -n >.depend - @set -e; for i in $(MODULES) ; do $(MAKE) -C $$i depend ; done + @set -e; for i in $(MODULES) ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) depend ; done tags:: - @set -e; for i in $(MODULES) ; do cd $$i ; $(MAKE) tags ; cd .. ; done + @set -e; for i in $(MODULES) ; do cd $$i ; $(MAKE) RULESFILE=$(RULESFILE) tags ; cd .. ; done distlist:: echo >>$(DISTLIST) echo src/main.c >>$(DISTLIST) echo src/freecraft.rc >>$(DISTLIST) echo src/Makefile >>$(DISTLIST) - @for i in include $(MODULES) ; do $(MAKE) -C $$i distlist ; done + @for i in include $(MODULES) ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) distlist ; done ci:: - @for i in include $(MODULES) ; do $(MAKE) -C $$i ci ; done + @for i in include $(MODULES) ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) ci ; done ci -l Makefile lockver:: - @for i in include $(MODULES) ; do $(MAKE) -C $$i lockver ; done + @for i in include $(MODULES) ; do $(MAKE) -C $$i RULESFILE=$(RULESFILE) lockver ; done $(LOCKVER) Makefile ifeq (.depend,$(wildcard .depend)) diff --git a/src/action/Makefile b/src/action/Makefile index 8ba5bfcf5..19a4da0e6 100644 --- a/src/action/Makefile +++ b/src/action/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = action diff --git a/src/ai/Makefile b/src/ai/Makefile index 69872185d..b54a29543 100644 --- a/src/ai/Makefile +++ b/src/ai/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = ai diff --git a/src/beos/Makefile b/src/beos/Makefile index 8d668caf1..b2e2605c5 100644 --- a/src/beos/Makefile +++ b/src/beos/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = beos diff --git a/src/game/Makefile b/src/game/Makefile index 0a8b5852c..324ca0d68 100644 --- a/src/game/Makefile +++ b/src/game/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = game diff --git a/src/include/Makefile b/src/include/Makefile index 5df03e2a9..e03372559 100644 --- a/src/include/Makefile +++ b/src/include/Makefile @@ -29,7 +29,8 @@ ## TOPDIR= ../.. -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = include diff --git a/src/map/Makefile b/src/map/Makefile index 6c5470cd5..eaad9fc50 100644 --- a/src/map/Makefile +++ b/src/map/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = map diff --git a/src/network/Makefile b/src/network/Makefile index 28e62cecf..f6f05fc99 100644 --- a/src/network/Makefile +++ b/src/network/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = network diff --git a/src/pathfinder/Makefile b/src/pathfinder/Makefile index 22e7c8c5e..6f4e35d4c 100644 --- a/src/pathfinder/Makefile +++ b/src/pathfinder/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = pathfinder diff --git a/src/sound/Makefile b/src/sound/Makefile index 2428f7849..c42cd884f 100644 --- a/src/sound/Makefile +++ b/src/sound/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = sound diff --git a/src/stratagus/Makefile b/src/stratagus/Makefile index 4c16b8854..44b7c91e2 100644 --- a/src/stratagus/Makefile +++ b/src/stratagus/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = clone diff --git a/src/ui/Makefile b/src/ui/Makefile index ce721b5f2..2c06ee37b 100644 --- a/src/ui/Makefile +++ b/src/ui/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) ## ## USER INTERFACE diff --git a/src/unit/Makefile b/src/unit/Makefile index 7feefa205..adfd486d8 100644 --- a/src/unit/Makefile +++ b/src/unit/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = unit diff --git a/src/video/Makefile b/src/video/Makefile index eea55f3e5..b982e8085 100644 --- a/src/video/Makefile +++ b/src/video/Makefile @@ -26,8 +26,8 @@ ## TOPDIR = ../.. - -include $(TOPDIR)/Rules.make +RULESFILE ?= Rules.make +include $(TOPDIR)/$(RULESFILE) MODULE = video