diff --git a/icu4c/source/config/mh-aix b/icu4c/source/config/mh-aix index e7def5a8778..bed5b8cb9f7 100644 --- a/icu4c/source/config/mh-aix +++ b/icu4c/source/config/mh-aix @@ -1,9 +1,12 @@ ## -*-makefile-*- ## Aix-specific setup (for xlC) -## Copyright (c) 1999-2000, International Business Machines Corporation and +## Copyright (c) 1999-2002, International Business Machines Corporation and ## others. All Rights Reserved. ## -## $Id: mh-aix,v 1.26 2002/03/08 00:25:53 srl Exp $ +## $Id: mh-aix,v 1.27 2002/03/14 02:00:35 srl Exp $ +## +## 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 ## Commands to generate dependency files GEN_DEPS.c= $(CC) -E -M $(DEFS) $(CPPFLAGS) @@ -16,8 +19,7 @@ COMPILE.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -qroconst -c ## 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= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -LINK.c= $(CXX) -brtl $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) +LINK.c= $(CXX) -brtl $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) LINK.cc= $(CXX) -brtl $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) ## Commands to make a shared library @@ -31,8 +33,22 @@ LD_RPATH_PRE= ## Environment variable to set a runtime search path LDLIBRARYPATH_ENVVAR = LIBPATH -## Compiler switch to embed a library name -#LD_SONAME = -Wl, +## Override Versioned target for a shared library. +FINAL_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION)$(ICULIBSUFFIX).$(SO) +MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX).$(SO) + +## Override the library calls because AIX doesn't have library versioning. +LIBICUDT= -L$(top_builddir)/data/out -L$(top_builddir)/stubdata -l$(ICUPREFIX)data$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) +LIBICUUC= -L$(top_builddir)/common -l$(ICUPREFIX)uc$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) $(LIBICUDT) +LIBICUI18N= -L$(top_builddir)/i18n -l$(ICUPREFIX)i18n$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) +LIBICULE= -L$(top_builddir)/layout -l$(ICUPREFIX)le$(SO_TARGET_VERSION_MAJOR)$(ICULIBSSUFFIX) +LIBCTESTFW= -L$(top_builddir)/tools/ctestfw -l$(ICUPREFIX)ctestfw$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) +LIBICUTOOLUTIL= -L$(top_builddir)/tools/toolutil -l$(ICUPREFIX)toolutil$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) +LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) +ICULIBSUFFIX_VERSION = $(SO_TARGET_VERSION_MAJOR) + +## Compiler switch to embed a library name. Not present on AIX. +LD_SONAME = ## Shared object suffix SO= so @@ -79,15 +95,18 @@ STATIC_O = o @echo "generating dependency information for $<" @$(SHELL) -ec '$(GEN_DEPS.cc) $< > /dev/null' + ## Versioned libraries rules -%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) - $(RM) $@ && ln -s $< $@ -%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR) - $(RM) $@ && ln -s $*.$(SO).$(SO_TARGET_VERSION) $@ +%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION)$(ICULIBSUFFIX).$(SO) + $(RM) $@ && ln -s $*$(SO_TARGET_VERSION)$(ICULIBSUFFIX).$(SO) $@ +%.$(SO): %$(SO_TARGET_VERSION)$(ICULIBSUFFIX).$(SO) + $(RM) $@ && ln -s $*$(SO_TARGET_VERSION)$(ICULIBSUFFIX).$(SO) $@ + ## BIR - bind with internal references [so app data and icu data doesn't collide] BIR_LDFLAGS= -E$(NAME).map -bnoexpall BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES BIR_DEPS= $(NAME).map + ## End Aix-specific setup diff --git a/icu4c/source/config/mh-aix-va b/icu4c/source/config/mh-aix-va index cd3ae2fb2d0..14f9f593536 100644 --- a/icu4c/source/config/mh-aix-va +++ b/icu4c/source/config/mh-aix-va @@ -1,9 +1,9 @@ ## -*-makefile-*- -## Aix-specific setup (for xlC) -## Copyright (c) 1999-2000, International Business Machines Corporation and +## Aix-specific setup (for Visual Age 5+) +## Copyright (c) 1999-2002, International Business Machines Corporation and ## others. All Rights Reserved. ## -## $Id: mh-aix-va,v 1.19 2002/03/08 00:25:53 srl Exp $ +## $Id: mh-aix-va,v 1.20 2002/03/14 02:00:36 srl Exp $ ## Commands to generate dependency files GEN_DEPS.c= $(CC) -E -M $(DEFS) $(CPPFLAGS) @@ -33,13 +33,28 @@ 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)$(ICULIBSUFFIX).$(SO) +MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX).$(SO) + +## Special AIX rules +## Override the library calls because AIX doesn't have library versioning. +LIBICUDT= -L$(top_builddir)/data/out -L$(top_builddir)/stubdata -l$(ICUPREFIX)data$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) +LIBICUUC= -L$(top_builddir)/common -l$(ICUPREFIX)uc$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) $(LIBICUDT) +LIBICUI18N= -L$(top_builddir)/i18n -l$(ICUPREFIX)i18n$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) +LIBICULE= -L$(top_builddir)/layout -l$(ICUPREFIX)le$(SO_TARGET_VERSION_MAJOR)$(ICULIBSSUFFIX) +LIBCTESTFW= -L$(top_builddir)/tools/ctestfw -l$(ICUPREFIX)ctestfw$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) +LIBICUTOOLUTIL= -L$(top_builddir)/tools/toolutil -l$(ICUPREFIX)toolutil$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) +LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIX) +ICULIBSUFFIX_VERSION = $(SO_TARGET_VERSION_MAJOR) + +LD_SONAME = + ## Shared object suffix SO= so ## Non-shared intermediate object suffix STATIC_O = o -## Special AIX rules - ## Build archive from shared object %.a : %.so $(AR) $(ARFLAGS) $@ $< @@ -78,9 +93,9 @@ STATIC_O = o @$(SHELL) -ec '$(GEN_DEPS.cc) $< > /dev/null' ## Versioned libraries rules -%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) - $(RM) $@ && ln -s $< $@ -%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR) - $(RM) $@ && ln -s $*.$(SO).$(SO_TARGET_VERSION) $@ +%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION)$(ICULIBSUFFIX).$(SO) + $(RM) $@ && ln -s $*$(SO_TARGET_VERSION)$(ICULIBSUFFIX).$(SO) $@ +%.$(SO): %$(SO_TARGET_VERSION)$(ICULIBSUFFIX).$(SO) + $(RM) $@ && ln -s $*$(SO_TARGET_VERSION)$(ICULIBSUFFIX).$(SO) $@ ## End Aix-specific setup diff --git a/icu4c/source/config/mh-hpux-acc b/icu4c/source/config/mh-hpux-acc index 27c23261ba5..e68df0e6d5d 100644 --- a/icu4c/source/config/mh-hpux-acc +++ b/icu4c/source/config/mh-hpux-acc @@ -1,9 +1,9 @@ ## -*-makefile-*- ## HP/UX-specific setup using aCC -## Copyright (c) 1999-2000, International Business Machines Corporation and +## Copyright (c) 1999-2002, International Business Machines Corporation and ## others. All Rights Reserved. ## -## $Id: mh-hpux-acc,v 1.26 2002/01/04 23:48:42 yves-oss Exp $ +## $Id: mh-hpux-acc,v 1.27 2002/03/14 02:00:36 srl Exp $ ## Commands to generate dependency files GEN_DEPS.c= : @@ -13,16 +13,20 @@ GEN_DEPS.cc= : COMPILE.c= $(CC) +z -Ae $(DEFS) $(CPPFLAGS) $(CFLAGS) -c +ESlit COMPILE.cc= $(CXX) +z $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c +## Common 'default' path to ensure the sanity of users. Search the current +## directory, at least. +LD_DEFAULTPATH= -Wl,+b,.:'$$'ORIGIN/ + ## Commands to link ## For aCC, use the C++ linker so that __shlinit gets defined #LINK.c= $(CC) +z -Ae $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -LINK.c= $(CXX) +z $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -Wl,+s -LINK.cc= $(CXX) +z $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -Wl,+s +LINK.c= $(CXX) +z $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -Wl,+s $(LD_DEFAULTPATH) +LINK.cc= $(CXX) +z $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -Wl,+s $(LD_DEFAULTPATH) ## Commands to make a shared library #SHLIB.c= $(LD) $(LDFLAGS) -b -SHLIB.c= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -b -Wl,+s -SHLIB.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -b -Wl,+s +SHLIB.c= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -b -Wl,+s $(LD_DEFAULTPATH) +SHLIB.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -b -Wl,+s $(LD_DEFAULTPATH) ## Compiler switch to embed a runtime search path LD_RPATH= -Wl,+b,