1#!/bin/sh
2# Cheesy hacky location of additional link libraries.
3
4locate_library() { [ ! "$1*" = "`echo $1*`" ]; }
5find_func() { egrep $1 $2 >/dev/null; }
6
7if find_func hosts_access tcpwrap.o; then
8  echo "-lwrap";
9  locate_library /lib/libnsl.so && echo "-lnsl";
10fi
11
12# Look for PAM (done weirdly due to distribution bugs (e.g. Debian) or the
13# crypt library.
14if find_func pam_start sysdeputil.o; then
15  locate_library /lib/libpam.so.0 && echo "/lib/libpam.so.0";
16  locate_library /usr/lib/libpam.so && echo "-lpam";
17  # HP-UX ends shared libraries with .sl
18  locate_library /usr/lib/libpam.sl && echo "-lpam";
19  # AIX ends shared libraries with .a
20  locate_library /usr/lib/libpam.a && echo "-lpam";
21else
22  locate_library /lib/libcrypt.so && echo "-lcrypt";
23  locate_library /usr/lib/libcrypt.so && echo "-lcrypt";
24fi
25
26# Look for the dynamic linker library. Needed by older RedHat when
27# you link in PAM
28locate_library /lib/libdl.so && echo "-ldl";
29
30# Look for libsocket. Solaris needs this.
31locate_library /lib/libsocket.so && echo "-lsocket";
32
33# Look for libnsl. Solaris needs this.
34locate_library /lib/libnsl.so && echo "-lnsl";
35
36# Look for libresolv. Solaris needs this.
37locate_library /lib/libresolv.so && echo "-lresolv";
38
39# Look for libutil. Older FreeBSD need this for setproctitle().
40locate_library /usr/lib/libutil.so && echo "-lutil";
41
42# For older HP-UX...
43locate_library /usr/lib/libsec.sl && echo "-lsec";
44
45# Look for libcap (capabilities)
46locate_library /lib/libcap.so.1 && echo "/lib/libcap.so.1";
47locate_library /usr/lib/libcap.so && echo "-lcap";
48
49# Solaris needs this for nanosleep()..
50locate_library /lib/libposix4.so && echo "-lposix4";
51locate_library /usr/lib/libposix4.so && echo "-lposix4";
52
53# Tru64 (nanosleep)
54locate_library /usr/shlib/librt.so && echo "-lrt";
55
56# Solaris sendfile
57locate_library /usr/lib/libsendfile.so && echo "-lsendfile";
58
59# OpenSSL
60if find_func SSL_library_init ssl.o; then
61  echo "-lssl -lcrypto";
62fi
63
64exit 0;
65
66