# # Copyright (c) ZeroC, Inc. All rights reserved. # # # Xcode configuration to build Xcode sdks for Ice. # xcodesdk_objdir = static xcodesdk_cppflags = $(static_cppflags) xcodesdk_ldflags = $(static_ldflags) # # $(call make-xcodesdk,$1=translator) # define make-xcodesdk $(install_sdkdir)/%.sdk/SDKSettings.plist $(top_srcdir)/sdk/%.sdk/SDKSettings.plist: \ $(top_srcdir)/config/%-SDKSettings.plist $(Q)$(MKDIR) -p $$(@D) $(Q)$(INSTALL) $$< $$@ srcs all:: $$(foreach p,$$(platforms),$(top_srcdir)/sdk/$$p.sdk/SDKSettings.plist) install:: $$(foreach p,$$(platforms),$(install_sdkdir)/$$p.sdk/SDKSettings.plist) endef # # $(call make-xcodesdk-component-with-config,$1=project,$2=component,$3=platform,$4=config,$5=comp[platform-config]) # define make-xcodesdk-component-with-config ifneq ($(filter-out $(sdk_includedirs),$3-$2),) sdk_includedirs += $3-$2 $$(eval $$(call install-data-files,$$(wildcard $$($2_includedir)/*.h),include,\ $(top_srcdir)/sdk/$3.sdk/usr/include,$5)) $$(eval $$(call install-data-files,$$(filter include/generated/%,$$($2_generated_headers)),include/generated,\ $(top_srcdir)/sdk/$3.sdk/usr/include,$5)) $$(eval $$(call install-data-files,$$(wildcard $$($2_includedir)/*.h),include,\ $(install_sdkdir)/$3.sdk/usr/include,$5_install)) $$(eval $$(call install-data-files,$$(filter include/generated/%,$$($2_generated_headers)),include/generated,\ $(install_sdkdir)/$3.sdk/usr/include,$5_install)) endif endef # # $(call make-xcode-project-with-config,$1=project,$2=platform,$3=config) # define make-xcode-project-with-config $1[$2-$3]: $$($1_dependencies) $(E) "Running xcodebuild for $1 scheme=\"$$(call $1_scheme,$2,$3)\"" $(Q)xcodebuild -sdk $2 \ -project "$1/$$(call $1_project,$2,$3)" \ -configuration "$$(call $1_configuration,$2,$3)" \ -scheme "$$(call $1_scheme,$2,$3)" \ $(if $(ICE_BIN_DIST),HEADER_SEARCH_PATHS=../../Ice\ ../../include\ $(sdkdir)/$2.sdk/usr/include \ LIBRARY_SEARCH_PATHS=$(sdkdir)/$2.sdk/usr/lib) \ $(if $(V),,-quiet) SYMROOT=./build-$2-$3 OBJROOT=./objs-$2-$3 \ clean build $1[$2-$3]_clean: $(E) "Cleaning $1" $(Q)xcodebuild -sdk $2 \ -project "$1/$$(call $1_project,$2,$3)" \ -configuration "$$(call $1_configuration,$2,$3)" \ -scheme "$$(call $1_scheme,$2,$3)" \ $(if $(V),,-quiet) SYMROOT=./build-$2-$3 OBJROOT=./objs-$2-$3 \ clean $1:: $1[$2-$3] $1_clean:: $1[$2-$3]_clean endef # # $(call make-xcode-project,$1=project) # define make-xcode-project # # Define per- rules for this component. # $$(foreach p,$$(filter $(platforms),$$($1_platforms)),\ $$(foreach c,$$(filter $$(or $$($$p_configs),%),$$(filter $(configs),$$($1_configs))),\ $$(if $$(filter $(SKIP),$1[$$p-$$c]),,\ $$(eval $$(call make-xcode-project-with-config,$1,$$p,$$c,$1[$$p-$$c]))))) $1:: $1_clean:: $1_distclean:: $(Q)$(RM) -r $1/build all:: $1 clean:: $1_clean distclean:: $1_distclean endef