]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/config/mh-aix-va
ICU-59117.0.1.tar.gz
[apple/icu.git] / icuSources / config / mh-aix-va
index 39faf459a0b3345393ee19c8b8eaf58b5b2dfc3e..1572466a550785c6d6c39346dfee81dabfd3d94f 100644 (file)
@@ -1,6 +1,8 @@
 ## -*-makefile-*-
 ## -*-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+)
 ## Aix-specific setup (for Visual Age 5+)
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## Copyright (c) 1999-2010, International Business Machines Corporation and
 ## others. All Rights Reserved.
 
 ## Commands to generate dependency files
 ## 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)
 # -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
 
 
 # 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
 ## 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
@@ -67,12 +88,17 @@ STATIC_O = o
 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)))
 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
 
 ## 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
 $(LIBDIR)/%.a : %.so
-       $(AR) $(ARFLAGS) $@ $<
+       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
 
 ## Build import list from export list
 %.e : %.exp
@@ -85,11 +111,31 @@ $(LIBDIR)/%.a : %.so
 %.o: $(srcdir)/%.c
        $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -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 $@ $<
 %.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
 
 ## Dependency rules
 %.d : %.u
@@ -99,11 +145,11 @@ $(LIBDIR)/%.a : %.so
 
 %.u : $(srcdir)/%.c
        @echo "generating dependency information for $<"
 
 %.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 $<"
 
 %.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)
 
 ## Versioned libraries rules
 %$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)