File: Make.rules

package info (click to toggle)
zeroc-ice 3.7.10-3.1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 75,696 kB
  • sloc: cpp: 356,894; java: 226,081; cs: 98,312; javascript: 35,027; python: 28,716; objc: 27,050; php: 7,526; ruby: 7,190; yacc: 2,949; ansic: 2,469; xml: 1,589; lex: 1,241; makefile: 472; sh: 52
file content (105 lines) | stat: -rw-r--r-- 3,198 bytes parent folder | download | duplicates (4)
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
#
# Copyright (c) ZeroC, Inc. All rights reserved.
#

# ----------------------------------------------------------------------
# Don't change anything below this line!
# ----------------------------------------------------------------------

#
# Objective-C mapping configurations
#
supported-configs       = shared static arc-shared arc-static

ifeq ($(os),Darwin)
include $(lang_srcdir)/config/Make.xcodesdk.rules
endif

ifneq ($(filter arc-%,$(CONFIGS)),)
# Make sure that the non-ARC configuration is also enabled
override CONFIGS := $(call unique,$(CONFIGS) $(patsubst arc-%,%,$(CONFIGS)))
endif

# Validate platforms and configs
$(eval $(call validate-config))

#
# Build only few components with the static configuration (libraries)
#
static_components       = Ice IceSSL IceIAP IceObjC IceSSLObjC IceIAPObjC Glacier2ObjC IceStormObjC IceGridObjC
static_projects         = test/%
static_ldflags          += $(if $(filter program,$($1_target)),-ObjC)

#
# Build only the tests with the ARC configuration
#
arc_projects            = test/Slice/% test/Ice/%

#
# Define the arc configuration to build the tests with ARC support.
#
# Note that we clear the dependency variable to not include the "arc"
# sub-configuration into the dependency name (for example, if "client"
# depends on "IceObjC", client[osx-arc-shared] will still depend on
# Ice[osx-shared] not Ice[osx-arc-shared]). This is necessary since
# we don't have an ARC specific build of the libraries.
#
arc_cppflags            := -fobjc-arc -fobjc-arc-exceptions
arc_dependency          :=

#
# Define slice2objc target extension since it can't be figured out
# automatically from the slice2objc translator name.
#
slice2objc_targetext    = m

# Rule for installing headers file from include/objc directory
ifeq ($(filter all obj%c,$(ICE_BIN_DIST)),)
$(DESTDIR)$(install_includedir)/objc:
	$(Q)$(MKDIR) -p $(DESTDIR)$(install_includedir)/objc

$(DESTDIR)$(install_includedir)/objc/%.h: include/objc/%.h | $(DESTDIR)$(install_includedir)/objc
	$(Q)$(call install-data,objc/$(*).h,include,$(DESTDIR)$(install_includedir))
endif

#
# $(make-objc-src-project $1=project)
#
define make-objc-src-project
ifeq ($(filter all obj%c,$(ICE_BIN_DIST)),)
$1_slicecompiler        := slice2objc
$1_sliceflags           += -I$(slicedir)
$1_cppflags             += -I$(includedir) -I$(includedir)/generated
$1_ldflags              += -framework Foundation
$(make-project)
srcs:: $1
endif
endef

#
# $(make-objc-test-project $1=project)
#
define make-objc-test-project
$1_slicecompiler        := slice2objc
$1_sliceflags           := -I$(slicedir) $$($1_sliceflags)
$1_cppflags             += -Itest/Ice -I$1/generated -I$1 -Itest/include $(ice_objc_cppflags)
$1_ldflags              += -framework Foundation
$(make-project)
tests:: $1
endef

#
# $(create-objc-test-project $1=test)
#
define create-objc-test-project
$1_srcext               := m
$1_dependencies         := $$(or $$($1_dependencies),TestCommonObjC IceObjC)

# Also link with IceSSL when compiling the project with the static configuration
$1[static]_dependencies := IceSSL

# Dependencies for Xcode SDK configuration
$1[xcodesdk]_dependencies := IceSSL

$(create-test-project)
endef