summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorPaul Park <pjpark@mit.edu>1995-06-15 22:34:56 +0000
committerPaul Park <pjpark@mit.edu>1995-06-15 22:34:56 +0000
commitb3e348a072ba88a2ae1b28ed58dc0b5249b9cb91 (patch)
tree40f4f5b31ddbca1f791d2f080e3da04cf3bcc109 /src/lib
parent821ce16c47b36ff3f947fbe0773114bf5bdafc59 (diff)
downloadkrb5-b3e348a072ba88a2ae1b28ed58dc0b5249b9cb91.tar.gz
krb5-b3e348a072ba88a2ae1b28ed58dc0b5249b9cb91.tar.xz
krb5-b3e348a072ba88a2ae1b28ed58dc0b5249b9cb91.zip
Shared library Makefile/configure changes and cleanup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6069 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/ChangeLog5
-rw-r--r--src/lib/configure.in29
-rw-r--r--src/lib/crypto/ChangeLog7
-rw-r--r--src/lib/crypto/Makefile.in11
-rw-r--r--src/lib/crypto/configure.in10
-rw-r--r--src/lib/des425/ChangeLog8
-rw-r--r--src/lib/des425/Makefile.in10
-rw-r--r--src/lib/des425/configure.in7
-rw-r--r--src/lib/gssapi/ChangeLog8
-rw-r--r--src/lib/gssapi/Makefile.in2
-rw-r--r--src/lib/gssapi/configure.in3
-rw-r--r--src/lib/kadm/ChangeLog6
-rw-r--r--src/lib/kadm/Makefile.in4
-rw-r--r--src/lib/kadm/configure.in4
-rw-r--r--src/lib/kdb/ChangeLog6
-rw-r--r--src/lib/kdb/Makefile.in5
-rw-r--r--src/lib/kdb/configure.in2
-rw-r--r--src/lib/kdb/t_kdb.c99
-rw-r--r--src/lib/kdb4/ChangeLog4
-rw-r--r--src/lib/kdb4/configure.in3
-rw-r--r--src/lib/krb4/ChangeLog6
-rw-r--r--src/lib/krb4/Makefile.in10
-rw-r--r--src/lib/krb4/configure.in7
-rw-r--r--src/lib/krb5/ChangeLog8
-rw-r--r--src/lib/krb5/Makefile.in16
-rw-r--r--src/lib/krb5/configure.in8
26 files changed, 209 insertions, 79 deletions
diff --git a/src/lib/ChangeLog b/src/lib/ChangeLog
index e06257e7a..2d06a1b75 100644
--- a/src/lib/ChangeLog
+++ b/src/lib/ChangeLog
@@ -1,3 +1,8 @@
+
+Thu Jun 15 17:57:26 EDT 1995 Paul Park (pjpark@mit.edu)
+ * configure.in - Do not build K4 directories if we're not supposed to.
+ Remove LinkFile() logic and put it in each subdirectory.
+
Wed Jun 14 07:36:46 1995 Ezra Peisach <epeisach@kangaroo.mit.edu>
* Makefile.in (clean-unix): Remove shared library symlinks
diff --git a/src/lib/configure.in b/src/lib/configure.in
index 75a418584..ccd1585ab 100644
--- a/src/lib/configure.in
+++ b/src/lib/configure.in
@@ -1,27 +1,20 @@
AC_INIT(configure.in)
CONFIG_RULES
-CONFIG_DIRS(crypto des425 kdb4 krb4 krb5 kdb gssapi kadm)
+if test $krb5_cv_build_krb4_libs = yes ; then
+ AC_MSG_RESULT(building Kerberos 4 libraries)
+ kdb4=kdb4
+ krb4=krb4
+else
+ AC_MSG_RESULT(skipping Kerberos 4 libraries)
+ kdb4=
+ krb4=
+fi
+CONFIG_DIRS(crypto des425 $kdb4 $krb4 krb5 kdb gssapi kadm)
AC_PROG_ARCHIVE
AC_PROG_RANLIB
_MAKE_SUBDIRS("making",all-unix-subdirs,all)
MAKE_SUBDIRS("cleaning",clean)
MAKE_SUBDIRS("installing",install)
MAKE_SUBDIRS("checking",check)
-LinkFile(libkrb5.a, ./krb5/libkrb5.a)
-LinkFile(libcrypto.a, ./crypto/libcrypto.a)
-LinkFile(libgssapi_krb5.a, ./gssapi/libgssapi_krb5.a)
-LinkFile(libkrb4.a, ./krb4/libkrb4.a)
-LinkFile(libkdb4.a, ./kdb4/libkdb4.a)
-LinkFile(libdes425.a, ./des425/libdes425.a)
-AppendRule([all-unix:: all-unix-subdirs libkrb5.a libcrypto.a])
-AppendRule([all-unix:: libgssapi_krb5.a])
-AppendRule([all-unix:: libkrb4.a libkdb4.a libdes425.a])
-AC_ARG_ENABLE([shared],
-[ --enable-shared build with shared libraries],[
-LinkFile(libcrypto.so, ./crypto/libcrypto.so)
-LinkFile(libkrb5.so, ./krb5/libkrb5.so)
-LinkFile(libkrb4.so, ./krb4/libkrb4.so)
-LinkFile(libdes425.so, ./des425/libdes425.so)
-AppendRule([all-unix:: libkrb5.so libcrypto.so libkrb4.so libdes425.so])
-])dnl
+AppendRule([all-unix:: all-unix-subdirs])
V5_AC_OUTPUT_MAKEFILE
diff --git a/src/lib/crypto/ChangeLog b/src/lib/crypto/ChangeLog
index baf67fbd7..5d0b7a1e6 100644
--- a/src/lib/crypto/ChangeLog
+++ b/src/lib/crypto/ChangeLog
@@ -1,3 +1,10 @@
+
+Thu Jun 15 17:58:41 EDT 1995 Paul Park (pjpark@mit.edu)
+ * Makefile.in - Add definitions for shared library building rules.
+ Add explicit dependency on "shared" since we probably need it.
+ * configure.in - Create symlinks for archive and shared library when
+ we build them.
+
Fri Jun 9 18:52:19 1995 <tytso@rsx-11.mit.edu>
* des_crc.c, des_md5.c: Fix -Wall nits.
diff --git a/src/lib/crypto/Makefile.in b/src/lib/crypto/Makefile.in
index 1ac2d8df8..615626d56 100644
--- a/src/lib/crypto/Makefile.in
+++ b/src/lib/crypto/Makefile.in
@@ -24,9 +24,14 @@ LIB_SUBDIRS= des md4 md5 crc32 os .
LIBUPDATE= $(BUILDTOP)/util/libupdate
LIBDONE= ./des/DONE ./md4/DONE ./md5/DONE ./crc32/DONE ./os/DONE ./DONE
-all:: all-$(WHAT)
-
-all-unix:: shared
+# No dependencies. Record places to find this shared object if the target
+# link editor and loader support it.
+DEPLIBS=
+SHLIB_LIBS=
+SHLIB_LDFLAGS= $(LDFLAGS) @SHLIB_RPATH_DIRS@
+SHLIB_LIBDIRS= @SHLIB_LIBDIRS@
+
+all:: shared
shared:
mkdir shared
diff --git a/src/lib/crypto/configure.in b/src/lib/crypto/configure.in
index 387255a48..1ccce9c60 100644
--- a/src/lib/crypto/configure.in
+++ b/src/lib/crypto/configure.in
@@ -8,6 +8,14 @@ AC_PROG_INSTALL
V5_SHARED_LIB_OBJS
SubdirLibraryRule([${OBJS}])
DO_SUBDIRS
-AppendRule([all:: libcrypto.a])
+LinkFileDir(../libcrypto.a, libcrypto.a, ./crypto)
+AppendRule([all-unix:: ../libcrypto.a])
V5_MAKE_SHARED_LIB(libcrypto)
+AC_ARG_ENABLE([shared],
+[ --enable-shared build shared libraries],[
+LinkFileDir(../libcrypto.[$](SHEXT), libcrypto.[$](SHEXT), ./crypto)
+AppendRule([all-unix:: ../libcrypto.$(SHEXT)])
+])dnl
+AppendRule([all-unix:: libcrypto.a])
+AppendRule([all:: all-$(WHAT)])
V5_AC_OUTPUT_MAKEFILE
diff --git a/src/lib/des425/ChangeLog b/src/lib/des425/ChangeLog
index 12257053f..bcced223b 100644
--- a/src/lib/des425/ChangeLog
+++ b/src/lib/des425/ChangeLog
@@ -1,3 +1,11 @@
+
+Thu Jun 15 18:00:45 EDT 1995 Paul Park (pjpark@mit.edu)
+ * Makefile.in - Change "./DONE" target to "DONE" since we have a rule
+ for how to build it. Also add definitions for shared library
+ building rules.
+ * configure.in - Create symlinks for archive and shared library when
+ we build them.
+
Wed Jun 14 07:37:26 1995 Ezra Peisach <epeisach@kangaroo.mit.edu>
* Makefile.in (libdes425.a): Don't copy library up a level. Let
diff --git a/src/lib/des425/Makefile.in b/src/lib/des425/Makefile.in
index 7b75cf9e1..3da8c049d 100644
--- a/src/lib/des425/Makefile.in
+++ b/src/lib/des425/Makefile.in
@@ -40,8 +40,14 @@ SRCS= $(srcdir)/cksum.c \
$(srcdir)/weak_key.c
LIB_SUBDIRS= .
-LIBDONE= ./DONE
-
+LIBDONE= DONE
+#
+# Depends on libcrypto.
+#
+DEPLIBS=$(TOPLIBD)/libcrypto.$(SHEXT)
+SHLIB_LIBS=-lcrypto
+SHLIB_LDFLAGS= $(LDFLAGS) @SHLIB_RPATH_DIRS@
+SHLIB_LIBDIRS= @SHLIB_LIBDIRS@
EXT_LIB= libdes425.a $(TOPLIBD)/libcrypto.a
DEPKLIB= $(TOPLIBD)/libcrypto.a
diff --git a/src/lib/des425/configure.in b/src/lib/des425/configure.in
index 75fa651e3..75a4c8e70 100644
--- a/src/lib/des425/configure.in
+++ b/src/lib/des425/configure.in
@@ -6,6 +6,13 @@ AC_PROG_RANLIB
AC_PROG_INSTALL
V5_SHARED_LIB_OBJS
SubdirLibraryRule([${OBJS}])
+LinkFileDir(../libdes425.a, libdes425.a, ./des425)
AppendRule([all:: libdes425.a])
+AppendRule([all-unix:: ../libdes425.a])
V5_MAKE_SHARED_LIB(libdes425)
+AC_ARG_ENABLE([shared],
+[ --enable-shared build shared libraries],[
+LinkFileDir(../libdes425.[$](SHEXT), libdes425.[$](SHEXT), ./des425)
+AppendRule([all-unix:: ../libdes425.$(SHEXT)])
+])dnl
V5_AC_OUTPUT_MAKEFILE
diff --git a/src/lib/gssapi/ChangeLog b/src/lib/gssapi/ChangeLog
index 4bbb1d98e..cea81ec04 100644
--- a/src/lib/gssapi/ChangeLog
+++ b/src/lib/gssapi/ChangeLog
@@ -1,3 +1,11 @@
+
+Thu Jun 15 18:02:16 EDT 1995 Paul Park (pjpark@mit.edu)
+ * Makefile.in - Remove explicit "all" rule at head of file, it causes
+ platform specific target to get done first.
+ * configure.in - Create symlinks for archive and shared library when
+ we build them. Also, put explicit "all" rule at end of file
+ so that we do the subdirectory rules first.
+
Fri Jun 9 18:55:01 1995 <tytso@rsx-11.mit.edu>
* configure.in: Remove standardized set of autoconf macros, which
diff --git a/src/lib/gssapi/Makefile.in b/src/lib/gssapi/Makefile.in
index 53229c8ce..986e95611 100644
--- a/src/lib/gssapi/Makefile.in
+++ b/src/lib/gssapi/Makefile.in
@@ -3,8 +3,6 @@ TST=if test -n "`cat DONE`" ; then
##DOSBUILDTOP = ..\..
##DOS!include $(BUILDTOP)\config\windows.in
-all:: all-$(WHAT)
-
all-unix::
all-mac::
diff --git a/src/lib/gssapi/configure.in b/src/lib/gssapi/configure.in
index a7602a8a5..693bda87c 100644
--- a/src/lib/gssapi/configure.in
+++ b/src/lib/gssapi/configure.in
@@ -7,4 +7,7 @@ AC_PROG_RANLIB
AC_PROG_INSTALL
DO_SUBDIRS
AppendRule([all:: libgssapi_krb5.a])
+LinkFileDir(../libgssapi_krb5.a, libgssapi_krb5.a, ./gssapi)
+AppendRule([all-unix:: ../libgssapi_krb5.a])
+AppendRule([all:: all-$(WHAT)])
V5_AC_OUTPUT_MAKEFILE
diff --git a/src/lib/kadm/ChangeLog b/src/lib/kadm/ChangeLog
index 4a8ca1e18..bf568b92a 100644
--- a/src/lib/kadm/ChangeLog
+++ b/src/lib/kadm/ChangeLog
@@ -1,3 +1,9 @@
+
+Thu Jun 15 18:03:40 EDT 1995 Paul Park (pjpark@mit.edu)
+ * Makefile.in - Remove explicit copying of archive library to library
+ directory.
+ * configure.in - Create symlink for archive when we build it.
+
Wed Jun 14 14:36:13 1995 Sam Hartman <hartmans@tardis.MIT.EDU>
* t_dbentry.c (main): option should be an int so that comparisons
diff --git a/src/lib/kadm/Makefile.in b/src/lib/kadm/Makefile.in
index 32b225185..86470df43 100644
--- a/src/lib/kadm/Makefile.in
+++ b/src/lib/kadm/Makefile.in
@@ -28,6 +28,7 @@ SRCS= $(srcdir)/adm_conn.c \
all:: all-$(WHAT) $(BASE_OBJS)
all-unix:: $(DB_OBJS) $(UNIX_OBJS)
+all-unix:: libkadm.a
all-mac:: $(DB_OBJS)
all-windows::
@@ -35,9 +36,6 @@ libkadm.a: $(OBJS) $(UNIX_OBJS)
$(RM) $@
$(ARADD) $@ $(OBJS) $(UNIX_OBJS)
$(RANLIB) $@
- $(RM) $(TOPLIBD)/libkadm.a
- $(CP) libkadm.a $(BUILDTOP)/lib/libkadm.a
- $(RANLIB) $(BUILDTOP)/lib/libkadm.a
install:: libkadm.a
$(INSTALL_DATA) libkadm.a $(DESTDIR)$(KRB5_LIBDIR)/libkadm.a
diff --git a/src/lib/kadm/configure.in b/src/lib/kadm/configure.in
index b60cb072e..b5e674b7a 100644
--- a/src/lib/kadm/configure.in
+++ b/src/lib/kadm/configure.in
@@ -8,5 +8,7 @@ AC_HAVE_HEADERS(pwd.h stdarg.h syslog.h)
AC_HAVE_FUNCS(srand48 srand srandom syslog openlog closelog strftime)
AC_FUNC_CHECK(vsprintf,AC_DEFINE(HAVE_VSPRINTF))
ET_RULES
-AppendRule([all:: libkadm.a])
+LinkFileDir(../libkadm.a, libkadm.a, ./kadm)
+AppendRule([all-unix:: ../libkadm.a])
+AppendRule([all:: all-$(WHAT)])
V5_AC_OUTPUT_MAKEFILE
diff --git a/src/lib/kdb/ChangeLog b/src/lib/kdb/ChangeLog
index 2c32b96fc..f15bd126f 100644
--- a/src/lib/kdb/ChangeLog
+++ b/src/lib/kdb/ChangeLog
@@ -1,3 +1,9 @@
+
+Thu Jun 15 18:04:58 EDT 1995 Paul Park (pjpark@mit.edu)
+ * Makefile.in - Remove explicit copying of archive library to library
+ directory. Add dependency on all-$(WHAT)
+ * configure.in - Create symlink for archive when we build it.
+
Wed Jun 14 12:37:51 1995 Sam Hartman <hartmans@tardis.MIT.EDU>
* configure.in: Check for umask being defined.
diff --git a/src/lib/kdb/Makefile.in b/src/lib/kdb/Makefile.in
index bf020847e..1b89c199e 100644
--- a/src/lib/kdb/Makefile.in
+++ b/src/lib/kdb/Makefile.in
@@ -4,7 +4,7 @@ LDFLAGS = -g
LIB_SUBDIRS= $(BUILDTOP)/util/berk_db/hash
LIBUPDATE=$(BUILDTOP)/util/libupdate
-all:: $(OBJS)
+all:: $(OBJS) all-$(WHAT)
SRCS= \
@@ -41,9 +41,6 @@ libkdb5.a: $(OBJS) $(BUILDTOP)/util/berk_db/hash/DONE
done ; \
fi
$(RANLIB) $@
- $(RM) $(TOPLIBD)/libkdb5.a
- $(CP) libkdb5.a $(BUILDTOP)/lib/libkdb5.a
- $(RANLIB) $(BUILDTOP)/lib/libkdb5.a
install:: libkdb5.a
$(INSTALL_DATA) libkdb5.a $(DESTDIR)$(KRB5_LIBDIR)/libkdb5.a
diff --git a/src/lib/kdb/configure.in b/src/lib/kdb/configure.in
index 1b97e4e15..4272d9a72 100644
--- a/src/lib/kdb/configure.in
+++ b/src/lib/kdb/configure.in
@@ -6,5 +6,7 @@ AC_PROG_RANLIB
AC_PROG_INSTALL
AC_HAVE_HEADERS(unistd.h)
AC_CHECK_FUNCS(srand48 srand srandom umask)
+LinkFileDir(../libkdb5.a, libkdb5.a, ./kdb)
AppendRule([all:: libkdb5.a])
+AppendRule([all-unix:: ../libkdb5.a])
V5_AC_OUTPUT_MAKEFILE
diff --git a/src/lib/kdb/t_kdb.c b/src/lib/kdb/t_kdb.c
index 7807b8aa3..35df1adec 100644
--- a/src/lib/kdb/t_kdb.c
+++ b/src/lib/kdb/t_kdb.c
@@ -237,9 +237,9 @@ gen_principal(kcontext, realm, do_rand, n, princp, namep)
{
static char pnamebuf[MAX_PNAME_LEN];
static char *instnames[] = {
- "instance1", "xxx2", "whereami3", "ABCDEFG4" };
+ "instance1", "xxx2", "whereami3", "ABCDEFG4", "foofoo5" };
static char *princnames[] = {
- "princ1", "user2", "service3", "RANDOM4" };
+ "princ1", "user2", "service3" };
krb5_error_code kret;
char *instname;
@@ -334,7 +334,7 @@ delete_principal(kcontext, principal)
}
int
-do_testing(db, passes, verbose, timing, rcases, check, save_db)
+do_testing(db, passes, verbose, timing, rcases, check, save_db, dontclean)
char *db;
int passes;
int verbose;
@@ -342,6 +342,7 @@ do_testing(db, passes, verbose, timing, rcases, check, save_db)
int rcases;
int check;
int save_db;
+ int dontclean;
{
krb5_error_code kret;
krb5_context kcontext;
@@ -615,28 +616,30 @@ do_testing(db, passes, verbose, timing, rcases, check, save_db)
}
}
- /* Clean up the remaining principals */
- if (verbose > 1)
- fprintf(stdout, "%s: deleting remaining %d principals\n",
- programname, nvalid);
- for (passno=0; passno<nvalid; passno++) {
- op = "deleting principal";
- if (timing) {
- swatch_on();
- }
- if (kret = delete_principal(kcontext,
- playback_principal(passno))) {
- linkage = "finally ";
- oparg = playback_name(passno);
- goto cya;
- }
- if (timing) {
- elapsed = swatch_eltime();
- accumulated[2].t_time += elapsed;
- accumulated[2].t_number++;
+ if (!dontclean) {
+ /* Clean up the remaining principals */
+ if (verbose > 1)
+ fprintf(stdout, "%s: deleting remaining %d principals\n",
+ programname, nvalid);
+ for (passno=0; passno<nvalid; passno++) {
+ op = "deleting principal";
+ if (timing) {
+ swatch_on();
+ }
+ if (kret = delete_principal(kcontext,
+ playback_principal(passno))) {
+ linkage = "finally ";
+ oparg = playback_name(passno);
+ goto cya;
+ }
+ if (timing) {
+ elapsed = swatch_eltime();
+ accumulated[2].t_time += elapsed;
+ accumulated[2].t_number++;
+ }
+ if (verbose > 4)
+ fprintf(stderr, "XD(%s)\n", playback_name(passno));
}
- if (verbose > 4)
- fprintf(stderr, "XD(%s)\n", playback_name(passno));
}
cya:
if (verbose)
@@ -728,23 +731,27 @@ do_testing(db, passes, verbose, timing, rcases, check, save_db)
/*
* Delete principals.
*/
- if (timing) {
- swatch_on();
- }
- for (passno=passes-1; passno>=0; passno--) {
- op = "deleting principal";
- if (kret = delete_principal(kcontext,
- playback_principal(passno)))
- goto goodbye;
- if (verbose > 4)
- fprintf(stderr, "XD(%s)\n", playback_name(passno));
- }
- if (timing) {
- elapsed = swatch_eltime();
- fprintf(stdout,
- "%s: deleted %d principals in %9.4f seconds (%9.4f/delete)\n",
- programname, passes, elapsed, elapsed/((float) passes));
+ if (!dontclean) {
+ if (timing) {
+ swatch_on();
+ }
+ for (passno=passes-1; passno>=0; passno--) {
+ op = "deleting principal";
+ if (kret = delete_principal(kcontext,
+ playback_principal(passno)))
+ goto goodbye;
+ if (verbose > 4)
+ fprintf(stderr, "XD(%s)\n", playback_name(passno));
+ }
+ if (timing) {
+ elapsed = swatch_eltime();
+ fprintf(stdout,
+ "%s: deleted %d principals in %9.4f seconds (%9.4f/delete)\n",
+ programname, passes, elapsed,
+ elapsed/((float) passes));
+ }
}
+
}
goodbye:
@@ -789,6 +796,7 @@ do_testing(db, passes, verbose, timing, rcases, check, save_db)
* [-v] - Verbose output.
* [-d <dbname>] - Database name.
* [-s] - Save database even on successful completion.
+ * [-D] - Leave database dirty.
*/
int
main(argc, argv)
@@ -799,7 +807,7 @@ main(argc, argv)
extern char *optarg;
int do_time, do_random, num_passes, check_cont, verbose, error;
- int save_db;
+ int save_db, dont_clean;
char *db_name;
programname = argv[0];
@@ -815,10 +823,11 @@ main(argc, argv)
verbose = 0;
db_name = T_KDB_DEF_DB;
save_db = 0;
+ dont_clean = 0;
error = 0;
/* Parse argument list */
- while ((option = getopt(argc, argv, "cd:n:rstv")) != EOF) {
+ while ((option = getopt(argc, argv, "cd:n:rstvD")) != EOF) {
switch (option) {
case 'c':
check_cont = 1;
@@ -845,6 +854,9 @@ main(argc, argv)
case 'v':
verbose++;
break;
+ case 'D':
+ dont_clean = 1;
+ break;
default:
error++;
break;
@@ -860,6 +872,7 @@ main(argc, argv)
do_time,
do_random,
check_cont,
- save_db);
+ save_db,
+ dont_clean);
return(error);
}
diff --git a/src/lib/kdb4/ChangeLog b/src/lib/kdb4/ChangeLog
index 39dfea473..ba30b9ae6 100644
--- a/src/lib/kdb4/ChangeLog
+++ b/src/lib/kdb4/ChangeLog
@@ -1,3 +1,7 @@
+
+Thu Jun 15 18:06:24 EDT 1995 Paul Park (pjpark@mit.edu)
+ * configure.in - Create symlink for archive when we build it.
+
Fri Jun 9 19:26:57 1995 <tytso@rsx-11.mit.edu>
* configure.in: Remove standardized set of autoconf macros, which
diff --git a/src/lib/kdb4/configure.in b/src/lib/kdb4/configure.in
index be7fb342a..fe3f8e42c 100644
--- a/src/lib/kdb4/configure.in
+++ b/src/lib/kdb4/configure.in
@@ -11,4 +11,7 @@ KRB5_POSIX_LOCKS
AC_HEADER_CHECK(unistd.h,AC_DEFINE(HAS_UNISTD_H))
ET_RULES
SubdirLibraryRule([$(OBJS)])
+LinkFileDir(../libkdb4.a, libkdb4.a, ./kdb4)
+AppendRule([all-unix:: ../libkdb4.a])
+AppendRule([all:: all-$(WHAT)])
V5_AC_OUTPUT_MAKEFILE
diff --git a/src/lib/krb4/ChangeLog b/src/lib/krb4/ChangeLog
index 2a56f8e00..9db9658d2 100644
--- a/src/lib/krb4/ChangeLog
+++ b/src/lib/krb4/ChangeLog
@@ -1,3 +1,9 @@
+
+Thu Jun 15 18:07:24 EDT 1995 Paul Park (pjpark@mit.edu)
+ * Makefile.in - Add definitions for shared library build rules.
+ * configure.in - Create symlinks for archive and shared library
+ when we build them.
+
Fri Jun 9 19:28:22 1995 <tytso@rsx-11.mit.edu>
* configure.in: Remove standardized set of autoconf macros, which
diff --git a/src/lib/krb4/Makefile.in b/src/lib/krb4/Makefile.in
index 9811b09ae..b95164a8d 100644
--- a/src/lib/krb4/Makefile.in
+++ b/src/lib/krb4/Makefile.in
@@ -87,6 +87,16 @@ SRCS = \
LIB_SUBDIRS= .
LIBDONE= ./DONE
+#
+# Depends on libcrypto and KRB4_CRYPTO_LIB, expect one unresolved symbol:
+# _et_list.
+#
+KRB4_CRYPTO_LIBS=@KRB4_CRYPTO_LIB@
+DEPKRB4_LIBS=@DEPKRB4_CRYPTO_LIB@
+DEPLIBS=$(TOPLIBD)/libcrypto.$(SHEXT)
+SHLIB_LIBS=$(KRB4_CRYPTO_LIBS) -lcrypto
+SHLIB_LDFLAGS= $(LDFLAGS) @SHLIB_RPATH_DIRS@ $(LD_UNRESOLVED_PREFIX)_et_list
+SHLIB_LIBDIRS= @SHLIB_LIBDIRS@
#
# These objects implement ticket cacheing for Unix. They are
diff --git a/src/lib/krb4/configure.in b/src/lib/krb4/configure.in
index 767e76585..9a0c59b7d 100644
--- a/src/lib/krb4/configure.in
+++ b/src/lib/krb4/configure.in
@@ -46,4 +46,11 @@ V5_SHARED_LIB_OBJS
SubdirLibraryRule([$(OBJS)])
V5_MAKE_SHARED_LIB(libkrb4)
CopyHeader(krb_err.h,$(EHDRDIR))
+LinkFileDir(../libkrb4.a, libkrb4.a, ./krb4)
+AppendRule([all-unix:: ../libkrb4.a])
+AC_ARG_ENABLE([shared],
+[ --enable-shared build shared libraries],[
+LinkFileDir(../libkrb4.[$](SHEXT), libkrb4.[$](SHEXT), ./krb4)
+AppendRule([all-unix:: ../libkrb4.$(SHEXT)])
+])dnl
V5_AC_OUTPUT_MAKEFILE
diff --git a/src/lib/krb5/ChangeLog b/src/lib/krb5/ChangeLog
index e4bbaff3c..064d506f2 100644
--- a/src/lib/krb5/ChangeLog
+++ b/src/lib/krb5/ChangeLog
@@ -1,3 +1,11 @@
+
+Thu Jun 15 18:08:12 EDT 1995 Paul Park (pjpark@mit.edu)
+ * Makefile.in - Add definitions for shared library build rules. Also,
+ remove explicit "all" target at front so we do subdirectories
+ first.
+ * configure.in - Create symlinks for archive and shared library when
+ we build them.
+
Fri Jun 9 18:51:24 1995 <tytso@rsx-11.mit.edu>
* configure.in: Remove standardized set of autoconf macros, which
diff --git a/src/lib/krb5/Makefile.in b/src/lib/krb5/Makefile.in
index da126dfcb..7ce3eb256 100644
--- a/src/lib/krb5/Makefile.in
+++ b/src/lib/krb5/Makefile.in
@@ -10,8 +10,20 @@ LIBDONE= error_tables/DONE asn.1/DONE ccache/DONE ccache/stdio/DONE \
ccache/file/DONE keytab/DONE keytab/file/DONE krb/DONE \
rcache/DONE free/DONE os/DONE posix/DONE \
$(BUILDTOP)/util/profile/DONE
-
-all:: all-$(WHAT)
+#
+# Depends on KRB4_LIB, KRB4_CRYPTO_LIB and libcrypto, expect two unresolved
+# symbols:
+# _et_list (from krb4)
+# error_message
+#
+KRB4_LIBS=@KRB4_LIB@
+KRB4_CRYPTO_LIBS=@KRB4_CRYPTO_LIB@
+DEPKRB4_LIBS=@DEPKRB4_LIB@ @DEPKRB4_CRYPTO_LIB@
+DEPLIBS=$(TOPLIBD)/libcrypto.$(SHEXT)
+SHLIB_LIBS=$(KRB4_LIBS) $(KRB4_CRYPTO_LIBS) -lcrypto
+SHLIB_LDFLAGS= $(LDFLAGS) @SHLIB_RPATH_DIRS@ \
+ $(LD_UNRESOLVED_PREFIX)_et_list $(LD_UNRESOLVED_PREFIX)error_message
+SHLIB_LIBDIRS= @SHLIB_LIBDIRS@
all-unix::
diff --git a/src/lib/krb5/configure.in b/src/lib/krb5/configure.in
index c989d60eb..a12024641 100644
--- a/src/lib/krb5/configure.in
+++ b/src/lib/krb5/configure.in
@@ -8,4 +8,12 @@ AC_PROG_INSTALL
DO_SUBDIRS
AppendRule([all:: libkrb5.a])
V5_MAKE_SHARED_LIB(libkrb5)
+AC_ARG_ENABLE([shared],
+[ --enable-shared build shared libraries],[
+LinkFileDir(../libkrb5.[$](SHEXT), libkrb5.[$](SHEXT), ./krb5)
+AppendRule([all-unix:: ../libkrb5.$(SHEXT)])
+])dnl
+LinkFileDir(../libkrb5.a, libkrb5.a, ./krb5)
+AppendRule([all-unix:: ../libkrb5.a])
+AppendRule([all:: all-$(WHAT)])
V5_AC_OUTPUT_MAKEFILE