intl/icu/source/config/mh-aix-va

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/intl/icu/source/config/mh-aix-va	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,138 @@
     1.4 +## -*-makefile-*-
     1.5 +## Aix-specific setup (for Visual Age 5+)
     1.6 +## Copyright (c) 1999-2010, International Business Machines Corporation and
     1.7 +## others. All Rights Reserved.
     1.8 +
     1.9 +## Commands to generate dependency files
    1.10 +GEN_DEPS.c=	$(CC) -E -M $(DEFS) $(CPPFLAGS)
    1.11 +GEN_DEPS.cc=	$(CXX) -E -M $(DEFS) $(CPPFLAGS)
    1.12 +
    1.13 +# -qroconst make the strings readonly, which is usually the default.
    1.14 +#           This helps in the data library,
    1.15 +# -qproto assumes all functions are prototyped (for optimization)
    1.16 +# -qrtti turns on compiler RTTI, required beginning with ICU 4.6
    1.17 +CFLAGS += -qproto -qroconst
    1.18 +CXXFLAGS += -qproto -qroconst -qrtti
    1.19 +
    1.20 +# If you readd this line, you must change the SO value
    1.21 +#LDFLAGS += -brtl
    1.22 +
    1.23 +ifeq ($(UCLN_NO_AUTO_CLEANUP),0)
    1.24 +# set up init point.
    1.25 +UCLN_FINI =  ucln_fini$(TARGET_STUBNAME)_$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIXCNAME)
    1.26 +CPPFLAGS_FINI = -DUCLN_FINI=$(UCLN_FINI)
    1.27 +LDFLAGS_FINI = -binitfini::$(UCLN_FINI)
    1.28 +
    1.29 +CPPFLAGSICUUC += $(CPPFLAGS_FINI)
    1.30 +LDFLAGSICUUC += $(LDFLAGS_FINI)
    1.31 +CPPFLAGSICUIO += $(CPPFLAGS_FINI)
    1.32 +LDFLAGSICUIO += $(LDFLAGS_FINI)
    1.33 +CPPFLAGSICUI18N += $(CPPFLAGS_FINI)
    1.34 +LDFLAGSICUI18N += $(LDFLAGS_FINI)
    1.35 +CPPFLAGSCTESTFW += $(CPPFLAGS_FINI)
    1.36 +LDFLAGSCTESTFW += $(LDFLAGS_FINI)
    1.37 +
    1.38 +# ICUUC, ICUIO, ICUI18N, CTESTFW
    1.39 +endif
    1.40 +
    1.41 +## We need to delete things prior to linking, or else we'll get
    1.42 +## SEVERE ERROR: output file in use ..  on AIX. 
    1.43 +## But, shell script version should NOT delete target as we don't
    1.44 +## have $@ in that context.  (SH = only shell script, icu-config)
    1.45 +AIX_PREDELETE=rm -f $@ ; 
    1.46 +#SH# AIX_PREDELETE=
    1.47 +
    1.48 +## Commands to link
    1.49 +## We need to use the C++ linker, even when linking C programs, since
    1.50 +##  our libraries contain C++ code (C++ static init not called)
    1.51 +LINK.c=		$(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS)
    1.52 +LINK.cc=	$(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS)
    1.53 +
    1.54 +## Commands to make a shared library
    1.55 +## -G means -berok -brtl -bnortllib -bnosymbolic -bnoautoexp
    1.56 +## -bh:8 means halt on errors or worse.  We don't display warnings about
    1.57 +##      duplicate inline symbols.
    1.58 +SHLIB.c=	$(AIX_PREDELETE) $(CXX) -qmkshrobj -G $(LDFLAGS)
    1.59 +SHLIB.cc=	$(AIX_PREDELETE) $(CXX) -qmkshrobj -G $(LDFLAGS)
    1.60 +
    1.61 +## Compiler switch to embed a runtime search path
    1.62 +LD_RPATH=	-I
    1.63 +LD_RPATH_PRE=	
    1.64 +
    1.65 +## Environment variable to set a runtime search path
    1.66 +LDLIBRARYPATH_ENVVAR = LIBPATH
    1.67 +
    1.68 +# The following is for Makefile.inc's use.
    1.69 +ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR)
    1.70 +
    1.71 +# this one is for icudefs.mk's use
    1.72 +ifeq ($(ENABLE_SHARED),YES)
    1.73 +SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR)
    1.74 +endif
    1.75 +
    1.76 +LD_SONAME = 
    1.77 +
    1.78 +## The type of assembly needed when pkgdata is used for generating shared libraries.
    1.79 +GENCCODE_ASSEMBLY=-a xlc
    1.80 +
    1.81 +## Shared object suffix
    1.82 +SOBJ=	so
    1.83 +# without the -brtl option, the library names use .a. AIX is funny that way.
    1.84 +SO=	a
    1.85 +## Non-shared intermediate object suffix
    1.86 +STATIC_O = o
    1.87 +
    1.88 +## Override Versioned target for a shared library.
    1.89 +FINAL_SO_TARGET=  $(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO)
    1.90 +MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
    1.91 +SHARED_OBJECT = $(notdir $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ)))
    1.92 +SHARED_OBJECT_NO_VERSION=  $(basename $(SO_TARGET)).$(SOBJ)
    1.93 +
    1.94 +## Build archive from shared object
    1.95 +%.a : %.so
    1.96 +	ln -f $< $(SHARED_OBJECT_NO_VERSION) 
    1.97 +	$(AIX_PREDELETE) $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION)
    1.98 +	rm -f $(SHARED_OBJECT_NO_VERSION)
    1.99 +$(LIBDIR)/%.a : %.so
   1.100 +	ln -f $< $(SHARED_OBJECT_NO_VERSION) 
   1.101 +	$(AIX_PREDELETE) $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION)
   1.102 +	rm -f $(SHARED_OBJECT_NO_VERSION)
   1.103 +
   1.104 +## Build import list from export list
   1.105 +%.e : %.exp
   1.106 +	@echo "Building an import list for $<"
   1.107 +	@$(SHELL) -ec "echo '#! $*.a($*.so)' | cat - $< > $@"
   1.108 +
   1.109 +## Compilation rules
   1.110 +%.$(STATIC_O): $(srcdir)/%.c
   1.111 +	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
   1.112 +%.o: $(srcdir)/%.c
   1.113 +	$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
   1.114 +
   1.115 +%.$(STATIC_O): $(srcdir)/%.cpp
   1.116 +	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
   1.117 +%.o: $(srcdir)/%.cpp
   1.118 +	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
   1.119 +
   1.120 +
   1.121 +## Dependency rules
   1.122 +%.d : %.u
   1.123 +	@$(SHELL) -ec 'cat $<  \
   1.124 +		| sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \
   1.125 +		[ -s $@ ] || rm -f $@ ; rm -f $<'
   1.126 +
   1.127 +%.u : $(srcdir)/%.c
   1.128 +	@echo "generating dependency information for $<"
   1.129 +	@$(GEN_DEPS.c) $< > /dev/null
   1.130 +
   1.131 +%.u : $(srcdir)/%.cpp
   1.132 +	@echo "generating dependency information for $<"
   1.133 +	@$(GEN_DEPS.cc) $< > /dev/null
   1.134 +
   1.135 +## Versioned libraries rules
   1.136 +%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)
   1.137 +	$(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@
   1.138 +%.$(SO): %$(SO_TARGET_VERSION).$(SO)
   1.139 +	$(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@
   1.140 +
   1.141 +## End Aix-specific setup

mercurial