--- misc/icu/source/config/mh-aix-gcc 2009-01-15 01:46:10.000000000 -0600 +++ misc/build/icu/source/config/mh-aix-gcc 2010-06-24 20:58:16.000000000 -0500 @@ -1,10 +1,7 @@ ## -*-makefile-*- -## Copyright (c) 2003-2009 IBM, Ken Foskey, and others. All rights reserved. -## -## Aix-specific setup (for gcc) -## -## Please note: AIX does NOT have library versioning per se (there is no 'SONAME' capability). -## So, we are using 'windows' style library names, that is, libicuuc20.1.so instead of libicuuc.so.20.1 +## Linux-specific setup +## Copyright (c) 1999-2006, International Business Machines Corporation and +## others. All Rights Reserved. # Certain files don't compile in -ansi mode (e.g. umutex.c, toolutil.c, and cdatatst.c) CFLAGS += -D_ALL_SOURCE @@ -13,84 +10,30 @@ GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS) GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS) -## Commands to link -## We need to use the C++ linker, even when linking C programs, since -## our libraries contain C++ code (C++ static init not called) -LINK.c= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) -LINK.cc= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) - -## Shared library options -LD_SOOPTIONS= -Wl,-bsymbolic - -## Commands to make a shared library -SHLIB.c= $(AIX_PREDELETE) $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-bexpall $(LD_SOOPTIONS) -SHLIB.cc= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -Wl,-bexpall $(LD_SOOPTIONS) +## Flags for position independent code +SHAREDLIBCFLAGS = -fPIC +SHAREDLIBCXXFLAGS = -fPIC +SHAREDLIBCPPFLAGS = -DPIC + +## Additional flags when building libraries and with threads +THREADSCPPFLAGS = -D_REENTRANT -D_THREAD_SAFE +LIBCPPFLAGS = ## Compiler switch to embed a runtime search path -LD_RPATH= -I -LD_RPATH_PRE= - -## enable the shared lib loader -LDFLAGS += -Wl,-bbigtoc +LD_RPATH= +LD_RPATH_PRE= ## These are the library specific LDFLAGS LDFLAGSICUDT=-nodefaultlibs -nostdlib -## 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 -## have $@ in that context. (SH = only shell script, icu-config) -AIX_PREDELETE=rm -f $@ ; -#SH# AIX_PREDELETE= - ## 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) -SHARED_OBJECT = $(notdir $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ))) -SHARED_OBJECT_NO_VERSION = $(basename $(SO_TARGET)).$(SOBJ) - -# The following is for Makefile.inc's use. -ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR) - -# this one is for icudefs.mk's use -ifeq ($(ENABLE_SHARED),YES) -SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR) -endif - -## Compiler switch to embed a library name. Not present on AIX. -LD_SONAME = - -## The type of assembly needed when pkgdata is used for generating shared libraries. -GENCCODE_ASSEMBLY=-a xlc - ## Shared object suffix -SOBJ= so -# without the -brtl option, the library names use .a. AIX is funny that way. -SO= a -A= a +SO = so ## Non-shared intermediate object suffix -STATIC_O = o - -## Special AIX rules - -## Build archive from shared object -%.a : %.so - ln -f $< $(SHARED_OBJECT_NO_VERSION) - $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION) - rm -f $(SHARED_OBJECT_NO_VERSION) -$(LIBDIR)/%.a : %.so - ln -f $< $(SHARED_OBJECT_NO_VERSION) - $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION) - rm -f $(SHARED_OBJECT_NO_VERSION) - -## Build import list from export list -%.e : %.exp - @echo "Building an import list for $<" - @$(SHELL) -ec "echo '#! $*.a($*.so)' | cat - $< > $@" +STATIC_O = ao ## Compilation rules %.$(STATIC_O): $(srcdir)/%.c @@ -118,10 +61,10 @@ [ -s $@ ] || rm -f $@' ## Versioned libraries rules -%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO) - $(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@ -%.$(SO): %$(SO_TARGET_VERSION).$(SO) - $(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@ +%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) + $(RM) $@ && ln -s ${