makefiledir/Makefile.config_writer
author bjarni
Wed, 15 Mar 2006 14:03:09 +0000
changeset 3211 a0f00b66cfad
parent 3042 227101cb98ca
child 3311 138e38fa6fda
permissions -rw-r--r--
(svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
Instead of compiling a binary for each arch and then join them in the end, each .o file is now compiled as a fat file
This means that the makefile will not call itself to make a binary for each target and we don't have to make clean between each build
it also means that if one file changed, we don't have to recompile all files
Another benefit is since it's handled at .o level and though LDFLAGS, no special code is needed if we decide to compile more binaries (like a lot of stuff used to happen at post linking)
We also needs much less flags to set up, so it should be even easier to get to work out of the box now
The tradeoff in doing so is that now the binary needs at least OSX 10.3.9 to execute
To deal with this issue, the JAGUAR flag can be used to compile for older OSes. We will release a binary for old OSes at next release to see if anybody even downloads it (not that many people use OSX 10.2 anymore)
GPMI will not work on 10.2 anyway so we will cut support for it some day anyway
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     1
# This file generates Makefile.config
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     2
# Create default config from autodetected values
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     3
# Magic at work, note that you can't use commas in arguments for this
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     4
CONFIG_LINE=@$(SHELL) -c 'echo $(1)' >> $(MAKE_CONFIG) 2> /dev/null
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     5
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
     6
$(MAKE_CONFIG):
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
     7
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     8
	touch $(MAKE_CONFIG)
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
     9
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    10
	$(call CONFIG_LINE,\# OpenTTD config file for makefile)
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    11
	$(call CONFIG_LINE,\# Set your options here - 1 for use and empty for disable)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    12
	$(call CONFIG_LINE,)
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    13
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    14
	$(call CONFIG_LINE,\# User setup flags)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    15
	$(call CONFIG_LINE,\# Translator: adds TODO to any untranslated strings)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    16
	$(call CONFIG_LINE,\# MIDI: sets path to midi player)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    17
	$(call CONFIG_LINE,\# MIDI_ARG: sets an argument which is used when calling the midi player. Default off)
180
47ee14fe2b35 (svn r181) Makefile: enabled ability to supress output of missing strings in lng files
bjarni
parents: 0
diff changeset
    18
	$(call CONFIG_LINE,\# SUPRESS_LANG_ERRORS: supresses output about missing and mismatched strings)
804
3288a1c6d133 (svn r1274) Makefile: networking is not longer experimental
bjarni
parents: 561
diff changeset
    19
	$(call CONFIG_LINE,\# WITH_NETWORK: makes OpenTTD able to play multiplayer using TCP and UDP)
3288a1c6d133 (svn r1274) Makefile: networking is not longer experimental
bjarni
parents: 561
diff changeset
    20
	$(call CONFIG_LINE,\# DEDICATED: compiles a dedicated server. This one can only host using a CLI, but do not need SDL)
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    21
	$(call CONFIG_LINE,STATIC:=$(STATIC))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    22
	$(call CONFIG_LINE,TRANSLATOR:=$(TRANSLATOR))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    23
	$(call CONFIG_LINE,DEBUG:=$(DEBUG))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    24
	$(call CONFIG_LINE,PROFILE:=$(PROFILE))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    25
	$(call CONFIG_LINE,MIDI:=$(MIDI))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    26
	$(call CONFIG_LINE,MIDI_ARG:=$(MIDI_ARG))
180
47ee14fe2b35 (svn r181) Makefile: enabled ability to supress output of missing strings in lng files
bjarni
parents: 0
diff changeset
    27
	$(call CONFIG_LINE,SUPRESS_LANG_ERRORS:=$(SUPRESS_LANG_ERRORS))
2197
ffa3d1f9d1be (svn r2712) Overhaul DirectMusic MIDI backend:
tron
parents: 2033
diff changeset
    28
	$(call CONFIG_LINE,WITH_DIRECTMUSIC:=$(WITH_DIRECTMUSIC))
804
3288a1c6d133 (svn r1274) Makefile: networking is not longer experimental
bjarni
parents: 561
diff changeset
    29
	$(call CONFIG_LINE,WITH_NETWORK:=$(WITH_NETWORK))
3288a1c6d133 (svn r1274) Makefile: networking is not longer experimental
bjarni
parents: 561
diff changeset
    30
	$(call CONFIG_LINE,DEDICATED:=$(DEDICATED))
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    31
	$(call CONFIG_LINE,)
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    32
348
3345a78d37e4 (svn r531) Makefile: made asserts enabled by default
bjarni
parents: 347
diff changeset
    33
	$(call CONFIG_LINE,\# Disable asserts. Leave them on for easier bug finding)
3345a78d37e4 (svn r531) Makefile: made asserts enabled by default
bjarni
parents: 347
diff changeset
    34
	$(call CONFIG_LINE,DISABLE_ASSERTS:=$(DISABLE_ASSERTS))
347
8b6874b7ed27 (svn r530) Makefile: added ability to switch asserts on and off
bjarni
parents: 285
diff changeset
    35
	$(call CONFIG_LINE,)
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    36
285
cf5213c8a919 (svn r291) Minor fix to english.txt
bjarni
parents: 180
diff changeset
    37
	$(call CONFIG_LINE,\# See Makefile for details on these paths)
cf5213c8a919 (svn r291) Minor fix to english.txt
bjarni
parents: 180
diff changeset
    38
	$(call CONFIG_LINE,\# Folders should not end with /)
cf5213c8a919 (svn r291) Minor fix to english.txt
bjarni
parents: 180
diff changeset
    39
	$(call CONFIG_LINE,INSTALL:=$(INSTALL))
cf5213c8a919 (svn r291) Minor fix to english.txt
bjarni
parents: 180
diff changeset
    40
	$(call CONFIG_LINE,PREFIX:=$(PREFIX))
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    41
	$(call CONFIG_LINE,BINARY_DIR:=$(BINARY_DIR))
285
cf5213c8a919 (svn r291) Minor fix to english.txt
bjarni
parents: 180
diff changeset
    42
	$(call CONFIG_LINE,DATA_DIR:=$(DATA_DIR))
2901
c9a1a969b017 (svn r3456) - Feature: [Makefile] Icons can now be installed in a seperate directory.
matthijs
parents: 2835
diff changeset
    43
	$(call CONFIG_LINE,ICON_DIR:=$(ICON_DIR))
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    44
	$(call CONFIG_LINE,USE_HOMEDIR:=$(USE_HOMEDIR))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    45
	$(call CONFIG_LINE,PERSONAL_DIR:=$(PERSONAL_DIR))
561
9a0c469a251c (svn r970) Added 2nd data path for all non-windows OSes
bjarni
parents: 549
diff changeset
    46
	$(call CONFIG_LINE,SECOND_DATA_PATH:=$(SECOND_DATA_PATH))
9a0c469a251c (svn r970) Added 2nd data path for all non-windows OSes
bjarni
parents: 549
diff changeset
    47
	$(call CONFIG_LINE,CUSTOM_LANG_PATH:=$(CUSTOM_LANG_PATH))
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    48
	$(call CONFIG_LINE,)
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    49
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    50
	$(call CONFIG_LINE,\# Flag to skip test for OS when building static)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    51
	$(call CONFIG_LINE,\# OpenTTD have only been succesfully tested with static builds on MorphOS and MacOSX)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    52
	$(call CONFIG_LINE,\# If you want to try anyway on other OSes, set this flag)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    53
	$(call CONFIG_LINE,\# Inform us if you have success)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    54
	$(call CONFIG_LINE,SKIP_STATIC_CHECK:=$(SKIP_STATIC_CHECK))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    55
	$(call CONFIG_LINE,)
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    56
	$(call CONFIG_LINE,)
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    57
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    58
	$(call CONFIG_LINE,\# Everything below this line is autogenerated)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    59
	$(call CONFIG_LINE,\#)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    60
	$(call CONFIG_LINE,\# If you need to change anything below, you should run "make upgradeconf")
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    61
	$(call CONFIG_LINE,\# If that does not fix the problem, you should make a bug report.)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    62
	$(call CONFIG_LINE,\# It would really help if you could tell how to autodetect the missing setting)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    63
	$(call CONFIG_LINE,\# That info could be where the missing lib is placed)
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    64
	$(call CONFIG_LINE,)
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    65
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    66
	$(call CONFIG_LINE,\# Libs)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    67
	$(call CONFIG_LINE,WITH_ZLIB:=$(WITH_ZLIB))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    68
	$(call CONFIG_LINE,WITH_SDL:=$(WITH_SDL))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    69
	$(call CONFIG_LINE,WITH_PNG:=$(WITH_PNG))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    70
	$(call CONFIG_LINE,STATIC_ZLIB_PATH:=$(STATIC_ZLIB_PATH))
2736
3d6487cbbb69 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2731
diff changeset
    71
	$(call CONFIG_LINE,WITH_COCOA:=$(WITH_COCOA))
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    72
	$(call CONFIG_LINE,)
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    73
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    74
	$(call CONFIG_LINE,\# OS flags)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    75
	$(call CONFIG_LINE,WIN32:=$(WIN32))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    76
	$(call CONFIG_LINE,UNIX:=$(UNIX))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    77
	$(call CONFIG_LINE,OSX:=$(OSX))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    78
	$(call CONFIG_LINE,FREEBSD:=$(FREEBSD))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    79
	$(call CONFIG_LINE,MORPHOS:=$(MORPHOS))
421
3dd9b5a439af (svn r619) Add the necessary bits to make building under BeOS using GNU Make work
tron
parents: 348
diff changeset
    80
	$(call CONFIG_LINE,BEOS:=$(BEOS))
446
7a92ca9738e2 (svn r655) Add the necessary bits to make building on SunOS/Solaris work
tron
parents: 421
diff changeset
    81
	$(call CONFIG_LINE,SUNOS:=$(SUNOS))
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    82
	$(call CONFIG_LINE,CYGWIN:=$(CYGWIN))
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    83
	$(call CONFIG_LINE,MINGW:=$(MINGW))
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    84
	$(call CONFIG_LINE,)
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    85
2713
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2688
diff changeset
    86
	$(call CONFIG_LINE,\# Universal binary setup)
2728
8f50c839cd17 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    87
	$(call CONFIG_LINE,\# use these settings for building universal binaries. Most systems should work with the default settings)
3211
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3042
diff changeset
    88
	$(call CONFIG_LINE,CFLAGS_UNIVERSAL:=$(CFLAGS_UNIVERSAL))
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3042
diff changeset
    89
	$(call CONFIG_LINE,LDFLAGS_UNIVERSAL:=$(LDFLAGS_UNIVERSAL))
2728
8f50c839cd17 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    90
3211
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3042
diff changeset
    91
	$(call CONFIG_LINE,CFLAGS_JAGUAR:=$(CFLAGS_JAGUAR))
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3042
diff changeset
    92
	$(call CONFIG_LINE,LDFLAGS_JAGUAR:=$(LDFLAGS_JAGUAR))
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3042
diff changeset
    93
	$(call CONFIG_LINE,)
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3042
diff changeset
    94
	$(call CONFIG_LINE,G5_FLAGS:=$(G5_FLAGS))
2722
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents: 2717
diff changeset
    95
	$(call CONFIG_LINE,)
2713
9c42385e4f41 (svn r3258) -Feature: [OSX] added support for universal binaries
bjarni
parents: 2688
diff changeset
    96
1692
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    97
	$(call CONFIG_LINE,\# For cross-compiling)
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    98
	$(call CONFIG_LINE,CC_TARGET:=$(CC_TARGET))
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    99
	$(call CONFIG_LINE,CC_HOST:=$(CC_HOST))
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
   100
	$(call CONFIG_LINE,CFLAGS_HOST:=$(CFLAGS_HOST))
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
   101
	$(call CONFIG_LINE,WINDRES:=$(WINDRES))
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
   102
	$(call CONFIG_LINE,ENDIAN_FORCE:=$(ENDIAN_FORCE))
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
   103
	$(call CONFIG_LINE,)
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
   104
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   105
	$(call CONFIG_LINE,\# misc)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   106
	$(call CONFIG_LINE,SDL-CONFIG:=$(SDL-CONFIG))
1955
793bb2e9f1d3 (svn r2461) -Feature [Makefile] libpng-config can now be called something else in Makefile.config
bjarni
parents: 1692
diff changeset
   107
	$(call CONFIG_LINE,LIBPNG-CONFIG:=$(LIBPNG-CONFIG))
421
3dd9b5a439af (svn r619) Add the necessary bits to make building under BeOS using GNU Make work
tron
parents: 348
diff changeset
   108
	$(call CONFIG_LINE,BEOS_NET_SERVER:=$(BEOS_NET_SERVER))
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   109
	$(call CONFIG_LINE,CONFIG_INCLUDED:=yes)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   110
	$(call CONFIG_LINE,PATH_SET:=$(PATH_SET))
180
47ee14fe2b35 (svn r181) Makefile: enabled ability to supress output of missing strings in lng files
bjarni
parents: 0
diff changeset
   111
	$(call CONFIG_LINE,CONFIG_VERSION:=$(MAKEFILE_VERSION))