# 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
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with userv-utils; if not, write to the Free Software
# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# $Id: Makefile,v 1.14 2000/06/07 00:59:31 ian Exp $

OPTIMISE=	-O2
CFLAGS=		-Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith \
		-Wwrite-strings -g $(OPTIMISE) -D_GNU_SOURCE \
		$(XCFLAGS)

etcdir=		/etc
prefix=		/usr/local
bindir=		$(prefix)/bin

libdir=		$(prefix)/lib
libuserv=	$(libdir)/userv

etcuserv=	$(etcdir)/userv
services=	$(etcuserv)/services.d

PROGRAM_TARGETS=	udptunnel-forwarder
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)
		cp -b service $(libuserv)/ipif
		cp ipif $(services)/ipif:new
		cp -b $(PROGRAMS) $(bindir)/.
		set -e; cd $(services); test -f ipif || mv ipif:new ipif

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:		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
