]> git.saurik.com Git - apple/ld64.git/blobdiff - unit-tests/test-cases/blank-stubs/Makefile
ld64-409.12.tar.gz
[apple/ld64.git] / unit-tests / test-cases / blank-stubs / Makefile
index 514fd8b30f2e15f44ace85ea71ac25295a1f8c6d..9db9b976c3c07999cbc907bac5c3f92194fe0417 100644 (file)
 TESTROOT = ../..
 include ${TESTROOT}/include/common.makefile
 
+#ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(subst ppc,,$(VALID_ARCHS)) )
 
-ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(VALID_ARCHS))
+# build the list of all valid archs for this platform...
+ifeq ($(ARCH),i386)
+       ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(filter-out arm%,$(VALID_ARCHS)) )
+       SYSROOT = -isysroot $(OSX_SDK)
+endif
+ifeq ($(ARCH),x86_64)
+       ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(filter-out arm%,$(VALID_ARCHS)) )
+       SYSROOT = -isysroot $(OSX_SDK)
+endif
+ifeq ($(ARCH),armv7)
+       ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(filter arm%,$(VALID_ARCHS)) )
+       SYSROOT = -isysroot $(IOS_SDK)
+endif
+ifeq ($(ARCH),arm64)
+       ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(filter arm%,$(VALID_ARCHS)) )
+       SYSROOT = -isysroot $(IOS_SDK)
+endif
 
 #
 # Test that blank stubs are handled properly
@@ -34,14 +51,27 @@ run: all
 
 all:
 # build example fully fat dylib
-       ${CC} `echo ${ALL_ARCH_OPTIONS}` -dynamiclib foo.c -o libfoo.dylib -install_name libfoo.dylib
-       lipo libfoo.dylib -remove ${ARCH} -output libfoo.dylib
+       gcc $(SYSROOT) ${CCFLAGS} `echo ${ALL_ARCH_OPTIONS}` -dynamiclib foo.c -o libfoo.dylib -install_name libfoo.dylib 
+       ${FAIL_IF_BAD_MACHO} libfoo.dylib
+
+# handle the case of a native ppc compile--this sets the subtype, which must be passed to lipo
+       if [ x${ARCH} != xppc ]; \
+       then \
+               SUB_ARCH=${ARCH}; \
+       else \
+               SUB_ARCH=`lipo -info libfoo.dylib | sed 's/.*://;s/ppc64 //;s/.* \(ppc[^ ]*\).*/\1/'`; \
+               echo SUB_ARCH $$SUB_ARCH; \
+               if [ x$$SUB_ARCH = xALL ]; \
+               then \
+                       SUB_ARCH=ppc; \
+               fi \
+       fi; \
+       lipo libfoo.dylib -remove $$SUB_ARCH -output libfoo.dylib
+
        lipo -create libfoo.dylib -arch_blank ${ARCH} -output libfoo.dylib
        ${CC} ${CCFLAGS} main.c libfoo.dylib -o main
        ${OTOOL} -L main | grep libfoo | ${FAIL_IF_STDIN}
        ${PASS_IFF_GOOD_MACHO} main
-       
 
 clean:
        rm -rf libfoo.dylib main
-       
\ No newline at end of file