# Makefile for KLIPS kernel code as a module    for 2.6 kernels
#
# Makefile for KLIPS kernel code as a module
# Copyright (C) 1998, 1999, 2000,2001  Richard Guy Briggs.
# Copyright (C) 2002-2004	Michael Richardson <mcr@freeswan.org>
# 
# 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,v 1.1 2008/05/20 12:26:18 evantu Exp $
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#

OPENSWANSRCDIR?=.
KLIPS_TOP?=.

-include ${OPENSWANSRCDIR}/Makefile.ver

base-klips-objs := 

base-klips-objs+= ipsec_init.o ipsec_sa.o ipsec_radij.o radij.o
base-klips-objs+= ipsec_life.o ipsec_proc.o
base-klips-objs+= ipsec_tunnel.o ipsec_xmit.o ipsec_rcv.o ipsec_ipip.o
base-klips-objs+= ipsec_snprintf.o
base-klips-objs+= sysctl_net_ipsec.o 
base-klips-objs+= pfkey_v2.o pfkey_v2_parser.o pfkey_v2_ext_process.o 
base-klips-objs+= version.o

base-klips-objs+= satot.o
base-klips-objs+= addrtot.o
base-klips-objs+= ultot.o 
base-klips-objs+= addrtypeof.o
base-klips-objs+= anyaddr.o
base-klips-objs+= initaddr.o
base-klips-objs+= ultoa.o 
base-klips-objs+= addrtoa.o 
base-klips-objs+= subnettoa.o 
base-klips-objs+= subnetof.o 
base-klips-objs+= goodmask.o 
base-klips-objs+= datatot.o 
base-klips-objs+= rangetoa.o 
base-klips-objs+= prng.o 
base-klips-objs+= pfkey_v2_parse.o 
base-klips-objs+= pfkey_v2_build.o 
base-klips-objs+= pfkey_v2_debug.o 
base-klips-objs+= pfkey_v2_ext_bits.o 
base-klips-objs+= version.o

obj-${CONFIG_KLIPS} += ipsec.o

ipsec-objs += ${base-klips-objs}

ipsec-$(CONFIG_KLIPS_ESP)     += ipsec_esp.o
ipsec-$(CONFIG_KLIPS_OCF)     += ipsec_ocf.o
ipsec-$(CONFIG_KLIPS_IPCOMP)  += ipsec_ipcomp.o
ipsec-$(CONFIG_KLIPS_AUTH_HMAC_MD5)  += ipsec_md5c.o
ipsec-$(CONFIG_KLIPS_AUTH_HMAC_SHA1) += ipsec_sha1.o

# AH, if you really think you need it.
ipsec-$(CONFIG_KLIPS_AH)   += ipsec_ah.o

ipsec-y += ipsec_alg.o 

# include code from DES subdir
crypto-$(CONFIG_KLIPS_ENC_3DES) += des/ipsec_alg_3des.o
crypto-$(CONFIG_KLIPS_ENC_3DES) += des/cbc_enc.o
crypto-$(CONFIG_KLIPS_ENC_3DES) += des/ecb_enc.o
crypto-$(CONFIG_KLIPS_ENC_3DES) += des/set_key.o

ifeq ($(strip ${SUBARCH}),)
SUBARCH:=${ARCH}
endif

# the assembly version expects frame pointers, which are
# optional in many kernel builds. If you want speed, you should
# probably use cryptoapi code instead.
USEASSEMBLY=${SUBARCH}${CONFIG_FRAME_POINTER}
ifeq (${USEASSEMBLY},i386y)
crypto-$(CONFIG_KLIPS_ENC_3DES) += des/dx86unix.o
else
crypto-$(CONFIG_KLIPS_ENC_3DES) += des/des_enc.o
endif

# include code from AES subdir
crypto-$(CONFIG_KLIPS_ENC_AES) += aes/ipsec_alg_aes.o
crypto-$(CONFIG_KLIPS_ENC_AES) += aes/aes_xcbc_mac.o
crypto-$(CONFIG_KLIPS_ENC_AES) += aes/aes_cbc.o

ifeq ($(strip ${SUBARCH}),)
SUBARCH:=${ARCH}
endif

USEASSEMBLY=${SUBARCH}${CONFIG_FRAME_POINTER}
ifeq (${USEASSEMBLY},i386y)
crypto-$(CONFIG_KLIPS_ENC_AES) += aes/aes-i586.o
else
crypto-$(CONFIG_KLIPS_ENC_AES) += aes/aes.o
endif

ipsec-y += ${crypto-y}

ipsec-$(CONFIG_KLIPS_ENC_CRYPTOAPI) += ipsec_alg_cryptoapi.o

# IPcomp stuff
base-ipcomp-objs := ipcomp.o 
base-ipcomp-objs += adler32.o
base-ipcomp-objs += deflate.o
base-ipcomp-objs += infblock.o
base-ipcomp-objs += infcodes.o
base-ipcomp-objs += inffast.o
base-ipcomp-objs += inflate.o
base-ipcomp-objs += inftrees.o
base-ipcomp-objs += infutil.o
base-ipcomp-objs += trees.o
base-ipcomp-objs += zutil.o
asm-ipcomp-obj-$(CONFIG_M586)          += match586.o
asm-ipcomp-obj-$(CONFIG_M586TSC)       += match586.o
asm-ipcomp-obj-$(CONFIG_M586MMX)       += match586.o
asm-ipcomp-obj-$(CONFIG_M686)          += match686.o
asm-ipcomp-obj-$(CONFIG_MPENTIUMIII)   += match686.o
asm-ipcomp-obj-$(CONFIG_MPENTIUM4)     += match686.o
asm-ipcomp-obj-$(CONFIG_MK6)           += match586.o
asm-ipcomp-obj-$(CONFIG_MK7)           += match686.o
asm-ipcomp-obj-$(CONFIG_MCRUSOE)       += match586.o
asm-ipcomp-obj-$(CONFIG_MWINCHIPC6)    += match586.o
asm-ipcomp-obj-$(CONFIG_MWINCHIP2)     += match686.o
asm-ipcomp-obj-$(CONFIG_MWINCHIP3D)    += match686.o
base-ipcomp-objs += ${asm-ipcomp-obj-y}

ipsec-$(CONFIG_KLIPS_IPCOMP) += ${base-ipcomp-objs}

EXTRA_CFLAGS += -DIPCOMP_PREFIX -DKLIPS
EXTRA_CFLAGS += -Icrypto/ocf

#
# $Log: Makefile,v $
# Revision 1.1  2008/05/20 12:26:18  evantu
# from freescale BSP: ltib-mpc8548cds-20071214
#
#  Modified Files:
#  	Kconfig Makefile ipv4/af_inet.c
#  Added Files:
#  	ipsec/Kconfig ipsec/Makefile ipsec/Makefile.ver
#  	ipsec/README-zlib ipsec/addrtoa.c ipsec/addrtot.c
#  	ipsec/addrtypeof.c ipsec/adler32.c ipsec/anyaddr.c
#  	ipsec/datatot.c ipsec/defconfig ipsec/deflate.c
#  	ipsec/deflate.h ipsec/goodmask.c ipsec/infblock.c
#  	ipsec/infblock.h ipsec/infcodes.c ipsec/infcodes.h
#  	ipsec/inffast.c ipsec/inffast.h ipsec/inffixed.h
#  	ipsec/inflate.c ipsec/inftrees.c ipsec/inftrees.h
#  	ipsec/infutil.c ipsec/infutil.h ipsec/initaddr.c
#  	ipsec/ipcomp.c ipsec/ipsec_ah.c ipsec/ipsec_alg.c
#  	ipsec/ipsec_alg_cryptoapi.c ipsec/ipsec_esp.c
#  	ipsec/ipsec_init.c ipsec/ipsec_ipcomp.c ipsec/ipsec_ipip.c
#  	ipsec/ipsec_kern24.c ipsec/ipsec_life.c ipsec/ipsec_mast.c
#  	ipsec/ipsec_md5c.c ipsec/ipsec_ocf.c ipsec/ipsec_ocf.h
#  	ipsec/ipsec_proc.c ipsec/ipsec_radij.c ipsec/ipsec_rcv.c
#  	ipsec/ipsec_sa.c ipsec/ipsec_sha1.c ipsec/ipsec_snprintf.c
#  	ipsec/ipsec_tunnel.c ipsec/ipsec_xform.c ipsec/ipsec_xmit.c
#  	ipsec/match586.S ipsec/match686.S ipsec/pfkey_v2.c
#  	ipsec/pfkey_v2_build.c ipsec/pfkey_v2_debug.c
#  	ipsec/pfkey_v2_ext_bits.c ipsec/pfkey_v2_ext_process.c
#  	ipsec/pfkey_v2_parse.c ipsec/pfkey_v2_parser.c ipsec/prng.c
#  	ipsec/radij.c ipsec/rangetoa.c ipsec/satot.c ipsec/subnetof.c
#  	ipsec/subnettoa.c ipsec/sysctl_net_ipsec.c ipsec/trees.c
#  	ipsec/trees.h ipsec/ultoa.c ipsec/ultot.c ipsec/version.c
#  	ipsec/zutil.c ipsec/aes/Makefile ipsec/aes/aes-i586.S
#  	ipsec/aes/aes.c ipsec/aes/aes_cbc.c ipsec/aes/aes_xcbc_mac.c
#  	ipsec/aes/ipsec_alg_aes.c ipsec/alg/Config.alg_aes.in
#  	ipsec/alg/Config.alg_cryptoapi.in ipsec/alg/Config.in
#  	ipsec/alg/Makefile.alg_aes ipsec/alg/Makefile.alg_cryptoapi
#  	ipsec/alg/ipsec_alg_cryptoapi.c
#  	ipsec/alg/scripts/mk-static_init.c.sh ipsec/des/COPYRIGHT
#  	ipsec/des/INSTALL ipsec/des/Makefile ipsec/des/README
#  	ipsec/des/README.freeswan ipsec/des/VERSION
#  	ipsec/des/cbc_enc.c ipsec/des/des.doc ipsec/des/des_enc.c
#  	ipsec/des/des_opts.c ipsec/des/dx86unix.S ipsec/des/ecb_enc.c
#  	ipsec/des/ipsec_alg_3des.c ipsec/des/set_key.c
#  	ipsec/des/asm/des-586.pl ipsec/des/asm/des686.pl
#  	ipsec/des/asm/desboth.pl ipsec/des/asm/readme
#
# Revision 1.8.2.1  2006/04/20 16:33:06  mcr
# remove all of CONFIG_KLIPS_ALG --- one can no longer build without it.
# Fix in-kernel module compilation. Sub-makefiles do not work.
#
# Revision 1.8  2005/05/11 03:15:42  mcr
# 	adjusted makefiles to sanely build modules properly.
#
# Revision 1.7  2005/04/13 22:52:12  mcr
# 	moved KLIPS specific snprintf() wrapper to seperate file.
#
# Revision 1.6  2004/08/22 05:02:03  mcr
# 	organized symbols such that it is easier to build modules.
#
# Revision 1.5  2004/08/18 01:43:56  mcr
# 	adjusted makefile enumation so that it can be used by module
# 	wrapper.
#
# Revision 1.4  2004/08/17 03:27:23  mcr
# 	klips 2.6 edits.
#
# Revision 1.3  2004/08/04 16:50:13  mcr
# 	removed duplicate definition of dx86unix.o
#
# Revision 1.2  2004/08/03 18:21:09  mcr
# 	only set KLIPS_TOP and OPENSWANSRCDIR if not already set.
#
# Revision 1.1  2004/07/26 15:02:22  mcr
# 	makefile for KLIPS module for 2.6.
#
# Revision 1.3  2004/02/24 17:17:04  mcr
# 	s/CONFIG_IPSEC/CONFIG_KLIPS/ as 26sec uses "CONFIG_IPSEC" to
# 	turn it on/off as well.
#
# Revision 1.2  2004/02/22 06:50:42  mcr
# 	kernel 2.6 port - merged with 2.4 code.
#
# Revision 1.1.2.1  2004/02/20 02:07:53  mcr
# 	module configuration for KLIPS 2.6
#
#
# Local Variables:
# compile-command: "(cd ../../.. && source umlsetup.sh && make -C ${POOLSPACE} module/ipsec.o)"
# End Variables:
#

