1SDKROOT ?= / 2Embedded?=$(shell echo $(SDKROOT) | grep -iq iphoneos && echo YES || echo NO) 3CC:=$(shell xcrun -sdk "$(SDKROOT)" -find cc) 4CFLAGS:=-c -Wall -pedantic -Os 5LDFLAGS:= 6 7SRCROOT?=$(shell /bin/pwd) 8DSTROOT?=$(shell /bin/pwd)/BUILD/dst 9OBJROOT?=$(shell /bin/pwd)/BUILD/obj 10SYMROOT?=$(shell /bin/pwd)/BUILD/sym 11 12ifdef RC_ARCHS 13 ARCHS:=$(RC_ARCHS) 14else 15 ifeq ($(ARCHS),) 16 ifeq "$(Embedded)" "YES" 17 ARCHS:=armv7 armv7s arm64 18else 19 ARCHS:=x86_64 i386 20endif 21endif 22endif 23 24 25ifeq "$(Embedded)" "YES" 26 TARGET_NAME:=PerfIndex.bundle-ios 27 XCODEBUILD=xcodebuild -sdk iphoneos.internal 28else 29 TARGET_NAME:=PerfIndex.bundle-osx 30 XCODEBUILD=xcodebuild 31endif 32 33CFLAGS += $(patsubst %, -arch %, $(ARCHS)) 34LDFLAGS += $(patsubst %, -arch %, $(ARCHS)) 35 36all: $(DSTROOT) $(OBJROOT) $(SYMROOT) \ 37 $(DSTROOT)/perf_index \ 38 $(DSTROOT)/perfindex-cpu.dylib \ 39 $(DSTROOT)/perfindex-memory.dylib \ 40 $(DSTROOT)/perfindex-syscall.dylib \ 41 $(DSTROOT)/perfindex-fault.dylib \ 42 $(DSTROOT)/perfindex-zfod.dylib \ 43 $(DSTROOT)/perfindex-file_create.dylib \ 44 $(DSTROOT)/perfindex-file_read.dylib \ 45 $(DSTROOT)/perfindex-file_write.dylib \ 46 $(DSTROOT)/perfindex-ram_file_create.dylib \ 47 $(DSTROOT)/perfindex-ram_file_read.dylib \ 48 $(DSTROOT)/perfindex-ram_file_write.dylib \ 49 $(DSTROOT)/perfindex-iperf.dylib \ 50 $(DSTROOT)/perfindex-compile.dylib \ 51 $(DSTROOT)/PerfIndex.bundle 52 53$(DSTROOT)/perfindex-cpu.dylib: $(OBJROOT)/md5.o 54$(DSTROOT)/perfindex-fault.dylib: $(OBJROOT)/test_fault_helper.o 55$(DSTROOT)/perfindex-zfod.dylib: $(OBJROOT)/test_fault_helper.o 56$(DSTROOT)/perfindex-file_create.dylib: $(OBJROOT)/test_file_helper.o 57$(DSTROOT)/perfindex-file_read.dylib: $(OBJROOT)/test_file_helper.o 58$(DSTROOT)/perfindex-file_write.dylib: $(OBJROOT)/test_file_helper.o 59$(DSTROOT)/perfindex-ram_file_create.dylib: $(OBJROOT)/test_file_helper.o $(OBJROOT)/ramdisk.o 60$(DSTROOT)/perfindex-ram_file_read.dylib: $(OBJROOT)/test_file_helper.o $(OBJROOT)/ramdisk.o 61$(DSTROOT)/perfindex-ram_file_write.dylib: $(OBJROOT)/test_file_helper.o $(OBJROOT)/ramdisk.o 62 63$(DSTROOT)/perf_index: $(OBJROOT)/perf_index.o 64 $(CC) $(LDFLAGS) $? -o $@ 65 66$(DSTROOT)/PerfIndex.bundle: $(SRCROOT)/PerfIndex_COPS_Module/PerfIndex.xcodeproj 67 $(XCODEBUILD) -target $(TARGET_NAME) OBJROOT=$(OBJROOT) SYMROOT=$(SYMROOT) TARGET_TEMP_DIR=$(OBJROOT) TARGET_BUILD_DIR=$(DSTROOT) -project $? CLANG_ENABLE_MODULES=NO 68 69$(DSTROOT)/%.dylib: $(OBJROOT)/%.o 70 $(CC) $(LDFLAGS) -dynamiclib $? -o $@ 71 72$(OBJROOT)/%.o: $(SRCROOT)/%.c 73 $(CC) $(CFLAGS) $? -o $@ 74 75$(DSTROOT): 76 mkdir -p $(DSTROOT); 77 78$(OBJROOT): 79 mkdir -p $(OBJROOT); 80 81$(SYMROOT): 82 mkdir -p $(SYMROOT); 83 84clean: 85 rm -rf $(OBJROOT) 86 rm -rf $(DSTROOT) 87 rm -rf $(SYMROOT) 88