2 dnl $Id: shared-libs.m4,v 1.4.14.3 2000/12/07 18:03:00 bg Exp $
4 dnl Shared library stuff has to be different everywhere
7 AC_DEFUN(AC_SHARED_LIBS, [
9 dnl Check if we want to use shared libraries
11 [ --enable-shared create shared libraries for Kerberos])
16 case ${enable_shared} in
17 yes ) enable_shared=yes;;
18 no ) enable_shared=no;;
19 * ) enable_shared=no;;
22 # NOTE: Building shared libraries may not work if you do not use gcc!
34 # LIBEXT is the extension we should build (.a or $SHLIBEXT)
39 LDSHARED='$(CC) $(PICFLAGS) -shared'
41 build_symlink_command=@true
42 install_symlink_command=@true
43 install_symlink_command2=@true
46 SHLIB_VERSION=`echo $VERSION | sed 's/\([0-9.]*\).*/\1/'`
47 SHLIB_SONAME=`echo $VERSION | sed 's/\([0-9]*\).*/\1/'`
52 REAL_LD_FLAGS='-Wl,+b$(libdir)'
53 if test -z "$GCC"; then
60 LDSHARED='$(CC) -shared -Wl,-soname,$(LIBNAME).so.'"${SHLIB_SONAME}"
61 REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
62 REAL_SHLIBEXT=so.$SHLIB_VERSION
63 build_symlink_command='$(LN_S) -f [$][@] $(LIBNAME).so'
64 install_symlink_command='$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so.'"${SHLIB_SONAME}"';$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
65 install_symlink_command2='$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so.'"${SHLIB_SONAME}"';$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so'
68 *-*-freebsd[345]* | *-*-freebsdelf[345]*)
70 REAL_SHLIBEXT=so.$SHLIB_VERSION
71 REAL_LD_FLAGS='-Wl,-R$(libdir)'
72 build_symlink_command='$(LN_S) -f [$][@] $(LIBNAME).so'
73 install_symlink_command='$(LN_S) -f $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
74 install_symlink_command2='$(LN_S) -f $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so'
77 REAL_SHLIBEXT=so.$SHLIB_VERSION
78 LDSHARED='ld -Bshareable'
79 REAL_LD_FLAGS='-Wl,-R$(libdir)'
82 REAL_LD_FLAGS='-Wl,-rpath,$(libdir)'
84 LDSHARED='ld -shared -expect_unresolved \*'
87 LDSHARED='$(CC) -shared -Wl,-h$(LIBNAME).so.'"${SHLIB_SONAME}"
88 REAL_SHLIBEXT=so.$SHLIB_VERSION
89 build_symlink_command='$(LN_S) [$][@] $(LIBNAME).so'
90 install_symlink_command='$(LN_S) $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so.'"${SHLIB_SONAME}"';$(LN_S) $(LIB) $(DESTDIR)$(libdir)/$(LIBNAME).so'
91 install_symlink_command2='$(LN_S) $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so.'"${SHLIB_SONAME}"';$(LN_S) $(LIB2) $(DESTDIR)$(libdir)/$(LIBNAME2).so'
92 REAL_LD_FLAGS='-Wl,-R$(libdir)'
93 if test -z "$GCC"; then
94 LDSHARED='$(CC) -G -h$(LIBNAME).so.'"${SHLIB_SONAME}"
99 REAL_LD_FLAGS='' # really: LD_RUN_PATH=$(libdir) cc -o ...
100 REAL_LINK='LD_RUN_PATH=$(libdir) $(CC)'
102 REAL_PICFLAGS="-Kpic"
103 lib_deps=no # fails in mysterious ways
106 REAL_SHLIBEXT=so.$SHLIB_VERSION
107 REAL_LD_FLAGS='-Wl,-L$(libdir)'
111 libdir="${libdir}${abilibdirext}"
112 REAL_LD_FLAGS="${abi} -Wl,-rpath,\$(libdir)"
113 LD_FLAGS="${abi} -Wl,-rpath,\$(libdir)"
114 LDSHARED="\$(CC) -shared ${abi}"
116 CFLAGS="${abi} ${CFLAGS}"
123 REAL_SHLIBEXT=nobuild
127 REAL_SHLIBEXT=nobuild
129 *) REAL_SHLIBEXT=nobuild
134 if test "${enable_shared}" != "yes" ; then
138 build_symlink_command=@true
139 install_symlink_command=@true
140 install_symlink_command2=@true
142 PICFLAGS="$REAL_PICFLAGS"
143 SHLIBEXT="$REAL_SHLIBEXT"
145 AC_MSG_CHECKING(whether to use -rpath)
147 /lib | /usr/lib | /usr/local/lib)
153 LD_FLAGS="$REAL_LD_FLAGS"
154 test "$REAL_LINK" && LINK="$REAL_LINK"
155 AC_MSG_RESULT($LD_FLAGS)
160 if test "$lib_deps" = yes; then
167 AC_SUBST(lib_deps_yes)
168 AC_SUBST(lib_deps_no)
170 # use supplied ld-flags, or none if `no'
171 if test "$with_ld_flags" = no; then
173 elif test -n "$with_ld_flags"; then
174 LD_FLAGS="$with_ld_flags"
177 AC_SUBST(REAL_PICFLAGS) dnl
178 AC_SUBST(REAL_SHLIBEXT) dnl
179 AC_SUBST(REAL_LD_FLAGS) dnl
181 AC_SUBST(PICFLAGS) dnl
182 AC_SUBST(SHLIBEXT) dnl
183 AC_SUBST(LDSHARED) dnl
184 AC_SUBST(LD_FLAGS) dnl
186 AC_SUBST(LIBPREFIX) dnl
187 AC_SUBST(EXECSUFFIX) dnl
189 AC_SUBST(build_symlink_command)dnl
190 AC_SUBST(install_symlink_command)dnl
191 AC_SUBST(install_symlink_command2)dnl