diff options
Diffstat (limited to 'Makefile.inc')
-rw-r--r-- | Makefile.inc | 331 |
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: ;;; +# |