Mercurial > hg > openttd
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 |
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 |