148464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar# Configurations to build
248464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#
348464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar# This section must define:
448464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#   Description - A description of this target.
548464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#   Configs - The names of each configuration to build; this is used to build
648464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#             multiple libraries inside a single configuration file (for
748464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#             example, Debug and Release builds, or builds with and without
848464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#             software floating point).
948464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#
1048464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar# This section must define one of:
112d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#   UniversalArchs - A list of architectures to build for, when using universal build
1248464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#           support (e.g., on Darwin). This should only be used to build fat
1348464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#           libraries, simply building multiple libraries for different
1448464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#           architectures should do so using distinct configs, with the
1548464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#           appropriate choices for CC and CFLAGS.
1648464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#
1748464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#   Arch - The target architecture; this must match the compiler-rt name for the
1848464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#          architecture and is used to find the appropriate function
1948464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#          implementations.
2048464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#
2148464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar# When not universal builds, this section may define:
2248464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#   Arch.<Config Name> - Set the target architecture on a per-config basis.
2348464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar
2448464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarDescription := Target for building universal libraries for Darwin.
2548464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar
2648464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarConfigs := Debug Release Profile
275e06e18068122930df7295fa9ddc03ba41c702d8Daniel DunbarUniversalArchs := i386 x86_64
2848464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar
2948464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar# Platform Options
3048464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#
3148464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar# This section may override any of the variables in make/options.mk, using:
3248464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#   <Option Name> := ... option value ...
3348464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#
3448464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar# See make/options.mk for the available options and their meanings. Options can
3548464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar# be override on a per-config, per-arch, or per-config-and-arch basis using:
3648464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#   <Option Name>.<Config Name> := ...
3748464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#   <Option Name>.<Arch Name> := ...
3848464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar#   <Option Name>.<Config Name>.<Arch Name> := ...
3948464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar
4055812b55319abed4fc77fdcb29310fe60b275717Daniel DunbarCC := clang
4148464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar
4248464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarCFLAGS := -Wall -Werror
4348464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarCFLAGS.Debug := $(CFLAGS) -g
4448464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarCFLAGS.Release := $(CFLAGS) -O3 -fomit-frame-pointer
4548464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarCFLAGS.Profile := $(CFLAGS) -pg -g
4648464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar
4748464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarFUNCTIONS.i386 := $(CommonFunctions) $(ArchFunctions.i386)
4848464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarFUNCTIONS.ppc := $(CommonFunctions) $(ArchFunctions.ppc)
4948464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarFUNCTIONS.x86_64 := $(CommonFunctions) $(ArchFunctions.x86_64)
503c2c684ce20c998bc027c162b7db853a43864e5cNick KledzikFUNCTIONS.armv5 := $(CommonFunctions) $(ArchFunctions.armv5)
5148464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarFUNCTIONS.armv6 := $(CommonFunctions) $(ArchFunctions.armv6)
5248464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarFUNCTIONS.armv7 := $(CommonFunctions) $(ArchFunctions.armv7)
5348464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel Dunbar
5448464e0ee1c2de5bcbf0d609348f55d0c301085dDaniel DunbarOPTIMIZED.Debug := 0
556a571fb3c515c5ea53308ba0eda750e8dd76ef6bDaniel Dunbar
566a571fb3c515c5ea53308ba0eda750e8dd76ef6bDaniel DunbarVISIBILITY_HIDDEN := 1
57