makefiledir/Makefile.config_writer
author bjarni
Wed, 29 Mar 2006 16:28:41 +0000
changeset 3354 245157a5eafe
parent 3313 735b30b93dc2
child 3380 2d02cfdf6d14
permissions -rw-r--r--
(svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
Now OSX stores object files in .OSX and instead of making FAT object files, there are one for each architecture
Each architecture got their own targets to make a non-FAT binary and in the end, lipo will merge them into one binary

It's now possible to select which architectures you want to support by defining OTTD_PPC, OTTD_PPC970 (G5) and/or OTTD_i386
All combos are supported. UNIVERSAL_BINARY and TRIPLE_BINARY can still be used even though it's possible to gain the same result by using the new flags
Making a universal build when you already got part of it compiled (say the PPC part), it will reuse it and only compile the i386 part to save time
Note: in some cases when you switch flags, you risk that openttd is not updated. Delete it and try again. The Makefile can't solve this except if it forces linking each time

This fixes: FS#87 universal binary building borked in 0.4.7
Now universal binaries work on OSX 10.3.9 again

Building universal binaries no longer needs to store flags in Makefile.config as the new design makes it possible to figure everything out automatically
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
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    86
	$(call CONFIG_LINE,\# For cross-compiling)
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    87
	$(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
    88
	$(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
    89
	$(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
    90
	$(call CONFIG_LINE,WINDRES:=$(WINDRES))
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    91
	$(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
    92
	$(call CONFIG_LINE,)
0b52df38cabc (svn r2196) -Change: updated the Makefile, now it works for crossplatform compiling
TrueLight
parents: 804
diff changeset
    93
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    94
	$(call CONFIG_LINE,\# misc)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    95
	$(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
    96
	$(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
    97
	$(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
    98
	$(call CONFIG_LINE,CONFIG_INCLUDED:=yes)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    99
	$(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
   100
	$(call CONFIG_LINE,CONFIG_VERSION:=$(MAKEFILE_VERSION))