Add support building shared libraries
authorTheodore Tso <tytso@mit.edu>
Fri, 26 May 1995 02:17:43 +0000 (02:17 +0000)
committerTheodore Tso <tytso@mit.edu>
Fri, 26 May 1995 02:17:43 +0000 (02:17 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5885 dc483132-0cff-0310-8789-dd5450dbe970

18 files changed:
src/lib/crypto/ChangeLog
src/lib/crypto/Makefile.in
src/lib/crypto/configure.in
src/lib/crypto/crc32/ChangeLog
src/lib/crypto/crc32/Makefile.in
src/lib/crypto/crc32/configure.in
src/lib/crypto/des/ChangeLog
src/lib/crypto/des/Makefile.in
src/lib/crypto/des/configure.in
src/lib/crypto/md4/ChangeLog
src/lib/crypto/md4/Makefile.in
src/lib/crypto/md4/configure.in
src/lib/crypto/md5/ChangeLog
src/lib/crypto/md5/Makefile.in
src/lib/crypto/md5/configure.in
src/lib/crypto/os/ChangeLog
src/lib/crypto/os/Makefile.in
src/lib/crypto/os/configure.in

index a54982194b94e56655ee8c85491fc2e2f1ede85c..2a4150932b8fd08526834c94320926b6898d9468 100644 (file)
@@ -1,3 +1,7 @@
+Thu May 25 22:15:18 1995  Theodore Y. Ts'o  (tytso@dcl)
+
+       * configure.in, Makefile.in: Add support for shared libraries.
+
 Thu Apr 13 15:49:16 1995 Keith Vetter (keithv@fusion.com)
 
        * *.[ch]: removed unneeded INTERFACE from non-api functions.
index 9a026d40be163b5e1d6dd923bb12e8e12207e6eb..f3ab8c2e7a3ee59e9c4bb1b9081e2ba5e00249c6 100644 (file)
@@ -6,6 +6,10 @@ CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/crc32 -I$(srcdir)/des -I$(srcdir)/md4 -I$
 
 TST=if test -n "`cat DONE`" ; then
 
+.c.o:
+       $(CC) $(CFLAGS) -c $(srcdir)/$*.c
+@SHARED_RULE@
+
 OBJS=  cryptoconf.$(OBJEXT) \
        des_crc.$(OBJEXT) \
        des_md5.$(OBJEXT) \
@@ -16,21 +20,34 @@ SRCS=       $(srcdir)/cryptoconf.c \
        $(srcdir)/des_md5.c \
        $(srcdir)/raw_des.c 
 
+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::
+all-unix:: shared
+
+shared: 
+       mkdir shared
+
 # FIXME, need to build the library too...
 all-mac:: $(OBJS)
 
 all-windows:: $(OBJS)
 
-libcrypto.a: ./des/DONE ./md4/DONE ./md5/DONE ./crc32/DONE ./os/DONE $(OBJS)
-       (cd des; $(TST) $(ARADD) ../$@ `cat DONE` ; fi)
-       (cd crc32; $(TST) $(ARADD) ../$@ `cat DONE` ; fi)
-       (cd md4; $(TST) $(ARADD) ../$@ `cat DONE` ; fi)
-       (cd md5; $(TST) $(ARADD) ../$@ `cat DONE` ; fi)
-       (cd os; $(TST) $(ARADD) ../$@ `cat DONE` ; fi)
-       $(ARADD) $@ $(OBJS)
+libcrypto.a: $(LIBDONE)
+       if test -f $@ ; then \
+               for i in $(LIB_SUBDIRS) ; \
+               do \
+                       $(LIBUPDATE) $@ $$i/DONE $$i ; \
+               done ; \
+       else \
+               for i in $(LIB_SUBDIRS) ; \
+               do \
+                       $(LIBUPDATE) --force $@ $$i/DONE $$i ; \
+               done ; \
+       fi
        $(RANLIB) $@
 
 libcrypto.lib:
@@ -44,6 +61,7 @@ clean:: clean-$(WHAT)
 
 clean-unix::
        $(RM) libcrypto.a
+       $(RM) shared/*
 
 clean-windows::
        $(RM) crypto.lib crypto.bak
index e4cc97542a783b2bae8c62bfcc73e815dd8ad5e0..93b4e30e26018ed38796a1432f85cfde0d8b956a 100644 (file)
@@ -7,10 +7,13 @@ AC_PROG_ARCHIVE
 AC_PROG_ARCHIVE_ADD
 AC_PROG_RANLIB
 AC_PROG_INSTALL
+V5_SHARED_LIB_OBJS
+SubdirLibraryRule([${OBJS}])
 MAKE_SUBDIRS("making",all)
 MAKE_SUBDIRS("cleaning",clean)
 MAKE_SUBDIRS("checking",check)
 AppendRule([all:: libcrypto.a])
+V5_MAKE_SHARED_LIB(libcrypto)
 KRB_INCLUDE
 WITH_KRB5ROOT
 V5_AC_OUTPUT_MAKEFILE
index a0b358fa27e5f3f800ee144dc2e5b0f1e43801c8..a1fa14f8c3d5d5f13a2bdd9c163b81c325c2ca69 100644 (file)
@@ -1,3 +1,7 @@
+Thu May 25 22:15:49 1995  Theodore Y. Ts'o  (tytso@dcl)
+
+       * configure.in, Makefile.in: Add support for shared libraries.
+
 Thu Apr 13 15:49:16 1995 Keith Vetter (keithv@fusion.com)
 
        * *.[ch]: removed unneeded INTERFACE from non-api functions.
index fdcefce1f9022680637ef2da223c217a6f91d576..84e9052179e88a40aaeb7dd433a6b46c75964ab2 100644 (file)
@@ -4,11 +4,18 @@ CFLAGS = $(CCOPTS) $(DEFS)
 ##DOSLIBNAME=..\crypto.lib
 ##DOS!include $(BUILDTOP)\config\windows.in
 
+.c.o:
+       $(CC) $(CFLAGS) -c $(srcdir)/$*.c
+@SHARED_RULE@
+
 OBJS=  crc.$(OBJEXT)
 
 SRCS=  $(srcdir)/crc.c $(srcdir)/crctest.c
 
-all:: $(OBJS)
+all:: shared $(OBJS)
+
+shared:
+       mkdir shared
 
 crctest: crctest.$(OBJEXT) $(OBJS)
        $(RM) crctest
@@ -22,3 +29,4 @@ check:: crctest$(EXEEXT)
 
 clean::
        $(RM) crctest$(EXEEXT) crctest.$(OBJEXT)
+       $(RM) shared/*
index f5e1ec7be856c8ea2cbae7069906879b90e6a158..872efe65f3a60e9979272a41041c5e954187569b 100644 (file)
@@ -2,6 +2,7 @@ AC_INIT(configure.in)
 WITH_CCOPTS
 AC_SET_BUILDTOP
 CONFIG_RULES
+V5_SHARED_LIB_OBJS
 SubdirLibraryRule([${OBJS}])
 KRB_INCLUDE
 V5_AC_OUTPUT_MAKEFILE
index e731379a9e474bfe3014586e1a3c2bc500c0e863..de5697a7404d8f44fece079001df7590e9e38317 100644 (file)
@@ -1,3 +1,7 @@
+Thu May 25 22:16:02 1995  Theodore Y. Ts'o  (tytso@dcl)
+
+       * configure.in, Makefile.in: Add support for shared libraries.
+
 Fri May 12 02:46:13 1995  Mark Eichin  <eichin@cygnus.com>
 
        * key_sched.c (mit_des_key_sched): *always* fill in the schedule,
index d874fc77ee3abe3159dccc5e9f23d4652a4e444f..45f91ec52cedd64296beeb790408f5cb087fe1e9 100644 (file)
@@ -15,6 +15,10 @@ OTHERSRCS=$(srcdir)/f_cbc.c $(srcdir)/f_cksum.c \
 
 OTHEROBJS=f_cbc.$(OBJEXT) f_cksum.$(OBJEXT) f_sched.$(OBJEXT) f_ecb.$(OBJEXT) f_parity.$(OBJEXT) f_tables.$(OBJEXT)
 
+.c.o:
+       $(CC) $(CFLAGS) -c $(srcdir)/$*.c
+@SHARED_RULE@
+
 OBJS=  cbc_cksum.$(OBJEXT)     \
        cs_entry.$(OBJEXT)      \
        finish_key.$(OBJEXT)    \
@@ -41,7 +45,10 @@ SRCS=        $(srcdir)/cs_entry.c    \
        $(srcdir)/weak_key.c    \
        $(OTHERSRCS)
 
-all:: $(OBJS)
+all:: shared $(OBJS)
+
+shared:
+       mkdir shared
 
 includes:: depend
 
@@ -71,3 +78,4 @@ check-windows::
 
 clean::
        $(RM) destest$(EXEEXT) verify$(EXEEXT) destest.$(OBJEXT) verify.$(OBJEXT)
+       $(RM) shared/*
index 02ee60867a248ae695fba3af26e79f9d0b225e36..27525571052252b9b41989ef1b6ec75b70aaee45 100644 (file)
@@ -3,6 +3,7 @@ WITH_CCOPTS
 AC_SET_BUILDTOP
 CONFIG_RULES
 WITH_NETLIB
+V5_SHARED_LIB_OBJS
 SubdirLibraryRule([${OBJS}])
 KRB_INCLUDE
 V5_AC_OUTPUT_MAKEFILE
index 3b84efff8b47f42dc15f2eedc785ec995c208a30..02d869348b786d50e81eca5d5d4b3aae3560c99b 100644 (file)
@@ -1,3 +1,7 @@
+Thu May 25 22:16:14 1995  Theodore Y. Ts'o  (tytso@dcl)
+
+       * configure.in, Makefile.in: Add support for shared libraries.
+
 Thu Apr 20 11:39:15 1995    <tytso@rsx-11.mit.edu>
 
        * rsa-md4.h: removed unneeded #include of wordsize.h
index c2cb995c25ed4649ddf1e7b006b15fb74673832d..50f2b847046d50af03c2cd23d6d95d32f509938a 100644 (file)
@@ -5,11 +5,18 @@ CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/../des -I"$(srcdir)"
 ##DOSLIBNAME=..\crypto.lib
 ##DOS!include $(BUILDTOP)\config\windows.in
 
+.c.o:
+       $(CC) $(CFLAGS) -c $(srcdir)/$*.c
+@SHARED_RULE@
+
 OBJS=  md4.$(OBJEXT) md4glue.$(OBJEXT) md4crypto.$(OBJEXT)
 
 SRCS=  $(srcdir)/md4.c $(srcdir)/md4glue.c $(srcdir)/md4crypto.c
 
-all:: $(OBJS)
+all:: shared $(OBJS)
+
+shared:
+       mkdir shared
 
 t_mddriver.c: $(srcdir)/../md5/t_mddriver.c
        $(CP) $(srcdir)/../md5/t_mddriver.c t_mddriver.c
@@ -30,3 +37,4 @@ check:: t_mddriver$(EXEEXT)
 
 clean::
        $(RM) t_mddriver$(EXEEXT) t_mddriver.$(OBJEXT) t_mddriver.c
+       $(RM) shared/*
index f5e1ec7be856c8ea2cbae7069906879b90e6a158..872efe65f3a60e9979272a41041c5e954187569b 100644 (file)
@@ -2,6 +2,7 @@ AC_INIT(configure.in)
 WITH_CCOPTS
 AC_SET_BUILDTOP
 CONFIG_RULES
+V5_SHARED_LIB_OBJS
 SubdirLibraryRule([${OBJS}])
 KRB_INCLUDE
 V5_AC_OUTPUT_MAKEFILE
index dd52074f849aa4a559f1e98cef0d2556d6dab4ad..0ed77d12d015ab6a70b96f597de87c244130c246 100644 (file)
@@ -1,3 +1,7 @@
+Thu May 25 22:16:26 1995  Theodore Y. Ts'o  (tytso@dcl)
+
+       * configure.in, Makefile.in: Add support for shared libraries.
+
 Thu Apr 13 15:49:16 1995 Keith Vetter (keithv@fusion.com)
 
        * *.[ch]: removed unneeded INTERFACE from non-api functions.
index f07c86a6ac36a560cceea0e9a46d8ad47ccbbebc..4a72f33c0bf3834ae0e57b218b5637c687c9293b 100644 (file)
@@ -4,11 +4,18 @@ CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/../des
 ##DOSLIBNAME=..\crypto.lib
 ##DOS!include $(BUILDTOP)\config\windows.in
 
+.c.o:
+       $(CC) $(CFLAGS) -c $(srcdir)/$*.c
+@SHARED_RULE@
+
 OBJS=  md5.$(OBJEXT) md5glue.$(OBJEXT) md5crypto.$(OBJEXT)
 
 SRCS=  $(srcdir)/md5.c $(srcdir)/md5glue.c $(srcdir)/md5crypto.c
 
-all:: $(OBJS) 
+all:: shared $(OBJS) 
+
+shared:
+       mkdir shared
 
 t_mddriver: t_mddriver.o md5.o
        $(CC) $(CFLAGS) $(LDFLAGS) -o t_mddriver t_mddriver.o md5.o
@@ -21,3 +28,4 @@ check:: t_mddriver$(EXEEXT)
 
 clean::
        $(RM) t_mddriver$(EXEEXT) t_mddriver.$(OBJEXT)
+       $(RM) shared/*
index f5e1ec7be856c8ea2cbae7069906879b90e6a158..872efe65f3a60e9979272a41041c5e954187569b 100644 (file)
@@ -2,6 +2,7 @@ AC_INIT(configure.in)
 WITH_CCOPTS
 AC_SET_BUILDTOP
 CONFIG_RULES
+V5_SHARED_LIB_OBJS
 SubdirLibraryRule([${OBJS}])
 KRB_INCLUDE
 V5_AC_OUTPUT_MAKEFILE
index 465ec902b35c465544181fc26999162c5fce3c72..49f2e13d7a0152ae1235fb5d79f455891bf32167 100644 (file)
@@ -1,3 +1,7 @@
+Thu May 25 22:16:35 1995  Theodore Y. Ts'o  (tytso@dcl)
+
+       * configure.in, Makefile.in: Add support for shared libraries.
+
 Thu Apr 13 15:49:16 1995 Keith Vetter (keithv@fusion.com)
 
        * *.[ch]: removed unneeded INTERFACE from non-api functions.
index a056d70d3ee0013f79ce543881e5fca1f219546c..9c63c79768e0bd74f8606e68eb99b73c56a0b2b8 100644 (file)
@@ -6,24 +6,48 @@ CFLAGS = $(CCOPTS) $(DEFS)
 
 LIBOBJS = @LIBOBJS@
 
+.c.o:
+       $(CC) $(CFLAGS) -c $(srcdir)/$*.c
+@SHARED_RULE@
+
 OBJS=  rnd_confoun.$(OBJEXT) localaddr.$(OBJEXT) ustime.$(OBJEXT) $(LIBOBJS)
 
 SRCS=  rnd_confoun.c
 
 all:: all-$(WHAT)
-all-unix:: $(OBJS)
+
+all-unix:: shared $(OBJS)
+
 all-mac:: $(OBJS)
+
 all-windows: rnd_confoun.obj
 
+shared:
+       mkdir shared
+       
+
 localaddr.c: $(SRCTOP)$(S)lib$(S)krb5$(S)os$(S)localaddr.c
        -$(LN) $(SRCTOP)$(S)lib$(S)krb5$(S)os$(S)localaddr.c $@
 
 ustime.c: $(SRCTOP)$(S)lib$(S)krb5$(S)os$(S)ustime.c
        -$(LN) $(SRCTOP)$(S)lib$(S)krb5$(S)os$(S)ustime.c $@
 
-
 memmove.c: $(SRCTOP)$(S)lib$(S)krb5$(S)posix$(S)memmove.c
        -$(LN) $(SRCTOP)$(S)lib$(S)krb5$(S)posix$(S)memmove.c $@
 
+localaddr.o: localaddr.c
+       $(CC) $(CFLAGS) -c $*.c
+@SHARED_RULE_LOCAL@
+       
+ustime.o: ustime.c
+       $(CC) $(CFLAGS) -c $*.c
+@SHARED_RULE_LOCAL@
+       
+memmove.o: memmove.c
+       $(CC) $(CFLAGS) -c $*.c
+@SHARED_RULE_LOCAL@
+       
+
 clean::
        $(RM) ustime.c localaddr.c memmove.c
+       $(RM) shared/*
index 4ce58eb8e0e4d92b8e0a7b8d3abcfccf5bb0a5f2..7a6e366edb4a266c2994f24b0ff3bd279440ee47 100644 (file)
@@ -2,6 +2,7 @@ AC_INIT(configure.in)
 WITH_CCOPTS
 AC_SET_BUILDTOP
 CONFIG_RULES
+V5_SHARED_LIB_OBJS
 SubdirLibraryRule([${OBJS}])
 KRB_INCLUDE
 AC_LN_S