chiark / gitweb /
@@ -3,6 +3,7 @@
[userv-utils.git] / ipif / Makefile
index d7bf43fdb2ad6722cebf0ed18aa3b66a9b515721..ab3db07347fcc7a56441408b84ea5de6a4a5f30e 100644 (file)
@@ -1,4 +1,6 @@
-# Copyright (C) 1999 Ian Jackson
+# Makefile for ipif/udptunnel stuff
+
+# Copyright (C) 1999-2000 Ian Jackson
 #
 # This is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
 
 OPTIMISE=      -O2
 CFLAGS=                -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith \
-               -Wwrite-strings -g $(OPTIMISE) -D_GNU_SOURCE
+               -Wwrite-strings -g $(OPTIMISE) -D_GNU_SOURCE \
+               $(XCFLAGS)
 
 etcdir=                /etc
 prefix=                /usr/local
 bindir=                $(prefix)/bin
+vardir=                /var
 
 libdir=                $(prefix)/lib
+sharedir=      $(prefix)/share
 libuserv=      $(libdir)/userv
+shareuserv=    $(sharedir)/userv
+varlib=                $(vardir)/lib
+varlibuserv=   $(varlib)/userv
+varlibvpn=     $(varlibuserv)/vpn
 
 etcuserv=      $(etcdir)/userv
+etcvpn=                $(etcdir)/userv/vpn
 services=      $(etcuserv)/services.d
 
-TARGETS=       service
+PROGRAM_TARGETS=       udptunnel-forwarder udptunnel-reconf
+TARGETS=               service blowfishtest $(PROGRAM_TARGETS)
+PROGRAMS=              udptunnel $(PROGRAM_TARGETS)
+
+MECHFILES=     null pkcs5 timestamp sequence blowfish
+MECHOBJS=      $(foreach m, $(MECHFILES), mech-$m.o)
+
+OBJS_FORWARD=  forwarder.o $(MECHOBJS) blowfish.o automech.c utils.c
+OBJS_BFTEST=   blowfishtest.o blowfish.o hex.o
 
 all:           $(TARGETS)
 
 install:       all
-               mkdir -p $(libuserv) $(services)
+               mkdir -p $(libuserv) $(services) $(etcvpn) \
+                       $(varlibvpn) $(shareuserv)
                cp -b service $(libuserv)/ipif
+               cp -b $(PROGRAMS) $(bindir)/.
                cp ipif $(services)/ipif:new
-               cp -b udptunnel $(bindir)/.
                set -e; cd $(services); test -f ipif || mv ipif:new ipif
+               cp *.example $(etcvpn)/.
+               cp udptunnel-vpn-config.m4 udptunnel-vpn-defaults \
+                       $(shareuserv)/.
+
+udptunnel-reconf:      udptunnel-reconf.pl Makefile
+               perl -pe '      \
+       print "\
+\$$shareuserv= \"$(shareuserv)\";\n\
+\$$etcvpn= \"$(etcvpn)\";\n\
+\$$varlibvpn= \"$(varlibvpn)\";\n" if m#^\# \@\@\@\-#; \
+       $$_="" if m/^\# \@\@\@\-/ .. m/^\# \-\@\@\@/;   \
+               '       \
+                       <$< >$@.new
+               chmod +x $@.new
+               mv -f $@.new $@
+
+
+udptunnel-forwarder:   $(OBJS_FORWARD)
+               $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS_FORWARD)
+
+blowfishtest:          $(OBJS_BFTEST)
+               $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS_BFTEST)
+
+automech.h:            automechgen.sh Makefile
+               ./$< $(MECHFILES)
+
+automech.c:            automech.h
+
+clean:
+               rm -f *.o core automech.[ch] *~ ./#*#
+
+realclean distclean:   clean
+               rm -f $(TARGETS)
+
+forwarder.o $(MECHOBJS) automech.o utils.o:    forwarder.h automech.h
+blowfish.o mech-blowfish.o blowfishtest.o:     blowfish.h
+blowfishtest.o hex.o:                          hex.h