* shlib.conf: New file, taken from KRB5_LIB_PARAMS in ../aclocal.m4
authorKen Raeburn <raeburn@mit.edu>
Fri, 14 Jul 2000 22:04:12 +0000 (22:04 +0000)
committerKen Raeburn <raeburn@mit.edu>
Fri, 14 Jul 2000 22:04:12 +0000 (22:04 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12541 dc483132-0cff-0310-8789-dd5450dbe970

src/config/ChangeLog
src/config/shlib.conf [new file with mode: 0644]

index 598c446b454e332bff6ef8dfb45dd3441e609dc9..53eaf00a17fdac15f859c800d5c6d827761dae34 100644 (file)
@@ -1,3 +1,8 @@
+2000-07-14  Ken Raeburn  <raeburn@mit.edu>
+
+       * shlib.conf: New file, taken from KRB5_LIB_PARAMS in
+       ../aclocal.m4.
+
 2000-07-03  Ezra Peisach  <epeisach@mit.edu>
 
        * pre.in: Remove the kdb5 and db libraries from the
diff --git a/src/config/shlib.conf b/src/config/shlib.conf
new file mode 100644 (file)
index 0000000..5829586
--- /dev/null
@@ -0,0 +1,254 @@
+#
+# Set up some defaults.
+#
+STLIBEXT=.a
+# Default to being unable to build shared libraries.
+SHLIBEXT=.so-nobuild
+SHLIBVEXT=.so.v-nobuild
+SHLIBSEXT=.so.s-nobuild
+# Most systems support profiled libraries.
+PFLIBEXT=_p.a
+# Most systems install shared libs as mode 644, etc. while hpux wants 755
+INSTALL_SHLIB='$(INSTALL_DATA)'
+
+STOBJEXT=.o
+SHOBJEXT=.so
+PFOBJEXT=.po
+# Default for systems w/o shared libraries
+CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+
+# Set up architecture-specific variables.
+case $krb5_cv_host in
+alpha*-dec-osf*)
+       SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBSEXT='.so.$(LIBMAJOR)'
+       SHLIBEXT=.so
+       # Alpha OSF/1 doesn't need separate PIC objects
+       SHOBJEXT=.o
+       LDCOMBINE='ld -shared -expect_unresolved \* -update_registry $(BUILDTOP)/so_locations -soname lib$(LIB)$(SHLIBSEXT)'
+       SHLIB_EXPFLAGS='-rpath $(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       PROFFLAGS=-pg
+       CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -Wl,-rpath -Wl,$(PROG_RPATH)'
+       # Need -oldstyle_liblookup to avoid picking up shared libs from
+       # other builds.  OSF/1 / Tru64 ld programs look through the entire
+       # library path for shared libs prior to looking through the
+       # entire library path for static libs.
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH) -Wl,-oldstyle_liblookup'
+       # $(PROG_RPATH) is here to handle things like a shared tcl library
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`:$(PROG_RPATH):/usr/shlib:/usr/ccs/lib:/usr/lib/cmplrs/cc:/usr/lib:/usr/local/lib; export LD_LIBRARY_PATH; _RLD_ROOT=/dev/dummy/d; export _RLD_ROOT;'
+       ;;
+
+# HPUX *seems* to work under 10.20.
+# 
+# Note: "-Wl,+s" when building executables enables the use of the
+# SHLIB_PATH environment variable for finding shared libraries 
+# in non-standard directories.  If a non-standard search-path for
+#  shared libraries is compiled into the executable (using 
+# -Wl,+b,$KRB5_SHLIBDIR), then the order of "-Wl,+b,..." and "-Wl,+s" 
+# on the commandline of the linker will determine which path
+# (compiled-in or SHLIB_PATH) will be searched first.
+#
+*-*-hpux*)
+       PICFLAGS=+z
+       INSTALL_SHLIB='$(INSTALL)'
+       SHLIBEXT=.sl
+       SHLIBVEXT='.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBSEXT='.$(LIBMAJOR)'
+       SHLIB_EXPFLAGS='+s +b $(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       LDCOMBINE='ld -b +h lib$(LIB)$(SHLIBSEXT)'
+       CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -Wl,+s -Wl,+b,$(PROG_RPATH)'
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       RUN_ENV='SHLIB_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export SHLIB_PATH;'
+       ;;
+
+mips-sgi-irix6.3)      # This is a Kludge; see below
+       SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBSEXT='.so.$(LIBMAJOR)'
+       SHLIBEXT=.so
+       SHOBJEXT=.o
+       # Kludge follows: (gcc makes n32 object files but ld expects o32, so we reeducate ld)
+       if test "$krb5_cv_prog_gcc" = yes; then
+               LDCOMBINE='ld -n32 -shared -ignore_unresolved -update_registry $(BUILDTOP)/so_locations -soname lib$(LIB)$(SHLIBSEXT)'
+       else
+               LDCOMBINE='ld -shared -ignore_unresolved -update_registry $(BUILDTOP)/so_locations -soname lib$(LIB)$(SHLIBSEXT)'
+       fi
+       SHLIB_EXPFLAGS='-rpath $(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       # no gprof for Irix...
+       PROFFLAGS=-p
+       CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -Wl,-rpath -Wl,$(PROG_RPATH)'
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;'
+       ;;
+
+mips-sgi-irix*)
+       SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBSEXT='.so.$(LIBMAJOR)'
+       SHLIBEXT=.so
+       SHOBJEXT=.o
+       LDCOMBINE='ld -shared -ignore_unresolved -update_registry $(BUILDTOP)/so_locations -soname lib$(LIB)$(SHLIBSEXT)'
+       SHLIB_EXPFLAGS='-rpath $(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       # no gprof for Irix...
+       PROFFLAGS=-p
+       CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -Wl,-rpath -Wl,$(PROG_RPATH)'
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;'
+       ;;
+
+# untested...
+mips-sni-sysv4)
+       if test "$krb5_cv_prog_gcc" = yes; then
+               PICFLAGS=-fpic
+               LDCOMBINE='$(CC) -G -Wl,-h -Wl,lib$(LIB)$(SHLIBSEXT)'
+       else
+               PICFLAGS=-Kpic
+               LDCOMBINE='$(CC) -G -h lib$(LIB)$(SHLIBSEXT)'
+       fi
+       SHLIB_EXPFLAGS='-R$(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       SHLIBEXT=.so
+       SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBSEXT='.so.$(LIBMAJOR)'
+       CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -R$(PROG_RPATH)'
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;'
+       PROFFLAGS=-pg
+       ;;
+
+mips-*-netbsd*)
+       PICFLAGS=-fPIC
+       SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBSEXT='.so.$(LIBMAJOR)'
+       SHLIBEXT=.so
+       LDCOMBINE='ld -shared -soname lib$(LIB)$(SHLIBSEXT)'
+       SHLIB_EXPFLAGS='-R$(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -Wl,-rpath -Wl,$(PROG_RPATH)'
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;'
+       PROFFLAGS=-pg
+       ;;
+
+*-*-netbsd*)
+       PICFLAGS=-fpic
+       SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBEXT=.so
+       LDCOMBINE='ld -Bshareable'
+       SHLIB_EXPFLAGS='-R$(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -R$(PROG_RPATH)'
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;'
+       PROFFLAGS=-pg
+       ;;
+
+*-*-freebsd*)
+       if test -x /usr/bin/objformat ; then
+               objformat=`/usr/bin/objformat`
+       else
+               objformat="aout"
+       fi
+       PICFLAGS=-fpic
+       if test "x$objformat" = "xelf" ; then
+               SHLIBVEXT='.so.$(LIBMAJOR)'
+               CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -Wl,-rpath -Wl,$(PROG_RPATH)'
+       else
+               SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+               CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -R$(PROG_RPATH)'
+       fi
+       SHLIBEXT=.so
+       LDCOMBINE='ld -Bshareable'
+       SHLIB_EXPFLAGS='-R$(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;'
+       PROFFLAGS=-pg
+       ;;
+
+*-*-openbsd*)
+       PICFLAGS=-fpic
+       SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBEXT=.so
+       LDCOMBINE='ld -Bshareable'
+       SHLIB_EXPFLAGS='-R$(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -R$(PROG_RPATH)'
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;'
+       PROFFLAGS=-pg
+       ;;
+
+*-*-darwin* | *-*-rhapsody*)
+       PICFLAGS=-fno-common
+       SHLIBVEXT='.$(LIBMAJOR).$(LIBMINOR).dylib'
+       SHLIBSEXT='.$(LIBMAJOR).dylib'
+       SHLIB_EXPFLAGS='$(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       SHLIBEXT=.dylib
+       LDCOMBINE='$(CC) $(LDFLAGS) -undefined warning -dynamiclib -compatibility_version $(LIBMAJOR) -current_version $(LIBMAJOR).$(LIBMINOR) -install_name "$(KRB5_LIBDIR)/lib$(LIB)$(SHLIBVEXT)"'
+       CC_LINK_SHARED='$(CC) $(LDFLAGS) $(PROG_LIBPATH) -dynamic'
+       CC_LINK_STATIC='$(CC) $(LDFLAGS) $(PROG_LIBPATH)'
+       RUN_ENV='DYLD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export DYLD_LIBRARY_PATH;'
+       ;;
+
+*-*-solaris*)
+       if test "$krb5_cv_prog_gcc" = yes; then
+               PICFLAGS=-fpic
+               LDCOMBINE='$(CC) -shared -h lib$(LIB)$(SHLIBSEXT)'
+       else
+               PICFLAGS=-Kpic
+               # Solaris cc doesn't default to stuffing the SONAME field...
+               LDCOMBINE='$(CC) -dy -G -z text -h lib$(LIB)$(SHLIBSEXT)'
+       fi
+       SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBSEXT='.so.$(LIBMAJOR)'
+       SHLIBEXT=.so
+       SHLIB_EXPFLAGS='-R$(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       PROFFLAGS=-pg
+       CC_LINK_SHARED='$(PURE) $(CC) $(PROG_LIBPATH) -R$(PROG_RPATH)'
+       CC_LINK_STATIC='$(PURE) $(CC) $(PROG_LIBPATH)'
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;'
+       ;;
+
+*-*-sunos*)
+       PICFLAGS=-fpic
+       SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBEXT=.so
+       # The following grossness is to prevent relative paths from
+       # creeping into the RPATH of an executable or library built
+       # under SunOS; the explicit setting of LD_LIBRARY_PATH does
+       # does not make it into the output file, while directories
+       # passed by "-Ldirname" do.
+       LDCOMBINE='LD_LIBRARY_PATH=`echo $(SHLIB_DIRS) | sed -e "s/-L//g" -e "s/ /:/g"` ld -dp -assert pure-text'
+       SHLIB_EXPFLAGS='-L$(SHLIB_RDIRS) $(SHLIB_EXPLIBS)'
+       PROFFLAGS=-pg
+       CC_LINK_SHARED='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"` $(PURE) $(CC) -L$(PROG_RPATH)'
+       CC_LINK_STATIC='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g` $(PURE) $(CC)'
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;'
+       ;;
+*-*-linux*)
+       PICFLAGS=-fPIC
+       SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBSEXT='.so.$(LIBMAJOR)'
+       SHLIBEXT=.so
+       # Linux ld doesn't default to stuffing the SONAME field...
+       # Use objdump -x to examine the fields of the library
+       LDCOMBINE='ld -shared -h lib$(LIB)$(SHLIBSEXT)'
+       SHLIB_EXPFLAGS='-R$(SHLIB_RDIRS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       PROFFLAGS=-pg
+       CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -Wl,-rpath -Wl,$(PROG_RPATH)'
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       RUN_ENV='LD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;'
+       ;;
+
+*-*-aix*)
+       SHLIBVEXT='.a.$(LIBMAJOR).$(LIBMINOR)'
+       SHLIBEXT=.a
+       # AIX doesn't need separate PIC objects
+       SHOBJEXT=.o
+       LDCOMBINE='$(BUILDTOP)/util/makeshlib $(LIBMAJOR).$(LIBMINOR)'
+       SHLIB_EXPFLAGS='  $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       PROFFLAGS=-pg
+       if test "$krb5_cv_prog_gcc" = "yes" ; then
+         CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -Xlinker -bex4:$(BUILDTOP)/util/aix.bincmds '
+       else
+         CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -bex4:$(BUILDTOP)/util/aix.bincmds '
+       fi
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       # $(PROG_RPATH) is here to handle things like a shared tcl library
+       RUN_ENV='LIBPATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`:$(PROG_RPATH):/usr/lib:/usr/local/lib; export LIBPATH; '
+
+esac