diff options
Diffstat (limited to 'sbin/isakmpd/GNUmakefile')
-rw-r--r-- | sbin/isakmpd/GNUmakefile | 244 |
1 files changed, 244 insertions, 0 deletions
diff --git a/sbin/isakmpd/GNUmakefile b/sbin/isakmpd/GNUmakefile new file mode 100644 index 00000000000..f14197bdb13 --- /dev/null +++ b/sbin/isakmpd/GNUmakefile @@ -0,0 +1,244 @@ +# $Id: GNUmakefile,v 1.1 2001/01/26 12:09:22 niklas Exp $ + +# +# Copyright (c) 1998, 1999, 2000 Niklas Hallqvist. All rights reserved. +# Copyright (c) 2000 Håkan Olsson. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Ericsson Radio Systems. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# +# This code was written under funding by Ericsson Radio Systems. +# + +# +# This makefile is a GNU makefile, which is generally available on most +# systems, either as "make" or (often) "gmake". It has been converted from +# a 'pmake' makefile (OpenBSDs 'make'), and some care has been taken to +# produce similar behaviour. +# + +# openbsd means 2.5 or newer, openbsd-encap is for older kernels with PF_ENCAP +# linux is the name for Linux with FreeS/WAN integrated, freebsd/netbsd means +# FreeBSD/NetBSD with KAME IPsec. +OS= openbsd +#OS= openbsd-encap +#OS= netbsd +#OS= freebsd +#OS= linux + +.CURDIR:= $(shell pwd) +VPATH= ${.CURDIR}/sysdep/${OS} + +PROG= isakmpd + +ifndef BINDIR +BINDIR= /sbin +endif +ifndef LDSTATIC +LDSTATIC= -static +endif + +SRCS= app.c attribute.c cert.c connection.c \ + constants.c conf.c cookie.c crypto.c dh.c doi.c exchange.c \ + exchange_num.c field.c gmp_util.c hash.c if.c ike_auth.c \ + ike_aggressive.c ike_main_mode.c ike_phase_1.c \ + ike_quick_mode.c init.c ipsec.c ipsec_fld.c ipsec_num.c \ + isakmpd.c isakmp_doi.c isakmp_fld.c isakmp_num.c libcrypto.c \ + log.c message.c math_2n.c math_ec2n.c math_group.c \ + prf.c sa.c sysdep.c timer.c transport.c udp.c ui.c \ + util.c + +GENERATED= exchange_num.h ipsec_fld.h ipsec_num.h isakmp_fld.h \ + isakmp_num.h +CLEANFILES= exchange_num.c exchange_num.h ipsec_num.c ipsec_num.h \ + isakmp_num.c isakmp_num.h ipsec_fld.c ipsec_fld.h \ + isakmp_fld.c isakmp_fld.h +MAN= isakmpd.8 isakmpd.conf.5 isakmpd.policy.5 + +CFLAGS+= -O2 ${DEBUG} -Wall -DNEED_SYSDEP_APP \ + -I${.CURDIR} -I${.CURDIR}/sysdep/${OS} -I. \ + +# Different debugging & profiling suggestions + +# Include symbolic debugging info +DEBUG= -g + +# Do execution time profiles +#CFLAGS+= -pg + +# If you have ElectricFence available, you can spot abuses of the heap. +# (/usr/ports/devel/ElectricFence) +#LDADD+= -L/usr/local/lib -lefence +#DPADD+= /usr/local/lib/libefence.a + +# If you like to use Boehm's garbage collector (/usr/ports/devel/boehm-gc). +#LDADD+= -L/usr/local/lib -lgc +#DPADD+= /usr/local/lib/libgc.a + +# You can also use Boehm's garbage collector as a means to find leaks. +# XXX The defines below are GCC-specific. I think it is OK to require +# XXX GCC if you are debugging isakmpd in this way. +#LDADD+= -L/usr/local/lib -lleak +#DPADD+= /usr/local/lib/libleak.a +#CFLAGS+= -D'malloc(x)=({ \ +# void *GC_debug_malloc (size_t, char *, int); \ +# GC_debug_malloc ((x), __FILE__, __LINE__); \ +# })' \ +# -D'realloc(x,y)=({ \ +# void *GC_debug_realloc (void *, size_t, char *, int); \ +# GC_debug_realloc ((x), (y), __FILE__, __LINE__); \ +# })' \ +# -D'free(x)=({ \ +# void GC_debug_free (void *); \ +# GC_debug_free (x); \ +# })' \ +# -D'calloc(x,y)=malloc((x) * (y))' \ +# -D'strdup(x)=({ \ +# char *strcpy (char *, const char *); \ +# const char *_x_ = (x); \ +# char *_y_ = malloc (strlen (_x_) + 1); \ +# strcpy (_y_, _x_); \ +# })' + +# Ignore any files with these names... +.PHONY: mksubdirs all clean cleandir cleandepend beforedepend \ + afterdepend realclean realcleandepend + +# Default target, it needs to be the first target in makefile... :( + +all: ${PROG} mksubdirs + +ifneq ($(findstring install,$(MAKECMDGOALS)),install) +# Skip 'regress' until the regress/ structure has gmake makefiles for it. +#SUBDIR:= regress +SUBDIR:= +mksubdirs: + $(foreach DIR, ${SUBDIR}, \ + cd ${DIR}; ${MAKE} ${MAKEFLAGS} CFLAGS="${CFLAGS}" \ + MKDEP="${MKDEP}" ${MAKECMDGOALS}) +else +mksubdirs: +endif + +# DEPSRCS handling is *ugly*, I know... +# What is does; keep orig SRCS in ORIGSRCS; potentially add stuff to +# SRCS (include); let DEPSRCS be ORIGSRCS (sysdep.c -> sysdep/<os>/sysdep.c) +# _plus_ any new sources, located either in cwd or sysdep/<os>. Phew. + +ORIGSRCS:= ${SRCS} +-include sysdep/${OS}/GNUmakefile.sysdep + +FEATURES_UC= $(shell echo ${FEATURES} | tr '[:lower:]' '[:upper:]') +CFLAGS+= $(foreach F, ${FEATURES_UC}, -DUSE_${F}) +-include $(foreach F, ${FEATURES}, features/${F}) + +ifdef HAVE_DLOPEN +X509= x509.c +CFLAGS+= -DHAVE_DLOPEN +SRCS+= dyn.c +endif + +ifdef USE_KEYNOTE +USE_LIBCRYPTO= yes +LDADD+= -lkeynote -lm +DPADD+= ${LIBKEYNOTE} ${LIBM} +POLICY= policy.c +CFLAGS+= -DUSE_KEYNOTE +endif + +ifdef USE_LIBCRYPTO +X509= x509.c +CFLAGS+= -DUSE_LIBCRYPTO +LDADD+= -lcrypto +DPADD+= ${LIBCRYPTO} +endif + +SRCS+= ${IPSEC_SRCS} ${X509} ${POLICY} +CFLAGS+= ${IPSEC_CFLAGS} +LDADD+= ${DESLIB} +DPADD+= ${DESLIBDEP} + +DEPSRCS:= $(subst sysdep.c,${VPATH}/sysdep.c,${ORIGSRCS}) \ + $(foreach FILE, $(filter-out ${ORIGSRCS},${SRCS}), \ + $(wildcard ./${FILE} ${VPATH}/${FILE})) +OBJS:= $(SRCS:%.c=%.o) + +# Generated targets +exchange_num.c exchange_num.h: genconstants.sh exchange_num.cst + /bin/sh ${.CURDIR}/genconstants.sh ${.CURDIR}/exchange_num + +ipsec_fld.c ipsec_fld.h: genfields.sh ipsec_fld.fld + /bin/sh ${.CURDIR}/genfields.sh ${.CURDIR}/ipsec_fld + +ipsec_num.c ipsec_num.h: genconstants.sh ipsec_num.cst + /bin/sh ${.CURDIR}/genconstants.sh ${.CURDIR}/ipsec_num + +isakmp_fld.c isakmp_fld.h: genfields.sh isakmp_fld.fld + /bin/sh ${.CURDIR}/genfields.sh ${.CURDIR}/isakmp_fld + +isakmp_num.c isakmp_num.h: genconstants.sh isakmp_num.cst + /bin/sh ${.CURDIR}/genconstants.sh ${.CURDIR}/isakmp_num + +# Program rules +${PROG} beforedepend: ${GENERATED} + +${PROG}: ${OBJS} ${DPADD} + ${CC} ${DEBUG} ${LDFLAGS} ${LDSTATIC} -o $@ ${OBJS} ${LDADD} + +# Depend rules +depend: beforedepend .depend mksubdirs afterdepend + @true + +# Since 'mkdep' et al maybe doesn't exist... +MKDEP:= ${CC} -MM + +.depend: ${SRCS} + @rm -f .depend + ${MKDEP} ${CFLAGS} ${DEPSRCS} > .depend + +afterdepend: + +ifneq ($(findstring clean, $(MAKECMDGOALS)), clean) +# This will initially fail (when .depend does not exist), continue +# to create .depend, then make will automatically restart to include +# the generated .depend correctly. The '-' inhibits the warning msg. +-include .depend +endif + +# Clean rules + +cleandir: realclean realcleandepend mksubdirs + +clean: realclean mksubdirs + +cleandepend: realcleandepend mksubdirs + +realclean: + rm -f a.out core *.core ${PROG} ${OBJS} ${CLEANFILES} + +realcleandepend: + rm -f .depend tags |