diff options
| author | Sam Hartman <hartmans@mit.edu> | 1995-06-23 00:59:54 +0000 |
|---|---|---|
| committer | Sam Hartman <hartmans@mit.edu> | 1995-06-23 00:59:54 +0000 |
| commit | 6cd88aa348286b0535b95b84f54beb95abd29a92 (patch) | |
| tree | d631441a2fd3127093ba06aff89f4cd7acb60d49 /src/util | |
| parent | d84d59a45a9203ba179a213f5d2281be4da07b00 (diff) | |
| download | krb5-6cd88aa348286b0535b95b84f54beb95abd29a92.tar.gz krb5-6cd88aa348286b0535b95b84f54beb95abd29a92.tar.xz krb5-6cd88aa348286b0535b95b84f54beb95abd29a92.zip | |
Changes to support AIX shared libraries. The interactions
between configure.in and Makefile.in change significantly for shared
libraries: the static library target is no longer specified in the
Makefile, although a rule to make the static library is specified.
Also, none of the libraries have any more unresolved symbols. As
discussed, libcom_err.a is made shared and symlinks are created in
lib.
These changes sort of work, although I suspect cleanup is
necessary. I don't think it breaks too much on other platforms.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6126 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/util')
| -rw-r--r-- | src/util/et/ChangeLog | 8 | ||||
| -rw-r--r-- | src/util/et/Makefile.in | 19 | ||||
| -rw-r--r-- | src/util/et/configure.in | 15 | ||||
| -rw-r--r-- | src/util/makeshlib | 26 |
4 files changed, 63 insertions, 5 deletions
diff --git a/src/util/et/ChangeLog b/src/util/et/ChangeLog index 832b27ccd..a1d5fb53a 100644 --- a/src/util/et/ChangeLog +++ b/src/util/et/ChangeLog @@ -1,3 +1,11 @@ +Thu Jun 22 13:06:47 1995 Sam Hartman <hartmans@tardis.MIT.EDU> + + * Makefile.in Changed libcom_err.a to libcom_err.$(STEXT), removed rule to clean it up on Unix as aclocal.m4 already inserts the rule. If this breaks on Macs, please let me know how I should do this in the future. + + * configure.in: Changed to make libcom_err as a shared library. + + + Fri Jun 9 19:00:05 1995 <tytso@rsx-11.mit.edu> * configure.in: Remove standardized set of autoconf macros, which diff --git a/src/util/et/Makefile.in b/src/util/et/Makefile.in index 8c5e549ab..264b92b46 100644 --- a/src/util/et/Makefile.in +++ b/src/util/et/Makefile.in @@ -5,6 +5,8 @@ SED = sed ##DOSLIBNAME=comerr.lib ##DOS!include $(BUILDTOP)\config\windows.in +LIBDONE=./done +LIB_SUBDIRS=. INSTALLFILE = cp LINTFLAGS=-uhvb @@ -25,6 +27,12 @@ CFILES= compile_et.c error_table.c error_message.c et_name.c \ SRCS=$(CFILES) + +SHLIB_LIBS= +SHLIB_LDFLAGS= $(LDFLAGS) @SHLIB_RPATH_DIRS@ +SHLIB_LIBDIRS= @SHLIB_LIBDIRS@ +STEXT=@STEXT@ + all:: all-$(WHAT) all-windows: com_err.obj error_message.obj et_name.obj @@ -87,16 +95,19 @@ install:: mit-sipb-copyright.h # ## install_library_target(com_err,$(LIBOBJS),$(LINTFILES),) -all-unix:: libcom_err.a -all-mac:: libcom_err.a -libcom_err.a: $(LIBOBJS) +all-mac:: libcom_err.$(STEXT) + +libcom_err.$(STEXT): $(LIBOBJS) $(ARCHIVE) $@ $(LIBOBJS) $(RANLIB) $@ +done:: $(LIBOBJS) + $(RM) done + echo $(LIBOBJS) >done + clean-unix:: - $(RM) libcom_err.a $(RM) $(LIBOBJS) clean-mac:: diff --git a/src/util/et/configure.in b/src/util/et/configure.in index 0263436ca..717dfc092 100644 --- a/src/util/et/configure.in +++ b/src/util/et/configure.in @@ -24,4 +24,19 @@ AC_FUNC_CHECK(strerror,AC_DEFINE(HAS_STRERROR)) AC_CHECK_HEADERS(stdarg.h) AC_HAVE_HEADERS(stdlib.h) CopySrcHeader(com_err.h,$(BUILDTOP)/include) +V5_MAKE_SHARED_LIB(libcom_err) +AC_ARG_ENABLE([shared], +[ --enable-shared build shared libraries],[ +LinkFileDir([$](TOPLIBD)/libcom_err.[$](SHEXT), libcom_err.[$](SHEXT), ../util/et) +AppendRule([all -unix:: [$](TOPLIBD)/libcom_err.$(SHEXT)]) +AppendRule([install:: libcom_err.[$](SHEXT) + [$](INSTALL_DATA) libcom_err.[$](SHEXT) \ + [$](DESTDIR)[$](KRB5_SHLIBDIR)[$](S)libcom_err.[$](SHEXT)]) +])dnl +if test -n "$krb5_cv_enable_staticlibs" ; then + AppendRule([install:: libcom_err.[$](STEXT) + [$](INSTALL_DATA) libcom_err.[$](STEXT) [$](DESTDIR)[$](KRB5_LIBDIR)[$](S)libcom_err.[$](STEXT)]) + LinkFileDir([$](TOPLIBD)/libcom_err.[$](STEXT),libcom_err.[$](STEXT),../util/et) + AppendRule([all: [$](TOPLIBD)/libcom_err.[$](STEXT)]) +fi V5_AC_OUTPUT_MAKEFILE diff --git a/src/util/makeshlib b/src/util/makeshlib index 71eba9a29..8f6f7dc42 100644 --- a/src/util/makeshlib +++ b/src/util/makeshlib @@ -19,11 +19,35 @@ case $host in do sed -e "s;^;$i/shared/;" -e "s; ; $i/shared/;g" $i/DONE done` - + echo $CC -G $ldflags -o $library $FILES $libdirfl $liblist $CC -G $ldflags -o $library $FILES $libdirfl $liblist stat=$? ;; +*-*-aix*) + FILES=`for i + do + sed -e "s;^;$i/;" -e "s; ; $i/;g" $i/DONE + done` + +ar cq $library $FILES || exit $? + dump -g $library | sed -e 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$/\1/p;d' | sort | uniq > ${library}.syms + stat=$? + if [ $stat -eq 0 ] + then + ld -o shr.o $library -H512 -T512 -bM:SRE -lc $ldflags -bfilelist -bgcbypass:1 -bnodelcsect -x -bE:${library}.syms $libdirfl $liblist + stat=$? + if [ $stat -eq 0 ] + then + rm $library ${library}.syms + ar cq $library shr.o + stat=$? + rm shr.o + else + rm -f $library +fi + fi +;; alpha-*-osf*) FILES=`for i do |
