2 # Helper makefile to link shared libraries in a portable way.
3 # This is much simpler than libtool, and hopefully not too error-prone.
5 # The following variables need to be set on the command line to build
8 # CC contains the current compiler. This one MUST be defined
10 # LDFLAGS contains flags to be used when the temporary object file is
11 # created. SHARED_LDFLAGS contains flags to be used when the shared
16 # LIBNAME contains just the name of thhe library, without prefix ("lib"
17 # on Unix, "cyg" for certain forms under Cygwin...) or suffix (.a, .so,
18 # .dll, ...). This one MUST have a value when using this makefile.
19 # For example, to build libfoo.so, you need to do the following:
23 # LIBEXTRAS contains extra modules to link together with the library.
24 # For example, if a seond library, say libbar.a needs to be linked into
25 # libfoo.so, you need to do the following:
27 # Note that this MUST be used when using the link_o targets, to hold the
28 # names of all object files that go into the target library.
31 # LIBVERSION contains the current version of the library.
32 # For example, to build libfoo.so.1.2, you need to do the following:
36 # LIBCOMPATVERSIONS contains the compatibility versions (a list) of
37 # the library. They MUST be in decreasing order.
38 # For example, if libfoo.so.1.2.1 is backward compatible with libfoo.so.1.2
39 # and libfoo.so.1, you need to do the following:
40 #LIBCOMPATVERSIONS=1.2 1
41 # Note that on systems that use sonames, the last number will appear as
43 # It's also possible, for systems that support it (Tru64, for example),
44 # to add extra compatibility info with more precision, by adding a second
45 # list of versions, separated from the first with a semicolon, like this:
46 #LIBCOMPATVERSIONS=1.2 1;1.2.0 1.1.2 1.1.1 1.1.0 1.0.0
49 # LIBDEPS contains all the flags necessary to cover all necessary
50 # dependencies to other libraries.
53 #------------------------------------------------------------------------------
54 # The rest is private to this makefile.
60 echo "Trying to use this makefile interactively? Don't."
63 SHLIB_COMPAT=; SHLIB_SOVER=; \
64 if [ -n "$(LIBVERSION) $(LIBCOMPATVERSIONS)" ]; then \
66 for v in `echo "$(LIBVERSION) $(LIBCOMPATVERSIONS)" | cut -d';' -f1`; do \
67 SHLIB_SOVER_NODOT=$$v \
69 if [ -n "$$prev" ]; then \
70 SHLIB_COMPAT=$$SHLIB_COMPAT .$$prev; \
78 nm -Pg $$SHOBJECTS | grep ' [BDT] ' | cut -f1 -d' ' > lib$(LIBNAME).exp; \
79 $$SHAREDCMD $(SHARED_LDFLAGS) $$SHAREDFLAGS -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
80 $$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS ) && \
81 $(SYMLINK_SO); ( $(DEBUG); rm -f lib$(LIBNAME).exp )
83 if [ -n "$$SHLIB_COMPAT"]; then \
84 prev=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \
85 for x in $$SHLIB_COMPAT; do \
86 ( $(DEBUG); rm -f $$SHLIB$$x$$SHLIB_SUFFIX; \
87 ln -s $$prev $$SHLIB$$x$$SHLIB_SUFFIX ); \
88 prev=$$SHLIB$$x$$SHLIB_SUFFIX; \
91 LINK_SO_A= SHOBJECTS="lib$(LIBNAME).a $(LIBEXTRAS)"; $(LINK_SO)
92 LINK_SO_O= SHOBJECTS="$(LIBEXTRAS)"; $(LINK_SO)
94 SHOBJECTS=lib$(LIBNAME).o ALL=$$ALLSYMSFLAGS ALLSYMSFLAGS= NOALLSYMSFLAGS=; \
96 ld $(LDFLAGS) -r -o lib$(LIBNAME).o $$ALL lib$(LIBNAME).a $(LIBEXTRAS) ); \
97 $(LINK_SO) && rm -f $(LIBNAME).o
99 UNPACKDIR=link_tmp.$$$$; rm -rf $$UNPACKDIR; mkdir $$UNPACKDIR; \
100 (cd $$UNPACKDIR; ar x ../lib$(LIBNAME).a) && cp $(LIBEXTRAS) $$UNPACKDIR && \
101 SHOBJECTS=$$UNPACKDIR/*.o; \
102 $(LINK_SO) && rm -rf $$UNPACKDIR
104 DETECT_GNU_LD=${CC} -v 2>&1 | grep '^gcc' >/dev/null 2>&1 && \
105 my_ld=`gcc -print-prog-name=ld 2>&1` && \
106 [ -n "$$my_ld" ] && \
107 $$my_ld -v 2>&1 | grep 'GNU ld' >/dev/null 2>&1
110 @ $(CALC_VERSIONS); \
111 SHLIB=lib$(LIBNAME).so \
113 LIBDEPS="$(LIBDEPS)" \
114 NOALLSYMSFLAGS='-Wl,--no-whole-archive' \
115 SHAREDFLAGS="-shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" \
119 @ $(CALC_VERSIONS); \
120 SHLIB=lib$(LIBNAME).so \
122 LIBDEPS="$(LIBDEPS)" \
123 ALLSYMSFLAGS='-Wl,--whole-archive' \
124 NOALLSYMSFLAGS='-Wl,--no-whole-archive' \
125 SHAREDFLAGS="-shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" \
129 # For Darwin AKA Mac OS/X (dyld)
131 @ $(CALC_VERSIONS); \
132 SHLIB=lib$(LIBNAME) \
133 SHLIB_SUFFIX=.dylib \
134 LIBDEPS="$(LIBDEPS)" \
135 ALLSYMSFLAGS='-all_load' \
137 SHAREDFLAGS="-dynamiclib -current_version $(LIBVERSION) -compatibility_version $$SHLIB_SOVER_NODOT" \
141 @ $(CALC_VERSIONS); \
142 SHLIB=lib$(LIBNAME) \
143 SHLIB_SUFFIX=.dylib \
144 LIBDEPS="$(LIBDEPS)" \
145 ALLSYMSFLAGS='-all_load' \
147 SHAREDFLAGS="-dynamiclib -current_version $(LIBVERSION) -compatibility_version $$SHLIB_SOVER_NODOT" \
152 @ SHLIB=cyg$(LIBNAME).dll \
154 LIBDEPS="$(LIBDEPS)" \
156 ALLSYMSFLAGS='-Wl,--whole-archive' \
157 NOALLSYMSFLAGS='-Wl,--no-whole-archive' \
158 SHAREDFLAGS="-shared -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a" \
162 @ SHLIB=cyg$(LIBNAME).dll \
164 LIBDEPS="$(LIBDEPS)" \
166 ALLSYMSFLAGS='-Wl,--whole-archive' \
167 NOALLSYMSFLAGS='-Wl,--no-whole-archive' \
168 SHAREDFLAGS="-shared -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a" \
173 @ if ${DETECT_GNU_LD}; then \
174 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
175 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
176 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
177 LIBVERSION="$(LIBVERSION)"
178 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
179 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
181 SHLIB=lib$(LIBNAME).so \
183 LIBDEPS="$(LIBDEPS)" \
184 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
185 if [ -n "$$SHLIB_HIST" ]; then \
186 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
188 SHLIB_HIST="$(LIBVERSION)"; \
191 ALLSYMSFLAGS='-all' \
192 NOALLSYMSFLAGS='-none' \
193 SHAREDFLAGS="-shared -set_version \"$$SHLIB_HIST\"" \
198 @ if ${DETECT_GNU_LD}; then \
199 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
200 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
201 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
202 LIBVERSION="$(LIBVERSION)"
203 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
204 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
206 SHLIB=lib$(LIBNAME).so \
208 LIBDEPS="$(LIBDEPS)" \
209 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
210 if [ -n "$$SHLIB_HIST" ]; then \
211 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
213 SHLIB_HIST="$(LIBVERSION)"; \
216 ALLSYMSFLAGS='-all' \
217 NOALLSYMSFLAGS='-none' \
218 SHAREDFLAGS="-shared -set_version \"$$SHLIB_HIST\"" \
223 # The difference between alpha-osf1-shared and tru64-shared is the `-msym'
224 # option passed to the linker.
226 @ if ${DETECT_GNU_LD}; then \
227 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
228 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
229 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
230 LIBVERSION="$(LIBVERSION)"
231 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
232 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
234 SHLIB=lib$(LIBNAME).so \
236 LIBDEPS="$(LIBDEPS)" \
237 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
238 if [ -n "$$SHLIB_HIST" ]; then \
239 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
241 SHLIB_HIST="$(LIBVERSION)"; \
244 ALLSYMSFLAGS='-all' \
245 NOALLSYMSFLAGS='-none' \
246 SHAREDFLAGS="-shared -msym -set_version \"$$SHLIB_HIST\"" \
251 @ if ${DETECT_GNU_LD}; then \
252 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
253 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
254 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
255 LIBVERSION="$(LIBVERSION)"
256 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
257 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
259 SHLIB=lib$(LIBNAME).so \
261 LIBDEPS="$(LIBDEPS)" \
262 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
263 if [ -n "$$SHLIB_HIST" ]; then \
264 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
266 SHLIB_HIST="$(LIBVERSION)"; \
269 ALLSYMSFLAGS='-all' \
270 NOALLSYMSFLAGS='-none' \
271 SHAREDFLAGS="-shared -msym -set_version \"$$SHLIB_HIST\"" \
276 # The difference between tru64-shared and tru64-shared-rpath is the
277 # -rpath ${LIBRPATH} passed to the linker.
279 @ if ${DETECT_GNU_LD}; then \
280 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
281 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
282 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
283 LIBVERSION="$(LIBVERSION)"
284 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
285 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
287 SHLIB=lib$(LIBNAME).so \
289 LIBDEPS="$(LIBDEPS)" \
290 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
291 if [ -n "$$SHLIB_HIST" ]; then \
292 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
294 SHLIB_HIST="$(LIBVERSION)"; \
297 ALLSYMSFLAGS='-all' \
298 NOALLSYMSFLAGS='-none' \
299 SHAREDFLAGS="-shared -msym -rpath $(LIBRPATH) -set_version \"$$SHLIB_HIST\"" \
304 @ if ${DETECT_GNU_LD}; then \
305 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
306 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
307 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
308 LIBVERSION="$(LIBVERSION)"
309 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
310 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
312 SHLIB=lib$(LIBNAME).so \
314 LIBDEPS="$(LIBDEPS)" \
315 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
316 if [ -n "$$SHLIB_HIST" ]; then \
317 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
319 SHLIB_HIST="$(LIBVERSION)"; \
322 ALLSYMSFLAGS='-all' \
323 NOALLSYMSFLAGS='-none' \
324 SHAREDFLAGS="-shared -msym -rpath $(LIBRPATH) -set_version \"$$SHLIB_HIST\"" \
330 @ if ${DETECT_GNU_LD}; then \
331 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
332 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
333 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
334 LIBVERSION="$(LIBVERSION)"
335 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
336 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
339 SHLIB=lib$(LIBNAME).so \
341 LIBDEPS="$(LIBDEPS)" \
342 ALLSYMSFLAGS='-z allextract' \
344 SHAREDFLAGS='-G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX' \
349 @ if ${DETECT_GNU_LD}; then \
350 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
351 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
352 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
353 LIBVERSION="$(LIBVERSION)"
354 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
355 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
358 SHLIB=lib$(LIBNAME).so \
360 LIBDEPS="$(LIBDEPS)" \
361 ALLSYMSFLAGS='-z allextract' \
363 SHAREDFLAGS='-G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX' \
368 # OpenServer 5 native compilers used
369 # UnixWare 7 and OpenUNIX 8 native compilers used
371 @ if ${DETECT_GNU_LD}; then \
372 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
373 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
374 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
375 LIBVERSION="$(LIBVERSION)"
376 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
377 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
380 SHLIB=lib$(LIBNAME).so \
382 LIBDEPS="$(LIBDEPS)" \
383 ALLSYMSFLAGS='-z allextract' \
385 SHAREDFLAGS='-G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX' \
390 @ if ${DETECT_GNU_LD}; then \
391 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
392 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
393 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
394 LIBVERSION="$(LIBVERSION)"
395 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
396 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
399 SHLIB=lib$(LIBNAME).so \
401 LIBDEPS="$(LIBDEPS)" \
402 ALLSYMSFLAGS='-z allextract' \
404 SHAREDFLAGS='-G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX' \
406 $(LINK_SO_A_UNPACKED); \
410 @ if ${DETECT_GNU_LD}; then \
411 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
412 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
413 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
414 LIBVERSION="$(LIBVERSION)"
415 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
416 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
419 SHLIB=lib$(LIBNAME).so \
421 LIBDEPS="$(LIBDEPS)" \
422 ALLSYMSFLAGS='-all' \
424 SHAREDFLAGS='-shared -Wl,-soname,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX' \
429 @ if ${DETECT_GNU_LD}; then \
430 $(MAKE) -f $(SHARED_MAKEFILE) CC="$(CC)" LDFLAGS="$(LDFLAGS) \
431 SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
432 LIBNAME="$(LIBNAME)" LIBEXTRAS="$(LIBEXTRAS)" \
433 LIBVERSION="$(LIBVERSION)"
434 LIBCOMPATVERSIONS="$(LIBCOMPATVERSIONS)" \
435 LIBDEPS="$(LIBDEPS)" link_o.gnu; \
438 SHLIB=lib$(LIBNAME).so \
440 LIBDEPS="$(LIBDEPS)" \
441 ALLSYMSFLAGS='-all' \
443 SHAREDFLAGS='-shared -Wl,-soname,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX' \
448 # HP-UX includes the full pathname of libs we depend on, so we would get
449 # ./libcrypto (with ./ as path information) compiled into libssl, hence
450 # we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto
452 # The object modules are loaded from lib$i.a using the undocumented -Fl
455 # WARNING: Until DSO is fixed to support a search path, we support SHLIB_PATH
456 # by temporarily specifying "+s"!
459 @ $(CALC_VERSIONS); \
460 SHLIB=lib$(LIBNAME).sl \
462 LIBDEPS="$(LIBDEPS) -lc" \
465 SHAREDFLAGS='+vnocompatwarnings -b -z +s +h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX' \
466 SHAREDCMD='/usr/ccs/bin/ld'; \
467 $(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
469 @ $(CALC_VERSIONS); \
470 SHLIB=lib$(LIBNAME).sl \
472 LIBDEPS="$(LIBDEPS) -lc" \
475 SHAREDFLAGS='+vnocompatwarnings -b -z +s +h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX' \
476 SHAREDCMD='/usr/ccs/bin/ld'; \
477 $(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
479 # HP-UX includes the full pathname of libs we depend on, so we would get
480 # ./libcrypto (with ./ as path information) compiled into libssl, hence
481 # we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto
484 # HP-UX in 64bit mode has "+s" enabled by default; it will search for
485 # shared libraries along LD_LIBRARY_PATH _and_ SHLIB_PATH.
488 @ $(CALC_VERSIONS); \
489 SHLIB=lib$(LIBNAME).sl \
491 LIBDEPS="$(LIBDEPS) -lc" \
492 ALLSYMSFLAGS='+forceload' \
494 SHAREDFLAGS='-b -z +h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX' \
495 SHAREDCMD='/usr/ccs/bin/ld'; \
496 $(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
498 @ $(CALC_VERSIONS); \
499 SHLIB=lib$(LIBNAME).sl \
501 LIBDEPS="$(LIBDEPS) -lc" \
502 ALLSYMSFLAGS='+forceload' \
504 SHAREDFLAGS='-b -z +h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX' \
505 SHAREDCMD='/usr/ccs/bin/ld'; \
506 $(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
509 @ $(CALC_VERSIONS); \
510 SHLIB=lib$(LIBNAME).so \
512 LIBDEPS="$(LIBDEPS)" \
513 ALLSYMSFLAGS='-bnogc' \
515 SHAREDFLAGS='-G -bE:lib$(LIBNAME).exp -bM:SRE' \
519 @ $(CALC_VERSIONS); \
520 SHLIB=lib$(LIBNAME).so \
522 LIBDEPS="$(LIBDEPS)" \
523 ALLSYMSFLAGS='-bnogc' \
525 SHAREDFLAGS='-G -bE:lib$(LIBNAME).exp -bM:SRE' \
530 @ $(CALC_VERSIONS); \
531 SHLIB=lib$(LIBNAME).so \
533 LIBDEPS="$(LIBDEPS)" \
540 @ $(CALC_VERSIONS); \
541 SHLIB=lib$(LIBNAME).so \
543 LIBDEPS="$(LIBDEPS)" \
548 $(LINK_SO_A_UNPACKED)
550 # Targets to build symbolic links when needed
551 symlink.gnu symlink.solaris symlink.svr3 symlink.irix \
552 symlink.aix symlink.reliantunix:
553 @ $(CALC_VERSIONS); \
554 SHLIB=lib$(LIBNAME).so \
557 @ $(CALC_VERSIONS); \
558 SHLIB=lib$(LIBNAME) \
559 SHLIB_SUFFIX=.dylib \
561 symlink.cygwin symlib.alpha-osf1 symlink.tru64 symlink.tru64-rpath:
562 symlink.hpux32 symlink.hpux64:
563 @ $(CALC_VERSIONS); \
564 SHLIB=lib$(LIBNAME).sl \
567 # Compatibility targets
568 link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu
569 link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared: link_a.gnu
570 symlink.bsd-gcc-shared symlink.linux-shared symlink.gnu-shared: symlink.gnu
571 link_o.darwin-shared: link_o.darwin
572 link_a.darwin-shared: link_a.darwin
573 symlink.darwin-shared: symlink.darwin
574 link_o.cygwin-shared: link_o.cygwin
575 link_a.cygwin-shared: link_a.cygwin
576 symlink.cygwin-shared: symlink.cygwin
577 link_o.alpha-osf1-shared: link_o.alpha-osf1
578 link_a.alpha-osf1-shared: link_a.alpha-osf1
579 symlink.alpha-osf1-shared: symlink.alpha-osf1
580 link_o.tru64-shared: link_o.tru64
581 link_a.tru64-shared: link_a.tru64
582 symlink.tru64-shared: symlink.tru64
583 link_o.tru64-shared-rpath: link_o.tru64-rpath
584 link_a.tru64-shared-rpath: link_a.tru64-rpath
585 symlink.tru64-shared-rpath: symlink.tru64-rpath
586 link_o.solaris-shared: link_o.solaris
587 link_a.solaris-shared: link_a.solaris
588 symlink.solaris-shared: symlink.solaris
589 link_o.svr3-shared: link_o.svr3
590 link_a.svr3-shared: link_a.svr3
591 symlink.svr3-shared: symlink.svr3
592 link_o.svr5-shared: link_o.svr3
593 link_a.svr5-shared: link_a.svr3
594 symlink.svr5-shared: symlink.svr3
595 link_o.irix-shared: link_o.irix
596 link_a.irix-shared: link_a.irix
597 symlink.irix-shared: symlink.irix
598 link_o.hpux-shared: link_o.hpux32
599 link_a.hpux-shared: link_a.hpux32
600 symlink.hpux-shared: symlink.hpux32
601 link_o.hpux64-shared: link_o.hpux64
602 link_a.hpux64-shared: link_a.hpux64
603 symlink.hpux64-shared: symlink.hpux64
604 link_o.aix-shared: link_o.aix
605 link_a.aix-shared: link_a.aix
606 symlink.aix-shared: symlink.aix
607 link_o.reliantunix-shared: link_o.reliantunix
608 link_a.reliantunix-shared: link_a.reliantunix
609 symlink.reliantunix-shared: symlink.reliantunix