এক্সটার্নাল বিল্ড সিস্টেম প্রজেক্ট টেমপ্লেট ব্যবহার করে এক্সকোড দিয়ে এক্সটার্নাল মেক ফাইল ব্যবহার করা যেতে পারে। এই ফাইলগুলি Xcode প্রকল্প সেটিংসের সুবিধা নিতে পরিবর্তন করা যেতে পারে, যেমন বিল্ড টাইপ এবং অবস্থান, যদিও আলাদাভাবে ব্যবহার করার সময় এখনও দরকারী।
একটি বাহ্যিক প্রকল্প তৈরি করুন
একটি নতুন এক্সটার্নাল বিল্ড প্রজেক্ট তৈরি করতে, Xcode-এ New->New Project... ডায়ালগ সিলেক্ট করুন, তারপর External Build System টেমপ্লেট নির্বাচন করুন। লক্ষ্য মেকফাইলের মতো একই ডিরেক্টরিতে প্রকল্পটি রাখুন।
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)