- added missing files for starter
[strongswan.git] / Makefile.inc
1 # FreeS/WAN pathnames and other master configuration
2 # Copyright (C) 2001, 2002  Henry Spencer.
3
4 # This program is free software; you can redistribute it and/or modify it
5 # under the terms of the GNU General Public License as published by the
6 # Free Software Foundation; either version 2 of the License, or (at your
7 # option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
8
9 # This program is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 # for more details.
13 #
14 # RCSID $Id: Makefile.inc,v 1.12 2006/01/25 17:23:15 as Exp $
15
16
17 # Variables in this file with names starting with INC_ are not for use
18 # by Makefiles which include it; they are subject to change without warning.
19 #
20 # "Final" and "finally" refer to where the files will end up on the
21 # running IPsec system, as opposed to where they get installed by our
22 # Makefiles.  (The two are different for cross-compiles and the like,
23 # where our Makefiles are not the end of the installation process.)
24 # Paths with FINAL in their names are the only ones that the installed
25 # software itself depends on.  (Very few things should know about the
26 # FINAL paths; think twice and consult Henry before making something new
27 # depend on them.)  All other paths are install targets.
28 # See also DESTDIR, below.
29
30
31 ### boilerplate, do not change
32 SHELL=/bin/sh
33
34 ### paths within the source tree
35
36 KLIPSINC=${FREESWANSRCDIR}/linux/include
37 KLIPSSRC=${FREESWANSRCDIR}/linux/net/ipsec
38
39 LIBFREESWANDIR=${FREESWANSRCDIR}/linux/lib/libfreeswan
40 FREESWANLIB=${FREESWANSRCDIR}/lib/libfreeswan/libfreeswan.a
41
42 LWRESDIR=${FREESWANSRCDIR}/lib/liblwres
43 LWRESLIB=${LWRESDIR}/liblwres.a
44
45 LIBDESSRCDIR=${FREESWANSRCDIR}/linux/crypto/ciphers/des
46 LIBDESLITE=${FREESWANSRCDIR}/lib/libdes/libdes.a
47
48 LIBPOLICYDIR=${FREESWANSRCDIR}/linux/lib/libipsecpolicy
49 POLICYLIB=${FREESWANSRCDIR}/lib/libipsecpolicy/libipsecpolicy.a
50
51 .PHONY: programs checkprograms clean
52
53 ### install pathnames
54
55 # DESTDIR can be used to supply a prefix to all install targets.
56 # (Note that "final" pathnames, signifying where files will eventually
57 # reside rather than where install puts them, are exempt from this.)
58 # The prefixing is done in this file, so as to have central control over
59 # it; DESTDIR itself should never appear in any other Makefile.
60 DESTDIR?=
61
62 # "local" part of tree, used in building other pathnames
63 INC_USRLOCAL=/usr/local
64
65 # PUBDIR is where the "ipsec" command goes; beware, many things define PATH
66 # settings which are assumed to include it (or at least, to include *some*
67 # copy of the "ipsec" command).
68 PUBDIR=$(DESTDIR)$(INC_USRLOCAL)/sbin
69
70 # BINDIR is where sub-commands get put, FINALBINDIR is where the "ipsec"
71 # command will look for them when it is run. Also called LIBEXECDIR.
72 FINALLIBEXECDIR=$(INC_USRLOCAL)/libexec/ipsec
73 LIBEXECDIR=$(DESTDIR)$(FINALBINDIR)
74
75 FINALBINDIR=${FINALLIBEXECDIR}
76 BINDIR=${LIBEXECDIR}
77
78
79 # SBINDIR is where the user interface command goes.
80 FINALSBINDIR=$(INC_USRLOCAL)/sbin
81 SBINDIR=$(DESTDIR)$(FINALSBINDIR)
82
83 # libdir is where utility files go
84 FINALLIBDIR=$(INC_USRLOCAL)/lib/ipsec
85 LIBDIR=$(DESTDIR)$(FINALLIBDIR)
86
87 # sharedlibdir is where shared libraries go
88 SHAREDLIBDIR=$(DESTDIR)$(INC_USRLOCAL)/lib
89
90 # where the appropriate manpage tree is located
91 # location within INC_USRLOCAL
92 INC_MANDIR=man
93 # the full pathname
94 MANTREE=$(DESTDIR)$(INC_USRLOCAL)/$(INC_MANDIR)
95 # all relevant subdirectories of MANTREE
96 MANPLACES=man3 man5 man8
97
98 # where configuration files go
99 FINALCONFFILE?=/etc/ipsec.conf
100 CONFFILE=$(DESTDIR)$(FINALCONFFILE)
101
102 FINALCONFDIR?=/etc
103 CONFDIR=$(DESTDIR)$(FINALCONFDIR)
104
105 FINALCONFDDIR?=${FINALCONFDIR}/ipsec.d
106 CONFDDIR=$(DESTDIR)$(FINALCONFDDIR)
107
108 # sample configuration files go into
109 INC_DOCDIR?=share/doc
110 FINALEXAMPLECONFDIR=${INC_USRLOCAL}/${INC_DOCDIR}/strongswan
111 EXAMPLECONFDIR=${DESTDIR}${FINALEXAMPLECONFDIR}
112
113 FINALDOCDIR?=${INC_USRLOCAL}/${INC_DOCDIR}/strongswan
114 DOCDIR=${DESTDIR}${FINALDOCDIR}
115
116 # where per-conn pluto logs go
117 VARDIR?=/var
118 LOGDIR?=${VARDIR}/log
119 FINALLOGDIR?=${DESTDIR}${LOGDIR}
120
121
122 # An attempt is made to automatically figure out where boot/shutdown scripts 
123 # will finally go:  the first directory in INC_RCDIRS which exists gets them.
124 # If none of those exists (or INC_RCDIRS is empty), INC_RCDEFAULT gets them.
125 # With a non-null DESTDIR, INC_RCDEFAULT will be used unless one of the
126 # INC_RCDIRS directories has been pre-created under DESTDIR.
127 INC_RCDIRS=/etc/rc.d/init.d /etc/rc.d /etc/init.d /sbin/init.d
128 INC_RCDEFAULT=/etc/rc.d/init.d
129
130 # RCDIR is where boot/shutdown scripts go; FINALRCDIR is where they think
131 # will finally be (so utils/Makefile can create a symlink in BINDIR to the
132 # place where the boot/shutdown script will finally be, rather than the
133 # place where it is installed).
134 FINALRCDIR=$(shell for d in $(INC_RCDIRS) ; \
135                 do if test -d $(DESTDIR)/$$d ; \
136                 then echo $$d ; exit 0 ; \
137                 fi ; done ; echo $(INC_RCDEFAULT) )
138 RCDIR=$(DESTDIR)$(FINALRCDIR)
139
140
141
142 ### kernel pathnames
143
144 # Kernel location:  where patches are inserted, where kernel builds are done.
145
146 # this is a hack using the wildcard to look for existence of a file/dir
147 ifneq ($(wildcard /usr/src/linux-2.4),)
148 KERNELSRC?=/usr/src/linux-2.4
149 else
150 KERNELSRC?=/usr/src/linux
151 endif
152
153
154 # where kernel configuration outputs are located
155 KCFILE=$(KERNELSRC)/.config
156 ACFILE=$(KERNELSRC)/include/linux/autoconf.h
157 VERFILE=$(KERNELSRC)/include/linux/version.h
158
159
160
161 ### misc installation stuff
162
163 # what program to use when installing things
164 INSTALL=install
165
166 # flags to the install program, for programs, manpages, and config files
167 # -b has install make backups (n.b., unlinks original), --suffix controls
168 # how backup names are composed.
169 # Note that the install procedures will never overwrite an existing config
170 # file, which is why -b is not specified for them.
171 INSTBINFLAGS=-b --suffix=.old
172 INSTMANFLAGS=
173 INSTCONFFLAGS=
174
175
176 ### misc configuration, included here in hopes that other files will not
177 ### have to be changed for common customizations.
178
179 # extra compile flags, for userland and kernel stuff, e.g. -g for debug info
180 # (caution, this stuff is still being sorted out, will change in future)
181 USERCOMPILE?=-g -O3
182 KLIPSCOMPILE=-O3
183
184 # command used to link/copy KLIPS into kernel source tree
185 # There are good reasons why this is "ln -s"; only people like distribution
186 # builders should ever change it.
187 KLIPSLINK=ln -s -f
188
189 # extra options for use in kernel build
190 KERNMAKEOPTS=
191
192 # kernel Makefile targets to be done before build
193 # Can be overridden if you are *sure* your kernel doesn't need them.  (2.2.xx
194 # and later reportedly do not.)
195 KERNDEP=dep
196 KERNCLEAN=clean
197
198 # kernel make name:  zImage for 2.0.xx, bzImage for 2.2.xx and later, and
199 # boot on non-x86s (what ever happened to standards?)
200 INC_B=$(shell test -d $(DIRIN22) && echo b)
201 KERNEL=$(shell if expr " `uname -m`" : ' i.86' >/dev/null ; \
202         then echo $(INC_B)zImage ; \
203         else echo boot ; \
204         fi)
205
206 # temporary directory to be used when building RPMs, and where to put the
207 # resulting RPM tree
208 RPMKERNDIR := $(shell echo `pwd`/tmp.rpmkernel)
209 RPMTMPDIR := $(shell echo `pwd`/tmp.rpmbuild)
210 RPMDEST := $(shell echo `pwd`/rpms)
211
212 # Newer versions of RPM do not permit building of packages with the "rpm" 
213 # command. For RedHat systems with older version of RPM, use:
214 # RPMBUILD=rpm
215 # instead.
216 RPMBUILD=rpmbuild
217
218 ### paths to resources on the host system
219 #
220 # Set this to a RedHat kernel-sources RPM. This normally extracts into
221 # /usr/src/linux-2.4, but you might have extracted it elsewhere with
222 # rpm2cpio.
223 #
224 RH_KERNELSRC?=/usr/src/linux-2.4
225
226 ## build environment variations
227 ##
228
229 # set this to a place where you have installed a bind9.3 
230 # snapshot (20021115 or better). A bind 9.2, particularly a RedHat
231 # installed one in RH 7.2, won't work - you wind up depending upon
232 # openssl.
233
234 BIND9STATICLIBDIR?=/usr/local/lib
235
236 # FreeSWAN 3.x will require bind9. 
237 USE_LWRES?=false
238
239 # whether or not to use iproute2 based commands.
240 #
241 USE_IPROUTE2?=true
242
243 # what kind of firewalling to use:
244 #  2.0  - ipfwadm
245 #  2.2  - ipchains
246 #  2.4  - iptables
247 IPSEC_FIREWALLTYPE=iptables
248
249 # whether or not to include ipsec policy code into pluto.
250 # false for now, since it is still experimental.
251 USE_IPSECPOLICY?=false
252
253 # include IKEPING in the distribution
254 USE_IKEPING?=false
255
256 # include support for KEY RR 
257 # this will become false in late 2003.
258 USE_KEYRR?=true
259
260 # include support for KERNEL 2.5/2.6 IPsec in pluto
261 USE_KERNEL26?=true
262
263 # whether or not pluto sends its strongSwan Vendor ID
264 USE_VENDORID?=true
265
266 # whether or not pluto sends an XAUTH VID (Cisco Mode Config Interoperability)
267 USE_XAUTH_VID?=false
268
269 # whether to support NAT Traversal (aka NAT-T)
270 USE_NAT_TRAVERSAL?=true
271
272 # whether to support NAT-T in transport mode (needed for Win2K NAT-T Interop)
273 USE_NAT_TRAVERSAL_TRANSPORT_MODE?=false
274
275 # include libcurl support (currently used for fetching CRLs, OCSP and SCEP)
276 USE_LIBCURL?=false
277
278 # include LDAP support (currently used for fetching CRLs)
279 USE_LDAP?=false
280
281 # uncomment this line if using the LDAPv3 protocol
282 LDAP_VERSION=3
283 # uncomment this line if using the LDAPv2 protocol
284 #LDAP_VERSION=2
285
286 # include PKCS11-based smartcard support
287 USE_SMARTCARD?=false
288
289 # support IKEv2 via charon
290 USE_IKEV2?=true
291
292 # Default PKCS11 library
293 # Uncomment this line if using OpenSC <= 0.9.6
294 PKCS11_DEFAULT_LIB=\"/usr/lib/pkcs11/opensc-pkcs11.so\"
295 # Uncomment this line if using OpenSC >= 0.10.0
296 #PKCS11_DEFAULT_LIB=\"/usr/lib/opensc-pkcs11.so\"
297 # Uncomment and complete this line if using another default library
298 #PKCS11_DEFAULT_LIB=\"/usr/lib/...\"
299
300 # Enable the leak detective to find memory leaks
301 USE_LEAK_DETECTIVE?=false
302
303 # set this to space where a linked/configured tree can be created by
304 # preprhkern4module. Only needed if you are going to be created RPMs
305 # outside of a distribution (as the FS team does for RedHat).
306 #RH_KERNELSRC_POOL=/c2/freeswan/rh_kern
307
308 # the following is a list of symbols which will be used to construct
309 # the module goo to identify which module goes with each kernel.
310 MODULE_GOO_LIST=irq_stat netif_rx register_sysctl_table send_sig
311 MODULE_GOO_LIST+=kmalloc __kfree_skb __ip_select_ident alloc_skb
312 MODULE_GOO_LIST+=icmp_send ip_fragment sock_register 
313
314 MODULE_DEF_INCLUDE=${FREESWANSRCDIR}/packaging/linus/config-all.h
315 MODULE_DEFCONFIG?=${KLIPSSRC}/defconfig
316
317 MODULE_FLAGS:=KLIPSMODULE=true TOPDIR=${KERNELSRC} -f ${MODULE_DEFCONFIG} -f Makefile
318
319 # supply kernel-configuration ARCH defaults
320 ifeq ($(ARCH),)
321 ARCH := $(shell uname -m)
322 endif
323 # always sanitize $(ARCH)
324 ARCH := $(shell echo $(ARCH) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
325
326 # export everything so that scripts can use them.
327 export LIBFREESWANDIR FREESWANSRCDIR FREESWANLIB
328
329 -include ${FREESWANSRCDIR}/Makefile.ver
330
331 # for emacs
332 #
333 # Local Variables: ;;;
334 # mode: makefile ;;;
335 # End Variables: ;;;
336 #