]> git.saurik.com Git - apple/ld64.git/blobdiff - unit-tests/include/common.makefile
ld64-253.3.tar.gz
[apple/ld64.git] / unit-tests / include / common.makefile
index 642e4917d5c765537ed9b8a3d979c608199d5289..f0cbbf177147d5872859f2e6d7a49003c1f564ea 100644 (file)
@@ -8,18 +8,20 @@ ARCH ?= $(shell arch)
 # set default to be all
 VALID_ARCHS ?= "i386 x86_64 armv6"
 
+
 MYDIR=$(shell cd ../../bin;pwd)
 LD                     = ld
 OBJECTDUMP     = ObjectDump
 MACHOCHECK     = machocheck
-OTOOL          = otool
+OTOOL =   xcrun otool
 REBASE         = rebase
 DYLDINFO       = dyldinfo
 
 ifdef BUILT_PRODUCTS_DIR
        # if run within Xcode, add the just built tools to the command path
        PATH := ${BUILT_PRODUCTS_DIR}:${MYDIR}:${PATH}
-       COMPILER_PATH := ${BUILT_PRODUCTS_DIR}:${MYDIR}:${COMPILER_PATH}
+       COMPILER_PATH := ${BUILT_PRODUCTS_DIR}:${COMPILER_PATH}
+       LD_PATH     = ${BUILT_PRODUCTS_DIR}
        LD                      = ${BUILT_PRODUCTS_DIR}/ld
        OBJECTDUMP      = ${BUILT_PRODUCTS_DIR}/ObjectDump
        MACHOCHECK      = ${BUILT_PRODUCTS_DIR}/machocheck
@@ -29,11 +31,11 @@ ifdef BUILT_PRODUCTS_DIR
 else
        ifneq "$(findstring /unit-tests/test-cases/, $(shell pwd))" ""
                # if run from Terminal inside unit-test directory
-               RELEASEDIR=$(shell cd ../../../build/Release;pwd)
                RELEASEADIR=$(shell cd ../../../build/Release-assert;pwd)
                DEBUGDIR=$(shell cd ../../../build/Debug;pwd)
                PATH := ${RELEASEADIR}:${RELEASEDIR}:${DEBUGDIR}:${MYDIR}:${PATH}
-               COMPILER_PATH := ${RELEASEADIR}:${RELEASEDIR}:${DEBUGDIR}:${MYDIR}:${COMPILER_PATH}
+               COMPILER_PATH := ${RELEASEADIR}:${RELEASEDIR}:${DEBUGDIR}:${COMPILER_PATH}
+               LD_PATH     = ${DEBUGDIR}
                LD                      = ${DEBUGDIR}/ld
                OBJECTDUMP      = ${DEBUGDIR}/ObjectDump
                MACHOCHECK      = ${DEBUGDIR}/machocheck
@@ -47,57 +49,94 @@ else
 endif
 export PATH
 export COMPILER_PATH
+export GCC_EXEC_PREFIX=garbage
 
 ifeq ($(ARCH),ppc)
        SDKExtra = -isysroot /Developer/SDKs/MacOSX10.6.sdk
 endif
 
-CC              = cc -arch ${ARCH} ${SDKExtra}
-CCFLAGS = -Wall -std=c99
+CC              = $(shell xcrun -find clang) -arch ${ARCH} ${SDKExtra} -mmacosx-version-min=10.8
+CCFLAGS = -Wall 
 ASMFLAGS =
+VERSION_NEW_LINKEDIT = -mmacosx-version-min=10.6
+VERSION_OLD_LINKEDIT = -mmacosx-version-min=10.4
+LD_NEW_LINKEDIT = -macosx_version_min 10.6
+
+CXX              = $(shell xcrun -find clang++) -arch ${ARCH} ${SDKExtra}
+CXXFLAGS = -Wall -stdlib=libc++ 
 
-CXX              = c++ -arch ${ARCH} ${SDKExtra}
-CXXFLAGS = -Wall
+IOS_SDK = $(shell xcodebuild -sdk iphoneos.internal -version Path  2>/dev/null)
 
 ifeq ($(ARCH),armv6)
-       SDKExtra = -isysroot /Developer/SDKs/Extra
-  LDFLAGS := -syslibroot /Developer/SDKs/Extra
+  LDFLAGS := -syslibroot $(IOS_SDK)
   override FILEARCH = arm
+  CC = $(shell xcrun -find clang) -arch ${ARCH} -ccc-install-dir ${LD_PATH} -miphoneos-version-min=5.0 -isysroot $(IOS_SDK) 
+  CXX = $(shell xcrun -find clang++) -arch ${ARCH} -ccc-install-dir ${LD_PATH} -miphoneos-version-min=5.0 -isysroot $(IOS_SDK) 
+  VERSION_NEW_LINKEDIT = -miphoneos-version-min=4.0
+  VERSION_OLD_LINKEDIT = -miphoneos-version-min=3.0
+  LD_SYSROOT = -syslibroot $(IOS_SDK)
+  LD_NEW_LINKEDIT = -ios_version_min 4.0
 else
   FILEARCH = $(ARCH)
 endif
 
 ifeq ($(ARCH),armv7)
-       SDKExtra = -isysroot /Developer/SDKs/Extra
-  LDFLAGS := -syslibroot /Developer/SDKs/Extra
+  LDFLAGS := -syslibroot $(IOS_SDK)
   override FILEARCH = arm
+  CC = $(shell xcrun -find clang) -arch ${ARCH} -ccc-install-dir ${LD_PATH} -miphoneos-version-min=5.0 -isysroot $(IOS_SDK)
+  CXX = $(shell xcrun -find clang++) -arch ${ARCH} -ccc-install-dir ${LD_PATH} -miphoneos-version-min=5.0 -isysroot $(IOS_SDK)
+  VERSION_NEW_LINKEDIT = -miphoneos-version-min=4.0
+  VERSION_OLD_LINKEDIT = -miphoneos-version-min=3.0
+  LD_SYSROOT = -syslibroot $(IOS_SDK)
+  LD_NEW_LINKEDIT = -ios_version_min 4.0
 else
   FILEARCH = $(ARCH)
 endif
 
 ifeq ($(ARCH),thumb)
-       SDKExtra = -isysroot /Developer/SDKs/Extra
-  LDFLAGS := -syslibroot /Developer/SDKs/Extra
+  LDFLAGS := -syslibroot $(IOS_SDK)
   CCFLAGS += -mthumb
   CXXFLAGS += -mthumb
   override ARCH = armv6
   override FILEARCH = arm
+  CC = $(shell xcrun -find clang) -arch ${ARCH} -ccc-install-dir ${LD_PATH} -miphoneos-version-min=5.0 -isysroot $(IOS_SDK)
+  CXX = $(shell xcrun -find clang++) -arch ${ARCH} -ccc-install-dir ${LD_PATH} -miphoneos-version-min=5.0 -isysroot $(IOS_SDK)
+  VERSION_NEW_LINKEDIT = -miphoneos-version-min=4.0
+  VERSION_OLD_LINKEDIT = -miphoneos-version-min=3.0
+  LD_SYSROOT = -syslibroot $(IOS_SDK)
+  LD_NEW_LINKEDIT = -ios_version_min 4.0
 else
   FILEARCH = $(ARCH)
 endif
 
 ifeq ($(ARCH),thumb2)
-       SDKExtra = -isysroot /Developer/SDKs/Extra
-  LDFLAGS := -syslibroot /Developer/SDKs/Extra
+  LDFLAGS := -syslibroot $(IOS_SDK)
   CCFLAGS += -mthumb
   CXXFLAGS += -mthumb
   override ARCH = armv7
   override FILEARCH = arm
-       CC = /Volumes/Leopard/Developer/Platforms/iPhoneOS.platform/usr/bin/gcc-4.2 -arch ${ARCH}
+  CC = $(shell xcrun -find clang) -arch ${ARCH} -ccc-install-dir ${LD_PATH} -miphoneos-version-min=5.0 -isysroot $(IOS_SDK)
+  CXX = $(shell xcrun -find clang++) -arch ${ARCH} -ccc-install-dir ${LD_PATH} -miphoneos-version-min=5.0 -isysroot $(IOS_SDK)
+  VERSION_NEW_LINKEDIT = -miphoneos-version-min=4.0
+  VERSION_OLD_LINKEDIT = -miphoneos-version-min=3.0
+  LD_SYSROOT = -syslibroot $(IOS_SDK)
+  LD_NEW_LINKEDIT = -ios_version_min 4.0
 else
   FILEARCH = $(ARCH)
 endif
 
+ifeq ($(ARCH),arm64)
+  LDFLAGS := -syslibroot $(IOS_SDK)
+  CC  = $(shell xcrun --sdk iphoneos.internal -find clang) -arch ${ARCH} -ccc-install-dir ${LD_PATH} -miphoneos-version-min=9.0 -isysroot $(IOS_SDK)
+  CXX = $(shell xcrun --sdk iphoneos.internal -find clang++) -arch ${ARCH} -ccc-install-dir ${LD_PATH} -miphoneos-version-min=9.0 -isysroot $(IOS_SDK)
+  VERSION_NEW_LINKEDIT = -miphoneos-version-min=7.0
+  VERSION_OLD_LINKEDIT = -miphoneos-version-min=3.0
+  LD_SYSROOT = -syslibroot $(IOS_SDK)
+  LD_NEW_LINKEDIT = -ios_version_min 7.0
+  OTOOL =  $(shell xcrun --sdk iphoneos.internal -find otool)
+else
+  FILEARCH = $(ARCH)
+endif
 
 RM      = rm
 RMFLAGS = -rf