aboutsummaryrefslogtreecommitdiff
path: root/libstdc++/config/aix.ml
blob: 5d6b6b245eb31313f4255e30e46975f535e5f951 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# AIX has weird shared/non-shared libraries.

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
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)