โครงการภายนอก

ไฟล์ 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)