2 # Wrapper makefile for ICU
3 # Copyright (C) 2003-2009 Apple Inc. All rights reserved.
5 # See http://www.gnu.org/manual/make/html_chapter/make_toc.html#SEC_Contents
6 # for documentation on makefiles. Most of this was culled from the ncurses makefile.
10 #################################
11 #################################
13 #################################
14 #################################
16 # ':=' denotes a "simply expanded" variable. It's value is
17 # set at the time of definition and it never recursively expands
18 # when used. This is in contrast to using '=' which denotes a
19 # recursively expanded variable.
23 # Sane defaults, which are typically overridden on the command line.
26 OBJROOT=$(SRCROOT)/build
29 APPLE_INTERNAL_DIR=/AppleInternal
33 ifeq "$(DISABLE_DRAFT)" "YES"
34 DRAFT_FLAG=--disable-draft
39 ifeq "$(filter arm armv6,$(RC_ARCHS))" ""
45 ifeq "$(RC_INDIGO)" "YES"
46 include $(APPLE_INTERNAL_DIR)/Indigo/Makefile.indigo
48 SDKROOT=$(INDIGO_PREFIX)
50 DEST_ROOT=$(DSTROOT)/$(INDIGO_PREFIX)/
55 TZDATA=$(lastword $(wildcard $(SDKROOT)/usr/local/share/tz/tzdata*.tar.gz))
57 ifeq "$(WINDOWS)" "NO"
59 EMBEDDED:=$(shell $(CXX) -E -dM -x c -include TargetConditionals.h /dev/null | fgrep TARGET_OS_EMBEDDED | cut -d' ' -f3)
62 EMBEDDED:=$(shell $(CXX) -E -dM -x c -isysroot $(SDKROOT) -include TargetConditionals.h /dev/null | fgrep TARGET_OS_EMBEDDED | cut -d' ' -f3)
63 ifeq "$(RC_INDIGO)" "YES"
64 ISYSROOT = -isysroot $(SDKROOT)
73 ifeq "$(EMBEDDED)" "1"
74 export APPLE_EMBEDDED=YES
75 else ifeq "$(RC_INDIGO)" "YES"
76 export APPLE_EMBEDDED=YES
78 export APPLE_EMBEDDED=NO
81 ifndef RC_ProjectSourceVersion
82 ifdef RC_PROJECTSOURCEVERSION
83 RC_ProjectSourceVersion=$(RC_PROJECTSOURCEVERSION)
87 ifneq "$(RC_ProjectSourceVersion)" ""
88 ifeq "$(WINDOWS)" "YES"
89 ICU_BUILD := $(shell echo $(RC_ProjectSourceVersion) | sed -r -e 's/[0-9]+.([0-9]+)(.[0-9]+)?/\1/')
91 ICU_BUILD := $(shell echo $(RC_ProjectSourceVersion) | sed -E -e 's/[0-9]+.([0-9]+)(.[0-9]+)?/\1/')
97 # Disallow $(SRCROOT) == $(OBJROOT)
98 ifeq ($(OBJROOT), $(SRCROOT))
99 $(error SRCROOT same as OBJROOT)
102 #################################
104 #################################
106 # For installhdrs. Not every compiled module has an associated header. Normally,
107 # ICU installs headers as a sub-targe of the install target. But since we only want
108 # certain libraries to install (and since we link all of our own .o modules), we need
109 # invoke the headers targets ourselves. This may be problematic because there isn't a
110 # good way to dist-clean afterwards...we need to do explicit dist-cleans, especially if
111 # install the extra libraries.
114 # EXTRA_HDRS = ./extra/ustdio/ ./layout/
115 ifeq "$(APPLE_EMBEDDED)" "YES"
116 HDR_MAKE_SUBDIR = ./common/ ./i18n/ $(EXTRA_HDRS)
117 else ifeq "$(WINDOWS)" "YES"
118 HDR_MAKE_SUBDIR = ./common/ ./i18n/ $(EXTRA_HDRS)
120 HDR_MAKE_SUBDIR = ./common/ ./i18n/ ./io/ $(EXTRA_HDRS)
122 ifeq "$(WINDOWS)" "YES"
123 HDR_PREFIX=$(APPLE_INTERNAL_DIR)
124 PRIVATE_HDR_PREFIX=$(APPLE_INTERNAL_DIR)
127 PRIVATE_HDR_PREFIX=/usr/local
130 #################################
132 #################################
134 # For install. We currently don't install EXTRA_LIBS. We also don't install the data
135 # directly into the ICU library. It is now installed at /usr/share/icu/*.dat. Thus we
136 # don't use DATA_OBJ anymore. This could change if we decide to move the data back into
137 # the icucore monolithic library.
139 INSTALL = /usr/bin/install
140 COMMON_OBJ = ./common/*.o
141 I18N_OBJ = ./i18n/*.o
143 STUB_DATA_OBJ = ./stubdata/*.o
144 #COMMON_SRC = $(OBJROOT)/common/*.c
145 #I18N_SRC = $(OBJROOT)/i18n/*.c
146 #IO_SRC = $(OBJROOT)/io/*.c
147 #STUB_DATA_SRC = $(OBJROOT)/stubdata/*.c
149 #EXTRA_LIBS =./extra/ ./layout/ ./tools/ctestfw/ ./tools/toolutil/
150 #DATA_OBJ = ./data/out/build/*.o
151 ifeq "$(APPLE_EMBEDDED)" "YES"
152 DYLIB_OBJS=$(COMMON_OBJ) $(I18N_OBJ) $(STUB_DATA_OBJ)
153 else ifeq "$(WINDOWS)" "YES"
154 DYLIB_OBJS=$(COMMON_OBJ) ./common/common.res $(I18N_OBJ) $(STUB_DATA_OBJ)
156 DYLIB_OBJS=$(COMMON_OBJ) $(I18N_OBJ) $(IO_OBJ) $(STUB_DATA_OBJ)
159 #################################
161 #################################
163 # For installsrc (B&I)
164 # Note that installsrc is run on the system from which ICU is submitted, which
165 # may be a different environment than the one for a which a build is targeted.
167 INSTALLSRC_VARFILES=./ICU_embedded.order ./minimalpatchconfig.txt ./windowspatchconfig.txt ./patchconfig.txt
169 #################################
171 #################################
173 #We need to clean after installing.
177 # Some directories aren't cleaned recursively. Clean them manually...
178 MANUAL_CLEAN_TOOLS = ./tools/dumpce
179 MANUAL_CLEAN_EXTRA = ./extra/scrptrun ./samples/layout ./extra/ustdio ./extra
180 MANUAL_CLEAN_TEST = ./test/collperf ./test/iotest ./test/letest ./test/thaitest ./test/threadtest ./test/testmap ./test
181 MANUAL_CLEAN_SAMPLE = ./samples/layout ./samples
183 CLEAN_SUBDIR = ./stubdata ./common ./i18n ./io ./layout ./layoutex ./data ./tools ./$(MANUAL_CLEAN_TOOLS) $(MANUAL_CLEAN_EXTRA) $(MANUAL_CLEAN_TEST) $(MANUAL_CLEAN_SAMPLE)
185 #################################
187 #################################
189 ifeq "$(APPLE_EMBEDDED)" "YES"
190 CONFIG_FLAGS = --disable-renaming --disable-extras --disable-icuio --disable-layout \
191 --disable-samples --with-data-packaging=archive --prefix=$(PRIVATE_HDR_PREFIX) \
192 $(DRAFT_FLAG) --srcdir=$(SRCROOT)/icuSources
193 else ifeq "$(WINDOWS)" "YES"
194 CONFIG_FLAGS = --disable-extras --disable-icuio --disable-layout \
195 --disable-samples --with-data-packaging=library --prefix=$(PRIVATE_HDR_PREFIX) \
198 CONFIG_FLAGS = --disable-renaming --disable-extras --disable-layout \
199 --disable-samples --with-data-packaging=archive --prefix=$(PRIVATE_HDR_PREFIX) \
200 $(DRAFT_FLAG) --srcdir=$(SRCROOT)/icuSources
203 #################################
205 #################################
207 # This may or may not be an appropriate name for the icu dylib. This naming scheme is
208 # an attempt to follow the icu convention in naming the dylib and then having symbolic
209 # links of easier to remember library names point it it. *UPDATE* the version and
210 # sub-version variables as needed. The Core version should be 'A' until the core
211 # version changes it's API...that is a new version isn't backwards compatible.
212 # The ICU version/subversion should reflect the actual ICU version.
219 ifeq "$(WINDOWS)" "YES"
221 libdir = /AppleInternal/bin/
222 winlibdir = /AppleInternal/lib/
229 DYLIB = lib$(LIB_NAME).$(DYLIB_SUFF)
230 DYLIB_DEBUG = lib$(LIB_NAME)_debug.$(DYLIB_SUFF)
231 DYLIB_PROFILE = lib$(LIB_NAME)_profile.$(DYLIB_SUFF)
232 ifeq "$(WINDOWS)" "YES"
233 INSTALLED_DYLIB = $(LIB_NAME).$(DYLIB_SUFF)
234 INSTALLED_DYLIB_DEBUG = $(LIB_NAME)_debug.$(DYLIB_SUFF)
235 INSTALLED_DYLIB_PROFILE = $(LIB_NAME)_profile.$(DYLIB_SUFF)
237 INSTALLED_DYLIB = lib$(LIB_NAME).$(CORE_VERS).$(DYLIB_SUFF)
238 INSTALLED_DYLIB_DEBUG = lib$(LIB_NAME).$(CORE_VERS)_debug.$(DYLIB_SUFF)
239 INSTALLED_DYLIB_PROFILE = lib$(LIB_NAME).$(CORE_VERS)_profile.$(DYLIB_SUFF)
242 INSTALLED_DYLIB_icu = INSTALLED_DYLIB
243 INSTALLED_DYLIB_debug = INSTALLED_DYLIB_DEBUG
244 INSTALLED_DYLIB_profile = INSTALLED_DYLIB_PROFILE
246 DYLIB_debug = DYLIB_DEBUG
247 DYLIB_profile = DYLIB_PROFILE
249 #################################
251 #################################
253 datadir=/usr/share/icu/
254 OPEN_SOURCE_VERSIONS_DIR=/usr/local/OpenSourceVersions/
255 OPEN_SOURCE_LICENSES_DIR=/usr/local/OpenSourceLicenses/
256 ICU_DATA_DIR= data/out
257 B_DATA_FILE=icudt$(ICU_VERS)b.dat
258 L_DATA_FILE=icudt$(ICU_VERS)l.dat
260 #################################
261 # Environment variables
262 #################################
264 # $(RC_ARCHS:%=-arch %) is a substitution reference. It denotes, in this case,
265 # for every value <val> in RC_ARCHS, replace it with "-arch <val>". Substitution
266 # references have the form $(var:a=b). We can insert the strip and prebinding commands
267 # into CFLAGS (and CXXFLAGS). This controls a lot of the external variables so we don't
268 # need to directly modify the ICU files (like for CFLAGS, etc).
270 LIBOVERRIDES=LIBICUDT="-L$(OBJROOT) -l$(LIB_NAME)" \
271 LIBICUUC="-L$(OBJROOT) -l$(LIB_NAME)" \
272 LIBICUI18N="-L$(OBJROOT) -l$(LIB_NAME)"
274 # For normal Windows builds set the ENV= options here; for debug Windows builds set the ENV_DEBUG=
275 # options here and also the update the LINK.EXE lines in the TARGETS section below.
276 ifeq "$(WINDOWS)" "YES"
277 ifeq "$(ICU_BUILD)" "0"
280 CPPOPTIONS = CPPFLAGS="-DU_ICU_VERSION_BUILDLEVEL_NUM=$(ICU_BUILD)"
282 ENV= CFLAGS="/O2 /Ob2 /MD /GF /GS /nologo /D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES" CXXFLAGS="/O2 /Ob2 /MD /GF /GS /nologo /D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES /EHsc /Zc:wchar_t" LDFLAGS="/NXCOMPAT /SAFESEH /DYNAMICBASE"
283 ENV_CONFIGURE= $(CPPOPTIONS) CFLAGS="/O2 /Ob2 /MD /GF /GS /nologo /D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES" CXXFLAGS="/O2 /Ob2 /MD /GF /GS /nologo /D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES /EHsc /Zc:wchar_t"
284 ENV_DEBUG= CFLAGS="/O2 /Ob2 /MDd /GF /GS /Zi /D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES" CXXFLAGS="/O2 /Ob2 /MDd /GF /GS /Zi /D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES" LDFLAGS="/DEBUG"
287 ifeq "$(ICU_BUILD)" "0"
288 CPPOPTIONS = CPPFLAGS="-DSTD_INSPIRED -DMAC_OS_X_VERSION_MIN_REQUIRED=1040"
290 CPPOPTIONS = CPPFLAGS="-DU_ICU_VERSION_BUILDLEVEL_NUM=$(ICU_BUILD) -DSTD_INSPIRED -DMAC_OS_X_VERSION_MIN_REQUIRED=1040"
292 ENV= APPLE_INTERNAL_DIR="$(APPLE_INTERNAL_DIR)" \
293 CFLAGS="-DICU_DATA_DIR=\"\\\"/usr/share/icu/\\\"\" $(RC_ARCHS:%=-arch %) -g -Os -fno-exceptions -fvisibility=hidden $(ISYSROOT) $(THUMB_FLAG)" \
294 CXXFLAGS="-DICU_DATA_DIR=\"\\\"/usr/share/icu/\\\"\" $(RC_ARCHS:%=-arch %) -g -Os -fno-exceptions -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden $(ISYSROOT) $(THUMB_FLAG)" \
295 RC_ARCHS="$(RC_ARCHS)" \
297 DYLD_LIBRARY_PATH="$(DEST_ROOT)/usr/local/lib"
299 ENV_CONFIGURE= $(CPPOPTIONS) APPLE_INTERNAL_DIR="$(APPLE_INTERNAL_DIR)" \
300 CFLAGS="-DICU_DATA_DIR=\"\\\"/usr/share/icu/\\\"\" -g -Os -fno-exceptions -fvisibility=hidden $(ISYSROOT) $(THUMB_FLAG)" \
301 CXXFLAGS="-DICU_DATA_DIR=\"\\\"/usr/share/icu/\\\"\" -g -Os -fno-exceptions -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden $(ISYSROOT) $(THUMB_FLAG)" \
302 RC_ARCHS="$(RC_ARCHS)" \
304 DYLD_LIBRARY_PATH="$(DEST_ROOT)/usr/local/lib"
306 ENV_DEBUG = APPLE_INTERNAL_DIR="$(APPLE_INTERNAL_DIR)" \
307 CFLAGS="-DICU_DATA_DIR=\"\\\"/usr/share/icu/\\\"\" $(RC_ARCHS:%=-arch %) -O0 -gfull -fno-exceptions -fvisibility=hidden $(ISYSROOT) $(THUMB_FLAG)" \
308 CXXFLAGS="-DICU_DATA_DIR=\"\\\"/usr/share/icu/\\\"\" $(RC_ARCHS:%=-arch %) -O0 -gfull -fno-exceptions -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden $(ISYSROOT) $(THUMB_FLAG)" \
309 RC_ARCHS="$(RC_ARCHS)" \
311 DYLD_LIBRARY_PATH="$(DEST_ROOT)/usr/local/lib"
313 ENV_PROFILE = APPLE_INTERNAL_DIR="$(APPLE_INTERNAL_DIR)" \
314 CFLAGS="-DICU_DATA_DIR=\"\\\"/usr/share/icu/\\\"\" $(RC_ARCHS:%=-arch %) -g -Os -pg -fno-exceptions -fvisibility=hidden $(ISYSROOT) $(THUMB_FLAG)" \
315 CXXFLAGS="-DICU_DATA_DIR=\"\\\"/usr/share/icu/\\\"\" $(RC_ARCHS:%=-arch %) -g -Os -pg -fno-exceptions -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden $(ISYSROOT) $(THUMB_FLAG)" \
316 RC_ARCHS="$(RC_ARCHS)" \
318 DYLD_LIBRARY_PATH="$(DEST_ROOT)/usr/local/lib"
322 ENV_debug = ENV_DEBUG
323 ENV_profile = ENV_PROFILE
325 ifeq "$(APPLE_EMBEDDED)" "YES"
326 ORDERFILE=$(SRCROOT)/ICU_embedded.order
328 ORDERFILE=/usr/local/lib/OrderFiles/libicucore.order
330 ifeq "$(shell test -f $(ORDERFILE) && echo YES )" "YES"
331 SECTORDER_FLAGS=-sectorder __TEXT __text $(ORDERFILE)
337 #################################
338 #################################
340 #################################
341 #################################
343 .PHONY : icu check installsrc installhdrs installhdrsint clean install debug debug-install
346 icu debug profile : $(OBJROOT)/Makefile
348 $(MAKE) $($(ENV_$@)); \
349 if test "$(WINDOWS)" = "YES"; then \
350 if test "$@" = "debug"; then \
352 LINK.EXE /subsystem:console /DLL /nologo /base:"0x4a800000" /DEBUG \
353 /IMPLIB:../lib/icuuc_$@.lib /out:../lib/icuuc$(ICU_VERS)_$@.dll *.o \
354 common.res ../stubdata/icudt.lib advapi32.lib;); \
356 LINK.EXE /subsystem:console /DLL /nologo /base:"0x4a900000" /DEBUG \
357 /IMPLIB:../lib/icuin_$@.lib /out:../lib/icuin$(ICU_VERS)_$@.dll *.o \
358 i18n.res ../lib/icuuc_$@.lib ../stubdata/icudt.lib advapi32.lib;); \
361 tmpfile=`mktemp -t weakexternal` || exit 1; \
362 nm -m $(RC_ARCHS:%=-arch %) $(DYLIB_OBJS) | fgrep "weak external" | fgrep -v "undefined" | sed -e 's/.*weak external[^_]*//' | sort | uniq | cat >$$tmpfile; \
363 $($(ENV_$@)) $(CXX) -current_version $(ICU_VERS).$(ICU_SUBVERS) -compatibility_version 1 -dynamiclib -dynamic \
364 $(RC_ARCHS:%=-arch %) $(CXXFLAGS) $(LDFLAGS) -single_module $(SECTORDER_FLAGS) -unexported_symbols_list $$tmpfile -dead_strip \
365 -install_name $(libdir)$($(INSTALLED_DYLIB_$@)) -o ./$($(INSTALLED_DYLIB_$@)) $(DYLIB_OBJS); \
366 if test -f ./$(ICU_DATA_DIR)/$(B_DATA_FILE); then \
367 ln -fs ./$(ICU_DATA_DIR)/$(B_DATA_FILE); \
369 DYLD_LIBRARY_PATH="./lib:./stubdata" \
370 ./bin/icupkg -tb ./$(ICU_DATA_DIR)/$(L_DATA_FILE) $(B_DATA_FILE); \
372 if test -f ./$(ICU_DATA_DIR)/$(L_DATA_FILE); then \
373 ln -fs ./$(ICU_DATA_DIR)/$(L_DATA_FILE); \
375 DYLD_LIBRARY_PATH="./lib:./stubdata" \
376 ./bin/icupkg -tl ./$(ICU_DATA_DIR)/$(B_DATA_FILE) $(L_DATA_FILE); \
383 ICU_DATA=$(OBJROOT) $(MAKE) $(ENV) check; \
388 ICU_DATA=$(OBJROOT) $(MAKE) $(ENV_DEBUG) check; \
392 (cd $(OBJROOT)/samples; \
393 $(MAKE) $(ENV_DEBUG) $(LIBOVERRIDES); \
397 (cd $(OBJROOT)/extra; \
398 $(MAKE) $(ENV_DEBUG) $(LIBOVERRIDES); \
401 $(OBJROOT)/Makefile :
402 if test ! -d $(OBJROOT); then \
403 mkdir -p $(OBJROOT); \
405 if test "$(WINDOWS)" = "YES"; then \
406 cp -Rpf $(SRCROOT)/icuSources/* $(OBJROOT); \
407 (cd $(OBJROOT)/data/unidata; mv base_unidata/*.txt .;); \
408 (cd $(OBJROOT); $(ENV_CONFIGURE) ./runConfigureICU Cygwin/MSVC $(CONFIG_FLAGS);) \
410 (cd $(OBJROOT); $(ENV_CONFIGURE) $(SRCROOT)/icuSources/runConfigureICU MacOSX $(CONFIG_FLAGS);) \
412 if test "$(APPLE_EMBEDDED)" = "YES"; then \
413 (cd $(OBJROOT)/common/unicode/; \
414 cp $(SRCROOT)/icuSources/common/unicode/uconfig.h . ; \
415 cp $(SRCROOT)/icuSources/common/unicode/udata.h . ; \
416 patch <$(SRCROOT)/minimalpatchconfig.txt;) \
417 elif test "$(WINDOWS)" = "YES"; then \
418 (cd $(OBJROOT)/common/unicode/; \
419 cp $(SRCROOT)/icuSources/common/unicode/uconfig.h . ; \
420 patch <$(SRCROOT)/windowspatchconfig.txt;) \
422 (cd $(OBJROOT)/common/unicode/; \
423 cp $(SRCROOT)/icuSources/common/unicode/uconfig.h . ; \
424 patch <$(SRCROOT)/patchconfig.txt;) \
426 if test -f $(SRCROOT)/icuSources/common/Makefile.local; then \
427 cp -p $(SRCROOT)/icuSources/common/Makefile.local $(OBJROOT)/common/ ; \
430 #################################
432 #################################
434 # Since our sources are in icuSources (ignore the ICU subdirectory for now), we wish to
435 # copy them to somewhere else. We tar it to stdout, cd to the appropriate directory, and
436 # untar from stdin. We then look for all the CVS directories and remove them. We may have
437 # to remove the .cvsignore files also.
440 if test ! -d $(SRCROOT); then mkdir $(SRCROOT); fi;
441 if test -d $(SRCROOT)/icuSources ; then rm -rf $(SRCROOT)/icuSources; fi;
442 tar cf - ./makefile ./ICU.plist ./license.html ./icuSources $(INSTALLSRC_VARFILES) | (cd $(SRCROOT) ; tar xfp -); \
443 for i in `find $(SRCROOT)/icuSources/ | grep "CVS$$"` ; do \
444 if test -d $$i ; then \
448 for j in `find $(SRCROOT)/icuSources/ | grep ".cvsignore"` ; do \
449 if test -f $$j ; then \
454 # This works. Just not for ~ in the DEST_ROOT. We run configure first (in case it hasn't
455 # been already). Then we make the install-headers target on specific makefiles (since
456 # not every subdirectory/sub-component has a install-headers target).
458 # installhdrs should be no-op for RC_INDIGO
459 ifeq "$(RC_INDIGO)" "YES"
462 installhdrs : installhdrsint
465 installhdrsint : $(OBJROOT)/Makefile
467 for subdir in $(HDR_MAKE_SUBDIR); do \
468 (cd $$subdir; $(MAKE) -e DESTDIR=$(DEST_ROOT) $(ENV) install-headers); \
472 # We run configure and run make first. This generates the .o files. We then link them
473 # all up together into libicucore. Then we put it into its install location, create
474 # symbolic links, and then strip the main dylib. Then install the remaining libraries.
475 # We cleanup the sources folder.
477 install : installhdrsint icu
478 if test ! -d $(DEST_ROOT)$(libdir)/; then \
479 $(INSTALL) -d -m 0755 $(DEST_ROOT)$(libdir)/; \
481 if test "$(WINDOWS)" = "YES"; then \
482 if test ! -d $(DEST_ROOT)$(winlibdir)/; then \
483 $(INSTALL) -d -m 0755 $(DEST_ROOT)$(winlibdir)/; \
485 $(INSTALL) -b -m 0644 $(OBJROOT)/lib/icuuc.lib $(DEST_ROOT)$(winlibdir)icuuc.lib; \
486 $(INSTALL) -b -m 0644 $(OBJROOT)/lib/icuuc$(ICU_VERS).pdb $(DEST_ROOT)$(libdir)icuuc$(ICU_VERS).pdb; \
487 $(INSTALL) -b -m 0755 $(OBJROOT)/lib/icuuc$(ICU_VERS).dll $(DEST_ROOT)$(libdir)icuuc$(ICU_VERS).dll; \
488 $(INSTALL) -b -m 0644 $(OBJROOT)/lib/icuin.lib $(DEST_ROOT)$(winlibdir)icuin.lib; \
489 $(INSTALL) -b -m 0644 $(OBJROOT)/lib/icuin$(ICU_VERS).pdb $(DEST_ROOT)$(libdir)icuin$(ICU_VERS).pdb; \
490 $(INSTALL) -b -m 0755 $(OBJROOT)/lib/icuin$(ICU_VERS).dll $(DEST_ROOT)$(libdir)icuin$(ICU_VERS).dll; \
491 $(INSTALL) -b -m 0755 $(OBJROOT)/lib/icudt$(ICU_VERS).dll $(DEST_ROOT)$(libdir)icudt$(ICU_VERS).dll; \
493 $(INSTALL) -b -m 0664 $(OBJROOT)/$(INSTALLED_DYLIB) $(DEST_ROOT)$(libdir)$(INSTALLED_DYLIB); \
494 (cd $(DEST_ROOT)$(libdir); \
495 ln -fs $(INSTALLED_DYLIB) $(DYLIB)); \
496 cp $(OBJROOT)/$(INSTALLED_DYLIB) $(SYMROOT)/$(INSTALLED_DYLIB); \
497 strip -x -u -r -S $(DEST_ROOT)$(libdir)$(INSTALLED_DYLIB); \
498 for subdir in $(EXTRA_LIBS); do \
499 (cd $(OBJROOT)/$$subdir; $(MAKE) -e DESTDIR=$(DEST_ROOT) $(ENV) install-library;) \
501 if test ! -d $(DEST_ROOT)$(datadir)/; then \
502 $(INSTALL) -d -m 0755 $(DEST_ROOT)$(datadir)/; \
504 if test -f $(OBJROOT)/$(B_DATA_FILE); then \
505 $(INSTALL) -b -m 0644 $(OBJROOT)/$(B_DATA_FILE) $(DEST_ROOT)$(datadir)$(B_DATA_FILE); \
507 if test -f $(OBJROOT)/$(L_DATA_FILE); then \
508 $(INSTALL) -b -m 0644 $(OBJROOT)/$(L_DATA_FILE) $(DEST_ROOT)$(datadir)$(L_DATA_FILE); \
510 if test ! -d $(DEST_ROOT)$(OPEN_SOURCE_VERSIONS_DIR)/; then \
511 $(INSTALL) -d -m 0755 $(DEST_ROOT)$(OPEN_SOURCE_VERSIONS_DIR)/; \
513 $(INSTALL) -b -m 0644 $(SRCROOT)/ICU.plist $(DEST_ROOT)$(OPEN_SOURCE_VERSIONS_DIR)ICU.plist; \
514 if test ! -d $(DEST_ROOT)$(OPEN_SOURCE_LICENSES_DIR)/; then \
515 $(INSTALL) -d -m 0755 $(DEST_ROOT)$(OPEN_SOURCE_LICENSES_DIR)/; \
517 $(INSTALL) -b -m 0644 $(SRCROOT)/license.html $(DEST_ROOT)$(OPEN_SOURCE_LICENSES_DIR)ICU.html; \
520 DEPEND_install_debug = debug
521 DEPEND_install_profile = profile
524 install_debug install_profile : $$(DEPEND_$$@)
525 if test ! -d $(DEST_ROOT)$(libdir)/; then \
526 $(INSTALL) -d -m 0755 $(DEST_ROOT)$(libdir)/; \
528 if test "$(WINDOWS)" = "YES"; then \
529 if test ! -d $(DEST_ROOT)$(winlibdir)/; then \
530 $(INSTALL) -d -m 0755 $(DEST_ROOT)$(winlibdir)/; \
532 $(INSTALL) -b -m 0644 $(OBJROOT)/lib/icuuc_$(DEPEND_$@).lib $(DEST_ROOT)$(winlibdir)icuuc_$(DEPEND_$@).lib; \
533 $(INSTALL) -b -m 0644 $(OBJROOT)/lib/icuuc$(ICU_VERS)_$(DEPEND_$@).pdb $(DEST_ROOT)$(libdir)icuuc$(ICU_VERS)_$(DEPEND_$@).pdb; \
534 $(INSTALL) -b -m 0755 $(OBJROOT)/lib/icuuc$(ICU_VERS)_$(DEPEND_$@).dll $(DEST_ROOT)$(libdir)icuuc$(ICU_VERS)_$(DEPEND_$@).dll; \
535 $(INSTALL) -b -m 0644 $(OBJROOT)/lib/icuin_$(DEPEND_$@).lib $(DEST_ROOT)$(winlibdir)icuin_$(DEPEND_$@).lib; \
536 $(INSTALL) -b -m 0644 $(OBJROOT)/lib/icuin$(ICU_VERS)_$(DEPEND_$@).pdb $(DEST_ROOT)$(libdir)icuin$(ICU_VERS)_$(DEPEND_$@).pdb; \
537 $(INSTALL) -b -m 0755 $(OBJROOT)/lib/icuin$(ICU_VERS)_$(DEPEND_$@).dll $(DEST_ROOT)$(libdir)icuin$(ICU_VERS)_$(DEPEND_$@).dll; \
539 $(INSTALL) -b -m 0664 $(OBJROOT)/$($(INSTALLED_DYLIB_$(DEPEND_$@))) $(DEST_ROOT)$(libdir)$($(INSTALLED_DYLIB_$(DEPEND_$@))); \
540 (cd $(DEST_ROOT)$(libdir); \
541 ln -fs $($(INSTALLED_DYLIB_$(DEPEND_$@))) $($(DYLIB_$(DEPEND_$@)))); \
542 cp $(OBJROOT)/$($(INSTALLED_DYLIB_$(DEPEND_$@))) $(SYMROOT)/$($(INSTALLED_DYLIB_$(DEPEND_$@))); \
543 strip -x -u -r -S $(DEST_ROOT)$(libdir)$($(INSTALLED_DYLIB_$(DEPEND_$@))); \
544 for subdir in $(EXTRA_LIBS); do \
545 (cd $(OBJROOT)/$$subdir; $(MAKE) -e DESTDIR=$(DEST_ROOT) $(ENV) install-library;) \