X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/374ca955a76ecab1204ca8bfa63ff9238d998416..f3c0d7a59d99c2a94c6b8822291f0e42be3773c9:/icuSources/config/mh-aix-va diff --git a/icuSources/config/mh-aix-va b/icuSources/config/mh-aix-va index c39ccee9..1572466a 100644 --- a/icuSources/config/mh-aix-va +++ b/icuSources/config/mh-aix-va @@ -1,6 +1,8 @@ ## -*-makefile-*- +## Copyright (C) 2016 and later: Unicode, Inc. and others. +## License & terms of use: http://www.unicode.org/copyright.html ## Aix-specific setup (for Visual Age 5+) -## Copyright (c) 1999-2004, International Business Machines Corporation and +## Copyright (c) 1999-2010, International Business Machines Corporation and ## others. All Rights Reserved. ## Commands to generate dependency files @@ -10,12 +12,31 @@ GEN_DEPS.cc= $(CXX) -E -M $(DEFS) $(CPPFLAGS) # -qroconst make the strings readonly, which is usually the default. # This helps in the data library, # -qproto assumes all functions are prototyped (for optimization) -CFLAGS += -qproto -qroconst -CXXFLAGS += -qproto -qroconst +# -qrtti turns on compiler RTTI, required beginning with ICU 4.6 +CFLAGS += -qproto -qroconst -qlanglvl=extended +CXXFLAGS += -qproto -qroconst -qrtti -qlanglvl=extended0x # If you readd this line, you must change the SO value #LDFLAGS += -brtl +ifeq ($(UCLN_NO_AUTO_CLEANUP),0) +# set up init point. +UCLN_FINI = ucln_fini$(TARGET_STUBNAME)_$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIXCNAME) +CPPFLAGS_FINI = -DUCLN_FINI=$(UCLN_FINI) +LDFLAGS_FINI = -binitfini::$(UCLN_FINI) + +CPPFLAGSICUUC += $(CPPFLAGS_FINI) +LDFLAGSICUUC += $(LDFLAGS_FINI) +CPPFLAGSICUIO += $(CPPFLAGS_FINI) +LDFLAGSICUIO += $(LDFLAGS_FINI) +CPPFLAGSICUI18N += $(CPPFLAGS_FINI) +LDFLAGSICUI18N += $(LDFLAGS_FINI) +CPPFLAGSCTESTFW += $(CPPFLAGS_FINI) +LDFLAGSCTESTFW += $(LDFLAGS_FINI) + +# ICUUC, ICUIO, ICUI18N, CTESTFW +endif + ## We need to delete things prior to linking, or else we'll get ## SEVERE ERROR: output file in use .. on AIX. ## But, shell script version should NOT delete target as we don't @@ -43,10 +64,6 @@ LD_RPATH_PRE= ## Environment variable to set a runtime search path LDLIBRARYPATH_ENVVAR = LIBPATH -## Override Versioned target for a shared library. -FINAL_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO) -MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO) - # The following is for Makefile.inc's use. ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR) @@ -61,15 +78,27 @@ LD_SONAME = GENCCODE_ASSEMBLY=-a xlc ## Shared object suffix -#SO= so +SOBJ= so # without the -brtl option, the library names use .a. AIX is funny that way. SO= a ## Non-shared intermediate object suffix STATIC_O = o +## Override Versioned target for a shared library. +FINAL_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO) +MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO) +SHARED_OBJECT = $(notdir $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ))) +SHARED_OBJECT_NO_VERSION= $(basename $(SO_TARGET)).$(SOBJ) + ## Build archive from shared object %.a : %.so - $(AR) $(ARFLAGS) $@ $< + ln -f $< $(SHARED_OBJECT_NO_VERSION) + $(AIX_PREDELETE) $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION) + rm -f $(SHARED_OBJECT_NO_VERSION) +$(LIBDIR)/%.a : %.so + ln -f $< $(SHARED_OBJECT_NO_VERSION) + $(AIX_PREDELETE) $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION) + rm -f $(SHARED_OBJECT_NO_VERSION) ## Build import list from export list %.e : %.exp @@ -82,11 +111,31 @@ STATIC_O = o %.o: $(srcdir)/%.c $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.$(STATIC_O): $(srcdir)/%.cpp - $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< + +## C++ compilation rules. + +# This causes escapesrc to be built before other ICU targets. +NEED_ESCAPING=YES + +ifneq ($(SKIP_ESCAPING),) +# no escaping - bootstrap %.o: $(srcdir)/%.cpp $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< +else +# convert *.cpp files to _*.cpp with \u / \U escaping +CLEANFILES += _*.cpp +# the actual escaping +_%.cpp: $(srcdir)/%.cpp + @$(BINDIR)/escapesrc$(EXEEXT) $< $@ + +# compilation for static obj +%.$(STATIC_O): _%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +# compilation for dynamic obj +%.o: _%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< +endif ## Dependency rules %.d : %.u @@ -96,11 +145,11 @@ STATIC_O = o %.u : $(srcdir)/%.c @echo "generating dependency information for $<" - @$(SHELL) -ec '$(GEN_DEPS.c) $< > /dev/null' + @$(GEN_DEPS.c) $< > /dev/null %.u : $(srcdir)/%.cpp @echo "generating dependency information for $<" - @$(SHELL) -ec '$(GEN_DEPS.cc) $< > /dev/null' + @$(GEN_DEPS.cc) $< > /dev/null ## Versioned libraries rules %$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)