config.mk revision b3a6901e66f55b35aa9e01bcb24134e6a65ea004
1b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar###
2b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# Configuration variables.
3b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
4b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# Assume make is always run from top-level of source directory. Note
5b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# than an Apple style build overrides these variables later in the
6b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# makefile.
7b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarProjSrcRoot := $(shell pwd)
8b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarProjObjRoot := $(ProjSrcRoot)
9b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
10b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarConfigs := Debug Release Profile
11b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarArchs := i386 ppc x86_64
12b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
13b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarCommon.CFLAGS := -Wall -Werror
14b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
15b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# These names must match the configs, see GetArgs function.
16b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarDebug.CFLAGS := -g
17b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarRelease.CFLAGS := -O3 -fomit-frame-pointer
18b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarProfile.CFLAGS := -pg -g
19b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
20b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# Function: GetArgs config arch
21b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#
22b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# Return the compiler flags for the given config & arch.
23b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarGetArgs = $(if $($(1).CFLAGS),$(Common.CFLAGS) $($(1).CFLAGS) -arch $(2), \
24b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar		$(error "Invalid configuration: $(1)"))
25b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
26b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar###
27b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# Tool configuration variables.
28b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
29b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarCC := gcc
30b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# FIXME: LLVM uses autoconf/mkinstalldirs ?
31b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarMKDIR := mkdir -p
32b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarDATE := date
33b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarAR := ar
34b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# FIXME: Remove these pipes once ranlib errors are fixed.
35b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarAR.Flags := cru 2> /dev/null
36b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarRANLIB := ranlib
37b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# FIXME: Remove these pipes once ranlib errors are fixed.
38b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarRANLIB.Flags := 2> /dev/null
39b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarLIPO := lipo
40b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
41b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar###
42b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# Automatic and derived variables.
43b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
44b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# Adjust settings for verbose mode
45b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarifndef VERBOSE
46b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar  Verb := @
47b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarelse
48b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar  Verb := 
49b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarendif
50b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
51b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarEcho := @echo
52b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarArchive := $(AR) $(AR.Flags)
53b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarRanlib := $(RANLIB) $(RANLIB.Flags)
54b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarLipo := $(LIPO)
55b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarifndef Summary
56b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar	Summary = $(Echo)
57b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarendif
58