Home | History | Annotate | Download | only in platform
      1 
      2 Description := Target for Darwin using an Apple-style build.
      3 
      4 Configs := Debug Release Profile Static
      5 
      6 # We override this with RC_ARCHS because B&I may want to build on an ARCH we
      7 # haven't explicitly defined support for. If all goes well, this will just work
      8 # and the resulting lib will just have generic versions for anything unknown.
      9 UniversalArchs := $(RC_ARCHS)
     10 
     11 ifneq (,$(SDKROOT))
     12 	override CC := $(shell xcrun -sdk $(SDKROOT) -find clang || echo "false") 
     13 	AR := $(shell xcrun -sdk $(SDKROOT) -find ar || echo "false") 
     14 	RANLIB := $(shell xcrun -sdk $(SDKROOT) -find ranlib || echo "false") 
     15 	STRIP := $(shell xcrun -sdk $(SDKROOT) -find strip || echo "false") 
     16 	LIPO := $(shell xcrun -sdk $(SDKROOT) -find lipo || echo "false")
     17 	DSYMUTIL := $(shell xcrun -sdk $(SDKROOT) -find dsymutil || echo "false")
     18 endif
     19 
     20 ifneq ($(IPHONEOS_DEPLOYMENT_TARGET),)
     21 	DEPLOYMENT_FLAGS := -miphoneos-version-min=$(IPHONEOS_DEPLOYMENT_TARGET) 
     22 else
     23 	ifneq ($(MACOSX_DEPLOYMENT_TARGET),)
     24 		DEPLOYMENT_FLAGS := -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET) 
     25 	endif
     26 endif
     27 
     28 ifneq (,$(SDKROOT))
     29 	DEPLOYMENT_FLAGS += -isysroot $(SDKROOT)
     30 endif
     31 
     32 CFLAGS := -Wall -Os -fomit-frame-pointer -g $(DEPLOYMENT_FLAGS)
     33 CFLAGS.Static := $(CFLAGS) -static  
     34 DYLIB_FLAGS := $(DEPLOYMENT_FLAGS) \
     35 		-Xarch_arm -Wl,-alias_list,$(SRCROOT)/lib/builtins/arm/softfloat-alias.list
     36 
     37 VISIBILITY_HIDDEN := 0
     38 VISIBILITY_HIDDEN.Static  := 1
     39 
     40 
     41 FUNCTIONS := absvdi2 absvsi2 addvdi3 addvsi3 ashldi3 ashrdi3 \
     42              clzdi2 clzsi2 cmpdi2 ctzdi2 ctzsi2 \
     43              divdc3 divdi3 divsc3 ffsdi2 \
     44              fixdfdi fixsfdi fixunsdfdi fixunsdfsi fixunssfdi \
     45              fixunssfsi floatdidf floatdisf floatundidf floatundisf \
     46              gcc_personality_v0 lshrdi3 moddi3 muldc3 muldi3 mulosi4 \
     47              mulodi4 muloti4 mulsc3 mulvdi3 mulvsi3 negdi2 negvdi2 negvsi2 \
     48              paritydi2 paritysi2 popcountdi2 popcountsi2 powidf2 \
     49              powisf2 subvdi3 subvsi3 ucmpdi2 udivdi3 \
     50              udivmoddi4 umoddi3 apple_versioning eprintf atomic \
     51              atomic_flag_clear atomic_flag_clear_explicit \
     52              atomic_flag_test_and_set atomic_flag_test_and_set_explicit \
     53              atomic_signal_fence atomic_thread_fence \
     54              extendhfsf2 truncdfhf2 truncsfhf2 
     55 
     56 FUNCTIONS.i386 := $(FUNCTIONS) \
     57                 divxc3 fixunsxfdi fixunsxfsi fixxfdi floatdixf \
     58                 floatundixf mulxc3 powixf2 clear_cache \
     59                 enable_execute_stack
     60 FUNCTIONS.ppc := $(FUNCTIONS) \
     61                 divtc3 fixtfdi fixunstfdi floatditf floatunditf \
     62                 gcc_qadd gcc_qdiv gcc_qmul gcc_qsub multc3 \
     63                 powitf2 restFP saveFP trampoline_setup \
     64                 clear_cache enable_execute_stack
     65 FUNCTIONS.x86_64 := $(FUNCTIONS) \
     66                 absvti2 addvti3 ashlti3 ashrti3 clzti2 cmpti2 \
     67                 ctzti2 divti3 divxc3 ffsti2 fixdfti fixsfti \
     68                 fixunsdfti fixunssfti fixunsxfdi fixunsxfsi \
     69                 fixunsxfti fixxfdi fixxfti floatdixf floattidf \
     70                 floattisf floattixf floatundixf floatuntidf \
     71                 floatuntisf floatuntixf lshrti3 modti3 multi3 \
     72                 muloti4 mulvti3 mulxc3 negti2 negvti2 parityti2 \
     73                 popcountti2 powixf2 subvti3 ucmpti2 udivmodti4 \
     74                 udivti3 umodti3 clear_cache enable_execute_stack
     75 
     76 FUNCTIONS.armv4t := $(FUNCTIONS) 
     77 
     78 FUNCTIONS.armv5 := $(FUNCTIONS) \
     79                 adddf3 addsf3 bswapdi2 bswapsi2  \
     80                 comparedf2 comparesf2 extendsfdf2 \
     81                 divdf3 divsf3 \
     82                 fixdfsi fixsfsi fixunsdfsi fixunssfsi \
     83                 floatsidf floatsisf floatunsidf floatunsisf \
     84                 muldf3 mulsf3 \
     85                 negdf2 negsf2 \
     86                 truncdfsf2  \
     87                 modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4 \
     88                 switch8 switchu8 switch16 switch32 \
     89                 sync_synchronize
     90 
     91 FUNCTIONS.armv6 := $(FUNCTIONS) \
     92 				comparedf2 comparesf2 \
     93                 adddf3vfp addsf3vfp bswapdi2 bswapsi2 divdf3vfp \
     94                 divsf3vfp eqdf2vfp eqsf2vfp extendsfdf2vfp \
     95                 fixdfsivfp fixsfsivfp fixunsdfsivfp fixunssfsivfp \
     96                 floatsidfvfp floatsisfvfp floatunssidfvfp floatunssisfvfp \
     97                 gedf2vfp gesf2vfp gtdf2vfp gtsf2vfp \
     98                 ledf2vfp lesf2vfp ltdf2vfp ltsf2vfp \
     99                 muldf3vfp mulsf3vfp \
    100                 nedf2vfp nesf2vfp \
    101                 subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
    102                 modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4 \
    103                 switch8 switchu8 switch16 switch32 \
    104                 restore_vfp_d8_d15_regs save_vfp_d8_d15_regs \
    105                 sync_synchronize
    106 
    107 FUNCTIONS.armv7 := $(FUNCTIONS) \
    108 				comparedf2 comparesf2 \
    109                 adddf3vfp addsf3vfp bswapdi2 bswapsi2 divdf3vfp \
    110                 divsf3vfp eqdf2vfp eqsf2vfp extendsfdf2vfp \
    111                 fixdfsivfp fixsfsivfp fixunsdfsivfp fixunssfsivfp \
    112                 floatsidfvfp floatsisfvfp floatunssidfvfp floatunssisfvfp \
    113                 gedf2vfp gesf2vfp gtdf2vfp gtsf2vfp \
    114                 ledf2vfp lesf2vfp ltdf2vfp ltsf2vfp \
    115                 muldf3vfp mulsf3vfp \
    116                 nedf2vfp nesf2vfp \
    117                 subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
    118                 modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4
    119 
    120 FUNCTIONS.armv7s := $(FUNCTIONS.armv7)
    121 
    122 FUNCTIONS.arm64 :=  divti3 modti3 \
    123 					udivmodti4 \
    124 					udivti3 umodti3 \
    125 					mulsc3 muldc3 \
    126 					powisf2 powidf2 \
    127 					clzti2 \
    128 					fixdfti fixsfti \
    129 					fixunsdfti fixunssfti fixunssfti \
    130 					floattidf floattisf floatuntidf floatuntisf \
    131 					gcc_personality_v0 atomic \
    132 					atomic_flag_clear atomic_flag_clear_explicit \
    133 					atomic_flag_test_and_set \
    134 					atomic_flag_test_and_set_explicit \
    135 					atomic_signal_fence atomic_thread_fence
    136