ไฟล์ make ภายนอกสามารถใช้กับ Xcode โดยใช้ External สร้างเทมเพลตโปรเจ็กต์ของระบบ ไฟล์เหล่านี้สามารถแก้ไขได้เพื่อใช้ประโยชน์ การตั้งค่าโปรเจ็กต์ Xcode เช่น ประเภทและตำแหน่งบิลด์ในขณะที่ยังคง มีประโยชน์เมื่อใช้แยกกัน
สร้างโปรเจ็กต์ภายนอก
หากต้องการสร้างโปรเจ็กต์บิลด์ภายนอกใหม่ ใน Xcode ให้เลือกโปรเจ็กต์ใหม่ ->ใหม่... แล้วเลือกเทมเพลต External Build System วางโครงการ ไดเรกทอรีเดียวกับ Makefile เป้าหมาย
เพิ่มการตั้งค่าบิลด์ Xcode
เมื่อเรียกใช้บิลด์ภายนอก Xcode จะกำหนดตัวแปรสภาพแวดล้อมสำหรับบิลด์ภายนอก การตั้งค่าบิลด์ การตั้งค่าเหล่านี้จะระบุตำแหน่งที่สร้างไฟล์บิลด์ รวมถึงคอมไพเลอร์และ แฟล็กตัวลิงก์ เราใช้คำสั่งเกี่ยวกับเงื่อนไขของผู้ผลิต เพื่อแก้ไขบิลด์เมื่อ Xcode เรียกใช้
นี่คือตัวอย่างที่ตัวแปรที่มีการตั้งค่า (เช่น BUILD_DIR) สามารถ ชื่อใดก็ได้ที่ต้องการ ขณะที่เงื่อนไขจะใช้ตัวแปรสภาพแวดล้อม ชุด Xcode:
ifdef CONFIGURATION_BUILD_DIR
# In Xcode build
BUILD_DIR = $(CONFIGURATION_BUILD_DIR)/build
ARCHFLAGS = $(ARCHS:%=-arch %)
SDKFLAGS = -isysroot $(SDKROOT)
else
# In command-line build
BUILD_DIR = $(HOME)/build
ARCHFLAGS =
SDKFLAGS =
endif
ifdef OPTIMIZATION_LEVEL
DEBUGFLAGS := $(DEBUGFLAGS) -O$(OPTIMIZATION_LEVEL)
endif
ifdef OTHER_CFLAGS
DEBUGFLAGS := $(DEBUGFLAGS) $(OTHER_CFLAGS)
endif
# Workaround for iPhoneSimulator SDK's gcc bug
ifdef EFFECTIVE_PLATFORM_NAME
ifneq ($(EFFECTIVE_PLATFORM_NAME), -iphonesimulator)
WARNINGS := $(WARNINGS) -Wreturn-type
endif
endif
J2OBJCC_FLAGS = $(WARNINGS) $(SDKFLAGS) $(ARCHFLAGS) $(DEBUGFLAGS)
J2OBJCC = $(J2OBJC_DIST)/j2objcc $(J2OBJCC_FLAGS)