78d052cec3f53f9cb575ce4029ba42a2eba4fa66
[openwrt/openwrt.git] / target / linux / generic / files / crypto / ocf / Makefile
1 # for SGlinux builds
2 -include $(ROOTDIR)/modules/.config
3
4 OCF_OBJS = crypto.o criov.o
5
6 ifdef CONFIG_OCF_RANDOMHARVEST
7 OCF_OBJS += random.o
8 endif
9
10 ifdef CONFIG_OCF_FIPS
11 OCF_OBJS += rndtest.o
12 endif
13
14 # Add in autoconf.h to get #defines for CONFIG_xxx
15 AUTOCONF_H=$(ROOTDIR)/modules/autoconf.h
16 ifeq ($(AUTOCONF_H), $(wildcard $(AUTOCONF_H)))
17 EXTRA_CFLAGS += -include $(AUTOCONF_H)
18 export EXTRA_CFLAGS
19 endif
20
21 ifndef obj
22 obj ?= .
23 _obj = subdir
24 mod-subdirs := safe hifn ixp4xx talitos ocfnull
25 export-objs += crypto.o criov.o random.o
26 list-multi += ocf.o
27 _slash :=
28 else
29 _obj = obj
30 _slash := /
31 endif
32
33 EXTRA_CFLAGS += -I$(obj)/.
34
35 obj-$(CONFIG_OCF_OCF) += ocf.o
36 obj-$(CONFIG_OCF_CRYPTODEV) += cryptodev.o
37 obj-$(CONFIG_OCF_CRYPTOSOFT) += cryptosoft.o
38 obj-$(CONFIG_OCF_BENCH) += ocf-bench.o
39
40 $(_obj)-$(CONFIG_OCF_SAFE) += safe$(_slash)
41 $(_obj)-$(CONFIG_OCF_HIFN) += hifn$(_slash)
42 $(_obj)-$(CONFIG_OCF_IXP4XX) += ixp4xx$(_slash)
43 $(_obj)-$(CONFIG_OCF_TALITOS) += talitos$(_slash)
44 $(_obj)-$(CONFIG_OCF_PASEMI) += pasemi$(_slash)
45 $(_obj)-$(CONFIG_OCF_EP80579) += ep80579$(_slash)
46 $(_obj)-$(CONFIG_OCF_CRYPTOCTEON) += cryptocteon$(_slash)
47 $(_obj)-$(CONFIG_OCF_KIRKWOOD) += kirkwood$(_slash)
48 $(_obj)-$(CONFIG_OCF_OCFNULL) += ocfnull$(_slash)
49 $(_obj)-$(CONFIG_OCF_C7108) += c7108$(_slash)
50 $(_obj)-$(CONFIG_OCF_UBSEC_SSB) += ubsec_ssb$(_slash)
51
52 ocf-objs := $(OCF_OBJS)
53
54 dummy:
55 @echo "Please consult the README for how to build OCF."
56 @echo "If you can't wait then the following should do it:"
57 @echo ""
58 @echo " make ocf_modules"
59 @echo " sudo make ocf_install"
60 @echo ""
61 @exit 1
62
63 $(list-multi) dummy1: $(ocf-objs)
64 $(LD) -r -o $@ $(ocf-objs)
65
66 .PHONY:
67 clean:
68 rm -f *.o *.ko .*.o.flags .*.ko.cmd .*.o.cmd .*.mod.o.cmd *.mod.c
69 rm -f */*.o */*.ko */.*.o.cmd */.*.ko.cmd */.*.mod.o.cmd */*.mod.c */.*.o.flags
70 rm -f */modules.order */modules.builtin modules.order modules.builtin
71
72 ifdef TOPDIR
73 -include $(TOPDIR)/Rules.make
74 endif
75
76 #
77 # targets to build easily on the current machine
78 #
79
80 ocf_make:
81 make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m
82 make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_CRYPTOSOFT=m
83 -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_BENCH=m
84 -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_OCFNULL=m
85 -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_HIFN=m
86
87 ocf_modules:
88 $(MAKE) ocf_make OCF_TARGET=modules
89
90 ocf_install:
91 $(MAKE) ocf_make OCF_TARGET="modules modules_install"
92 depmod
93 mkdir -p /usr/include/crypto
94 cp cryptodev.h /usr/include/crypto/.
95
96 #
97 # generate full kernel patches for 2.4 and 2.6 kernels to make patching
98 # your kernel easier
99 #
100
101 .PHONY: patch
102 patch:
103 patchbase=.; \
104 [ -d $$patchbase/patches ] || patchbase=..; \
105 patch=ocf-linux-base.patch; \
106 patch24=ocf-linux-24.patch; \
107 patch26=ocf-linux-26.patch; \
108 patch3=ocf-linux-3.patch; \
109 ( \
110 find . -name Makefile; \
111 find . -name Config.in; \
112 find . -name Kconfig; \
113 find . -name README; \
114 find . -name '*.[ch]' | grep -v '.mod.c'; \
115 ) | while read t; do \
116 diff -Nau /dev/null $$t | sed 's?^+++ \./?+++ linux/crypto/ocf/?'; \
117 done > $$patch; \
118 cat $$patchbase/patches/linux-2.4.35-ocf.patch $$patch > $$patch24; \
119 cat $$patchbase/patches/linux-2.6.38-ocf.patch $$patch > $$patch26; \
120 cat $$patchbase/patches/linux-3.2.1-ocf.patch $$patch > $$patch3; \
121
122
123 #
124 # this target probably does nothing for anyone but me - davidm
125 #
126
127 .PHONY: release
128 release:
129 REL=`date +%Y%m%d`; RELDIR=/tmp/ocf-linux-$$REL; \
130 CURDIR=`pwd`; \
131 rm -rf /tmp/ocf-linux-$$REL*; \
132 mkdir -p $$RELDIR/ocf; \
133 mkdir -p $$RELDIR/patches; \
134 mkdir -p $$RELDIR/crypto-tools; \
135 cp README* $$RELDIR/.; \
136 cp patches/[!C]* $$RELDIR/patches/.; \
137 cp tools/[!C]* $$RELDIR/crypto-tools/.; \
138 cp -r [!C]* Config.in $$RELDIR/ocf/.; \
139 rm -rf $$RELDIR/ocf/patches $$RELDIR/ocf/tools; \
140 rm -f $$RELDIR/ocf/README*; \
141 cp $$CURDIR/../../user/crypto-tools/[!C]* $$RELDIR/crypto-tools/.; \
142 make -C $$RELDIR/crypto-tools clean; \
143 make -C $$RELDIR/ocf clean; \
144 find $$RELDIR/ocf -name CVS | xargs rm -rf; \
145 cd $$RELDIR/..; \
146 tar cvf ocf-linux-$$REL.tar ocf-linux-$$REL; \
147 gzip -9n ocf-linux-$$REL.tar
148