summaryrefslogtreecommitdiff
path: root/Makefile.inc
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.inc')
-rw-r--r--Makefile.inc331
1 files changed, 331 insertions, 0 deletions
diff --git a/Makefile.inc b/Makefile.inc
new file mode 100644
index 000000000..f5ec6741d
--- /dev/null
+++ b/Makefile.inc
@@ -0,0 +1,331 @@
+# FreeS/WAN pathnames and other master configuration
+# Copyright (C) 2001, 2002 Henry Spencer.
+#
+# This program 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. See <http://www.fsf.org/copyleft/gpl.txt>.
+#
+# 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.
+#
+# RCSID $Id: Makefile.inc,v 1.12 2006/01/25 17:23:15 as Exp $
+
+
+# Variables in this file with names starting with INC_ are not for use
+# by Makefiles which include it; they are subject to change without warning.
+#
+# "Final" and "finally" refer to where the files will end up on the
+# running IPsec system, as opposed to where they get installed by our
+# Makefiles. (The two are different for cross-compiles and the like,
+# where our Makefiles are not the end of the installation process.)
+# Paths with FINAL in their names are the only ones that the installed
+# software itself depends on. (Very few things should know about the
+# FINAL paths; think twice and consult Henry before making something new
+# depend on them.) All other paths are install targets.
+# See also DESTDIR, below.
+
+
+### boilerplate, do not change
+SHELL=/bin/sh
+
+### paths within the source tree
+
+KLIPSINC=${FREESWANSRCDIR}/linux/include
+KLIPSSRC=${FREESWANSRCDIR}/linux/net/ipsec
+
+LIBFREESWANDIR=${FREESWANSRCDIR}/linux/lib/libfreeswan
+FREESWANLIB=${FREESWANSRCDIR}/lib/libfreeswan/libfreeswan.a
+
+LWRESDIR=${FREESWANSRCDIR}/lib/liblwres
+LWRESLIB=${LWRESDIR}/liblwres.a
+
+LIBDESSRCDIR=${FREESWANSRCDIR}/linux/crypto/ciphers/des
+LIBDESLITE=${FREESWANSRCDIR}/lib/libdes/libdes.a
+
+LIBPOLICYDIR=${FREESWANSRCDIR}/linux/lib/libipsecpolicy
+POLICYLIB=${FREESWANSRCDIR}/lib/libipsecpolicy/libipsecpolicy.a
+
+.PHONY: programs checkprograms clean
+
+### install pathnames
+
+# DESTDIR can be used to supply a prefix to all install targets.
+# (Note that "final" pathnames, signifying where files will eventually
+# reside rather than where install puts them, are exempt from this.)
+# The prefixing is done in this file, so as to have central control over
+# it; DESTDIR itself should never appear in any other Makefile.
+DESTDIR?=
+
+# "local" part of tree, used in building other pathnames
+INC_USRLOCAL=/usr/local
+
+# PUBDIR is where the "ipsec" command goes; beware, many things define PATH
+# settings which are assumed to include it (or at least, to include *some*
+# copy of the "ipsec" command).
+PUBDIR=$(DESTDIR)$(INC_USRLOCAL)/sbin
+
+# BINDIR is where sub-commands get put, FINALBINDIR is where the "ipsec"
+# command will look for them when it is run. Also called LIBEXECDIR.
+FINALLIBEXECDIR=$(INC_USRLOCAL)/libexec/ipsec
+LIBEXECDIR=$(DESTDIR)$(FINALBINDIR)
+
+FINALBINDIR=${FINALLIBEXECDIR}
+BINDIR=${LIBEXECDIR}
+
+
+# SBINDIR is where the user interface command goes.
+FINALSBINDIR=$(INC_USRLOCAL)/sbin
+SBINDIR=$(DESTDIR)$(FINALSBINDIR)
+
+# libdir is where utility files go
+FINALLIBDIR=$(INC_USRLOCAL)/lib/ipsec
+LIBDIR=$(DESTDIR)$(FINALLIBDIR)
+
+
+# where the appropriate manpage tree is located
+# location within INC_USRLOCAL
+INC_MANDIR=man
+# the full pathname
+MANTREE=$(DESTDIR)$(INC_USRLOCAL)/$(INC_MANDIR)
+# all relevant subdirectories of MANTREE
+MANPLACES=man3 man5 man8
+
+# where configuration files go
+FINALCONFFILE?=/etc/ipsec.conf
+CONFFILE=$(DESTDIR)$(FINALCONFFILE)
+
+FINALCONFDIR?=/etc
+CONFDIR=$(DESTDIR)$(FINALCONFDIR)
+
+FINALCONFDDIR?=${FINALCONFDIR}/ipsec.d
+CONFDDIR=$(DESTDIR)$(FINALCONFDDIR)
+
+# sample configuration files go into
+INC_DOCDIR?=share/doc
+FINALEXAMPLECONFDIR=${INC_USRLOCAL}/${INC_DOCDIR}/strongswan
+EXAMPLECONFDIR=${DESTDIR}${FINALEXAMPLECONFDIR}
+
+FINALDOCDIR?=${INC_USRLOCAL}/${INC_DOCDIR}/strongswan
+DOCDIR=${DESTDIR}${FINALDOCDIR}
+
+# where per-conn pluto logs go
+VARDIR?=/var
+LOGDIR?=${VARDIR}/log
+FINALLOGDIR?=${DESTDIR}${LOGDIR}
+
+
+# An attempt is made to automatically figure out where boot/shutdown scripts
+# will finally go: the first directory in INC_RCDIRS which exists gets them.
+# If none of those exists (or INC_RCDIRS is empty), INC_RCDEFAULT gets them.
+# With a non-null DESTDIR, INC_RCDEFAULT will be used unless one of the
+# INC_RCDIRS directories has been pre-created under DESTDIR.
+INC_RCDIRS=/etc/rc.d/init.d /etc/rc.d /etc/init.d /sbin/init.d
+INC_RCDEFAULT=/etc/rc.d/init.d
+
+# RCDIR is where boot/shutdown scripts go; FINALRCDIR is where they think
+# will finally be (so utils/Makefile can create a symlink in BINDIR to the
+# place where the boot/shutdown script will finally be, rather than the
+# place where it is installed).
+FINALRCDIR=$(shell for d in $(INC_RCDIRS) ; \
+ do if test -d $(DESTDIR)/$$d ; \
+ then echo $$d ; exit 0 ; \
+ fi ; done ; echo $(INC_RCDEFAULT) )
+RCDIR=$(DESTDIR)$(FINALRCDIR)
+
+
+
+### kernel pathnames
+
+# Kernel location: where patches are inserted, where kernel builds are done.
+
+# this is a hack using the wildcard to look for existence of a file/dir
+ifneq ($(wildcard /usr/src/linux-2.4),)
+KERNELSRC?=/usr/src/linux-2.4
+else
+KERNELSRC?=/usr/src/linux
+endif
+
+
+# where kernel configuration outputs are located
+KCFILE=$(KERNELSRC)/.config
+ACFILE=$(KERNELSRC)/include/linux/autoconf.h
+VERFILE=$(KERNELSRC)/include/linux/version.h
+
+
+
+### misc installation stuff
+
+# what program to use when installing things
+INSTALL=install
+
+# flags to the install program, for programs, manpages, and config files
+# -b has install make backups (n.b., unlinks original), --suffix controls
+# how backup names are composed.
+# Note that the install procedures will never overwrite an existing config
+# file, which is why -b is not specified for them.
+INSTBINFLAGS=-b --suffix=.old
+INSTMANFLAGS=
+INSTCONFFLAGS=
+
+
+### misc configuration, included here in hopes that other files will not
+### have to be changed for common customizations.
+
+# extra compile flags, for userland and kernel stuff, e.g. -g for debug info
+# (caution, this stuff is still being sorted out, will change in future)
+USERCOMPILE?=-g -O3
+KLIPSCOMPILE=-O3
+
+# command used to link/copy KLIPS into kernel source tree
+# There are good reasons why this is "ln -s"; only people like distribution
+# builders should ever change it.
+KLIPSLINK=ln -s -f
+
+# extra options for use in kernel build
+KERNMAKEOPTS=
+
+# kernel Makefile targets to be done before build
+# Can be overridden if you are *sure* your kernel doesn't need them. (2.2.xx
+# and later reportedly do not.)
+KERNDEP=dep
+KERNCLEAN=clean
+
+# kernel make name: zImage for 2.0.xx, bzImage for 2.2.xx and later, and
+# boot on non-x86s (what ever happened to standards?)
+INC_B=$(shell test -d $(DIRIN22) && echo b)
+KERNEL=$(shell if expr " `uname -m`" : ' i.86' >/dev/null ; \
+ then echo $(INC_B)zImage ; \
+ else echo boot ; \
+ fi)
+
+# temporary directory to be used when building RPMs, and where to put the
+# resulting RPM tree
+RPMKERNDIR := $(shell echo `pwd`/tmp.rpmkernel)
+RPMTMPDIR := $(shell echo `pwd`/tmp.rpmbuild)
+RPMDEST := $(shell echo `pwd`/rpms)
+
+# Newer versions of RPM do not permit building of packages with the "rpm"
+# command. For RedHat systems with older version of RPM, use:
+# RPMBUILD=rpm
+# instead.
+RPMBUILD=rpmbuild
+
+### paths to resources on the host system
+#
+# Set this to a RedHat kernel-sources RPM. This normally extracts into
+# /usr/src/linux-2.4, but you might have extracted it elsewhere with
+# rpm2cpio.
+#
+RH_KERNELSRC?=/usr/src/linux-2.4
+
+## build environment variations
+##
+
+# set this to a place where you have installed a bind9.3
+# snapshot (20021115 or better). A bind 9.2, particularly a RedHat
+# installed one in RH 7.2, won't work - you wind up depending upon
+# openssl.
+
+BIND9STATICLIBDIR?=/usr/local/lib
+
+# FreeSWAN 3.x will require bind9.
+USE_LWRES?=false
+
+# whether or not to use iproute2 based commands.
+#
+USE_IPROUTE2?=true
+
+# what kind of firewalling to use:
+# 2.0 - ipfwadm
+# 2.2 - ipchains
+# 2.4 - iptables
+IPSEC_FIREWALLTYPE=iptables
+
+# whether or not to include ipsec policy code into pluto.
+# false for now, since it is still experimental.
+USE_IPSECPOLICY?=false
+
+# include IKEPING in the distribution
+USE_IKEPING?=false
+
+# include support for KEY RR
+# this will become false in late 2003.
+USE_KEYRR?=true
+
+# include support for KERNEL 2.5/2.6 IPsec in pluto
+USE_KERNEL26?=true
+
+# whether or not pluto sends its strongSwan Vendor ID
+USE_VENDORID?=true
+
+# whether or not pluto sends an XAUTH VID (Cisco Mode Config Interoperability)
+USE_XAUTH_VID?=false
+
+# whether to support NAT Traversal (aka NAT-T)
+USE_NAT_TRAVERSAL?=true
+
+# whether to support NAT-T in transport mode (needed for Win2K NAT-T Interop)
+USE_NAT_TRAVERSAL_TRANSPORT_MODE?=false
+
+# include libcurl support (currently used for fetching CRLs, OCSP and SCEP)
+USE_LIBCURL?=false
+
+# include LDAP support (currently used for fetching CRLs)
+USE_LDAP?=false
+
+# uncomment this line if using the LDAPv3 protocol
+LDAP_VERSION=3
+# uncomment this line if using the LDAPv2 protocol
+#LDAP_VERSION=2
+
+# include PKCS11-based smartcard support
+USE_SMARTCARD?=false
+
+# Default PKCS11 library
+# Uncomment this line if using OpenSC <= 0.9.6
+PKCS11_DEFAULT_LIB=\"/usr/lib/pkcs11/opensc-pkcs11.so\"
+# Uncomment this line if using OpenSC >= 0.10.0
+#PKCS11_DEFAULT_LIB=\"/usr/lib/opensc-pkcs11.so\"
+# Uncomment and complete this line if using another default library
+#PKCS11_DEFAULT_LIB=\"/usr/lib/...\"
+
+# Enable the leak detective to find memory leaks
+USE_LEAK_DETECTIVE?=false
+
+# set this to space where a linked/configured tree can be created by
+# preprhkern4module. Only needed if you are going to be created RPMs
+# outside of a distribution (as the FS team does for RedHat).
+#RH_KERNELSRC_POOL=/c2/freeswan/rh_kern
+
+# the following is a list of symbols which will be used to construct
+# the module goo to identify which module goes with each kernel.
+MODULE_GOO_LIST=irq_stat netif_rx register_sysctl_table send_sig
+MODULE_GOO_LIST+=kmalloc __kfree_skb __ip_select_ident alloc_skb
+MODULE_GOO_LIST+=icmp_send ip_fragment sock_register
+
+MODULE_DEF_INCLUDE=${FREESWANSRCDIR}/packaging/linus/config-all.h
+MODULE_DEFCONFIG?=${KLIPSSRC}/defconfig
+
+MODULE_FLAGS:=KLIPSMODULE=true TOPDIR=${KERNELSRC} -f ${MODULE_DEFCONFIG} -f Makefile
+
+# supply kernel-configuration ARCH defaults
+ifeq ($(ARCH),)
+ARCH := $(shell uname -m)
+endif
+# always sanitize $(ARCH)
+ARCH := $(shell echo $(ARCH) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
+
+# export everything so that scripts can use them.
+export LIBFREESWANDIR FREESWANSRCDIR FREESWANLIB
+
+-include ${FREESWANSRCDIR}/Makefile.ver
+
+# for emacs
+#
+# Local Variables: ;;;
+# mode: makefile ;;;
+# End Variables: ;;;
+#