13c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar
23c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel DunbarDescription := Target for Darwin using an Apple-style build.
33c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar
41ace4055f79f304750839d73c46bbcaeb994f1b5Eric ChristopherConfigs := Debug Release Profile Static
53c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar
63c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar# We override this with RC_ARCHS because B&I may want to build on an ARCH we
73c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar# haven't explicitly defined support for. If all goes well, this will just work
83c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar# and the resulting lib will just have generic versions for anything unknown.
93c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel DunbarUniversalArchs := $(RC_ARCHS)
103c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar
119435c40640a531a49e6b43850b431f20061f225cNick Kledzikifneq (,$(SDKROOT))
12f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson	override CC := $(shell xcrun -sdk $(SDKROOT) -find clang || echo "false") 
13f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson	AR := $(shell xcrun -sdk $(SDKROOT) -find ar || echo "false") 
14f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson	RANLIB := $(shell xcrun -sdk $(SDKROOT) -find ranlib || echo "false") 
15f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson	STRIP := $(shell xcrun -sdk $(SDKROOT) -find strip || echo "false") 
16f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson	LIPO := $(shell xcrun -sdk $(SDKROOT) -find lipo || echo "false")
17f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson	DSYMUTIL := $(shell xcrun -sdk $(SDKROOT) -find dsymutil || echo "false")
189435c40640a531a49e6b43850b431f20061f225cNick Kledzikendif
199435c40640a531a49e6b43850b431f20061f225cNick Kledzik
209435c40640a531a49e6b43850b431f20061f225cNick Kledzikifneq ($(IPHONEOS_DEPLOYMENT_TARGET),)
219435c40640a531a49e6b43850b431f20061f225cNick Kledzik	DEPLOYMENT_FLAGS := -miphoneos-version-min=$(IPHONEOS_DEPLOYMENT_TARGET) 
2262d7d5fdd6db131361f865fe96f5ce4e3b2738a9Nick Kledzikelse
239435c40640a531a49e6b43850b431f20061f225cNick Kledzik	ifneq ($(MACOSX_DEPLOYMENT_TARGET),)
249435c40640a531a49e6b43850b431f20061f225cNick Kledzik		DEPLOYMENT_FLAGS := -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET) 
259435c40640a531a49e6b43850b431f20061f225cNick Kledzik	endif
2662d7d5fdd6db131361f865fe96f5ce4e3b2738a9Nick Kledzikendif
2762d7d5fdd6db131361f865fe96f5ce4e3b2738a9Nick Kledzik
289435c40640a531a49e6b43850b431f20061f225cNick Kledzikifneq (,$(SDKROOT))
299435c40640a531a49e6b43850b431f20061f225cNick Kledzik	DEPLOYMENT_FLAGS += -isysroot $(SDKROOT)
309435c40640a531a49e6b43850b431f20061f225cNick Kledzikendif
31182800c03b0e14da4a9afd94cda44bf606fcda5fNick Kledzik
329435c40640a531a49e6b43850b431f20061f225cNick KledzikCFLAGS := -Wall -Os -fomit-frame-pointer -g $(DEPLOYMENT_FLAGS)
339435c40640a531a49e6b43850b431f20061f225cNick KledzikCFLAGS.Static := $(CFLAGS) -static  
349435c40640a531a49e6b43850b431f20061f225cNick KledzikDYLIB_FLAGS := $(DEPLOYMENT_FLAGS) \
359435c40640a531a49e6b43850b431f20061f225cNick Kledzik		-Xarch_arm -Wl,-alias_list,$(SRCROOT)/lib/arm/softfloat-alias.list
36afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik
37afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick KledzikVISIBILITY_HIDDEN := 0
38afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick KledzikVISIBILITY_HIDDEN.Static  := 1
39182800c03b0e14da4a9afd94cda44bf606fcda5fNick Kledzik
40182800c03b0e14da4a9afd94cda44bf606fcda5fNick Kledzik
413c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel DunbarFUNCTIONS := absvdi2 absvsi2 addvdi3 addvsi3 ashldi3 ashrdi3 \
423c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar             clzdi2 clzsi2 cmpdi2 ctzdi2 ctzsi2 \
433c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar             divdc3 divdi3 divsc3 ffsdi2 \
443c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar             fixdfdi fixsfdi fixunsdfdi fixunsdfsi fixunssfdi \
453c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar             fixunssfsi floatdidf floatdisf floatundidf floatundisf \
46f6f88f3d3e93946d0e51886b359cd70d065c4800Eric Christopher             gcc_personality_v0 lshrdi3 moddi3 muldc3 muldi3 mulosi4 \
47f6f88f3d3e93946d0e51886b359cd70d065c4800Eric Christopher             mulodi4 muloti4 mulsc3 mulvdi3 mulvsi3 negdi2 negvdi2 negvsi2 \
483c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar             paritydi2 paritysi2 popcountdi2 popcountsi2 powidf2 \
493c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar             powisf2 subvdi3 subvsi3 ucmpdi2 udivdi3 \
50e04a1fdc5d173586408421144a0cd79d1767f918Nick Kledzik             udivmoddi4 umoddi3 apple_versioning eprintf atomic
513c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar
523c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel DunbarFUNCTIONS.i386 := $(FUNCTIONS) \
533c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                divxc3 fixunsxfdi fixunsxfsi fixxfdi floatdixf \
543c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                floatundixf mulxc3 powixf2 clear_cache \
553c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                enable_execute_stack
563c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel DunbarFUNCTIONS.ppc := $(FUNCTIONS) \
573c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                divtc3 fixtfdi fixunstfdi floatditf floatunditf \
583c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                gcc_qadd gcc_qdiv gcc_qmul gcc_qsub multc3 \
593c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                powitf2 restFP saveFP trampoline_setup \
603c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                clear_cache enable_execute_stack
613c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel DunbarFUNCTIONS.x86_64 := $(FUNCTIONS) \
623c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                absvti2 addvti3 ashlti3 ashrti3 clzti2 cmpti2 \
633c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                ctzti2 divti3 divxc3 ffsti2 fixdfti fixsfti \
643c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                fixunsdfti fixunssfti fixunsxfdi fixunsxfsi \
653c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                fixunsxfti fixxfdi fixxfti floatdixf floattidf \
663c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                floattisf floattixf floatundixf floatuntidf \
673c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                floatuntisf floatuntixf lshrti3 modti3 multi3 \
68f6f88f3d3e93946d0e51886b359cd70d065c4800Eric Christopher                muloti4 mulvti3 mulxc3 negti2 negvti2 parityti2 \
693c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                popcountti2 powixf2 subvti3 ucmpti2 udivmodti4 \
703c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                udivti3 umodti3 clear_cache enable_execute_stack
71a11b52f4527d2b3f0a9ac10c9aa7a67aa1ff8272Nick Kledzik
72a11b52f4527d2b3f0a9ac10c9aa7a67aa1ff8272Nick KledzikFUNCTIONS.armv4t := $(FUNCTIONS) 
73a11b52f4527d2b3f0a9ac10c9aa7a67aa1ff8272Nick Kledzik
743c2c684ce20c998bc027c162b7db853a43864e5cNick KledzikFUNCTIONS.armv5 := $(FUNCTIONS) \
753c2c684ce20c998bc027c162b7db853a43864e5cNick Kledzik                adddf3 addsf3 bswapdi2 bswapsi2  \
763c2c684ce20c998bc027c162b7db853a43864e5cNick Kledzik                comparedf2 comparesf2 extendsfdf2 \
773c2c684ce20c998bc027c162b7db853a43864e5cNick Kledzik                divdf3 divsf3 \
783c2c684ce20c998bc027c162b7db853a43864e5cNick Kledzik                fixdfsi fixsfsi fixunsdfsi fixunssfsi \
793c2c684ce20c998bc027c162b7db853a43864e5cNick Kledzik                floatsidf floatsisf floatunsidf floatunsisf \
803c2c684ce20c998bc027c162b7db853a43864e5cNick Kledzik                muldf3 mulsf3 \
813c2c684ce20c998bc027c162b7db853a43864e5cNick Kledzik                negdf2 negsf2 \
823c2c684ce20c998bc027c162b7db853a43864e5cNick Kledzik                truncdfsf2  \
835c0809916b70dbb754cf0c999e2923909e5603c6Nick Kledzik                modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4 \
843c2c684ce20c998bc027c162b7db853a43864e5cNick Kledzik                switch8 switchu8 switch16 switch32 \
851ace4055f79f304750839d73c46bbcaeb994f1b5Eric Christopher                sync_synchronize
865c0809916b70dbb754cf0c999e2923909e5603c6Nick Kledzik
873c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel DunbarFUNCTIONS.armv6 := $(FUNCTIONS) \
888dd243303ae52a4bd6b389516a412eab32b25516Nick Kledzik				comparedf2 comparesf2 \
893c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                adddf3vfp addsf3vfp bswapdi2 bswapsi2 divdf3vfp \
903c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                divsf3vfp eqdf2vfp eqsf2vfp extendsfdf2vfp \
913c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                fixdfsivfp fixsfsivfp fixunsdfsivfp fixunssfsivfp \
923c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                floatsidfvfp floatsisfvfp floatunssidfvfp floatunssisfvfp \
933c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                gedf2vfp gesf2vfp gtdf2vfp gtsf2vfp \
943c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                ledf2vfp lesf2vfp ltdf2vfp ltsf2vfp \
953c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                muldf3vfp mulsf3vfp \
964e8f12f9a62377bbe2ef1f02b3c1ef9b8f8d1407Nick Kledzik                nedf2vfp nesf2vfp \
973c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar                subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
985c0809916b70dbb754cf0c999e2923909e5603c6Nick Kledzik                modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4 \
99afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik                switch8 switchu8 switch16 switch32 \
100afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik                restore_vfp_d8_d15_regs save_vfp_d8_d15_regs \
1011ace4055f79f304750839d73c46bbcaeb994f1b5Eric Christopher                sync_synchronize
1025c0809916b70dbb754cf0c999e2923909e5603c6Nick Kledzik
103afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick KledzikFUNCTIONS.armv7 := $(FUNCTIONS) \
1048dd243303ae52a4bd6b389516a412eab32b25516Nick Kledzik				comparedf2 comparesf2 \
105afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik                adddf3vfp addsf3vfp bswapdi2 bswapsi2 divdf3vfp \
106afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik                divsf3vfp eqdf2vfp eqsf2vfp extendsfdf2vfp \
107afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik                fixdfsivfp fixsfsivfp fixunsdfsivfp fixunssfsivfp \
108afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik                floatsidfvfp floatsisfvfp floatunssidfvfp floatunssisfvfp \
109afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik                gedf2vfp gesf2vfp gtdf2vfp gtsf2vfp \
110afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik                ledf2vfp lesf2vfp ltdf2vfp ltsf2vfp \
111afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik                muldf3vfp mulsf3vfp \
1124e8f12f9a62377bbe2ef1f02b3c1ef9b8f8d1407Nick Kledzik                nedf2vfp nesf2vfp \
113afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik                subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
1145c0809916b70dbb754cf0c999e2923909e5603c6Nick Kledzik                modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4
115004c4340248841aefe5a23d1d20556ac801c871dBob Wilson
116004c4340248841aefe5a23d1d20556ac801c871dBob WilsonFUNCTIONS.armv7s := $(FUNCTIONS.armv7)
117004c4340248841aefe5a23d1d20556ac801c871dBob Wilson
118