diff options
Diffstat (limited to 'Makefile.src.in')
-rw-r--r-- | Makefile.src.in | 295 |
1 files changed, 0 insertions, 295 deletions
diff --git a/Makefile.src.in b/Makefile.src.in deleted file mode 100644 index 6b0fb9402..000000000 --- a/Makefile.src.in +++ /dev/null @@ -1,295 +0,0 @@ -# This file is part of OpenTTD. -# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. -# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. - -CC_HOST = !!CC_HOST!! -CXX_HOST = !!CXX_HOST!! -CC_BUILD = !!CC_BUILD!! -CXX_BUILD = !!CXX_BUILD!! -WINDRES = !!WINDRES!! -STRIP = !!STRIP!! -CFLAGS = !!CFLAGS!! -CFLAGS_BUILD = !!CFLAGS_BUILD!! -CXXFLAGS = !!CXXFLAGS!! -CXXFLAGS_BUILD = !!CXXFLAGS_BUILD!! -LIBS = !!LIBS!! -LDFLAGS = !!LDFLAGS!! -LDFLAGS_BUILD = !!LDFLAGS_BUILD!! -ROOT_DIR = !!ROOT_DIR!! -BIN_DIR = !!BIN_DIR!! -LANG_DIR = !!LANG_DIR!! -SRC_OBJS_DIR = !!SRC_OBJS_DIR!! -LANG_OBJS_DIR = !!LANG_OBJS_DIR!! -SETTING_OBJS_DIR= !!SETTING_OBJS_DIR!! -SRC_DIR = !!SRC_DIR!! -SCRIPT_SRC_DIR = !!SCRIPT_SRC_DIR!! -MEDIA_DIR = !!MEDIA_DIR!! -TTD = !!TTD!! -STRGEN = !!STRGEN!! -DEPEND = !!DEPEND!! -OS = !!OS!! -STAGE = !!STAGE!! -MAKEDEPEND = !!MAKEDEPEND!! -CFLAGS_MAKEDEP = !!CFLAGS_MAKEDEP!! -SORT = !!SORT!! -AWK = !!AWK!! -CONFIG_CACHE_COMPILER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_COMPILER!! -CONFIG_CACHE_LINKER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_LINKER!! -CONFIG_CACHE_SOURCE = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_SOURCE!! -CONFIG_CACHE_VERSION = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_VERSION!! - -OBJS_C := !!OBJS_C!! -OBJS_CPP := !!OBJS_CPP!! -OBJS_MM := !!OBJS_MM!! -OBJS_RC := !!OBJS_RC!! -OBJS := $(OBJS_C) $(OBJS_CPP) $(OBJS_MM) $(OBJS_RC) -SRCS := !!SRCS!! - -# All C-files depend on those 3 files -FILE_DEP := $(CONFIG_CACHE_COMPILER) -# Create all dirs and subdirs -RES := $(shell mkdir -p $(BIN_DIR) $(sort $(dir $(OBJS)))) - -CFLAGS += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR) -I $(SETTING_OBJS_DIR) -CFLAGS_MAKEDEP += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR) -I $(SETTING_OBJS_DIR) -ifdef SCRIPT_SRC_DIR - CFLAGS_MAKEDEP += -I $(SCRIPT_SRC_DIR) -endif - -# Check if we want to show what we are doing -ifdef VERBOSE - Q = - E = @true -else - Q = @ - E = @echo -endif - -# Our default target -all: $(BIN_DIR)/$(TTD) - -# This are 2 rules that are pointing back to STRGEN stuff. -# There is not really a need to have them here, but in case -# some weirdo wants to run 'make' in the 'src' dir and expects -# the languages to be recompiled, this catches that case and -# takes care of it nicely. -$(LANG_OBJS_DIR)/$(STRGEN): - $(MAKE) -C $(LANG_OBJS_DIR) $(STRGEN) - -$(LANG_OBJS_DIR)/table/strings.h: $(LANG_DIR)/english.txt $(LANG_OBJS_DIR)/$(STRGEN) - $(MAKE) -C $(LANG_OBJS_DIR) table/strings.h - -# Always run version detection, so we always have an accurate modified -# flag -VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh") -MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ') - -# Use autodetected revisions -VERSION := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ') -ISODATE := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ') -GITHASH := $(shell echo "$(VERSIONS)" | cut -f 4 -d' ') -ISTAG := $(shell echo "$(VERSIONS)" | cut -f 5 -d' ') -ISSTABLETAG := $(shell echo "$(VERSIONS)" | cut -f 6 -d' ') -YEAR := $(shell echo "$(VERSIONS)" | cut -f 7 -d' ') - -# Make sure we have something in VERSION and ISODATE -ifeq ($(VERSION),) -VERSION := norev000 -endif -ifeq ($(ISODATE),) -ISODATE := 00000000 -endif - -# This helps to recompile if flags change -RES := $(shell if [ "`cat $(CONFIG_CACHE_COMPILER) 2>/dev/null`" != "$(CFLAGS) $(CXXFLAGS)" ]; then echo "$(CFLAGS) $(CXXFLAGS)" > $(CONFIG_CACHE_COMPILER); fi ) -RES := $(shell if [ "`cat $(CONFIG_CACHE_LINKER) 2>/dev/null`" != "$(LDFLAGS) $(LIBS)" ]; then echo "$(LDFLAGS) $(LIBS)" > $(CONFIG_CACHE_LINKER); fi ) - -# If there is a change in the source-file-list, make sure we recheck the deps -RES := $(shell if [ "`cat $(CONFIG_CACHE_SOURCE) 2>/dev/null`" != "$(SRCS)" ]; then echo "$(SRCS)" > $(CONFIG_CACHE_SOURCE); fi ) -# If there is a change in the revision, make sure we recompile rev.cpp -RES := $(shell if [ "`cat $(CONFIG_CACHE_VERSION) 2>/dev/null`" != "$(VERSION) $(MODIFIED)" ]; then echo "$(VERSION) $(MODIFIED)" > $(CONFIG_CACHE_VERSION); fi ) - -ifndef MAKEDEPEND -# The slow, but always correct, dep-check -DEP_MASK := %.d -DEPS := $(OBJS:%.o=%.d) - -# Only include the deps if we are compiling everything -ifeq ($(filter %.o clean mrproper, $(MAKECMDGOALS)),) --include $(DEPS) -else -# In case we want to compile a single target, include the .d file for it -ifneq ($(filter %.o, $(MAKECMDGOALS)),) -SINGLE_DEP := $(filter %.o, $(MAKECMDGOALS)) --include $(SINGLE_DEP:%.o=%.d) -endif -endif - -# Find the deps via GCC. Rarely wrong, but a bit slow - -$(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP) - $(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.c=%.c)' - $(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@ - -$(OBJS_CPP:%.o=%.d): %.d: $(SRC_DIR)/%.cpp $(FILE_DEP) - $(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)' - $(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@ - -$(OBJS_MM:%.o=%.d): %.d: $(SRC_DIR)/%.mm $(FILE_DEP) - $(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)' - $(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@ - -$(OBJS_RC:%.o=%.d): %.d: $(SRC_DIR)/%.rc $(FILE_DEP) - $(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.rc=%.rc)' - $(Q)touch $@ - -else -# The much faster, but can be wrong, dep-check -DEP_MASK := -DEPS := Makefile.dep - -# Only include the deps if we are not cleaning -ifeq ($(filter depend clean mrproper, $(MAKECMDGOALS)),) --include Makefile.dep -endif - -ifeq ("$(SRC_OBJS_DIR)/$(DEPEND)","$(MAKEDEPEND)") -DEP := $(MAKEDEPEND) -$(SRC_OBJS_DIR)/$(DEPEND): $(SRC_DIR)/depend/depend.cpp - $(E) '$(STAGE) Compiling and linking $(DEPEND)' - $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) -o $@ $< -endif - -# Macro for invoking a command on groups of 100 words at a time -# (analogous to xargs(1)). The macro invokes itself recursively -# until the list of words is depleted. -# -# Usage: $(call xargs,COMMAND,LIST) -# -# COMMAND should be a shell command to which the words will be -# appended as arguments in groups of 100. -define xargs -$(1) $(wordlist 1,100,$(2)) -$(if $(word 101,$(2)),$(call xargs,$(1),$(wordlist 101,$(words $(2)),$(2)))) -endef - -# Make sure that only 'make depend' ALWAYS triggers a recheck -ifeq ($(filter depend, $(MAKECMDGOALS)),) -Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(CONFIG_CACHE_SOURCE) $(DEP) -else -Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(DEP) FORCE -endif - $(E) '$(STAGE) DEP CHECK (all files)' - $(Q)rm -f Makefile.dep.tmp - $(Q)touch Makefile.dep.tmp - -# Calculate the deps via makedepend - $(call xargs,$(Q)$(MAKEDEPEND) -f$(SRC_OBJS_DIR)/Makefile.dep.tmp -o.o -Y -v -a -- $(CFLAGS_MAKEDEP) -- 2>/dev/null,$(SRCS:%=$(SRC_DIR)/%)) - -# Remove all comments and includes that don't start with $(SRC_DIR) -# Remove $(SRC_DIR) from object-file-name - @$(AWK) ' \ - /^# DO NOT/ { print $$0 ; next} \ - /^#/ {next} \ - /: / { \ - left = NF - 1; \ - for (n = 2; n <= NF; n++) { \ - if (match($$n, "^$(ROOT_DIR)") == 0) { \ - $$n = ""; \ - left--; \ - } \ - } \ - gsub("$(SRC_DIR)/", "", $$1); \ - if (left > 0) { \ - print $$0; \ - $$1 = "Makefile.dep:"; \ - print $$0; \ - } \ - next \ - } \ - { \ - print $$0 \ - } \ - ' < Makefile.dep.tmp | sed 's@ *@ @g;s@ $$@@' | LC_ALL=C $(SORT) > Makefile.dep - - $(Q)rm -f Makefile.dep.tmp Makefile.dep.tmp.bak - -endif - -# Avoid problems with deps if a .h/.hpp/.hpp.sq file is deleted without the deps -# being updated. Now the Makefile continues, the deps are recreated -# and all will be fine. -%.h %.hpp %.hpp.sq: - @true - - -# Compile all the files according to the targets - -$(OBJS_C): %.o: $(SRC_DIR)/%.c $(DEP_MASK) $(FILE_DEP) - $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.c=%.c)' - $(Q)$(CC_HOST) $(CFLAGS) -c -o $@ $< - -$(filter-out %sse2.o, $(filter-out %ssse3.o, $(filter-out %sse4.o, $(OBJS_CPP)))): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP) - $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' - $(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -c -o $@ $< - -$(filter %sse2.o, $(OBJS_CPP)): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP) - $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' - $(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -c -msse2 -o $@ $< - -$(filter %ssse3.o, $(OBJS_CPP)): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP) - $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' - $(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -c -mssse3 -o $@ $< - -$(filter %sse4.o, $(OBJS_CPP)): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP) - $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' - $(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -c -msse4.1 -o $@ $< - -$(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP) - $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.mm=%.mm)' - $(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -c -o $@ $< - -$(OBJS_RC): %.o: $(SRC_DIR)/%.rc $(FILE_DEP) - $(E) '$(STAGE) Compiling resource $(<:$(SRC_DIR)/%.rc=%.rc)' - $(Q)$(WINDRES) -o $@ $< - -$(BIN_DIR)/$(TTD): $(TTD) - $(Q)cp $(TTD) $(BIN_DIR)/$(TTD) -ifeq ($(OS), UNIX) - $(Q)cp $(MEDIA_DIR)/openttd.32.bmp $(BIN_DIR)/baseset/ -endif -ifeq ($(OS), OSX) - $(Q)cp $(ROOT_DIR)/os/macosx/splash.png $(BIN_DIR)/baseset/ -endif - -$(TTD): $(OBJS) $(CONFIG_CACHE_LINKER) - $(E) '$(STAGE) Linking $@' - $(Q)+$(CXX_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ -ifdef STRIP - $(Q)$(STRIP) $@ -endif - -# Revision files - -$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in - $(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g;s@!!ISSTABLETAG!!@$(ISSTABLETAG)@g;s@!!YEAR!!@$(YEAR)@g" > $(SRC_DIR)/rev.cpp - -$(SRC_DIR)/os/windows/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/os/windows/ottdres.rc.in - $(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g;s@!!ISSTABLETAG!!@$(ISSTABLETAG)@g;s@!!YEAR!!@$(YEAR)@g" > $(SRC_DIR)/os/windows/ottdres.rc - -FORCE: - -depend: $(DEPS) - -clean: - $(E) '$(STAGE) Cleaning up object files' - $(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(DEPEND) $(TTD:%=$(BIN_DIR)/%) $(BIN_DIR)/baseset/openttd.32.bmp $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_SOURCE) - -mrproper: clean - $(Q)rm -f $(SRC_DIR)/rev.cpp $(SRC_DIR)/os/windows/ottdres.rc - -%.o: - @echo '$(STAGE) No such source-file: $(@:%.o=%).[c|cpp|mm|rc]' - -.PHONY: all mrproper depend clean FORCE |