author | rubidium |
Fri, 12 Dec 2008 19:54:54 +0000 | |
changeset 10415 | fabf65e49e38 |
parent 10385 | 4f9838649c7f |
permissions | -rw-r--r-- |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
1 |
CC_HOST = !!CC_HOST!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
2 |
CXX_HOST = !!CXX_HOST!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
3 |
CC_BUILD = !!CC_BUILD!! |
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5535
diff
changeset
|
4 |
CXX_BUILD = !!CXX_BUILD!! |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
5 |
WINDRES = !!WINDRES!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
6 |
STRIP = !!STRIP!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
7 |
CC_CFLAGS = !!CC_CFLAGS!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
8 |
CFLAGS = !!CFLAGS!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
9 |
CFLAGS_BUILD = !!CFLAGS_BUILD!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
10 |
LIBS = !!LIBS!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
11 |
LDFLAGS = !!LDFLAGS!! |
10085
de2d010b7db9
(svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs
parents:
10081
diff
changeset
|
12 |
ROOT_DIR = !!ROOT_DIR!! |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
13 |
BIN_DIR = !!BIN_DIR!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
14 |
LANG_DIR = !!LANG_DIR!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
15 |
SRC_OBJS_DIR = !!SRC_OBJS_DIR!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
16 |
LANG_OBJS_DIR= !!LANG_OBJS_DIR!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
17 |
SRC_DIR = !!SRC_DIR!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
18 |
MEDIA_DIR = !!MEDIA_DIR!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
19 |
TTD = !!TTD!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
20 |
STRGEN = !!STRGEN!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
21 |
ENDIAN_CHECK = !!ENDIAN_CHECK!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
22 |
ENDIAN_FORCE = !!ENDIAN_FORCE!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
23 |
OS = !!OS!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
24 |
STAGE = !!STAGE!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
25 |
MAKEDEPEND = !!MAKEDEPEND!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
26 |
CFLAGS_MAKEDEP= !!CFLAGS_MAKEDEP!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
27 |
SORT = !!SORT!! |
5535
67ca9df7b081
(svn r7866) -Fix (r7759): ./configure --revision=[revision] did not work as intended.
rubidium
parents:
5496
diff
changeset
|
28 |
REVISION = !!REVISION!! |
6081
57d2fa5e3073
(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
parents:
5979
diff
changeset
|
29 |
AWK = !!AWK!! |
6523
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
30 |
GCC295 = !!GCC295!! |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
31 |
CONFIG_CACHE_COMPILER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_COMPILER!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
32 |
CONFIG_CACHE_LINKER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_LINKER!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
33 |
CONFIG_CACHE_ENDIAN = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_ENDIAN!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
34 |
CONFIG_CACHE_SOURCE = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_SOURCE!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
35 |
CONFIG_CACHE_VERSION = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_VERSION!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
36 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
37 |
OBJS_C := !!OBJS_C!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
38 |
OBJS_CPP := !!OBJS_CPP!! |
5941
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
5650
diff
changeset
|
39 |
OBJS_MM := !!OBJS_MM!! |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
40 |
OBJS_RC := !!OBJS_RC!! |
5941
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
5650
diff
changeset
|
41 |
OBJS := $(OBJS_C) $(OBJS_CPP) $(OBJS_MM) $(OBJS_RC) |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
42 |
SRCS := !!SRCS!! |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
43 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
44 |
# All C-files depend on those 3 files |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
45 |
FILE_DEP := $(CONFIG_CACHE_COMPILER) $(LANG_OBJS_DIR)/table/strings.h endian_target.h |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
46 |
# Create all dirs and subdirs |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
47 |
RES := $(shell mkdir -p $(BIN_DIR) $(sort $(dir $(OBJS)))) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
48 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
49 |
# Make sure endian_target.h is reasable as if it was in the src/ dir |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
50 |
CFLAGS += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
51 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
52 |
ENDIAN_TARGETS := endian_target.h $(ENDIAN_CHECK) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
53 |
|
6523
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
54 |
# This 'sed' basicly just removes 'const' from the line if it is a 2+D array |
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
55 |
# For more information, please check: |
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
56 |
# http://maillist.openttd.org/pipermail/devs/2007-April/000284.html |
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
57 |
# http://maillist.openttd.org/pipermail/devs/2007-February/000248.html |
10239
cf55a4c21e7f
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
smatz
parents:
10220
diff
changeset
|
58 |
GCC295_FIX=sed -r 's~^(\t*)(.*)( const )([A-Za-z0-9_ ]+(\[.*\]){2,})(( = \{)|(;))(.*)$$~\1\2 \4\6\8\9~g' |
6523
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
59 |
# This 'sed' removes the 3rd '4' in the # lines of the -E output of |
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
60 |
# gcc 2.95.3 and lower, as it should indicate that it is a C-linkage, but the |
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
61 |
# compiler can't handle that information (just don't ask). So we remove it |
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
62 |
# and then it compiles happily and without bitching :) |
7256
d05502614a2c
(svn r10563) -Fix: gcc 2.95 (which is still needed for MorphOS :() does have trouble with using the protected/private variables of the enclosing class (and super classes of that enclosing class).
rubidium
parents:
6918
diff
changeset
|
63 |
# Furthermore gcc 2.95 has some trouble with protected and private when |
d05502614a2c
(svn r10563) -Fix: gcc 2.95 (which is still needed for MorphOS :() does have trouble with using the protected/private variables of the enclosing class (and super classes of that enclosing class).
rubidium
parents:
6918
diff
changeset
|
64 |
# accessing the protected/private stuff of the enclosing class (or the |
d05502614a2c
(svn r10563) -Fix: gcc 2.95 (which is still needed for MorphOS :() does have trouble with using the protected/private variables of the enclosing class (and super classes of that enclosing class).
rubidium
parents:
6918
diff
changeset
|
65 |
# super class of the enclosing class). |
10239
cf55a4c21e7f
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
smatz
parents:
10220
diff
changeset
|
66 |
GCC295_FIX_2=sed -e 's~\(^\# [0-9][0-9]* "[^"]*"[ 0-9]*\) 4$$~\1~g;s~private:~public:~g;s~protected:~public:~g' |
6523
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
67 |
|
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
68 |
# Check if we want to show what we are doing |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
69 |
ifdef VERBOSE |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
70 |
Q = |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
71 |
E = @true |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
72 |
else |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
73 |
Q = @ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
74 |
E = @echo |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
75 |
endif |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
76 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
77 |
# Our default target |
5610
68b36ebb3469
(svn r8067) -Fix (r7759): if bin/$(TTD) was removed, it did not get placed back on make unless $(TTD) got relinked.
rubidium
parents:
5587
diff
changeset
|
78 |
all: $(BIN_DIR)/$(TTD) |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
79 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
80 |
# This are 2 rules that are pointing back to STRGEN stuff. |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
81 |
# There is not really a need to have them here, but in case |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
82 |
# some weirdo wants to run 'make' in the 'src' dir and expects |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
83 |
# the languages to be recompiled, this catches that case and |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
84 |
# takes care of it nicely. |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
85 |
$(LANG_OBJS_DIR)/$(STRGEN): |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
86 |
$(MAKE) -C $(LANG_OBJS_DIR) $(STRGEN) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
87 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
88 |
$(LANG_OBJS_DIR)/table/strings.h: $(LANG_DIR)/english.txt $(LANG_OBJS_DIR)/$(STRGEN) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
89 |
$(MAKE) -C $(LANG_OBJS_DIR) table/strings.h |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
90 |
|
10085
de2d010b7db9
(svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs
parents:
10081
diff
changeset
|
91 |
# Always run version detection, so we always have an accurate modified |
de2d010b7db9
(svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs
parents:
10081
diff
changeset
|
92 |
# flag |
de2d010b7db9
(svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs
parents:
10081
diff
changeset
|
93 |
VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh") |
10091
938c2b821972
(svn r14272) -Fix [Makefile]: Always pass an explicit delimiter to the "cut" command, in
matthijs
parents:
10085
diff
changeset
|
94 |
MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ') |
9457
75f11a6caef8
(svn r13375) -Add: logging of actions that could possibly cause desyncs and crashes to simplify debugging. See readme.txt for details
smatz
parents:
7916
diff
changeset
|
95 |
|
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
96 |
ifdef REVISION |
10085
de2d010b7db9
(svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs
parents:
10081
diff
changeset
|
97 |
# Use specified revision (which should be of the form "r000"). |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
98 |
REV := $(REVISION) |
10239
cf55a4c21e7f
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
smatz
parents:
10220
diff
changeset
|
99 |
REV_NR := $(shell echo $(REVISION) | sed "s~[^0-9]~~g") |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
100 |
else |
10085
de2d010b7db9
(svn r14261) -Change [Makefile]: Move the revision detection code from Makefile.src.in to a
matthijs
parents:
10081
diff
changeset
|
101 |
# Use autodetected revisions |
10091
938c2b821972
(svn r14272) -Fix [Makefile]: Always pass an explicit delimiter to the "cut" command, in
matthijs
parents:
10085
diff
changeset
|
102 |
REV := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ') |
938c2b821972
(svn r14272) -Fix [Makefile]: Always pass an explicit delimiter to the "cut" command, in
matthijs
parents:
10085
diff
changeset
|
103 |
REV_NR := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ') |
6812
a7000b1ba9d9
(svn r10051) -Add: git "version" detection so we've got at least some indication what version we're playing when using git ;)
rubidium
parents:
6523
diff
changeset
|
104 |
endif |
a7000b1ba9d9
(svn r10051) -Add: git "version" detection so we've got at least some indication what version we're playing when using git ;)
rubidium
parents:
6523
diff
changeset
|
105 |
|
9765
509c47361e6e
(svn r13901) -Fix: make sure REV_NR isn't empty, rev.cpp would fail to compile
smatz
parents:
9457
diff
changeset
|
106 |
# Make sure we have something in REV and REV_NR |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
107 |
ifeq ($(REV),) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
108 |
REV := norev000 |
9765
509c47361e6e
(svn r13901) -Fix: make sure REV_NR isn't empty, rev.cpp would fail to compile
smatz
parents:
9457
diff
changeset
|
109 |
endif |
509c47361e6e
(svn r13901) -Fix: make sure REV_NR isn't empty, rev.cpp would fail to compile
smatz
parents:
9457
diff
changeset
|
110 |
ifeq ($(REV_NR),) |
7780
12ef69de4e60
(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
parents:
7618
diff
changeset
|
111 |
REV_NR := 0 |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
112 |
endif |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
113 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
114 |
# This helps to recompile if flags change |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
115 |
RES := $(shell if [ "`cat $(CONFIG_CACHE_COMPILER) 2>/dev/null`" != "$(CC_CFLAGS) $(CFLAGS)" ]; then echo "$(CC_CFLAGS) $(CFLAGS)" > $(CONFIG_CACHE_COMPILER); fi ) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
116 |
RES := $(shell if [ "`cat $(CONFIG_CACHE_LINKER) 2>/dev/null`" != "$(LDFLAGS) $(LIBS)" ]; then echo "$(LDFLAGS) $(LIBS)" > $(CONFIG_CACHE_LINKER); fi ) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
117 |
RES := $(shell if [ "`cat $(CONFIG_CACHE_ENDIAN) 2>/dev/null`" != "$(ENDIAN_FORCE)" ]; then echo "$(ENDIAN_FORCE)" > $(CONFIG_CACHE_ENDIAN); fi ) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
118 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
119 |
# If there is a change in the source-file-list, make sure we recheck the deps |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
120 |
RES := $(shell if [ "`cat $(CONFIG_CACHE_SOURCE) 2>/dev/null`" != "$(SRCS)" ]; then echo "$(SRCS)" > $(CONFIG_CACHE_SOURCE); fi ) |
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5535
diff
changeset
|
121 |
# If there is a change in the revision, make sure we recompile rev.cpp |
9766
dfded2c32238
(svn r13902) -Fix (r13375): rev.cpp wasn't recreated when --revision was used and the 'modified' status of sources changed
smatz
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
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
123 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
124 |
ifndef MAKEDEPEND |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
125 |
# The slow, but always correct, dep-check |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
126 |
DEP_MASK := %.d |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
127 |
DEPS := $(OBJS:%.o=%.d) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
128 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
129 |
# Only include the deps if we are compiling everything |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
130 |
ifeq ($(filter $(ENDIAN_TARGETS) %.o clean mrproper, $(MAKECMDGOALS)),) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
131 |
-include $(DEPS) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
132 |
else |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
133 |
# In case we want to compile a single target, include the .d file for it |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
134 |
ifneq ($(filter %.o, $(MAKECMDGOALS)),) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
135 |
SINGLE_DEP := $(filter %.o, $(MAKECMDGOALS)) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
136 |
-include $(SINGLE_DEP:%.o=%.d) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
137 |
endif |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
138 |
endif |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
139 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
140 |
# Find the deps via GCC. Rarely wrong, but a bit slow |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
141 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
142 |
$(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
143 |
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.c=%.c)' |
10239
cf55a4c21e7f
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
smatz
parents:
10220
diff
changeset
|
144 |
$(Q)$(CC_HOST) $(CC_CFLAGS) $(CFLAGS) -MM $< | sed 's~^$(@F:%.d=%.o):~$@ $(@:%.d=%.o):~' > $@ |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
145 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
146 |
$(OBJS_CPP:%.o=%.d): %.d: $(SRC_DIR)/%.cpp $(FILE_DEP) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
147 |
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)' |
10239
cf55a4c21e7f
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
smatz
parents:
10220
diff
changeset
|
148 |
$(Q)$(CXX_HOST) $(CFLAGS) -MM $< | sed 's~^$(@F:%.d=%.o):~$@ $(@:%.d=%.o):~' > $@ |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
149 |
|
5941
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
5650
diff
changeset
|
150 |
$(OBJS_MM:%.o=%.d): %.d: $(SRC_DIR)/%.mm $(FILE_DEP) |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
5650
diff
changeset
|
151 |
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)' |
10239
cf55a4c21e7f
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
smatz
parents:
10220
diff
changeset
|
152 |
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's~^$(@F:%.d=%.o):~$@ $(@:%.d=%.o):~' > $@ |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
153 |
|
5478
13365b9cadb8
(svn r7762) [Configure] -Fix: .rc files were not ignored in old DEP system
truelight
parents:
5475
diff
changeset
|
154 |
$(OBJS_RC:%.o=%.d): %.d: $(SRC_DIR)/%.rc $(FILE_DEP) |
5941
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
5650
diff
changeset
|
155 |
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)' |
5478
13365b9cadb8
(svn r7762) [Configure] -Fix: .rc files were not ignored in old DEP system
truelight
parents:
5475
diff
changeset
|
156 |
$(Q)touch $@ |
13365b9cadb8
(svn r7762) [Configure] -Fix: .rc files were not ignored in old DEP system
truelight
parents:
5475
diff
changeset
|
157 |
|
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
158 |
else |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
159 |
# The much faster, but can be wrong, dep-check |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
160 |
DEP_MASK := |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
161 |
DEPS := Makefile.dep |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
162 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
163 |
# Only include the deps if we are not cleaning |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
164 |
ifeq ($(filter $(ENDIAN_TARGETS) depend clean mrproper, $(MAKECMDGOALS)),) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
165 |
-include Makefile.dep |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
166 |
endif |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
167 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
168 |
# Make sure that only 'make depend' ALWAYS triggers a recheck |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
169 |
ifeq ($(filter depend, $(MAKECMDGOALS)),) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
170 |
Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(CONFIG_CACHE_SOURCE) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
171 |
else |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
172 |
Makefile.dep: FORCE |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
173 |
endif |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
174 |
$(E) '$(STAGE) DEP CHECK (all files)' |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
175 |
$(Q)rm -f Makefile.dep.tmp |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
176 |
$(Q)touch Makefile.dep.tmp |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
177 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
178 |
# Calculate the deps via makedepend |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
179 |
$(Q)$(MAKEDEPEND) -f$(SRC_OBJS_DIR)/Makefile.dep.tmp -o.o -Y -v -- $(CFLAGS_MAKEDEP) -- $(SRCS:%=$(SRC_DIR)/%) 2>/dev/null |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
180 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
181 |
# Convert x:/... paths to /x/... for mingw |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
182 |
ifeq ($(OS), MINGW) |
10239
cf55a4c21e7f
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
smatz
parents:
10220
diff
changeset
|
183 |
@cat Makefile.dep.tmp | sed 's~\([a-zA-Z]\):\/~\/\1\/~g' > Makefile.dep.tmp.mingw |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
184 |
@cp Makefile.dep.tmp.mingw Makefile.dep.tmp |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
185 |
@rm -f Makefile.dep.tmp.mingw |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
186 |
endif |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
187 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
188 |
# Remove all comments and includes that don't start with $(SRC_DIR) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
189 |
# Remove $(SRC_DIR) from object-file-name |
6081
57d2fa5e3073
(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
parents:
5979
diff
changeset
|
190 |
@$(AWK) ' \ |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
191 |
/^# DO NOT/ { print $$0 ; next} \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
192 |
/^#/ {next} \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
193 |
/:/ { \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
194 |
left = NF - 1; \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
195 |
for (n = 2; n <= NF; n++) { \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
196 |
if (match($$n, "^$(SRC_DIR)") == 0) { \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
197 |
$$n = ""; \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
198 |
left--; \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
199 |
} \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
200 |
} \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
201 |
gsub("$(SRC_DIR)/", "", $$1); \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
202 |
if (left > 0) { \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
203 |
print $$0; \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
204 |
$$1 = "Makefile.dep:"; \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
205 |
print $$0; \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
206 |
} \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
207 |
next \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
208 |
} \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
209 |
{ \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
210 |
print $$0 \ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
211 |
} \ |
10239
cf55a4c21e7f
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
smatz
parents:
10220
diff
changeset
|
212 |
' < Makefile.dep.tmp | sed 's~ *~ ~g;s~ $$~~' | $(SORT) > Makefile.dep |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
213 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
214 |
$(Q)rm -f Makefile.dep.tmp Makefile.dep.tmp.bak |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
215 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
216 |
endif |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
217 |
|
5650
abe82ec83232
(svn r8109) -Fix r5693: ignore .hpp to avoid problems with deps
glx
parents:
5610
diff
changeset
|
218 |
# Avoid problems with deps if a .h/.hpp file is deleted without the deps |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
219 |
# being updated. Now the Makefile continues, the deps are recreated |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
220 |
# and all will be fine. |
5650
abe82ec83232
(svn r8109) -Fix r5693: ignore .hpp to avoid problems with deps
glx
parents:
5610
diff
changeset
|
221 |
%.h %.hpp: |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
222 |
@true |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
223 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
224 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
225 |
# Compile all the files according to the targets |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
226 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
227 |
$(OBJS_C): %.o: $(SRC_DIR)/%.c $(DEP_MASK) $(FILE_DEP) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
228 |
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.c=%.c)' |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
229 |
$(Q)$(CC_HOST) $(CC_CFLAGS) $(CFLAGS) -c -o $@ $< |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
230 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
231 |
$(OBJS_CPP): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
232 |
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' |
6523
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
233 |
ifeq ($(GCC295), 1) |
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
234 |
$(Q)$(CXX_HOST) -E $(CFLAGS) $< | $(GCC295_FIX) | $(GCC295_FIX_2) | $(CXX_HOST) $(CFLAGS) -c -o $@ -x c++ - |
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
235 |
else |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
236 |
$(Q)$(CXX_HOST) $(CFLAGS) -c -o $@ $< |
6523
bbc566ffb999
(svn r9710) -Add: added support for GCC 2.95. This makes MorphOS target alive again. With a big thanks to tokai and Rubidium!!
truelight
parents:
6104
diff
changeset
|
237 |
endif |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
238 |
|
5941
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
5650
diff
changeset
|
239 |
$(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP) |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
5650
diff
changeset
|
240 |
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.mm=%.mm)' |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
5650
diff
changeset
|
241 |
$(Q)$(CC_HOST) $(CFLAGS) -c -o $@ $< |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
242 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
243 |
$(OBJS_RC): %.o: $(SRC_DIR)/%.rc $(FILE_DEP) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
244 |
$(E) '$(STAGE) Compiling resource $(<:$(SRC_DIR)/%.rc=%.rc)' |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
245 |
$(Q)$(WINDRES) -o $@ -I $(MEDIA_DIR) $< |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
246 |
|
5610
68b36ebb3469
(svn r8067) -Fix (r7759): if bin/$(TTD) was removed, it did not get placed back on make unless $(TTD) got relinked.
rubidium
parents:
5587
diff
changeset
|
247 |
$(BIN_DIR)/$(TTD): $(TTD) |
68b36ebb3469
(svn r8067) -Fix (r7759): if bin/$(TTD) was removed, it did not get placed back on make unless $(TTD) got relinked.
rubidium
parents:
5587
diff
changeset
|
248 |
$(Q)cp $< $@ |
68b36ebb3469
(svn r8067) -Fix (r7759): if bin/$(TTD) was removed, it did not get placed back on make unless $(TTD) got relinked.
rubidium
parents:
5587
diff
changeset
|
249 |
|
7564
fa54ab680589
(svn r11089) -Codechange: add revision detection to MSVC.
rubidium
parents:
7256
diff
changeset
|
250 |
$(TTD): $(OBJS) $(CONFIG_CACHE_LINKER) |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
251 |
$(E) '$(STAGE) Linking $@' |
5979
8209c942efd5
(svn r8678) [PSP] -Add: added LIBS and CFLAGS needed to compile PSP
truelight
parents:
5970
diff
changeset
|
252 |
ifeq ($(OS), PSP) |
6084
1bf4040cd72e
(svn r8819) [Config] -Documentation: added why we need CC_HOST for linking on PSP
truelight
parents:
6081
diff
changeset
|
253 |
# Because of a bug in the PSP GCC tools, linking via CXX results |
1bf4040cd72e
(svn r8819) [Config] -Documentation: added why we need CC_HOST for linking on PSP
truelight
parents:
6081
diff
changeset
|
254 |
# in total chaos and more problems then you can handle. So we need |
1bf4040cd72e
(svn r8819) [Config] -Documentation: added why we need CC_HOST for linking on PSP
truelight
parents:
6081
diff
changeset
|
255 |
# CC to link OpenTTD for PSP |
7564
fa54ab680589
(svn r11089) -Codechange: add revision detection to MSVC.
rubidium
parents:
7256
diff
changeset
|
256 |
$(Q)$(CC_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ |
5979
8209c942efd5
(svn r8678) [PSP] -Add: added LIBS and CFLAGS needed to compile PSP
truelight
parents:
5970
diff
changeset
|
257 |
else |
7564
fa54ab680589
(svn r11089) -Codechange: add revision detection to MSVC.
rubidium
parents:
7256
diff
changeset
|
258 |
$(Q)$(CXX_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ |
5979
8209c942efd5
(svn r8678) [PSP] -Add: added LIBS and CFLAGS needed to compile PSP
truelight
parents:
5970
diff
changeset
|
259 |
endif |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
260 |
ifdef STRIP |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
261 |
$(Q)$(STRIP) $@ |
10385
4f9838649c7f
(svn r14636) -Add: DOS port of OpenTTD, without network support though.
rubidium
parents:
10239
diff
changeset
|
262 |
ifeq ($(OS), DOS) |
4f9838649c7f
(svn r14636) -Add: DOS port of OpenTTD, without network support though.
rubidium
parents:
10239
diff
changeset
|
263 |
$(E) '$(STAGE) Adding CWSDPMI stub to $@' |
4f9838649c7f
(svn r14636) -Add: DOS port of OpenTTD, without network support though.
rubidium
parents:
10239
diff
changeset
|
264 |
$(Q)$(ROOT_DIR)/os/dos/make_dos_binary_selfcontained.sh $(SRC_OBJS_DIR)/$@ |
4f9838649c7f
(svn r14636) -Add: DOS port of OpenTTD, without network support though.
rubidium
parents:
10239
diff
changeset
|
265 |
endif |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
266 |
endif |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
267 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
268 |
# The targets to compile the endian-code |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
269 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
270 |
endian_target.h: $(ENDIAN_CHECK) $(CONFIG_CACHE_ENDIAN) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
271 |
$(E) '$(STAGE) Testing endianness for target' |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
272 |
$(Q)./$(ENDIAN_CHECK) $(ENDIAN_FORCE) > $@ |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
273 |
|
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5535
diff
changeset
|
274 |
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
275 |
$(E) '$(STAGE) Compiling and Linking $@' |
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5535
diff
changeset
|
276 |
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $< -o $@ |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
277 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
278 |
# Revision files |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
279 |
|
7564
fa54ab680589
(svn r11089) -Codechange: add revision detection to MSVC.
rubidium
parents:
7256
diff
changeset
|
280 |
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in |
10239
cf55a4c21e7f
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
smatz
parents:
10220
diff
changeset
|
281 |
$(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
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
282 |
|
7564
fa54ab680589
(svn r11089) -Codechange: add revision detection to MSVC.
rubidium
parents:
7256
diff
changeset
|
283 |
$(SRC_DIR)/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/ottdres.rc.in |
10239
cf55a4c21e7f
(svn r14467) -Fix [FS#2350](r14443): use '~' instead of '#' as sed separator, it could be understood in a wrong way by shell
smatz
parents:
10220
diff
changeset
|
284 |
$(Q)cat $(SRC_DIR)/ottdres.rc.in | sed "s~@@REVISION@@~$(REV_NR)~g;s~@@VERSION@@~$(REV)~g;s~@@DATE@@~`date +%d.%m.%y`~g" > $(SRC_DIR)/ottdres.rc |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
285 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
286 |
FORCE: |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
287 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
288 |
depend: $(DEPS) |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
289 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
290 |
clean: |
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
291 |
$(E) '$(STAGE) Cleaning up object files' |
7564
fa54ab680589
(svn r11089) -Codechange: add revision detection to MSVC.
rubidium
parents:
7256
diff
changeset
|
292 |
$(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(TTD:%=$(BIN_DIR)/%) $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_ENDIAN) $(CONFIG_CACHE_SOURCE) $(ENDIAN_TARGETS) |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
293 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
294 |
mrproper: clean |
7564
fa54ab680589
(svn r11089) -Codechange: add revision detection to MSVC.
rubidium
parents:
7256
diff
changeset
|
295 |
$(Q)rm -f $(SRC_DIR)/rev.cpp $(SRC_DIR)/ottdres.rc |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
296 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
297 |
%.o: |
5970
257bde043070
(svn r8658) -Fix r8605: missed an error message renaming from m to mm (objC to objC++)
bjarni
parents:
5941
diff
changeset
|
298 |
@echo '$(STAGE) No such source-file: $(@:%.o=%).[c|cpp|mm|rc]' |
5475
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
299 |
|
2e6990a8c7c4
(svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff
changeset
|
300 |
.PHONY: all mrproper depend clean FORCE |