OLD | NEW |
(Empty) | |
| 1 ## -*-makefile-*- |
| 2 ## Aix-specific setup (for Visual Age 5+) |
| 3 ## Copyright (c) 1999-2010, International Business Machines Corporation and |
| 4 ## others. All Rights Reserved. |
| 5 |
| 6 ## Commands to generate dependency files |
| 7 GEN_DEPS.c= $(CC) -E -M $(DEFS) $(CPPFLAGS) |
| 8 GEN_DEPS.cc= $(CXX) -E -M $(DEFS) $(CPPFLAGS) |
| 9 |
| 10 # -qroconst make the strings readonly, which is usually the default. |
| 11 # This helps in the data library, |
| 12 # -qproto assumes all functions are prototyped (for optimization) |
| 13 # -qrtti turns on compiler RTTI, required beginning with ICU 4.6 |
| 14 CFLAGS += -qproto -qroconst |
| 15 CXXFLAGS += -qproto -qroconst -qrtti |
| 16 |
| 17 # If you readd this line, you must change the SO value |
| 18 #LDFLAGS += -brtl |
| 19 |
| 20 ifeq ($(UCLN_NO_AUTO_CLEANUP),0) |
| 21 # set up init point. |
| 22 UCLN_FINI = ucln_fini$(TARGET_STUBNAME)_$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFI
XCNAME) |
| 23 CPPFLAGS_FINI = -DUCLN_FINI=$(UCLN_FINI) |
| 24 LDFLAGS_FINI = -binitfini::$(UCLN_FINI) |
| 25 |
| 26 CPPFLAGSICUUC += $(CPPFLAGS_FINI) |
| 27 LDFLAGSICUUC += $(LDFLAGS_FINI) |
| 28 CPPFLAGSICUIO += $(CPPFLAGS_FINI) |
| 29 LDFLAGSICUIO += $(LDFLAGS_FINI) |
| 30 CPPFLAGSICUI18N += $(CPPFLAGS_FINI) |
| 31 LDFLAGSICUI18N += $(LDFLAGS_FINI) |
| 32 CPPFLAGSCTESTFW += $(CPPFLAGS_FINI) |
| 33 LDFLAGSCTESTFW += $(LDFLAGS_FINI) |
| 34 |
| 35 # ICUUC, ICUIO, ICUI18N, CTESTFW |
| 36 endif |
| 37 |
| 38 ## We need to delete things prior to linking, or else we'll get |
| 39 ## SEVERE ERROR: output file in use .. on AIX. |
| 40 ## But, shell script version should NOT delete target as we don't |
| 41 ## have $@ in that context. (SH = only shell script, icu-config) |
| 42 AIX_PREDELETE=rm -f $@ ; |
| 43 #SH# AIX_PREDELETE= |
| 44 |
| 45 ## Commands to link |
| 46 ## We need to use the C++ linker, even when linking C programs, since |
| 47 ## our libraries contain C++ code (C++ static init not called) |
| 48 LINK.c= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) |
| 49 LINK.cc= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) |
| 50 |
| 51 ## Commands to make a shared library |
| 52 ## -G means -berok -brtl -bnortllib -bnosymbolic -bnoautoexp |
| 53 ## -bh:8 means halt on errors or worse. We don't display warnings about |
| 54 ## duplicate inline symbols. |
| 55 SHLIB.c= $(AIX_PREDELETE) $(CXX) -qmkshrobj -G $(LDFLAGS) |
| 56 SHLIB.cc= $(AIX_PREDELETE) $(CXX) -qmkshrobj -G $(LDFLAGS) |
| 57 |
| 58 ## Compiler switch to embed a runtime search path |
| 59 LD_RPATH= -I |
| 60 LD_RPATH_PRE= |
| 61 |
| 62 ## Environment variable to set a runtime search path |
| 63 LDLIBRARYPATH_ENVVAR = LIBPATH |
| 64 |
| 65 # The following is for Makefile.inc's use. |
| 66 ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR) |
| 67 |
| 68 # this one is for icudefs.mk's use |
| 69 ifeq ($(ENABLE_SHARED),YES) |
| 70 SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR) |
| 71 endif |
| 72 |
| 73 LD_SONAME = |
| 74 |
| 75 ## The type of assembly needed when pkgdata is used for generating shared librar
ies. |
| 76 GENCCODE_ASSEMBLY=-a xlc |
| 77 |
| 78 ## Shared object suffix |
| 79 SOBJ= so |
| 80 # without the -brtl option, the library names use .a. AIX is funny that way. |
| 81 SO= a |
| 82 ## Non-shared intermediate object suffix |
| 83 STATIC_O = o |
| 84 |
| 85 ## Override Versioned target for a shared library. |
| 86 FINAL_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO) |
| 87 MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO) |
| 88 SHARED_OBJECT = $(notdir $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ))) |
| 89 SHARED_OBJECT_NO_VERSION= $(basename $(SO_TARGET)).$(SOBJ) |
| 90 |
| 91 ## Build archive from shared object |
| 92 %.a : %.so |
| 93 ln -f $< $(SHARED_OBJECT_NO_VERSION) |
| 94 $(AIX_PREDELETE) $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION) |
| 95 rm -f $(SHARED_OBJECT_NO_VERSION) |
| 96 $(LIBDIR)/%.a : %.so |
| 97 ln -f $< $(SHARED_OBJECT_NO_VERSION) |
| 98 $(AIX_PREDELETE) $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION) |
| 99 rm -f $(SHARED_OBJECT_NO_VERSION) |
| 100 |
| 101 ## Build import list from export list |
| 102 %.e : %.exp |
| 103 @echo "Building an import list for $<" |
| 104 @$(SHELL) -ec "echo '#! $*.a($*.so)' | cat - $< > $@" |
| 105 |
| 106 ## Compilation rules |
| 107 %.$(STATIC_O): $(srcdir)/%.c |
| 108 $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< |
| 109 %.o: $(srcdir)/%.c |
| 110 $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< |
| 111 |
| 112 %.$(STATIC_O): $(srcdir)/%.cpp |
| 113 $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< |
| 114 %.o: $(srcdir)/%.cpp |
| 115 $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< |
| 116 |
| 117 |
| 118 ## Dependency rules |
| 119 %.d : %.u |
| 120 @$(SHELL) -ec 'cat $< \ |
| 121 | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \ |
| 122 [ -s $@ ] || rm -f $@ ; rm -f $<' |
| 123 |
| 124 %.u : $(srcdir)/%.c |
| 125 @echo "generating dependency information for $<" |
| 126 @$(SHELL) -ec '$(GEN_DEPS.c) $< > /dev/null' |
| 127 |
| 128 %.u : $(srcdir)/%.cpp |
| 129 @echo "generating dependency information for $<" |
| 130 @$(SHELL) -ec '$(GEN_DEPS.cc) $< > /dev/null' |
| 131 |
| 132 ## Versioned libraries rules |
| 133 %$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO) |
| 134 $(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@ |
| 135 %.$(SO): %$(SO_TARGET_VERSION).$(SO) |
| 136 $(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@ |
| 137 |
| 138 ## End Aix-specific setup |
OLD | NEW |