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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
# -*- Makefile -*-
#----------------------------------------------------------------------------
# $Id$
#
# Build libraries (i.e., contain no binary executables)
# GNU version
# Requires GNU make
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
# The following targets arrange to build both unshared and shared libraries
#----------------------------------------------------------------------------
VSHLIB = $(SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
ifdef SHLIBA
VSHLIBA = $(SHLIBA:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
endif
VLOBJS += $(addsuffix .$(OBJEXT),$(addprefix $(VDIR),$(basename $(notdir $(LSRC)))))
LSRC += $(LSRC2)
VSHOBJS = $(addsuffix .$(OBJEXT),$(addprefix $(VSHDIR),$(basename $(notdir $(LSRC)))))
VSHOBJS1 = $(addsuffix .$(OBJEXT),$(addprefix $(VSHDIR),$(basename $(notdir $(LSRC)))))
ifdef static_libs
INSTALL += $(VLIB:%.$(LIBEXT)=$(INSLIB)/%.$(LIBEXT))
endif # static_libs
ifdef shared_libs
INSTALL += \
$(VSHLIB:%.$(SOEXT)=$(INSLIB)/%.$(SOEXT)$(SOVERSION))
ifdef SHLIBA
INSTALL += $(VSHLIBA:%=$(INSLIB)/%)
endif
endif # shared_libs
# Uncomment the remaining lines if you want to build both *.a and *.so
# libraries...
VLIB = $(LIB:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
$(VLIB): $(VLOBJS)
ifeq (1,$(repo))
ifneq (,$(ACELIB))
#### With repo, link in all of the ace object files to the lib.
#### This avoids multiple instantiations. We haven't found it to
#### be necessary with shared libs, so just do it for static libs.
vpath %.$(OBJEXT) $(ACE_ROOT)/ace/$(VDIR)
$(VLIB): $(ACE_ROOT)/ace/$(VDIR)*.$(OBJEXT)
endif # ! ACELIB
endif # repo
ifdef PRELIB
$(PRELIB)
endif
ifeq (1,$(ace_lib_prelink))
#### Attempt a link (which will fail), to add template instantiations
#### to lib files, for example.
-$(LINK.cc) $(LINK_OUTPUT_FLAG) ace-templ_inst $? $(LDFLAGS) $(ACE_NUL_STDERR)
endif # ace_lib_prelink
echo $(TMPINCDIR:%=%/*.o) $? | xargs $(AR) $(ARFLAGS) $@ $(AREXTRA);
ifdef ibmcxx_build
# This is required to get AIX IBM C/C++ to instantiate and compile the needed
# templates.
if test -s ./$(TEMPINCDIR)/*.C; \
then \
$(LINK.cc) $(LINK_OUTPUT_FLAG) dummy $(LDFLAGS) $(ACE_ROOT)/etc/xlc_dummy.cpp $^ $(ACE_SHLIBS) $(LIBS); \
$(RM) dummy; \
$(AR) $(ARFLAGS) $@ $(TEMPINCDIR)/*.$(OBJEXT); \
fi
endif
-chmod a+r $@
ifneq (,$(RANLIB))
-$(RANLIB) $@
endif # RANLIB
# Note that if you don't want to build shared libraries, just remove the
# $(VSHOBJS)
#
# The AIX shr.o build is out here to keep it away from the SOVERSION stuff.
# The SOVERSION transform is applied after building the library file.
ifeq (1,$(aix_build))
shr.o: $(VSHOBJS1)
$(SHR_FILTER) $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHOBJS1) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS)
.INTERMEDIATE: shr.o
endif # aix_build
ifeq (1,$(aix_build))
$(VSHLIB): shr.o
$(AR) $(ARFLAGS) $@$(SOVERSION) $?
ifneq (,$(RANLIB))
-$(RANLIB) $@$(SOVERSION)
endif # RANLIB
else
ifdef SHLIBBUILD
$(VSHLIB): $(VSHOBJS)
else
$(VSHLIB): $(VSHOBJS1)
endif # SHLIBBUILD
ifdef PRELIB
$(PRELIB)
endif
ifdef ibmcxx_build
# This is required to get AIX IBM C/C++ to instantiate and compile the needed
# templates before building the library.
if test -s ./$(TEMPINCDIR)/*.C; \
then \
$(LINK.cc) $(LINK_OUTPUT_FLAG) dummy $(LDFLAGS) $(ACE_ROOT)/etc/xlc_dummy.cpp $^ $(ACE_SHLIBS) $(LIBS); \
$(RM) dummy; \
fi
endif
ifdef SHLIBBUILD
$(SHLIBBUILD)
else
ifdef ibmcxx_build
if test -s ./$(TEMPINCDIR)/*.$(OBJEXT); \
then \
$(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHOBJS1) $(TEMPINCDIR)/*.$(OBJEXT) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS); \
else \
$(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHOBJS1) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS); \
fi
else
ifdef kylix
$(SOLINK.cc) $(LDFLAGS) $(VSHOBJS1), $@,, $(ACE_SHLIBS) $(LIBS) $(BORINITSHAREDOBJ)
else
ifeq (1,$(ace_lib_prelink))
#### Attempt a link (which will fail), to add template instantiations
#### to lib files, for example.
-$(LINK.cc) $(LINK_OUTPUT_FLAG) ace-templ_inst $(VSHOBJS1) $(LDFLAGS) $(ACE_NUL_STDERR)
endif # ace_lib_prelink
ifeq ($(split),1)
$(SHR_FILTER) $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@$(SOVERSION) $(VSHDIR)/*.$(OBJEXT) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS)
else
$(SHR_FILTER) $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@$(SOVERSION) $(VSHOBJS1) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS)
endif # split
endif # kylix
endif # ibmcxx_build
endif # SHLIBBUILD
endif # aix_build
ifneq ($(SOVERSION),)
-$(RM) $@
-$(LN_S) $@$(SOVERSION) $@
endif
-chmod a+rx $@$(SOVERSION)
|