]> git.saurik.com Git - apple/ld64.git/blobdiff - unit-tests/test-cases/objc-category-optimize/Makefile
ld64-409.12.tar.gz
[apple/ld64.git] / unit-tests / test-cases / objc-category-optimize / Makefile
index c395988affbf667939f4e86105e9e612d9a42505..4783f04046722ea56e747795079e51c17409dea2 100644 (file)
@@ -26,51 +26,43 @@ include ${TESTROOT}/include/common.makefile
 #
 # Verify optimization where categories are merged into classes
 #
-OPTIONS = 
 
 ifeq ($(ARCH),i386)
-       OPTIONS = -fobjc-abi-version=2 -Wl,-objc_abi_version,2 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -fobjc-legacy-dispatch
+       ALL = all-noopt
+else
+       ALL = all-opt
 endif
 
-ifeq ($(ARCH),arm)
-       OPTIONS = -isysroot=${IOS_SDK}
-endif
-
-all:   all-${ARCH}
+all: ${ALL}
 
-all-ppc:
+# For platforms that do not perform category optimization
+all-noopt:
        ${PASS_IFF} true
 
-all-i386: all-rest
-all-x86_64: all-rest
-all-armv6: all-rest
-all-armv7: all-rest
-
-all-rest:
+# For platforms that optimize categories
+all-opt:
        # check optimization can be turned off
        ${CC} ${CCFLAGS} ${OPTIONS} -dynamiclib foo.m cat1.m cat2.m -framework Foundation -Wl,-no_objc_category_merging -o libno.dylib
-       size -l libno.dylib | grep "__objc_catlist: 0" | ${FAIL_IF_STDIN}
+       size -m -l libno.dylib | grep "__objc_catlist: 0" | ${FAIL_IF_STDIN}
        otool -ov libno.dylib | grep -A17 __objc_classlist | grep -A16 '_OBJC_CLASS_$$_Foo' | grep "count 1" | ${FAIL_IF_EMPTY}
-       # check optimzation of category methods
+       # check optimization of category methods
        ${CC} ${CCFLAGS} ${OPTIONS} -dynamiclib foo.m cat1.m cat2.m -framework Foundation -o libfoo.dylib
-       size -l libfoo.dylib | grep "__objc_catlist: 0" | ${FAIL_IF_EMPTY}
+       size -m -l libfoo.dylib | grep "__objc_catlist: 0" | ${FAIL_IF_EMPTY}
        otool -ov libfoo.dylib | grep -A20 __objc_classlist | grep -A20 '_OBJC_CLASS_$$_Foo' | grep "count 4" | ${FAIL_IF_EMPTY}
-       # check optimzation of protocol and category methods
+       # check optimization of protocol and category methods
        ${CC} ${CCFLAGS} ${OPTIONS} -dynamiclib foo.m cat1.m cat2.m -DPROTOCOLS -framework Foundation -o libfoo2.dylib
-       size -l libfoo2.dylib | grep "__objc_catlist: 0" | ${FAIL_IF_EMPTY}
+       size -m -l libfoo2.dylib | grep "__objc_catlist: 0" | ${FAIL_IF_EMPTY}
        otool -ov libfoo2.dylib | grep -A20 __objc_classlist | grep -A20 '_OBJC_CLASS_$$_Foo' | grep "count 6" | ${FAIL_IF_EMPTY}
-       # check optimzation of properties and category methods
+       # check optimization of properties and category methods
        ${CC} ${CCFLAGS} ${OPTIONS} -dynamiclib foo.m cat1.m cat2.m -DPROPERTIES -framework Foundation -o libfoo3.dylib
-       size -l libfoo3.dylib | grep "__objc_catlist: 0" | ${FAIL_IF_EMPTY}
+       size -m -l libfoo3.dylib | grep "__objc_catlist: 0" | ${FAIL_IF_EMPTY}
        otool -ov libfoo3.dylib | grep -A20 __objc_classlist | grep -A20 '_OBJC_CLASS_$$_Foo' | grep "count 6" | ${FAIL_IF_EMPTY}
-       # check optimzation of category methods and no base methods
+       # check optimization of category methods and no base methods
        ${CC} ${CCFLAGS} ${OPTIONS} -dynamiclib foo.m cat1.m cat2.m -DNO_BASE_METHODS -framework Foundation -o libfoo4.dylib
-       size -l libfoo4.dylib | grep "__objc_catlist: 0" | ${FAIL_IF_EMPTY}
+       size -m -l libfoo4.dylib | grep "__objc_catlist: 0" | ${FAIL_IF_EMPTY}
        otool -ov libfoo4.dylib | grep -A20 __objc_classlist | grep -A20 '_OBJC_CLASS_$$_Foo' | grep "count 3" | ${FAIL_IF_EMPTY}
        otool -ov libfoo4.dylib | grep -A20 "Meta Class" | grep "count 2" | ${FAIL_IF_EMPTY}
        ${PASS_IFF_GOOD_MACHO} libfoo3.dylib
-       
-       
-       
+
 clean:
        rm -rf  lib*.dylib