Base SoH code for Microsoft NAP.
[freeradius.git] / src / lib / Makefile
index a2b365a..ffc7f09 100644 (file)
@@ -1,57 +1,60 @@
+#
+# Makefile
+#
+# Version:      $Id$
+#
 
 include ../../Make.inc
 
-OBJS           = dict.o print.o radius.o valuepair.o token.o misc.o \
-               log.o filters.o missing.o md5.o snprintf.o
+SRCS           = dict.c filters.c hash.c hmac.c hmacsha1.c isaac.c log.c \
+                 misc.c missing.c md4.c md5.c print.c radius.c rbtree.c \
+                 sha1.c snprintf.c strlcat.c strlcpy.c token.c udpfromto.c \
+                 valuepair.c fifo.c packet.c event.c getaddrinfo.c vqp.c \
+                 heap.c dhcp.c tcp.c soh.c
 
-INCLUDES       = ../include/radius.h ../include/libradius.h \
-                 ../include/missing.h ../include/autoconf.h
-
-CFLAGS         += -D_LIBRADIUS -I../include
-
-all:   $(LIBPREFIX)radius.a
-
-$(LIBPREFIX)radius.a: $(OBJS)
-       $(LIBTOOL) --mode=link $(LD) $(OBJS) -o $(LIBPREFIX)radius.a
+LT_OBJS                = $(SRCS:.c=.lo)
 
-#      $(AR) rv $(LIBPREFIX)radius.a $(OBJS)
-#      $(RANLIB) $(LIBPREFIX)radius.a
-
-filters.o: filters.c $(INCLUDES)
-       $(CC) $(CFLAGS) -c filters.c
-
-print.o: print.c $(INCLUDES)
-       $(CC) $(CFLAGS) -c print.c
-
-dict.o: dict.c $(INCLUDES)
-       $(CC) $(CFLAGS) -c dict.c
+INCLUDES       = ../include/radius.h ../include/libradius.h \
+                 ../include/missing.h ../include/autoconf.h \
+                 ../include/ident.h
 
-radius.o: radius.c $(INCLUDES)
-       $(CC) $(CFLAGS) -c radius.c
+CFLAGS         += -D_LIBRADIUS -I$(top_builddir)/src
 
-valuepair.o: valuepair.c $(INCLUDES)
-       $(CC) $(CFLAGS) -c valuepair.c
+# if you have problems with things that need SHA1-HMAC, this will
+# dump the key and the input to the hash so you can compare to what
+# the other end is doing.
+#CFLAGS += -DHMAC_SHA1_DATA_PROBLEMS
 
-token.o: token.c $(INCLUDES)
-       $(CC) $(CFLAGS) -c token.c
+ifeq ($(USE_SHARED_LIBS),yes)
+LINK_MODE      = -export-dynamic
+else
+LINK_MODE      = -static
+endif
 
-misc.o: misc.c $(INCLUDES)
-       $(CC) $(CFLAGS) -c misc.c
+TARGET         = $(LIBPREFIX)freeradius-radius
 
-log.o: log.c $(INCLUDES)
-       $(CC) $(CFLAGS) -c log.c
+# Define new rule for libtool objects
+%.lo : %.c
+       $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c $<
 
-missing.o: missing.c $(INCLUDES)
-       $(CC) $(CFLAGS) -c missing.c
+.PHONY: all clean install reconfig
+all: $(TARGET).la
 
-md5.o: md5.c ../include/md5.h
-       $(CC) $(CFLAGS) -c md5.c
+$(TARGET).la: $(LT_OBJS)
+       $(LIBTOOL) --mode=link $(CC) -release $(RADIUSD_VERSION) \
+       $(LDFLAGS) $(LINK_MODE) -o $@ -rpath $(libdir) $^
 
-snprntf.o: snprintf.c $(INCLUDES)
-       $(CC) $(CFLAGS) -c snprintf.c
+$(LT_OBJS): $(INCLUDES)
 
 clean:
-       rm -f *.o $(LIBPREFIX)radius.a
+       rm -f *.o *.lo $(TARGET).la
+       rm -rf .libs
 
-install:
+install: all
+       $(INSTALL) -d -m 755    $(R)$(libdir)
+       $(LIBTOOL) --mode=install $(INSTALL) -c $(TARGET).la \
+               $(R)$(libdir)/$(TARGET).la
+       rm -f $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION).la;
+       ln -s $(TARGET).la $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION).la
 
+reconfig: