외부 빌드 시스템 프로젝트 템플릿을 사용하여 Xcode와 함께 외부 make 파일을 사용할 수 있습니다. 이러한 파일은 빌드 유형 및 위치와 같은 Xcode 프로젝트 설정을 활용하도록 수정할 수 있으며, 별도로 사용하는 경우에도 유용합니다.
외부 프로젝트 만들기
새 외부 빌드 프로젝트를 만들려면 Xcode에서 New->New Project...(새로 만들기->새 프로젝트...) 대화상자를 선택한 다음 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)