diff options
Diffstat (limited to 'libstdc++/config/aix.ml')
-rw-r--r-- | libstdc++/config/aix.ml | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/libstdc++/config/aix.ml b/libstdc++/config/aix.ml index dec7a905a34..5d6b6b245eb 100644 --- a/libstdc++/config/aix.ml +++ b/libstdc++/config/aix.ml @@ -1,9 +1,30 @@ -# AIX has wierd shared/non-shared libraries. +# AIX has weird shared/non-shared libraries. -ARLIB = libstdc++-ar.a.$(VERSION) -ARLINK = libstdc++-ar.a -SHLINK = libstdc++.a -LIBS = $(ARLIB) $(ARLINK) $(SHLIB) $(SHLINK) -DEPLIBS = ../$(SHLIB) +ARLIB = +ARLINK = + +# Build shared object with interface versioning in name. +# Archive resulting shared object in a library. +AIXLINK = libstdc++.a +AIXLIB = libstdc++-$(VERSION).a +AIXSHLIB = shr$(LIBSTDCXX_INTERFACE)$(CXX_INTERFACE).o +SHFLAGS = -Wl,-bexpall SHDEPS = -lm -SHFLAGS = -Wl,-unix +SHOPT = -shared + +LIBS = $(AIXLIB) $(AIXLINK) + +$(AIXSHLIB): stdlist + $(CC) $(LIBCXXFLAGS) $(SHFLAGS) $(SHOPT) -o $(AIXSHLIB) `cat stdlist` $(SHDEPS) + +# Delete $(AIXSHLIB) so that it is not included in stdlist if rebuilding. +$(AIXLIB): $(AIXSHLIB) + -rm -f t$(AIXLIB) + $(AR) $(AR_FLAGS) t$(AIXLIB) $(AIXSHLIB) + mv t$(AIXLIB) $(AIXLIB) + -rm -f $(AIXSHLIB) + +$(AIXLINK): + -rm -f $(AIXLINK) + $(LN_S) $(AIXLIB) $(AIXLINK) || cp $(AIXLIB) $(AIXLINK) + |