annotate Makefile.src.in @ 15944:d1aa55b7ebcf draft

(svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to some headers
author rubidium <rubidium@openttd.org>
date Thu, 26 Aug 2010 22:01:16 +0000
parents 38952764f91f
children 3db61837d3c0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12778
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12746
diff changeset
1 # $Id$
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12746
diff changeset
2
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12746
diff changeset
3 # This file is part of OpenTTD.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12746
diff changeset
4 # 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.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12746
diff changeset
5 # 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.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12746
diff changeset
6 # 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/>.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12746
diff changeset
7
12961
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
8 CC_HOST = !!CC_HOST!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
9 CXX_HOST = !!CXX_HOST!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
10 CC_BUILD = !!CC_BUILD!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
11 CXX_BUILD = !!CXX_BUILD!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
12 WINDRES = !!WINDRES!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
13 STRIP = !!STRIP!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
14 CFLAGS = !!CFLAGS!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
15 CFLAGS_BUILD = !!CFLAGS_BUILD!!
12970
c22bf6829a6f (svn r17464) -Codechange: use C++0x mode when compiling with gcc >= 4.3 or icc >= 11.0
smatz <smatz@openttd.org>
parents: 12961
diff changeset
16 CXXFLAGS = !!CXXFLAGS!!
c22bf6829a6f (svn r17464) -Codechange: use C++0x mode when compiling with gcc >= 4.3 or icc >= 11.0
smatz <smatz@openttd.org>
parents: 12961
diff changeset
17 CXXFLAGS_BUILD = !!CXXFLAGS_BUILD!!
12961
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
18 LIBS = !!LIBS!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
19 LDFLAGS = !!LDFLAGS!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
20 LDFLAGS_BUILD = !!LDFLAGS_BUILD!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
21 ROOT_DIR = !!ROOT_DIR!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
22 BIN_DIR = !!BIN_DIR!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
23 LANG_DIR = !!LANG_DIR!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
24 SRC_OBJS_DIR = !!SRC_OBJS_DIR!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
25 LANG_OBJS_DIR = !!LANG_OBJS_DIR!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
26 SRC_DIR = !!SRC_DIR!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
27 SCRIPT_SRC_DIR = !!SCRIPT_SRC_DIR!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
28 MEDIA_DIR = !!MEDIA_DIR!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
29 TTD = !!TTD!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
30 STRGEN = !!STRGEN!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
31 ENDIAN_CHECK = !!ENDIAN_CHECK!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
32 DEPEND = !!DEPEND!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
33 ENDIAN_FORCE = !!ENDIAN_FORCE!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
34 OS = !!OS!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
35 STAGE = !!STAGE!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
36 MAKEDEPEND = !!MAKEDEPEND!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
37 CFLAGS_MAKEDEP = !!CFLAGS_MAKEDEP!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
38 SORT = !!SORT!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
39 REVISION = !!REVISION!!
d47724c1c01f (svn r17454) -Codechange: some alignment in Makefile*.in
smatz <smatz@openttd.org>
parents: 12846
diff changeset
40 AWK = !!AWK!!
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
41 CONFIG_CACHE_COMPILER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_COMPILER!!
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
42 CONFIG_CACHE_LINKER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_LINKER!!
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
43 CONFIG_CACHE_ENDIAN = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_ENDIAN!!
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
44 CONFIG_CACHE_SOURCE = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_SOURCE!!
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
45 CONFIG_CACHE_VERSION = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_VERSION!!
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
46
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
47 OBJS_C := !!OBJS_C!!
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
48 OBJS_CPP := !!OBJS_CPP!!
5941
d0e1f93e603a (svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni <bjarni@openttd.org>
parents: 5650
diff changeset
49 OBJS_MM := !!OBJS_MM!!
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
50 OBJS_RC := !!OBJS_RC!!
5941
d0e1f93e603a (svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni <bjarni@openttd.org>
parents: 5650
diff changeset
51 OBJS := $(OBJS_C) $(OBJS_CPP) $(OBJS_MM) $(OBJS_RC)
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
52 SRCS := !!SRCS!!
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
53
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
54 # All C-files depend on those 3 files
11004
48aced5a73d8 (svn r15344) -Change [Makefile]: don't recompile everything when english.txt changes, but only whatever includes table/strings.h.
rubidium <rubidium@openttd.org>
parents: 10696
diff changeset
55 FILE_DEP := $(CONFIG_CACHE_COMPILER) endian_target.h
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
56 # Create all dirs and subdirs
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
57 RES := $(shell mkdir -p $(BIN_DIR) $(sort $(dir $(OBJS))))
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
58
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
59 # Make sure endian_target.h is reasable as if it was in the src/ dir
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
60 CFLAGS += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR)
14510
38952764f91f (svn r19081) -Codechange: make it possible to disable compilation of the AI+Squirrel
rubidium <rubidium@openttd.org>
parents: 13897
diff changeset
61 CFLAGS_MAKEDEP += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR)
38952764f91f (svn r19081) -Codechange: make it possible to disable compilation of the AI+Squirrel
rubidium <rubidium@openttd.org>
parents: 13897
diff changeset
62 ifdef SCRIPT_SRC_DIR
38952764f91f (svn r19081) -Codechange: make it possible to disable compilation of the AI+Squirrel
rubidium <rubidium@openttd.org>
parents: 13897
diff changeset
63 CFLAGS_MAKEDEP += -I $(SCRIPT_SRC_DIR)
38952764f91f (svn r19081) -Codechange: make it possible to disable compilation of the AI+Squirrel
rubidium <rubidium@openttd.org>
parents: 13897
diff changeset
64 endif
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
65
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
66 ENDIAN_TARGETS := endian_target.h $(ENDIAN_CHECK)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
67
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
68 # Check if we want to show what we are doing
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
69 ifdef VERBOSE
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
70 Q =
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
71 E = @true
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
72 else
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
73 Q = @
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
74 E = @echo
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
75 endif
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
76
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
77 # Our default target
5610
5762b3a3883d (svn r8067) -Fix (r7759): if bin/$(TTD) was removed, it did not get placed back on make unless $(TTD) got relinked.
rubidium <rubidium@openttd.org>
parents: 5587
diff changeset
78 all: $(BIN_DIR)/$(TTD)
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
79
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
80 # This are 2 rules that are pointing back to STRGEN stuff.
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
81 # There is not really a need to have them here, but in case
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
82 # some weirdo wants to run 'make' in the 'src' dir and expects
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
83 # the languages to be recompiled, this catches that case and
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
84 # takes care of it nicely.
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
85 $(LANG_OBJS_DIR)/$(STRGEN):
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
86 $(MAKE) -C $(LANG_OBJS_DIR) $(STRGEN)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
87
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
88 $(LANG_OBJS_DIR)/table/strings.h: $(LANG_DIR)/english.txt $(LANG_OBJS_DIR)/$(STRGEN)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
89 $(MAKE) -C $(LANG_OBJS_DIR) table/strings.h
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
90
10085
6e5a5c7f13c3 (svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs <matthijs@openttd.org>
parents: 10081
diff changeset
91 # Always run version detection, so we always have an accurate modified
6e5a5c7f13c3 (svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs <matthijs@openttd.org>
parents: 10081
diff changeset
92 # flag
6e5a5c7f13c3 (svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs <matthijs@openttd.org>
parents: 10081
diff changeset
93 VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
10091
f1270dbc1913 (svn r14272) -Fix [Makefile]: Always pass an explicit delimiter to the "cut" command, in
matthijs <matthijs@openttd.org>
parents: 10085
diff changeset
94 MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ')
9457
267a95510fdf (svn r13375) -Add: logging of actions that could possibly cause desyncs and crashes to simplify debugging. See readme.txt for details
smatz <smatz@openttd.org>
parents: 7916
diff changeset
95
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
96 ifdef REVISION
10085
6e5a5c7f13c3 (svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs <matthijs@openttd.org>
parents: 10081
diff changeset
97 # Use specified revision (which should be of the form "r000").
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
98 REV := $(REVISION)
11916
1be572ca9966 (svn r16318) -Change: use !! instead of @@ in src/*.in too.
rubidium <rubidium@openttd.org>
parents: 11907
diff changeset
99 REV_NR := $(shell echo $(REVISION) | sed "s@[^0-9]@@g")
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
100 else
10085
6e5a5c7f13c3 (svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs <matthijs@openttd.org>
parents: 10081
diff changeset
101 # Use autodetected revisions
10091
f1270dbc1913 (svn r14272) -Fix [Makefile]: Always pass an explicit delimiter to the "cut" command, in
matthijs <matthijs@openttd.org>
parents: 10085
diff changeset
102 REV := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
f1270dbc1913 (svn r14272) -Fix [Makefile]: Always pass an explicit delimiter to the "cut" command, in
matthijs <matthijs@openttd.org>
parents: 10085
diff changeset
103 REV_NR := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ')
6812
32e4fae77a35 (svn r10051) -Add: git "version" detection so we've got at least some indication what version we're playing when using git ;)
rubidium <rubidium@openttd.org>
parents: 6523
diff changeset
104 endif
32e4fae77a35 (svn r10051) -Add: git "version" detection so we've got at least some indication what version we're playing when using git ;)
rubidium <rubidium@openttd.org>
parents: 6523
diff changeset
105
9765
b426b3cb4e71 (svn r13901) -Fix: make sure REV_NR isn't empty, rev.cpp would fail to compile
smatz <smatz@openttd.org>
parents: 9457
diff changeset
106 # Make sure we have something in REV and REV_NR
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
107 ifeq ($(REV),)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
108 REV := norev000
9765
b426b3cb4e71 (svn r13901) -Fix: make sure REV_NR isn't empty, rev.cpp would fail to compile
smatz <smatz@openttd.org>
parents: 9457
diff changeset
109 endif
b426b3cb4e71 (svn r13901) -Fix: make sure REV_NR isn't empty, rev.cpp would fail to compile
smatz <smatz@openttd.org>
parents: 9457
diff changeset
110 ifeq ($(REV_NR),)
7780
4301f74086b2 (svn r11330) -Add: OTTD version checking for NewGRFs. This allows NewGRFs to do something different for different versions of OpenTTD, like disabling it for too low versions or loading different graphics.
rubidium <rubidium@openttd.org>
parents: 7618
diff changeset
111 REV_NR := 0
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
112 endif
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
113
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
114 # This helps to recompile if flags change
12970
c22bf6829a6f (svn r17464) -Codechange: use C++0x mode when compiling with gcc >= 4.3 or icc >= 11.0
smatz <smatz@openttd.org>
parents: 12961
diff changeset
115 RES := $(shell if [ "`cat $(CONFIG_CACHE_COMPILER) 2>/dev/null`" != "$(CXXFLAGS) $(CFLAGS)" ]; then echo "$(CXXFLAGS) $(CFLAGS)" > $(CONFIG_CACHE_COMPILER); fi )
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
116 RES := $(shell if [ "`cat $(CONFIG_CACHE_LINKER) 2>/dev/null`" != "$(LDFLAGS) $(LIBS)" ]; then echo "$(LDFLAGS) $(LIBS)" > $(CONFIG_CACHE_LINKER); fi )
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
117 RES := $(shell if [ "`cat $(CONFIG_CACHE_ENDIAN) 2>/dev/null`" != "$(ENDIAN_FORCE)" ]; then echo "$(ENDIAN_FORCE)" > $(CONFIG_CACHE_ENDIAN); fi )
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
118
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
119 # If there is a change in the source-file-list, make sure we recheck the deps
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
120 RES := $(shell if [ "`cat $(CONFIG_CACHE_SOURCE) 2>/dev/null`" != "$(SRCS)" ]; then echo "$(SRCS)" > $(CONFIG_CACHE_SOURCE); fi )
5587
c44c070c5032 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium <rubidium@openttd.org>
parents: 5535
diff changeset
121 # If there is a change in the revision, make sure we recompile rev.cpp
9766
a8c9ec841194 (svn r13902) -Fix (r13375): rev.cpp wasn't recreated when --revision was used and the 'modified' status of sources changed
smatz <smatz@openttd.org>
parents: 9765
diff changeset
122 RES := $(shell if [ "`cat $(CONFIG_CACHE_VERSION) 2>/dev/null`" != "$(REV) $(MODIFIED)" ]; then echo "$(REV) $(MODIFIED)" > $(CONFIG_CACHE_VERSION); fi )
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
123
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
124 ifndef MAKEDEPEND
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
125 # The slow, but always correct, dep-check
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
126 DEP_MASK := %.d
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
127 DEPS := $(OBJS:%.o=%.d)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
128
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
129 # Only include the deps if we are compiling everything
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
130 ifeq ($(filter $(ENDIAN_TARGETS) %.o clean mrproper, $(MAKECMDGOALS)),)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
131 -include $(DEPS)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
132 else
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
133 # In case we want to compile a single target, include the .d file for it
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
134 ifneq ($(filter %.o, $(MAKECMDGOALS)),)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
135 SINGLE_DEP := $(filter %.o, $(MAKECMDGOALS))
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
136 -include $(SINGLE_DEP:%.o=%.d)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
137 endif
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
138 endif
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
139
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
140 # Find the deps via GCC. Rarely wrong, but a bit slow
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
141
12746
4ffb9ad0e03a (svn r17212) -Change: move minilzo to its 'own' 3rdparty directory as it belongs there
rubidium <rubidium@openttd.org>
parents: 12210
diff changeset
142 $(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP)
4ffb9ad0e03a (svn r17212) -Change: move minilzo to its 'own' 3rdparty directory as it belongs there
rubidium <rubidium@openttd.org>
parents: 12210
diff changeset
143 $(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.c=%.c)'
4ffb9ad0e03a (svn r17212) -Change: move minilzo to its 'own' 3rdparty directory as it belongs there
rubidium <rubidium@openttd.org>
parents: 12210
diff changeset
144 $(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
4ffb9ad0e03a (svn r17212) -Change: move minilzo to its 'own' 3rdparty directory as it belongs there
rubidium <rubidium@openttd.org>
parents: 12210
diff changeset
145
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
146 $(OBJS_CPP:%.o=%.d): %.d: $(SRC_DIR)/%.cpp $(FILE_DEP)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
147 $(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)'
12970
c22bf6829a6f (svn r17464) -Codechange: use C++0x mode when compiling with gcc >= 4.3 or icc >= 11.0
smatz <smatz@openttd.org>
parents: 12961
diff changeset
148 $(Q)$(CXX_HOST) $(CXXFLAGS) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
149
5941
d0e1f93e603a (svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni <bjarni@openttd.org>
parents: 5650
diff changeset
150 $(OBJS_MM:%.o=%.d): %.d: $(SRC_DIR)/%.mm $(FILE_DEP)
d0e1f93e603a (svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni <bjarni@openttd.org>
parents: 5650
diff changeset
151 $(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
11916
1be572ca9966 (svn r16318) -Change: use !! instead of @@ in src/*.in too.
rubidium <rubidium@openttd.org>
parents: 11907
diff changeset
152 $(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
153
5478
87717a3b51fc (svn r7762) [Configure] -Fix: .rc files were not ignored in old DEP system
truelight <truelight@openttd.org>
parents: 5475
diff changeset
154 $(OBJS_RC:%.o=%.d): %.d: $(SRC_DIR)/%.rc $(FILE_DEP)
13897
a12398584dcf (svn r18427) -Fix (r18423): ofcourse that broke the GCC build... not determining 'inclusion' using the relative path from the .rc that has the 'include' but from the include directories... how useful/sensible is that?
rubidium <rubidium@openttd.org>
parents: 12970
diff changeset
155 $(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.rc=%.rc)'
5478
87717a3b51fc (svn r7762) [Configure] -Fix: .rc files were not ignored in old DEP system
truelight <truelight@openttd.org>
parents: 5475
diff changeset
156 $(Q)touch $@
87717a3b51fc (svn r7762) [Configure] -Fix: .rc files were not ignored in old DEP system
truelight <truelight@openttd.org>
parents: 5475
diff changeset
157
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
158 else
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
159 # The much faster, but can be wrong, dep-check
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
160 DEP_MASK :=
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
161 DEPS := Makefile.dep
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
162
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
163 # Only include the deps if we are not cleaning
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
164 ifeq ($(filter $(ENDIAN_TARGETS) depend clean mrproper, $(MAKECMDGOALS)),)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
165 -include Makefile.dep
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
166 endif
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
167
11907
ae4ef10e7535 (svn r16307) -Fix: makedepend can't handle the amount of files we have and it also miss some dependencies. That's why we introduce our custom implementation of makedepend.
glx <glx@openttd.org>
parents: 11004
diff changeset
168 ifeq ("$(SRC_OBJS_DIR)/$(DEPEND)","$(MAKEDEPEND)")
ae4ef10e7535 (svn r16307) -Fix: makedepend can't handle the amount of files we have and it also miss some dependencies. That's why we introduce our custom implementation of makedepend.
glx <glx@openttd.org>
parents: 11004
diff changeset
169 DEP := $(MAKEDEPEND)
ae4ef10e7535 (svn r16307) -Fix: makedepend can't handle the amount of files we have and it also miss some dependencies. That's why we introduce our custom implementation of makedepend.
glx <glx@openttd.org>
parents: 11004
diff changeset
170 $(SRC_OBJS_DIR)/$(DEPEND): $(SRC_DIR)/depend/depend.cpp
ae4ef10e7535 (svn r16307) -Fix: makedepend can't handle the amount of files we have and it also miss some dependencies. That's why we introduce our custom implementation of makedepend.
glx <glx@openttd.org>
parents: 11004
diff changeset
171 $(E) '$(STAGE) Compiling and linking $(DEPEND)'
12970
c22bf6829a6f (svn r17464) -Codechange: use C++0x mode when compiling with gcc >= 4.3 or icc >= 11.0
smatz <smatz@openttd.org>
parents: 12961
diff changeset
172 $(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $(CFLAGS_BUILD) $(LDFLAGS_BUILD) -o $@ $<
11907
ae4ef10e7535 (svn r16307) -Fix: makedepend can't handle the amount of files we have and it also miss some dependencies. That's why we introduce our custom implementation of makedepend.
glx <glx@openttd.org>
parents: 11004
diff changeset
173 endif
ae4ef10e7535 (svn r16307) -Fix: makedepend can't handle the amount of files we have and it also miss some dependencies. That's why we introduce our custom implementation of makedepend.
glx <glx@openttd.org>
parents: 11004
diff changeset
174
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
175 # Make sure that only 'make depend' ALWAYS triggers a recheck
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
176 ifeq ($(filter depend, $(MAKECMDGOALS)),)
11907
ae4ef10e7535 (svn r16307) -Fix: makedepend can't handle the amount of files we have and it also miss some dependencies. That's why we introduce our custom implementation of makedepend.
glx <glx@openttd.org>
parents: 11004
diff changeset
177 Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(CONFIG_CACHE_SOURCE) $(DEP)
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
178 else
12036
a7240cb69d58 (svn r16443) -Fix: running 'make depend' after 'configure' in a fresh checkout failed
glx <glx@openttd.org>
parents: 12013
diff changeset
179 Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(DEP) FORCE
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
180 endif
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
181 $(E) '$(STAGE) DEP CHECK (all files)'
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
182 $(Q)rm -f Makefile.dep.tmp
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
183 $(Q)touch Makefile.dep.tmp
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
184
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
185 # Calculate the deps via makedepend
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
186 $(Q)$(MAKEDEPEND) -f$(SRC_OBJS_DIR)/Makefile.dep.tmp -o.o -Y -v -- $(CFLAGS_MAKEDEP) -- $(SRCS:%=$(SRC_DIR)/%) 2>/dev/null
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
187
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
188 # Convert x:/... paths to /x/... for mingw
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
189 ifeq ($(OS), MINGW)
12013
c0e05f81bf93 (svn r16419) -Fix [FS#2916]: MSYS has two distinct ways to write paths. When calling external binaries it resolves paths which causes comparisons between a resolved and unresolved path. So always use the resolved path instead of the unresolved one.
rubidium <rubidium@openttd.org>
parents: 11916
diff changeset
190 @cat Makefile.dep.tmp | sed 's@/\([a-zA-Z]\):\/@\/\1\/@g' > Makefile.dep.tmp.mingw
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
191 @cp Makefile.dep.tmp.mingw Makefile.dep.tmp
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
192 @rm -f Makefile.dep.tmp.mingw
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
193 endif
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
194
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
195 # Remove all comments and includes that don't start with $(SRC_DIR)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
196 # Remove $(SRC_DIR) from object-file-name
6081
31245c7b2e37 (svn r8814) [Config] -Add: added --awk and detect_awk. We now try to find an awk on the user system which allows gsub(). If not found, you can define one yourself, or it tells you versions you might want to install
truelight <truelight@openttd.org>
parents: 5979
diff changeset
197 @$(AWK) ' \
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
198 /^# DO NOT/ { print $$0 ; next} \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
199 /^#/ {next} \
12013
c0e05f81bf93 (svn r16419) -Fix [FS#2916]: MSYS has two distinct ways to write paths. When calling external binaries it resolves paths which causes comparisons between a resolved and unresolved path. So always use the resolved path instead of the unresolved one.
rubidium <rubidium@openttd.org>
parents: 11916
diff changeset
200 /: / { \
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
201 left = NF - 1; \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
202 for (n = 2; n <= NF; n++) { \
11004
48aced5a73d8 (svn r15344) -Change [Makefile]: don't recompile everything when english.txt changes, but only whatever includes table/strings.h.
rubidium <rubidium@openttd.org>
parents: 10696
diff changeset
203 if (match($$n, "^$(ROOT_DIR)") == 0) { \
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
204 $$n = ""; \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
205 left--; \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
206 } \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
207 } \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
208 gsub("$(SRC_DIR)/", "", $$1); \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
209 if (left > 0) { \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
210 print $$0; \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
211 $$1 = "Makefile.dep:"; \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
212 print $$0; \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
213 } \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
214 next \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
215 } \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
216 { \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
217 print $$0 \
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
218 } \
11916
1be572ca9966 (svn r16318) -Change: use !! instead of @@ in src/*.in too.
rubidium <rubidium@openttd.org>
parents: 11907
diff changeset
219 ' < Makefile.dep.tmp | sed 's@ *@ @g;s@ $$@@' | $(SORT) > Makefile.dep
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
220
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
221 $(Q)rm -f Makefile.dep.tmp Makefile.dep.tmp.bak
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
222
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
223 endif
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
224
10696
7edccbb67398 (svn r15027) -Merge: tomatos and bananas left to be, here is NoAI for all to see.
truebrain <truebrain@openttd.org>
parents: 10593
diff changeset
225 # Avoid problems with deps if a .h/.hpp/.hpp.sq file is deleted without the deps
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
226 # being updated. Now the Makefile continues, the deps are recreated
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
227 # and all will be fine.
10696
7edccbb67398 (svn r15027) -Merge: tomatos and bananas left to be, here is NoAI for all to see.
truebrain <truebrain@openttd.org>
parents: 10593
diff changeset
228 %.h %.hpp %.hpp.sq:
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
229 @true
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
230
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
231
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
232 # Compile all the files according to the targets
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
233
12746
4ffb9ad0e03a (svn r17212) -Change: move minilzo to its 'own' 3rdparty directory as it belongs there
rubidium <rubidium@openttd.org>
parents: 12210
diff changeset
234 $(OBJS_C): %.o: $(SRC_DIR)/%.c $(DEP_MASK) $(FILE_DEP)
4ffb9ad0e03a (svn r17212) -Change: move minilzo to its 'own' 3rdparty directory as it belongs there
rubidium <rubidium@openttd.org>
parents: 12210
diff changeset
235 $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.c=%.c)'
4ffb9ad0e03a (svn r17212) -Change: move minilzo to its 'own' 3rdparty directory as it belongs there
rubidium <rubidium@openttd.org>
parents: 12210
diff changeset
236 $(Q)$(CC_HOST) $(CFLAGS) -c -o $@ $<
4ffb9ad0e03a (svn r17212) -Change: move minilzo to its 'own' 3rdparty directory as it belongs there
rubidium <rubidium@openttd.org>
parents: 12210
diff changeset
237
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
238 $(OBJS_CPP): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
239 $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
12970
c22bf6829a6f (svn r17464) -Codechange: use C++0x mode when compiling with gcc >= 4.3 or icc >= 11.0
smatz <smatz@openttd.org>
parents: 12961
diff changeset
240 $(Q)$(CXX_HOST) $(CXXFLAGS) $(CFLAGS) -c -o $@ $<
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
241
5941
d0e1f93e603a (svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni <bjarni@openttd.org>
parents: 5650
diff changeset
242 $(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP)
d0e1f93e603a (svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni <bjarni@openttd.org>
parents: 5650
diff changeset
243 $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.mm=%.mm)'
d0e1f93e603a (svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni <bjarni@openttd.org>
parents: 5650
diff changeset
244 $(Q)$(CC_HOST) $(CFLAGS) -c -o $@ $<
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
245
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
246 $(OBJS_RC): %.o: $(SRC_DIR)/%.rc $(FILE_DEP)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
247 $(E) '$(STAGE) Compiling resource $(<:$(SRC_DIR)/%.rc=%.rc)'
13897
a12398584dcf (svn r18427) -Fix (r18423): ofcourse that broke the GCC build... not determining 'inclusion' using the relative path from the .rc that has the 'include' but from the include directories... how useful/sensible is that?
rubidium <rubidium@openttd.org>
parents: 12970
diff changeset
248 $(Q)$(WINDRES) -o $@ -I `basename $<` $<
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
249
5610
5762b3a3883d (svn r8067) -Fix (r7759): if bin/$(TTD) was removed, it did not get placed back on make unless $(TTD) got relinked.
rubidium <rubidium@openttd.org>
parents: 5587
diff changeset
250 $(BIN_DIR)/$(TTD): $(TTD)
5762b3a3883d (svn r8067) -Fix (r7759): if bin/$(TTD) was removed, it did not get placed back on make unless $(TTD) got relinked.
rubidium <rubidium@openttd.org>
parents: 5587
diff changeset
251 $(Q)cp $< $@
5762b3a3883d (svn r8067) -Fix (r7759): if bin/$(TTD) was removed, it did not get placed back on make unless $(TTD) got relinked.
rubidium <rubidium@openttd.org>
parents: 5587
diff changeset
252
7564
0f45d5223c87 (svn r11089) -Codechange: add revision detection to MSVC.
rubidium <rubidium@openttd.org>
parents: 7256
diff changeset
253 $(TTD): $(OBJS) $(CONFIG_CACHE_LINKER)
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
254 $(E) '$(STAGE) Linking $@'
5979
ca289345e1d3 (svn r8678) [PSP] -Add: added LIBS and CFLAGS needed to compile PSP
truelight <truelight@openttd.org>
parents: 5970
diff changeset
255 ifeq ($(OS), PSP)
6084
6e2526ba7cb5 (svn r8819) [Config] -Documentation: added why we need CC_HOST for linking on PSP
truelight <truelight@openttd.org>
parents: 6081
diff changeset
256 # Because of a bug in the PSP GCC tools, linking via CXX results
6e2526ba7cb5 (svn r8819) [Config] -Documentation: added why we need CC_HOST for linking on PSP
truelight <truelight@openttd.org>
parents: 6081
diff changeset
257 # in total chaos and more problems then you can handle. So we need
6e2526ba7cb5 (svn r8819) [Config] -Documentation: added why we need CC_HOST for linking on PSP
truelight <truelight@openttd.org>
parents: 6081
diff changeset
258 # CC to link OpenTTD for PSP
7564
0f45d5223c87 (svn r11089) -Codechange: add revision detection to MSVC.
rubidium <rubidium@openttd.org>
parents: 7256
diff changeset
259 $(Q)$(CC_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
5979
ca289345e1d3 (svn r8678) [PSP] -Add: added LIBS and CFLAGS needed to compile PSP
truelight <truelight@openttd.org>
parents: 5970
diff changeset
260 else
7564
0f45d5223c87 (svn r11089) -Codechange: add revision detection to MSVC.
rubidium <rubidium@openttd.org>
parents: 7256
diff changeset
261 $(Q)$(CXX_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
5979
ca289345e1d3 (svn r8678) [PSP] -Add: added LIBS and CFLAGS needed to compile PSP
truelight <truelight@openttd.org>
parents: 5970
diff changeset
262 endif
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
263 ifdef STRIP
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
264 $(Q)$(STRIP) $@
10385
9709c41adf56 (svn r14636) -Add: DOS port of OpenTTD, without network support though.
rubidium <rubidium@openttd.org>
parents: 10239
diff changeset
265 ifeq ($(OS), DOS)
9709c41adf56 (svn r14636) -Add: DOS port of OpenTTD, without network support though.
rubidium <rubidium@openttd.org>
parents: 10239
diff changeset
266 $(E) '$(STAGE) Adding CWSDPMI stub to $@'
9709c41adf56 (svn r14636) -Add: DOS port of OpenTTD, without network support though.
rubidium <rubidium@openttd.org>
parents: 10239
diff changeset
267 $(Q)$(ROOT_DIR)/os/dos/make_dos_binary_selfcontained.sh $(SRC_OBJS_DIR)/$@
9709c41adf56 (svn r14636) -Add: DOS port of OpenTTD, without network support though.
rubidium <rubidium@openttd.org>
parents: 10239
diff changeset
268 endif
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
269 endif
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
270
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
271 # The targets to compile the endian-code
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
272
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
273 endian_target.h: $(ENDIAN_CHECK) $(CONFIG_CACHE_ENDIAN)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
274 $(E) '$(STAGE) Testing endianness for target'
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
275 $(Q)./$(ENDIAN_CHECK) $(ENDIAN_FORCE) > $@
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
276
5587
c44c070c5032 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium <rubidium@openttd.org>
parents: 5535
diff changeset
277 $(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
278 $(E) '$(STAGE) Compiling and Linking $@'
12970
c22bf6829a6f (svn r17464) -Codechange: use C++0x mode when compiling with gcc >= 4.3 or icc >= 11.0
smatz <smatz@openttd.org>
parents: 12961
diff changeset
279 $(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $(CFLAGS_BUILD) $< -o $@
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
280
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
281 # Revision files
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
282
7564
0f45d5223c87 (svn r11089) -Codechange: add revision detection to MSVC.
rubidium <rubidium@openttd.org>
parents: 7256
diff changeset
283 $(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in
11916
1be572ca9966 (svn r16318) -Change: use !! instead of @@ in src/*.in too.
rubidium <rubidium@openttd.org>
parents: 11907
diff changeset
284 $(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/rev.cpp
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
285
12846
62f969bd7ff4 (svn r17336) -Codechange: move some os specific files into src/os/
rubidium <rubidium@openttd.org>
parents: 12780
diff changeset
286 $(SRC_DIR)/os/windows/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/os/windows/ottdres.rc.in
62f969bd7ff4 (svn r17336) -Codechange: move some os specific files into src/os/
rubidium <rubidium@openttd.org>
parents: 12780
diff changeset
287 $(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/os/windows/ottdres.rc
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
288
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
289 FORCE:
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
290
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
291 depend: $(DEPS)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
292
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
293 clean:
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
294 $(E) '$(STAGE) Cleaning up object files'
11907
ae4ef10e7535 (svn r16307) -Fix: makedepend can't handle the amount of files we have and it also miss some dependencies. That's why we introduce our custom implementation of makedepend.
glx <glx@openttd.org>
parents: 11004
diff changeset
295 $(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(DEPEND) $(TTD:%=$(BIN_DIR)/%) $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_ENDIAN) $(CONFIG_CACHE_SOURCE) $(ENDIAN_TARGETS)
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
296
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
297 mrproper: clean
12846
62f969bd7ff4 (svn r17336) -Codechange: move some os specific files into src/os/
rubidium <rubidium@openttd.org>
parents: 12780
diff changeset
298 $(Q)rm -f $(SRC_DIR)/rev.cpp $(SRC_DIR)/os/windows/ottdres.rc
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
299
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
300 %.o:
5970
d207cbc6e41a (svn r8658) -Fix r8605: missed an error message renaming from m to mm (objC to objC++)
bjarni <bjarni@openttd.org>
parents: 5941
diff changeset
301 @echo '$(STAGE) No such source-file: $(@:%.o=%).[c|cpp|mm|rc]'
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
302
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
303 .PHONY: all mrproper depend clean FORCE