summaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
authorSam Hartman <hartmans@mit.edu>1995-06-23 00:59:54 +0000
committerSam Hartman <hartmans@mit.edu>1995-06-23 00:59:54 +0000
commit6cd88aa348286b0535b95b84f54beb95abd29a92 (patch)
treed631441a2fd3127093ba06aff89f4cd7acb60d49 /src/util
parentd84d59a45a9203ba179a213f5d2281be4da07b00 (diff)
downloadkrb5-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/ChangeLog8
-rw-r--r--src/util/et/Makefile.in19
-rw-r--r--src/util/et/configure.in15
-rw-r--r--src/util/makeshlib26
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