General cleanup
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
diff --git a/Makefile b/Makefile
index 61f7ac9..c80e183 100644
--- a/Makefile
+++ b/Makefile
@@ -1,34 +1,62 @@
+#
+# libbsd
+#
+# $Id$
+#
+
+LIB_SRCS = arc4random.c fgetln.c inet_net_pton.c strlcat.c strlcpy.c
+# Disabled until being fixed
+#LIB_SRCS += md5c.c
+
+LIB_INCLUDES = bsd.h
+
+LIB_STATIC_OBJS = $(LIB_SRCS:%.c=%.o)
+LIB_SHARED_OBJS = $(LIB_SRCS:%.c=%.lo)
+
+LIB_NAME = libbsd
+LIB_VERSION_MAJOR = 0
+LIB_VERSION_MINOR = 0
+
+LIB_STATIC = $(LIB_NAME).a
+
+LIB_SHARED_SO = $(LIB_NAME).so
+LIB_SONAME = $(LIB_SHARED_SO).$(LIB_VERSION_MAJOR)
+LIB_SHARED = $(LIB_SONAME).$(LIB_VERSION_MINOR)
+
+MK_CFLAGS = -include bsd.h -D_GNU_SOURCE
+
+libs: $(LIB_STATIC) $(LIB_SHARED_SO)
+
+%.lo: %.c
+ $(CC) -o $@ $(MK_CFLAGS) $(CFLAGS) -DPIC -fPIC -c $<
+
+%.o: %.c
+ $(CC) -o $@ $(MK_CFLAGS) $(CFLAGS) -c $<
+
+$(LIB_STATIC): $(LIB_STATIC_OBJS)
+ ar rcs $@ $^
+
+$(LIB_SHARED_SO): $(LIB_SONAME)
+ ln -fs $^ $@
+
+$(LIB_SONAME): $(LIB_SHARED)
+ ln -fs $^ $@
+
+$(LIB_SHARED): $(LIB_SHARED_OBJS)
+ gcc -shared -Wl,-soname -Wl,$(LIB_SONAME) -o $@ $^
+
+install: libs
+ mkdir -p $(DESTDIR)/usr/lib/
+ mkdir -p $(DESTDIR)/usr/include/bsd/
+ install -m644 $(LIB_STATIC) $(DESTDIR)/usr/lib/
+ install -m644 $(LIB_SONAME) $(DESTDIR)/usr/lib/
+ install -m644 $(LIB_SHARED) $(DESTDIR)/usr/lib/
+ install -m644 $(LIB_SHARED_SO) $(DESTDIR)/usr/lib/
+ install -m644 $(LIB_INCLUDES) $(DESTDIR)/usr/include/bsd/
+
+clean:
+ rm -f $(LIB_STATIC_OBJS)
+ rm -f $(LIB_STATIC)
+ rm -f $(LIB_SHARED_OBJS)
+ rm -f $(LIB_SHARED) $(LIB_SONAME) $(LIB_SHARED_SO)
-LIB_FILES = arc4random.c fgetln.c inet_net_pton.c md5c.c \
- strlcat.c strlcpy.c
-
-# All source files have associated object files
-LIBOFILES = $(LIB_FILES:%.c=%.o)
-
-CFLAGS = -include bsd.h -D_GNU_SOURCE
-
-# all is the default rule
-all : libbsd.a \
- libbsd.so.1
-
-insstall :
- mkdir -p $(DESTDIR)/usr/lib/
- mkdir -p $(DESTDIR)/usr/include/
- install -m644 libbsd.a $(DESTDIR)/usr/lib/
- install -m644 libbsd.so.1 $(DESTDIR)/usr/lib/
- install -m644 bsd.h $(DESTDIR)/usr/include/
- cd $(DESTDIR)/usr/lib/ ; ln -s libbsd.so.1 libbsd.so
-
-clean :
- rm -f *.o
- rm -f *.a
- rm -f *.so.1
-
-# remove the old tapestry library and remake the new one
-libbsd.a: $(LIBOFILES)
- rm -f $@
- ar cq $@ $(LIBOFILES)
-
-libbsd.so.1: $(LIBOFILES)
- rm -f $@
- ld -G -o $@ $(LIBOFILES)
diff --git a/md5c.c b/md5c.c
index 9831f26..96e124c 100644
--- a/md5c.c
+++ b/md5c.c
@@ -39,7 +39,7 @@ __FBSDID("$FreeBSD: src/lib/libmd/md5c.c,v 1.16 2003/06/05 13:17:32 markm Exp $"
//#include <machine/endian.h>
//#include <sys/endian.h>
-#include <sys/md5.h>
+//#include <sys/md5.h>
static void MD5Transform(u_int32_t [4], const unsigned char [64]);