OLD | NEW |
1 # | 1 # |
2 # Helper makefile to link shared libraries in a portable way. | 2 # Helper makefile to link shared libraries in a portable way. |
3 # This is much simpler than libtool, and hopefully not too error-prone. | 3 # This is much simpler than libtool, and hopefully not too error-prone. |
4 # | 4 # |
5 # The following variables need to be set on the command line to build | 5 # The following variables need to be set on the command line to build |
6 # properly | 6 # properly |
7 | 7 |
8 # CC contains the current compiler. This one MUST be defined | 8 # CC contains the current compiler. This one MUST be defined |
9 CC=cc | 9 CC=cc |
10 CFLAGS=$(CFLAG) | 10 CFLAGS=$(CFLAG) |
11 # LDFLAGS contains flags to be used when temporary object files (when building | 11 # LDFLAGS contains flags to be used when temporary object files (when building |
12 # shared libraries) are created, or when an application is linked. | 12 # shared libraries) are created, or when an application is linked. |
13 # SHARED_LDFLAGS contains flags to be used when the shared library is created. | 13 # SHARED_LDFLAGS contains flags to be used when the shared library is created. |
14 LDFLAGS= | 14 LDFLAGS= |
15 SHARED_LDFLAGS= | 15 SHARED_LDFLAGS= |
16 | 16 |
| 17 NM=nm |
| 18 |
17 # LIBNAME contains just the name of the library, without prefix ("lib" | 19 # LIBNAME contains just the name of the library, without prefix ("lib" |
18 # on Unix, "cyg" for certain forms under Cygwin...) or suffix (.a, .so, | 20 # on Unix, "cyg" for certain forms under Cygwin...) or suffix (.a, .so, |
19 # .dll, ...). This one MUST have a value when using this makefile to | 21 # .dll, ...). This one MUST have a value when using this makefile to |
20 # build shared libraries. | 22 # build shared libraries. |
21 # For example, to build libfoo.so, you need to do the following: | 23 # For example, to build libfoo.so, you need to do the following: |
22 #LIBNAME=foo | 24 #LIBNAME=foo |
23 LIBNAME= | 25 LIBNAME= |
24 | 26 |
25 # APPNAME contains just the name of the application, without suffix ("" | 27 # APPNAME contains just the name of the application, without suffix ("" |
26 # on Unix, ".exe" on Windows, ...). This one MUST have a value when using | 28 # on Unix, ".exe" on Windows, ...). This one MUST have a value when using |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 SHLIB_COMPAT="$$SHLIB_COMPAT .$$prev"; \ | 86 SHLIB_COMPAT="$$SHLIB_COMPAT .$$prev"; \ |
85 fi; \ | 87 fi; \ |
86 prev=$$v; \ | 88 prev=$$v; \ |
87 done; \ | 89 done; \ |
88 fi | 90 fi |
89 | 91 |
90 LINK_APP= \ | 92 LINK_APP= \ |
91 ( $(SET_X); \ | 93 ( $(SET_X); \ |
92 LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ | 94 LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ |
93 LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \ | 95 LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \ |
94 LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1;
then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \ | 96 LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d |
uniq`; \ |
95 LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ | 97 LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ |
96 LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ | 98 LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ |
97 $${LDCMD} $${LDFLAGS} -o $${APPNAME:=$(APPNAME)} $(OBJECTS) $${LIBDEPS} ) | 99 $${LDCMD} $${LDFLAGS} -o $${APPNAME:=$(APPNAME)} $(OBJECTS) $${LIBDEPS} ) |
98 | 100 |
99 LINK_SO= \ | 101 LINK_SO= \ |
100 ( $(SET_X); \ | 102 ( $(SET_X); \ |
101 LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ | 103 LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ |
102 SHAREDCMD="$${SHAREDCMD:-$(CC)}"; \ | 104 SHAREDCMD="$${SHAREDCMD:-$(CC)}"; \ |
103 SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ | 105 SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ |
104 LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1;
then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \ | 106 LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d |
uniq`; \ |
105 LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ | 107 LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ |
106 LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ | 108 LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ |
107 $${SHAREDCMD} $${SHAREDFLAGS} \ | 109 $${SHAREDCMD} $${SHAREDFLAGS} \ |
108 -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ | 110 -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ |
109 $$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \ | 111 $$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \ |
110 ) && $(SYMLINK_SO) | 112 ) && $(SYMLINK_SO) |
111 | 113 |
112 SYMLINK_SO= \ | 114 SYMLINK_SO= \ |
113 if [ -n "$$INHIBIT_SYMLINKS" ]; then :; else \ | 115 if [ -n "$$INHIBIT_SYMLINKS" ]; then :; else \ |
114 prev=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \ | 116 prev=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \ |
(...skipping 11 matching lines...) Expand all Loading... |
126 fi | 128 fi |
127 | 129 |
128 LINK_SO_A= SHOBJECTS="lib$(LIBNAME).a $(LIBEXTRAS)"; $(LINK_SO) | 130 LINK_SO_A= SHOBJECTS="lib$(LIBNAME).a $(LIBEXTRAS)"; $(LINK_SO) |
129 LINK_SO_O= SHOBJECTS="$(LIBEXTRAS)"; $(LINK_SO) | 131 LINK_SO_O= SHOBJECTS="$(LIBEXTRAS)"; $(LINK_SO) |
130 | 132 |
131 LINK_SO_A_VIA_O= \ | 133 LINK_SO_A_VIA_O= \ |
132 SHOBJECTS=lib$(LIBNAME).o; \ | 134 SHOBJECTS=lib$(LIBNAME).o; \ |
133 ALL=$$ALLSYMSFLAGS; ALLSYMSFLAGS=; NOALLSYMSFLAGS=; \ | 135 ALL=$$ALLSYMSFLAGS; ALLSYMSFLAGS=; NOALLSYMSFLAGS=; \ |
134 ( $(SET_X); \ | 136 ( $(SET_X); \ |
135 ld $(LDFLAGS) -r -o lib$(LIBNAME).o $$ALL lib$(LIBNAME).a $(LIBEXTRAS) ); \ | 137 ld $(LDFLAGS) -r -o lib$(LIBNAME).o $$ALL lib$(LIBNAME).a $(LIBEXTRAS) ); \ |
136 $(LINK_SO) && rm -f $(LIBNAME).o | 138 $(LINK_SO) && rm -f lib$(LIBNAME).o |
137 | 139 |
138 LINK_SO_A_UNPACKED= \ | 140 LINK_SO_A_UNPACKED= \ |
139 UNPACKDIR=link_tmp.$$$$; rm -rf $$UNPACKDIR; mkdir $$UNPACKDIR; \ | 141 UNPACKDIR=link_tmp.$$$$; rm -rf $$UNPACKDIR; mkdir $$UNPACKDIR; \ |
140 (cd $$UNPACKDIR; ar x ../lib$(LIBNAME).a) && \ | 142 (cd $$UNPACKDIR; ar x ../lib$(LIBNAME).a) && \ |
141 ([ -z "$(LIBEXTRAS)" ] || cp $(LIBEXTRAS) $$UNPACKDIR) && \ | 143 ([ -z "$(LIBEXTRAS)" ] || cp $(LIBEXTRAS) $$UNPACKDIR) && \ |
142 SHOBJECTS=$$UNPACKDIR/*.o; \ | 144 SHOBJECTS=$$UNPACKDIR/*.o; \ |
143 $(LINK_SO) && rm -rf $$UNPACKDIR | 145 $(LINK_SO) && rm -rf $$UNPACKDIR |
144 | 146 |
145 DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null | 147 DETECT_GNU_LD=($(CC) -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null |
146 | 148 |
147 DO_GNU_SO=$(CALC_VERSIONS); \ | 149 DO_GNU_SO=$(CALC_VERSIONS); \ |
148 SHLIB=lib$(LIBNAME).so; \ | 150 SHLIB=lib$(LIBNAME).so; \ |
149 SHLIB_SUFFIX=; \ | 151 SHLIB_SUFFIX=; \ |
150 ALLSYMSFLAGS='-Wl,--whole-archive'; \ | 152 ALLSYMSFLAGS='-Wl,--whole-archive'; \ |
151 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ | 153 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ |
152 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-son
ame=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" | 154 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-son
ame=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" |
153 | 155 |
154 DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)" | 156 DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)" |
155 | 157 |
156 #This is rather special. It's a special target with which one can link | 158 #This is rather special. It's a special target with which one can link |
157 #applications without bothering with any features that have anything to | 159 #applications without bothering with any features that have anything to |
158 #do with shared libraries, for example when linking against static | 160 #do with shared libraries, for example when linking against static |
159 #libraries. It's mostly here to avoid a lot of conditionals everywhere | 161 #libraries. It's mostly here to avoid a lot of conditionals everywhere |
160 #else... | 162 #else... |
161 link_app.: | 163 link_app.: |
162 $(LINK_APP) | 164 $(LINK_APP) |
163 | 165 |
164 link_o.gnu: | 166 link_o.gnu: |
165 @ $(DO_GNU_SO); $(LINK_SO_O) | 167 @ $(DO_GNU_SO); $(LINK_SO_O) |
166 link_a.gnu: | 168 link_a.gnu: |
167 @ $(DO_GNU_SO); $(LINK_SO_A) | 169 @ $(DO_GNU_SO); $(LINK_SO_A) |
168 link_app.gnu: | 170 link_app.gnu: |
169 @ $(DO_GNU_APP); $(LINK_APP) | 171 @ $(DO_GNU_APP); $(LINK_APP) |
170 | 172 |
| 173 DO_BEOS_SO= SHLIB=lib$(LIBNAME).so; \ |
| 174 SHLIB_SUFFIX=; \ |
| 175 ALLSYMSFLAGS='-Wl,--whole-archive'; \ |
| 176 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ |
| 177 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-son
ame=$$SHLIB$$SHLIB_SUFFIX" |
| 178 |
| 179 link_o.beos: |
| 180 @ $(DO_BEOS_SO); $(LINK_SO_O) |
| 181 link_a.beos: |
| 182 @ $(DO_BEOS_SO); $(LINK_SO_A) |
| 183 |
171 link_o.bsd: | 184 link_o.bsd: |
172 » @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \ | 185 » @if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \ |
173 $(CALC_VERSIONS); \ | 186 $(CALC_VERSIONS); \ |
174 SHLIB=lib$(LIBNAME).so; \ | 187 SHLIB=lib$(LIBNAME).so; \ |
175 SHLIB_SUFFIX=; \ | 188 SHLIB_SUFFIX=; \ |
176 LIBDEPS=" "; \ | 189 LIBDEPS=" "; \ |
177 ALLSYMSFLAGS="-Wl,-Bforcearchive"; \ | 190 ALLSYMSFLAGS="-Wl,-Bforcearchive"; \ |
178 NOALLSYMSFLAGS=; \ | 191 NOALLSYMSFLAGS=; \ |
179 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -nostdlib"; \ | 192 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -nostdlib"; \ |
180 fi; $(LINK_SO_O) | 193 fi; $(LINK_SO_O) |
181 link_a.bsd: | 194 link_a.bsd: |
182 » @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \ | 195 » @if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \ |
183 $(CALC_VERSIONS); \ | 196 $(CALC_VERSIONS); \ |
184 SHLIB=lib$(LIBNAME).so; \ | 197 SHLIB=lib$(LIBNAME).so; \ |
185 SHLIB_SUFFIX=; \ | 198 SHLIB_SUFFIX=; \ |
186 LIBDEPS=" "; \ | 199 LIBDEPS=" "; \ |
187 ALLSYMSFLAGS="-Wl,-Bforcearchive"; \ | 200 ALLSYMSFLAGS="-Wl,-Bforcearchive"; \ |
188 NOALLSYMSFLAGS=; \ | 201 NOALLSYMSFLAGS=; \ |
189 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -nostdlib"; \ | 202 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -nostdlib"; \ |
190 fi; $(LINK_SO_A) | 203 fi; $(LINK_SO_A) |
191 link_app.bsd: | 204 link_app.bsd: |
192 » @if ${DETECT_GNU_LD}; then $(DO_GNU_APP); else \ | 205 » @if $(DETECT_GNU_LD); then $(DO_GNU_APP); else \ |
193 LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBPATH)"; \ | 206 LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBPATH)"; \ |
194 fi; $(LINK_APP) | 207 fi; $(LINK_APP) |
195 | 208 |
196 # For Darwin AKA Mac OS/X (dyld) | 209 # For Darwin AKA Mac OS/X (dyld) |
197 # link_o.darwin produces .so, because we let it use dso_dlfcn module, | 210 # Originally link_o.darwin produced .so, because it was hard-coded |
198 # which has .so extension hard-coded. One can argue that one should | 211 # in dso_dlfcn module. At later point dso_dlfcn switched to .dylib |
199 # develop special dso module for MacOS X. At least manual encourages | 212 # extension in order to allow for run-time linking with vendor- |
200 # to use native NSModule(3) API and refers to dlfcn as termporary hack. | 213 # supplied shared libraries such as libz, so that link_o.darwin had |
| 214 # to be harmonized with it. This caused minor controversy, because |
| 215 # it was believed that dlopen can't be used to dynamically load |
| 216 # .dylib-s, only so called bundle modules (ones linked with -bundle |
| 217 # flag). The belief seems to be originating from pre-10.4 release, |
| 218 # where dlfcn functionality was emulated by dlcompat add-on. In |
| 219 # 10.4 dlopen was rewritten as native part of dyld and is documented |
| 220 # to be capable of loading both dynamic libraries and bundles. In |
| 221 # order to provide compatibility with pre-10.4 dlopen, modules are |
| 222 # linked with -bundle flag, which makes .dylib extension misleading. |
| 223 # It works, because dlopen is [and always was] extension-agnostic. |
| 224 # Alternative to this heuristic approach is to develop specific |
| 225 # MacOS X dso module relying on whichever "native" dyld interface. |
201 link_o.darwin: | 226 link_o.darwin: |
202 @ $(CALC_VERSIONS); \ | 227 @ $(CALC_VERSIONS); \ |
203 » SHLIB=`expr "$$THIS" : '.*/\([^/\.]*\)\.'`; \ | 228 » SHLIB=lib$(LIBNAME); \ |
204 » SHLIB=$${SHLIB:-lib$(LIBNAME)}; \ | 229 » SHLIB_SUFFIX=.dylib; \ |
205 » SHLIB_SUFFIX=`expr "$$THIS" : '.*\(\.[^\.]*\)$$'`; \ | |
206 » SHLIB_SUFFIX=$${SHLIB_SUFFIX:-.so}; \ | |
207 ALLSYMSFLAGS='-all_load'; \ | 230 ALLSYMSFLAGS='-all_load'; \ |
208 NOALLSYMSFLAGS=''; \ | 231 NOALLSYMSFLAGS=''; \ |
209 » SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \ | 232 » SHAREDFLAGS="$(CFLAGS) `echo $(SHARED_LDFLAGS) | sed s/dynamiclib/bundle
/`"; \ |
210 if [ -n "$(LIBVERSION)" ]; then \ | 233 if [ -n "$(LIBVERSION)" ]; then \ |
211 SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \ | 234 SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \ |
212 fi; \ | 235 fi; \ |
213 if [ -n "$$SHLIB_SOVER_NODOT" ]; then \ | 236 if [ -n "$$SHLIB_SOVER_NODOT" ]; then \ |
214 SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_
NODOT"; \ | 237 SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_
NODOT"; \ |
215 fi; \ | 238 fi; \ |
216 $(LINK_SO_O) | 239 $(LINK_SO_O) |
217 link_a.darwin: | 240 link_a.darwin: |
218 @ $(CALC_VERSIONS); \ | 241 @ $(CALC_VERSIONS); \ |
219 SHLIB=lib$(LIBNAME); \ | 242 SHLIB=lib$(LIBNAME); \ |
220 SHLIB_SUFFIX=.dylib; \ | 243 SHLIB_SUFFIX=.dylib; \ |
221 ALLSYMSFLAGS='-all_load'; \ | 244 ALLSYMSFLAGS='-all_load'; \ |
222 NOALLSYMSFLAGS=''; \ | 245 NOALLSYMSFLAGS=''; \ |
223 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \ | 246 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \ |
224 if [ -n "$(LIBVERSION)" ]; then \ | 247 if [ -n "$(LIBVERSION)" ]; then \ |
225 SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \ | 248 SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \ |
226 fi; \ | 249 fi; \ |
227 if [ -n "$$SHLIB_SOVER_NODOT" ]; then \ | 250 if [ -n "$$SHLIB_SOVER_NODOT" ]; then \ |
228 SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_
NODOT"; \ | 251 SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_
NODOT"; \ |
229 fi; \ | 252 fi; \ |
230 » SHAREDFLAGS="$$SHAREDFLAGS -install_name ${INSTALLTOP}/lib/$$SHLIB${SHLI
B_EXT}"; \ | 253 » SHAREDFLAGS="$$SHAREDFLAGS -install_name $(INSTALLTOP)/$(LIBDIR)/$$SHLIB
$(SHLIB_EXT)"; \ |
231 $(LINK_SO_A) | 254 $(LINK_SO_A) |
232 link_app.darwin: # is there run-path on darwin? | 255 link_app.darwin: # is there run-path on darwin? |
233 $(LINK_APP) | 256 $(LINK_APP) |
234 | 257 |
235 link_o.cygwin: | 258 link_o.cygwin: |
236 @ $(CALC_VERSIONS); \ | 259 @ $(CALC_VERSIONS); \ |
237 INHIBIT_SYMLINKS=yes; \ | 260 INHIBIT_SYMLINKS=yes; \ |
238 SHLIB=cyg$(LIBNAME); \ | 261 SHLIB=cyg$(LIBNAME); \ |
239 base=-Wl,--enable-auto-image-base; \ | 262 base=-Wl,--enable-auto-image-base; \ |
| 263 deffile=; \ |
240 if expr $(PLATFORM) : 'mingw' > /dev/null; then \ | 264 if expr $(PLATFORM) : 'mingw' > /dev/null; then \ |
241 SHLIB=$(LIBNAME)eay32; base=; \ | 265 SHLIB=$(LIBNAME)eay32; base=; \ |
| 266 if test -f $(LIBNAME)eay32.def; then \ |
| 267 deffile=$(LIBNAME)eay32.def; \ |
| 268 fi; \ |
242 fi; \ | 269 fi; \ |
243 SHLIB_SUFFIX=.dll; \ | 270 SHLIB_SUFFIX=.dll; \ |
244 LIBVERSION="$(LIBVERSION)"; \ | 271 LIBVERSION="$(LIBVERSION)"; \ |
245 SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \ | 272 SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \ |
246 ALLSYMSFLAGS='-Wl,--whole-archive'; \ | 273 ALLSYMSFLAGS='-Wl,--whole-archive'; \ |
247 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ | 274 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ |
248 » SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -
Wl,--out-implib,lib$(LIBNAME).dll.a"; \ | 275 » SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base $$deffile -Wl,-s
,-Bsymbolic"; \ |
249 $(LINK_SO_O) | 276 $(LINK_SO_O) |
| 277 #for mingw target if def-file is in use dll-name should match library-name |
250 link_a.cygwin: | 278 link_a.cygwin: |
251 @ $(CALC_VERSIONS); \ | 279 @ $(CALC_VERSIONS); \ |
252 INHIBIT_SYMLINKS=yes; \ | 280 INHIBIT_SYMLINKS=yes; \ |
253 » SHLIB=cyg$(LIBNAME); \ | 281 » SHLIB=cyg$(LIBNAME); SHLIB_SOVER=-$(LIBVERSION); SHLIB_SUFFIX=.dll; \ |
| 282 » dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; extras=; \ |
254 base=-Wl,--enable-auto-image-base; \ | 283 base=-Wl,--enable-auto-image-base; \ |
255 if expr $(PLATFORM) : 'mingw' > /dev/null; then \ | 284 if expr $(PLATFORM) : 'mingw' > /dev/null; then \ |
256 » » SHLIB=$(LIBNAME)eay32; \ | 285 » » case $(LIBNAME) in \ |
257 » » base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x630
00000; \ | 286 » » » crypto) SHLIB=libeay;; \ |
| 287 » » » ssl) SHLIB=ssleay;; \ |
| 288 » » esac; \ |
| 289 » » SHLIB_SOVER=32; \ |
| 290 » » extras="$(LIBNAME).def"; \ |
| 291 » » $(PERL) util/mkdef.pl 32 $$SHLIB > $$extras; \ |
| 292 » » base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x6300
0000; \ |
258 fi; \ | 293 fi; \ |
259 » SHLIB_SUFFIX=.dll; \ | 294 » dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \ |
260 » SHLIB_SOVER=-$(LIBVERSION); \ | 295 » $(PERL) util/mkrc.pl $$dll_name | \ |
| 296 » » $(CROSS_COMPILE)windres -o rc.o; \ |
| 297 » extras="$$extras rc.o"; \ |
261 ALLSYMSFLAGS='-Wl,--whole-archive'; \ | 298 ALLSYMSFLAGS='-Wl,--whole-archive'; \ |
262 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ | 299 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ |
263 » SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -
Wl,--out-implib,lib$(LIBNAME).dll.a"; \ | 300 » SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-s,-Bsymboli
c -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \ |
264 » [ -f apps/$$SHLIB$$SHLIB_SUFFIX ] && rm apps/$$SHLIB$$SHLIB_SUFFIX; \ | 301 » [ -f apps/$$dll_name ] && rm apps/$$dll_name; \ |
265 » [ -f test/$$SHLIB$$SHLIB_SUFFIX ] && rm test/$$SHLIB$$SHLIB_SUFFIX; \ | 302 » [ -f test/$$dll_name ] && rm test/$$dll_name; \ |
266 $(LINK_SO_A) || exit 1; \ | 303 $(LINK_SO_A) || exit 1; \ |
267 » cp -p $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX apps/; \ | 304 » rm $$extras; \ |
268 » cp -p $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX test/ | 305 » cp -p $$dll_name apps/; \ |
| 306 » cp -p $$dll_name test/ |
269 link_app.cygwin: | 307 link_app.cygwin: |
| 308 @if expr "$(CFLAGS)" : '.*OPENSSL_USE_APPLINK' > /dev/null; then \ |
| 309 LIBDEPS="$(TOP)/crypto/applink.o $${LIBDEPS:-$(LIBDEPS)}"; \ |
| 310 export LIBDEPS; \ |
| 311 fi; \ |
270 $(LINK_APP) | 312 $(LINK_APP) |
271 | 313 |
272 link_o.alpha-osf1: | 314 link_o.alpha-osf1: |
273 » @ if ${DETECT_GNU_LD}; then \ | 315 » @ if $(DETECT_GNU_LD); then \ |
274 $(DO_GNU_SO); \ | 316 $(DO_GNU_SO); \ |
275 else \ | 317 else \ |
276 SHLIB=lib$(LIBNAME).so; \ | 318 SHLIB=lib$(LIBNAME).so; \ |
277 SHLIB_SUFFIX=; \ | 319 SHLIB_SUFFIX=; \ |
278 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e
's/ */:/'`; \ | 320 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e
's/ */:/'`; \ |
279 if [ -n "$$SHLIB_HIST" ]; then \ | 321 if [ -n "$$SHLIB_HIST" ]; then \ |
280 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \ | 322 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \ |
281 else \ | 323 else \ |
282 SHLIB_HIST="$(LIBVERSION)"; \ | 324 SHLIB_HIST="$(LIBVERSION)"; \ |
283 fi; \ | 325 fi; \ |
284 SHLIB_SOVER=; \ | 326 SHLIB_SOVER=; \ |
285 ALLSYMSFLAGS='-all'; \ | 327 ALLSYMSFLAGS='-all'; \ |
286 NOALLSYMSFLAGS='-none'; \ | 328 NOALLSYMSFLAGS='-none'; \ |
287 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-B,symbolic
"; \ | 329 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-B,symbolic
"; \ |
288 if [ -n "$$SHLIB_HIST" ]; then \ | 330 if [ -n "$$SHLIB_HIST" ]; then \ |
289 SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \ | 331 SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \ |
290 fi; \ | 332 fi; \ |
291 fi; \ | 333 fi; \ |
292 $(LINK_SO_O) | 334 $(LINK_SO_O) |
293 link_a.alpha-osf1: | 335 link_a.alpha-osf1: |
294 » @ if ${DETECT_GNU_LD}; then \ | 336 » @ if $(DETECT_GNU_LD); then \ |
295 $(DO_GNU_SO); \ | 337 $(DO_GNU_SO); \ |
296 else \ | 338 else \ |
297 SHLIB=lib$(LIBNAME).so; \ | 339 SHLIB=lib$(LIBNAME).so; \ |
298 SHLIB_SUFFIX=; \ | 340 SHLIB_SUFFIX=; \ |
299 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e
's/ */:/'`; \ | 341 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e
's/ */:/'`; \ |
300 if [ -n "$$SHLIB_HIST" ]; then \ | 342 if [ -n "$$SHLIB_HIST" ]; then \ |
301 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \ | 343 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \ |
302 else \ | 344 else \ |
303 SHLIB_HIST="$(LIBVERSION)"; \ | 345 SHLIB_HIST="$(LIBVERSION)"; \ |
304 fi; \ | 346 fi; \ |
305 SHLIB_SOVER=; \ | 347 SHLIB_SOVER=; \ |
306 ALLSYMSFLAGS='-all'; \ | 348 ALLSYMSFLAGS='-all'; \ |
307 NOALLSYMSFLAGS='-none'; \ | 349 NOALLSYMSFLAGS='-none'; \ |
308 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-B,symbolic
"; \ | 350 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-B,symbolic
"; \ |
309 if [ -n "$$SHLIB_HIST" ]; then \ | 351 if [ -n "$$SHLIB_HIST" ]; then \ |
310 SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \ | 352 SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \ |
311 fi; \ | 353 fi; \ |
312 fi; \ | 354 fi; \ |
313 $(LINK_SO_A) | 355 $(LINK_SO_A) |
314 link_app.alpha-osf1: | 356 link_app.alpha-osf1: |
315 » @if ${DETECT_GNU_LD}; then \ | 357 » @if $(DETECT_GNU_LD); then \ |
316 $(DO_GNU_APP); \ | 358 $(DO_GNU_APP); \ |
317 else \ | 359 else \ |
318 LDFLAGS="$(CFLAGS) -rpath $(LIBRPATH)"; \ | 360 LDFLAGS="$(CFLAGS) -rpath $(LIBRPATH)"; \ |
319 fi; \ | 361 fi; \ |
320 $(LINK_APP) | 362 $(LINK_APP) |
321 | 363 |
322 link_o.solaris: | 364 link_o.solaris: |
323 » @ if ${DETECT_GNU_LD}; then \ | 365 » @ if $(DETECT_GNU_LD); then \ |
324 $(DO_GNU_SO); \ | 366 $(DO_GNU_SO); \ |
325 else \ | 367 else \ |
326 $(CALC_VERSIONS); \ | 368 $(CALC_VERSIONS); \ |
327 MINUSZ='-z '; \ | 369 MINUSZ='-z '; \ |
328 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ | 370 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ |
329 SHLIB=lib$(LIBNAME).so; \ | 371 SHLIB=lib$(LIBNAME).so; \ |
330 SHLIB_SUFFIX=; \ | 372 SHLIB_SUFFIX=; \ |
331 ALLSYMSFLAGS="$${MINUSZ}allextract"; \ | 373 ALLSYMSFLAGS="$${MINUSZ}allextract"; \ |
332 NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \ | 374 NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \ |
333 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -h $$SHLIB$$SHLIB_SOVER
$$SHLIB_SUFFIX -Wl,-Bsymbolic"; \ | 375 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -h $$SHLIB$$SHLIB_SOVER
$$SHLIB_SUFFIX -Wl,-Bsymbolic"; \ |
334 fi; \ | 376 fi; \ |
335 $(LINK_SO_O) | 377 $(LINK_SO_O) |
336 link_a.solaris: | 378 link_a.solaris: |
337 » @ if ${DETECT_GNU_LD}; then \ | 379 » @ if $(DETECT_GNU_LD); then \ |
338 $(DO_GNU_SO); \ | 380 $(DO_GNU_SO); \ |
339 else \ | 381 else \ |
340 $(CALC_VERSIONS); \ | 382 $(CALC_VERSIONS); \ |
341 MINUSZ='-z '; \ | 383 MINUSZ='-z '; \ |
342 » » (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ | 384 » » ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ |
343 SHLIB=lib$(LIBNAME).so; \ | 385 SHLIB=lib$(LIBNAME).so; \ |
344 SHLIB_SUFFIX=;\ | 386 SHLIB_SUFFIX=;\ |
345 ALLSYMSFLAGS="$${MINUSZ}allextract"; \ | 387 ALLSYMSFLAGS="$${MINUSZ}allextract"; \ |
346 NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \ | 388 NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \ |
347 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -h $$SHLIB$$SHLIB_SOVER
$$SHLIB_SUFFIX -Wl,-Bsymbolic"; \ | 389 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -h $$SHLIB$$SHLIB_SOVER
$$SHLIB_SUFFIX -Wl,-Bsymbolic"; \ |
348 fi; \ | 390 fi; \ |
349 $(LINK_SO_A) | 391 $(LINK_SO_A) |
350 link_app.solaris: | 392 link_app.solaris: |
351 » @ if ${DETECT_GNU_LD}; then \ | 393 » @ if $(DETECT_GNU_LD); then \ |
352 $(DO_GNU_APP); \ | 394 $(DO_GNU_APP); \ |
353 else \ | 395 else \ |
354 LDFLAGS="$(CFLAGS) -R $(LIBRPATH)"; \ | 396 LDFLAGS="$(CFLAGS) -R $(LIBRPATH)"; \ |
355 fi; \ | 397 fi; \ |
356 $(LINK_APP) | 398 $(LINK_APP) |
357 | 399 |
358 # OpenServer 5 native compilers used | 400 # OpenServer 5 native compilers used |
359 link_o.svr3: | 401 link_o.svr3: |
360 » @ if ${DETECT_GNU_LD}; then \ | 402 » @ if $(DETECT_GNU_LD); then \ |
361 $(DO_GNU_SO); \ | 403 $(DO_GNU_SO); \ |
362 else \ | 404 else \ |
363 $(CALC_VERSIONS); \ | 405 $(CALC_VERSIONS); \ |
364 SHLIB=lib$(LIBNAME).so; \ | 406 SHLIB=lib$(LIBNAME).so; \ |
365 SHLIB_SUFFIX=; \ | 407 SHLIB_SUFFIX=; \ |
366 ALLSYMSFLAGS=''; \ | 408 ALLSYMSFLAGS=''; \ |
367 NOALLSYMSFLAGS=''; \ | 409 NOALLSYMSFLAGS=''; \ |
368 SHAREDFLAGS="$(CFLAGS) -G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
; \ | 410 SHAREDFLAGS="$(CFLAGS) -G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
; \ |
369 fi; \ | 411 fi; \ |
370 $(LINK_SO_O) | 412 $(LINK_SO_O) |
371 link_a.svr3: | 413 link_a.svr3: |
372 » @ if ${DETECT_GNU_LD}; then \ | 414 » @ if $(DETECT_GNU_LD); then \ |
373 $(DO_GNU_SO); \ | 415 $(DO_GNU_SO); \ |
374 else \ | 416 else \ |
375 $(CALC_VERSIONS); \ | 417 $(CALC_VERSIONS); \ |
376 SHLIB=lib$(LIBNAME).so; \ | 418 SHLIB=lib$(LIBNAME).so; \ |
377 SHLIB_SUFFIX=; \ | 419 SHLIB_SUFFIX=; \ |
378 ALLSYMSFLAGS=''; \ | 420 ALLSYMSFLAGS=''; \ |
379 NOALLSYMSFLAGS=''; \ | 421 NOALLSYMSFLAGS=''; \ |
380 SHAREDFLAGS="$(CFLAGS) -G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
; \ | 422 SHAREDFLAGS="$(CFLAGS) -G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
; \ |
381 fi; \ | 423 fi; \ |
382 $(LINK_SO_A_UNPACKED) | 424 $(LINK_SO_A_UNPACKED) |
383 link_app.svr3: | 425 link_app.svr3: |
384 » @${DETECT_GNU_LD} && $(DO_GNU_APP); \ | 426 » @$(DETECT_GNU_LD) && $(DO_GNU_APP); \ |
385 $(LINK_APP) | 427 $(LINK_APP) |
386 | 428 |
387 # UnixWare 7 and OpenUNIX 8 native compilers used | 429 # UnixWare 7 and OpenUNIX 8 native compilers used |
388 link_o.svr5: | 430 link_o.svr5: |
389 » @ if ${DETECT_GNU_LD}; then \ | 431 » @ if $(DETECT_GNU_LD); then \ |
390 $(DO_GNU_SO); \ | 432 $(DO_GNU_SO); \ |
391 else \ | 433 else \ |
392 $(CALC_VERSIONS); \ | 434 $(CALC_VERSIONS); \ |
393 SHARE_FLAG='-G'; \ | 435 SHARE_FLAG='-G'; \ |
394 ($(CC) -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared';
\ | 436 ($(CC) -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared';
\ |
395 SHLIB=lib$(LIBNAME).so; \ | 437 SHLIB=lib$(LIBNAME).so; \ |
396 SHLIB_SUFFIX=; \ | 438 SHLIB_SUFFIX=; \ |
397 ALLSYMSFLAGS=''; \ | 439 ALLSYMSFLAGS=''; \ |
398 NOALLSYMSFLAGS=''; \ | 440 NOALLSYMSFLAGS=''; \ |
399 SHAREDFLAGS="$(CFLAGS) $${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$S
HLIB_SUFFIX"; \ | 441 SHAREDFLAGS="$(CFLAGS) $${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$S
HLIB_SUFFIX"; \ |
400 fi; \ | 442 fi; \ |
401 $(LINK_SO_O) | 443 $(LINK_SO_O) |
402 link_a.svr5: | 444 link_a.svr5: |
403 » @ if ${DETECT_GNU_LD}; then \ | 445 » @ if $(DETECT_GNU_LD); then \ |
404 $(DO_GNU_SO); \ | 446 $(DO_GNU_SO); \ |
405 else \ | 447 else \ |
406 $(CALC_VERSIONS); \ | 448 $(CALC_VERSIONS); \ |
407 SHARE_FLAG='-G'; \ | 449 SHARE_FLAG='-G'; \ |
408 » » (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared';
\ | 450 » » ($(CC) -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared';
\ |
409 SHLIB=lib$(LIBNAME).so; \ | 451 SHLIB=lib$(LIBNAME).so; \ |
410 SHLIB_SUFFIX=; \ | 452 SHLIB_SUFFIX=; \ |
411 ALLSYMSFLAGS=''; \ | 453 ALLSYMSFLAGS=''; \ |
412 NOALLSYMSFLAGS=''; \ | 454 NOALLSYMSFLAGS=''; \ |
413 SHAREDFLAGS="$(CFLAGS) $${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$S
HLIB_SUFFIX"; \ | 455 SHAREDFLAGS="$(CFLAGS) $${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$S
HLIB_SUFFIX"; \ |
414 fi; \ | 456 fi; \ |
415 $(LINK_SO_A_UNPACKED) | 457 $(LINK_SO_A_UNPACKED) |
416 link_app.svr5: | 458 link_app.svr5: |
417 » @${DETECT_GNU_LD} && $(DO_GNU_APP); \ | 459 » @$(DETECT_GNU_LD) && $(DO_GNU_APP); \ |
418 $(LINK_APP) | 460 $(LINK_APP) |
419 | 461 |
420 link_o.irix: | 462 link_o.irix: |
421 » @ if ${DETECT_GNU_LD}; then \ | 463 » @ if $(DETECT_GNU_LD); then \ |
422 $(DO_GNU_SO); \ | 464 $(DO_GNU_SO); \ |
423 else \ | 465 else \ |
424 $(CALC_VERSIONS); \ | 466 $(CALC_VERSIONS); \ |
425 SHLIB=lib$(LIBNAME).so; \ | 467 SHLIB=lib$(LIBNAME).so; \ |
426 SHLIB_SUFFIX=; \ | 468 SHLIB_SUFFIX=; \ |
427 MINUSWL=""; \ | 469 MINUSWL=""; \ |
428 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \ | 470 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \ |
429 ALLSYMSFLAGS="$${MINUSWL}-all"; \ | 471 ALLSYMSFLAGS="$${MINUSWL}-all"; \ |
430 NOALLSYMSFLAGS="$${MINUSWL}-none"; \ | 472 NOALLSYMSFLAGS="$${MINUSWL}-none"; \ |
431 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$S
HLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,-B,symbolic"; \ | 473 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$S
HLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,-B,symbolic"; \ |
432 fi; \ | 474 fi; \ |
433 $(LINK_SO_O) | 475 $(LINK_SO_O) |
434 link_a.irix: | 476 link_a.irix: |
435 » @ if ${DETECT_GNU_LD}; then \ | 477 » @ if $(DETECT_GNU_LD); then \ |
436 $(DO_GNU_SO); \ | 478 $(DO_GNU_SO); \ |
437 else \ | 479 else \ |
438 $(CALC_VERSIONS); \ | 480 $(CALC_VERSIONS); \ |
439 SHLIB=lib$(LIBNAME).so; \ | 481 SHLIB=lib$(LIBNAME).so; \ |
440 SHLIB_SUFFIX=; \ | 482 SHLIB_SUFFIX=; \ |
441 MINUSWL=""; \ | 483 MINUSWL=""; \ |
442 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \ | 484 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \ |
443 ALLSYMSFLAGS="$${MINUSWL}-all"; \ | 485 ALLSYMSFLAGS="$${MINUSWL}-all"; \ |
444 NOALLSYMSFLAGS="$${MINUSWL}-none"; \ | 486 NOALLSYMSFLAGS="$${MINUSWL}-none"; \ |
445 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$S
HLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,-B,symbolic"; \ | 487 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$S
HLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,-B,symbolic"; \ |
446 fi; \ | 488 fi; \ |
447 $(LINK_SO_A) | 489 $(LINK_SO_A) |
448 link_app.irix: | 490 link_app.irix: |
449 @LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"; \ | 491 @LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"; \ |
450 $(LINK_APP) | 492 $(LINK_APP) |
451 | 493 |
452 # 32-bit PA-RISC HP-UX embeds the -L pathname of libs we link with, so | 494 # 32-bit PA-RISC HP-UX embeds the -L pathname of libs we link with, so |
453 # we compensate for it with +cdp ../: and +cdp ./:. Yes, these rewrite | 495 # we compensate for it with +cdp ../: and +cdp ./:. Yes, these rewrite |
454 # rules imply that we can only link one level down in catalog structure, | 496 # rules imply that we can only link one level down in catalog structure, |
455 # but that's what takes place for the moment of this writing. +cdp option | 497 # but that's what takes place for the moment of this writing. +cdp option |
456 # was introduced in HP-UX 11.x and applies in 32-bit PA-RISC link | 498 # was introduced in HP-UX 11.x and applies in 32-bit PA-RISC link |
457 # editor context only [it's simply ignored in other cases, which are all | 499 # editor context only [it's simply ignored in other cases, which are all |
458 # ELFs by the way]. | 500 # ELFs by the way]. |
459 # | 501 # |
460 link_o.hpux: | 502 link_o.hpux: |
461 » @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \ | 503 » @if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \ |
462 $(CALC_VERSIONS); \ | 504 $(CALC_VERSIONS); \ |
463 SHLIB=lib$(LIBNAME).sl; \ | 505 SHLIB=lib$(LIBNAME).sl; \ |
464 expr "$(CFLAGS)" : '.*DSO_DLFCN' > /dev/null && SHLIB=lib$(LIBNAME).so;
\ | 506 expr "$(CFLAGS)" : '.*DSO_DLFCN' > /dev/null && SHLIB=lib$(LIBNAME).so;
\ |
465 SHLIB_SUFFIX=; \ | 507 SHLIB_SUFFIX=; \ |
466 ALLSYMSFLAGS='-Wl,-Fl'; \ | 508 ALLSYMSFLAGS='-Wl,-Fl'; \ |
467 NOALLSYMSFLAGS=''; \ | 509 NOALLSYMSFLAGS=''; \ |
468 expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'
; \ | 510 expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'
; \ |
469 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarni
ngs,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+cdp,../:,+cdp,./:"; \ | 511 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarni
ngs,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+cdp,../:,+cdp,./:"; \ |
470 fi; \ | 512 fi; \ |
471 rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \ | 513 rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \ |
472 $(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX | 514 $(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX |
473 link_a.hpux: | 515 link_a.hpux: |
474 » @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \ | 516 » @if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \ |
475 $(CALC_VERSIONS); \ | 517 $(CALC_VERSIONS); \ |
476 SHLIB=lib$(LIBNAME).sl; \ | 518 SHLIB=lib$(LIBNAME).sl; \ |
477 expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ | 519 expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ |
478 SHLIB_SUFFIX=; \ | 520 SHLIB_SUFFIX=; \ |
479 ALLSYMSFLAGS='-Wl,-Fl'; \ | 521 ALLSYMSFLAGS='-Wl,-Fl'; \ |
480 NOALLSYMSFLAGS=''; \ | 522 NOALLSYMSFLAGS=''; \ |
481 expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'
; \ | 523 expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'
; \ |
482 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarni
ngs,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+cdp,../:,+cdp,./:"; \ | 524 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarni
ngs,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+cdp,../:,+cdp,./:"; \ |
483 fi; \ | 525 fi; \ |
484 rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \ | 526 rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \ |
485 $(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX | 527 $(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX |
486 link_app.hpux: | 528 link_app.hpux: |
487 » @if ${DETECT_GNU_LD}; then $(DO_GNU_APP); else \ | 529 » @if $(DETECT_GNU_LD); then $(DO_GNU_APP); else \ |
488 LDFLAGS="$(CFLAGS) -Wl,+s,+cdp,../:,+cdp,./:,+b,$(LIBRPATH)"; \ | 530 LDFLAGS="$(CFLAGS) -Wl,+s,+cdp,../:,+cdp,./:,+b,$(LIBRPATH)"; \ |
489 fi; \ | 531 fi; \ |
490 $(LINK_APP) | 532 $(LINK_APP) |
491 | 533 |
492 link_o.aix: | 534 link_o.aix: |
493 @ $(CALC_VERSIONS); \ | 535 @ $(CALC_VERSIONS); \ |
494 OBJECT_MODE=`expr "x$(SHARED_LDFLAGS)" : 'x\-[a-z]*\(64\)'` || :; \ | 536 OBJECT_MODE=`expr "x$(SHARED_LDFLAGS)" : 'x\-[a-z]*\(64\)'` || :; \ |
495 OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \ | 537 OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \ |
496 SHLIB=lib$(LIBNAME).so; \ | 538 SHLIB=lib$(LIBNAME).so; \ |
497 SHLIB_SUFFIX=; \ | 539 SHLIB_SUFFIX=; \ |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
542 @ $(CALC_VERSIONS); \ | 584 @ $(CALC_VERSIONS); \ |
543 SHLIB=lib$(LIBNAME); \ | 585 SHLIB=lib$(LIBNAME); \ |
544 SHLIB_SUFFIX=.dylib; \ | 586 SHLIB_SUFFIX=.dylib; \ |
545 $(SYMLINK_SO) | 587 $(SYMLINK_SO) |
546 symlink.hpux: | 588 symlink.hpux: |
547 @ $(CALC_VERSIONS); \ | 589 @ $(CALC_VERSIONS); \ |
548 SHLIB=lib$(LIBNAME).sl; \ | 590 SHLIB=lib$(LIBNAME).sl; \ |
549 expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ | 591 expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ |
550 $(SYMLINK_SO) | 592 $(SYMLINK_SO) |
551 # The following lines means those specific architectures do no symlinks | 593 # The following lines means those specific architectures do no symlinks |
552 symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath: | 594 symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath symlink.beos
: |
553 | 595 |
554 # Compatibility targets | 596 # Compatibility targets |
555 link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu | 597 link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu |
556 link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared: link_a.gnu | 598 link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared: link_a.gnu |
557 link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared: link_app.gnu | 599 link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared: link_app.gnu |
558 symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-share
d: symlink.gnu | 600 symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-share
d: symlink.gnu |
559 link_o.bsd-shared: link_o.bsd | 601 link_o.bsd-shared: link_o.bsd |
560 link_a.bsd-shared: link_a.bsd | 602 link_a.bsd-shared: link_a.bsd |
561 link_app.bsd-shared: link_app.bsd | 603 link_app.bsd-shared: link_app.bsd |
562 link_o.darwin-shared: link_o.darwin | 604 link_o.darwin-shared: link_o.darwin |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 link_app.hpux-shared: link_app.hpux | 642 link_app.hpux-shared: link_app.hpux |
601 symlink.hpux-shared: symlink.hpux | 643 symlink.hpux-shared: symlink.hpux |
602 link_o.aix-shared: link_o.aix | 644 link_o.aix-shared: link_o.aix |
603 link_a.aix-shared: link_a.aix | 645 link_a.aix-shared: link_a.aix |
604 link_app.aix-shared: link_app.aix | 646 link_app.aix-shared: link_app.aix |
605 symlink.aix-shared: symlink.aix | 647 symlink.aix-shared: symlink.aix |
606 link_o.reliantunix-shared: link_o.reliantunix | 648 link_o.reliantunix-shared: link_o.reliantunix |
607 link_a.reliantunix-shared: link_a.reliantunix | 649 link_a.reliantunix-shared: link_a.reliantunix |
608 link_app.reliantunix-shared: link_app.reliantunix | 650 link_app.reliantunix-shared: link_app.reliantunix |
609 symlink.reliantunix-shared: symlink.reliantunix | 651 symlink.reliantunix-shared: symlink.reliantunix |
| 652 link_o.beos-shared: link_o.beos |
| 653 link_a.beos-shared: link_a.beos |
| 654 link_app.beos-shared: link_app.gnu |
| 655 symlink.beos-shared: symlink.beos |
OLD | NEW |