diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 124 |
1 files changed, 79 insertions, 45 deletions
@@ -338,9 +338,6 @@ ifeq ($(PLATFORM),darwin) ifeq ($(ARCH),ppc) OPTIMIZE += -faltivec -O3 - # Carbon is required on PPC only to make a call to MakeDataExecutable - # in the PPC vm (should be a better non-Carbon way). - LDFLAGS += -framework Carbon endif ifeq ($(ARCH),x86) OPTIMIZE += -march=prescott -mfpmath=sse @@ -612,6 +609,7 @@ else # ifeq IRIX ifeq ($(PLATFORM),sunos) + CC=gcc INSTALL=ginstall MKDIR=gmkdir COPYDIR="/usr/local/share/games/tremulous" @@ -725,8 +723,7 @@ ifneq ($(BUILD_GAME_QVM),0) TARGETS += \ $(B)/base/vm/cgame.qvm \ $(B)/base/vm/game.qvm \ - $(B)/base/vm/ui.qvm \ - qvmdeps + $(B)/base/vm/ui.qvm endif endif @@ -743,55 +740,93 @@ ifeq ($(USE_LOCAL_HEADERS),1) endif ifeq ($(GENERATE_DEPENDENCIES),1) - DEPEND_CFLAGS=-MMD + BASE_CFLAGS += -MMD endif ifeq ($(USE_SVN),1) BASE_CFLAGS += -DSVN_VERSION=\\\"$(SVN_VERSION)\\\" endif -DO_CC = @echo "CC $<"; \ - $(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) -o $@ -c $< -DO_SMP_CC = @echo "SMP_CC $<"; \ - $(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) -DSMP -o $@ -c $< -DO_BOT_CC = @echo "BOT_CC $<"; \ - $(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(BOTCFLAGS) -DBOTLIB -o $@ -c $< -DO_SHLIB_CC = @echo "SHLIB_CC $<"; \ - $(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $< -DO_AS = @echo "AS $<"; \ - $(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< -DO_DED_CC = @echo "DED_CC $<"; \ - $(CC) $(NOTSHLIBCFLAGS) -DDEDICATED $(CFLAGS) -o $@ -c $< -DO_WINDRES = @echo "WINDRES $<"; \ - $(WINDRES) -i $< -o $@ +define DO_CC +@echo "CC $<" +@$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) -o $@ -c $< +endef + +define DO_SMP_CC +@echo "SMP_CC $<" +@$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) -DSMP -o $@ -c $< +endef + +define DO_BOT_CC +@echo "BOT_CC $<" +@$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(BOTCFLAGS) -DBOTLIB -o $@ -c $< +endef + +ifeq ($(GENERATE_DEPENDENCIES),1) + DO_QVM_DEP=cat $(@:%.o=%.d) | sed -e 's/\.o/\.asm/g' >> $(@:%.o=%.d) +endif + +define DO_SHLIB_CC +@echo "SHLIB_CC $<" +@$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $< +@$(DO_QVM_DEP) +endef + +define DO_AS +@echo "AS $<" +@$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< +endef + +define DO_DED_CC +@echo "DED_CC $<" +@$(CC) $(NOTSHLIBCFLAGS) -DDEDICATED $(CFLAGS) -o $@ -c $< +endef + +define DO_WINDRES +@echo "WINDRES $<" +@$(WINDRES) -i $< -o $@ +endef + ############################################################################# # MAIN TARGETS ############################################################################# -default: build_release - -debug: build_debug -release: build_release +default: release +all: debug release -build_debug: tools - $(MAKE) makedirs targets B=$(BD) \ - CFLAGS="$(CFLAGS) $(DEBUG_CFLAGS) $(DEPEND_CFLAGS)" +debug: + @$(MAKE) targets B=$(BD) CFLAGS="$(CFLAGS) $(DEBUG_CFLAGS)" ifeq ($(BUILD_MASTER_SERVER),1) $(MAKE) -C $(MASTERDIR) debug endif -build_release: tools - $(MAKE) makedirs targets B=$(BR) \ - CFLAGS="$(CFLAGS) $(RELEASE_CFLAGS) $(DEPEND_CFLAGS)" +release: + @$(MAKE) targets B=$(BR) CFLAGS="$(CFLAGS) $(RELEASE_CFLAGS)" ifeq ($(BUILD_MASTER_SERVER),1) $(MAKE) -C $(MASTERDIR) release endif -# Build both debug and release builds -all: build_debug build_release - -targets: $(TARGETS) +# Create the build directories and tools, print out +# an informational message, then start building +targets: makedirs tools + @echo "" + @echo "Building Tremulous in $(B):" + @echo " CC: $(CC)" + @echo "" + @echo " CFLAGS:" + @for i in $(CFLAGS); \ + do \ + echo " $$i"; \ + done + @echo "" + @echo " Output:" + @for i in $(TARGETS); \ + do \ + echo " $$i"; \ + done + @echo "" + @$(MAKE) $(TARGETS) makedirs: @if [ ! -d $(BUILD_DIR) ];then $(MKDIR) $(BUILD_DIR);fi @@ -822,8 +857,10 @@ tools: $(MAKE) -C $(TOOLSDIR)/asm install endif -DO_Q3LCC = @echo "Q3LCC $<"; \ - $(Q3LCC) -o $@ $< +define DO_Q3LCC +@echo "Q3LCC $<" +@$(Q3LCC) -o $@ $< +endef ############################################################################# # CLIENT/SERVER @@ -1339,10 +1376,10 @@ clean2: @rm -f $(TARGETS) clean-debug: - @$(MAKE) clean2 B=$(BD) CFLAGS="$(DEBUG_CFLAGS)" + @$(MAKE) clean2 B=$(BD) clean-release: - @$(MAKE) clean2 B=$(BR) CFLAGS="$(RELEASE_CFLAGS)" + @$(MAKE) clean2 B=$(BR) toolsclean: @$(MAKE) -C $(TOOLSDIR)/asm clean uninstall @@ -1351,7 +1388,7 @@ toolsclean: distclean: clean toolsclean @rm -rf $(BUILD_DIR) -installer: build_release +installer: release @$(MAKE) VERSION=$(VERSION) -C $(LOKISETUPDIR) dist: @@ -1366,13 +1403,10 @@ dist: D_FILES=$(shell find . -name '*.d') -$(B)/base/vm/vm.d: $(GOBJ) $(CGOBJ) $(UIOBJ) - @cat $(^:%.o=%.d) | sed -e 's/\.o/\.asm/g' > $@ - -qvmdeps: $(B)/base/vm/vm.d - ifneq ($(strip $(D_FILES)),) include $(D_FILES) endif -.PHONY: release debug clean distclean copyfiles installer dist +.PHONY: all clean clean2 clean-debug clean-release copyfiles \ + debug default dist distclean installer makedirs release \ + targets tools toolsclean |