1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
#
# 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/.translator-$2-$3.dep: $$($$($1_slicecompiler)_path)
$(Q)if [ -f $1/.translator-$2-$3.dep ]; \
then \
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; \
fi
touch $1/.translator-$2-$3.dep
$1[$2-$3]: $$($1_dependencies) $1/.translator-$2-$3.dep
$(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 \
$(if $(PLATFORM_NAME),iphonesimulator,-arch `uname -m`) \
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-<platform-config> 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
|