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

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/intl/icu/source/config/mh-aix-gcc	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,133 @@
     1.4 +## -*-makefile-*-
     1.5 +## Copyright (c) 2003-2009 IBM, Ken Foskey, and others. All rights reserved.
     1.6 +##
     1.7 +## Aix-specific setup (for gcc)
     1.8 +##
     1.9 +## Please note: AIX does NOT have library versioning per se (there is no 'SONAME' capability). 
    1.10 +## So, we are using 'windows' style library names, that is, libicuuc20.1.so instead of libicuuc.so.20.1
    1.11 +
    1.12 +# Certain files don't compile in -ansi mode (e.g. umutex.c, toolutil.c, and cdatatst.c)
    1.13 +CFLAGS += -D_ALL_SOURCE
    1.14 +
    1.15 +## Commands to generate dependency files
    1.16 +GEN_DEPS.c=	$(CC) -E -MM $(DEFS) $(CPPFLAGS)
    1.17 +GEN_DEPS.cc=	$(CXX) -E -MM $(DEFS) $(CPPFLAGS)
    1.18 +
    1.19 +## Commands to link
    1.20 +## We need to use the C++ linker, even when linking C programs, since
    1.21 +##  our libraries contain C++ code (C++ static init not called)
    1.22 +LINK.c=		$(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) 
    1.23 +LINK.cc=	$(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) 
    1.24 +
    1.25 +## Shared library options
    1.26 +LD_SOOPTIONS= -Wl,-bsymbolic
    1.27 +
    1.28 +## Commands to make a shared library
    1.29 +SHLIB.c=    $(AIX_PREDELETE) $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-bexpall $(LD_SOOPTIONS)
    1.30 +SHLIB.cc=   $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -Wl,-bexpall $(LD_SOOPTIONS)
    1.31 +
    1.32 +## Compiler switch to embed a runtime search path
    1.33 +LD_RPATH=	-I
    1.34 +LD_RPATH_PRE=	
    1.35 +
    1.36 +## enable the shared lib loader
    1.37 +LDFLAGS += -Wl,-bbigtoc
    1.38 +
    1.39 +## These are the library specific LDFLAGS
    1.40 +LDFLAGSICUDT=-nodefaultlibs -nostdlib
    1.41 +
    1.42 +## We need to delete things prior to linking, or else we'll get
    1.43 +## SEVERE ERROR: output file in use ..  on AIX. 
    1.44 +## But, shell script version should NOT delete target as we don't
    1.45 +## have $@ in that context.  (SH = only shell script, icu-config)
    1.46 +AIX_PREDELETE=rm -f $@ ; 
    1.47 +#SH# AIX_PREDELETE=
    1.48 +
    1.49 +## Environment variable to set a runtime search path
    1.50 +LDLIBRARYPATH_ENVVAR = LIBPATH
    1.51 +
    1.52 +## Override Versioned target for a shared library.
    1.53 +FINAL_SO_TARGET=  $(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO)
    1.54 +MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
    1.55 +SHARED_OBJECT = $(notdir $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ)))
    1.56 +SHARED_OBJECT_NO_VERSION = $(basename $(SO_TARGET)).$(SOBJ)
    1.57 +
    1.58 +# The following is for Makefile.inc's use.
    1.59 +ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR)
    1.60 +
    1.61 +# this one is for icudefs.mk's use
    1.62 +ifeq ($(ENABLE_SHARED),YES)
    1.63 +SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR)
    1.64 +endif
    1.65 +
    1.66 +## Compiler switch to embed a library name. Not present on AIX.
    1.67 +LD_SONAME = 
    1.68 +
    1.69 +## The type of assembly needed when pkgdata is used for generating shared libraries.
    1.70 +GENCCODE_ASSEMBLY=-a xlc
    1.71 +
    1.72 +## Shared object suffix
    1.73 +SOBJ=   so
    1.74 +# without the -brtl option, the library names use .a. AIX is funny that way.
    1.75 +SO=	a
    1.76 +A=	a
    1.77 +
    1.78 +## Non-shared intermediate object suffix
    1.79 +STATIC_O = o
    1.80 +
    1.81 +## Special AIX rules
    1.82 +
    1.83 +## Build archive from shared object
    1.84 +%.a : %.so
    1.85 +	ln -f $< $(SHARED_OBJECT_NO_VERSION)
    1.86 +	$(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION)
    1.87 +	rm -f $(SHARED_OBJECT_NO_VERSION)
    1.88 +$(LIBDIR)/%.a : %.so
    1.89 +	ln -f $< $(SHARED_OBJECT_NO_VERSION)
    1.90 +	$(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION)
    1.91 +	rm -f $(SHARED_OBJECT_NO_VERSION)
    1.92 +
    1.93 +## Build import list from export list
    1.94 +%.e : %.exp
    1.95 +	@echo "Building an import list for $<"
    1.96 +	@$(SHELL) -ec "echo '#! $*.a($*.so)' | cat - $< > $@"
    1.97 +
    1.98 +## Compilation rules
    1.99 +%.$(STATIC_O): $(srcdir)/%.c
   1.100 +	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
   1.101 +%.o: $(srcdir)/%.c
   1.102 +	$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
   1.103 +
   1.104 +%.$(STATIC_O): $(srcdir)/%.cpp
   1.105 +	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
   1.106 +%.o: $(srcdir)/%.cpp
   1.107 +	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
   1.108 +
   1.109 +
   1.110 +## Dependency rules
   1.111 +%.d: $(srcdir)/%.c
   1.112 +	@echo "generating dependency information for $<"
   1.113 +	@$(SHELL) -ec '$(GEN_DEPS.c) $< \
   1.114 +		| sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \
   1.115 +		[ -s $@ ] || rm -f $@'
   1.116 +
   1.117 +%.d: $(srcdir)/%.cpp
   1.118 +	@echo "generating dependency information for $<"
   1.119 +	@$(SHELL) -ec '$(GEN_DEPS.cc) $< \
   1.120 +		| sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \
   1.121 +		[ -s $@ ] || rm -f $@'
   1.122 +
   1.123 +## Versioned libraries rules
   1.124 +%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)
   1.125 +	$(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@
   1.126 +%.$(SO): %$(SO_TARGET_VERSION).$(SO)
   1.127 +	$(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@
   1.128 +
   1.129 +
   1.130 +## BIR  - bind with internal references [so app data and icu data doesn't collide]
   1.131 +# LDflags that pkgdata will use
   1.132 +BIR_LDFLAGS= -Wl,-bE:$(NAME).map,-bnoexpall
   1.133 +
   1.134 +# Dependencies [i.e. map files] for the final library
   1.135 +BIR_DEPS= $(NAME).map
   1.136 +

mercurial