Whamcloud - gitweb
LU-1032 build: DKMS RPM for Lustre Client modules
[fs/lustre-release.git] / lustre / scripts / dkms.mkconf.in
1 #!/bin/sh
2
3 PROG=$0
4
5 pkgcfg=/etc/sysconfig/lustre
6
7 while getopts "n:v:c:f:" opt; do
8         case $opt in
9                 n) pkgname=$OPTARG ;;
10                 v) pkgver=$OPTARG  ;;
11                 c) pkgcfg=$OPTARG ;;
12                 f) filename=$OPTARG ;;
13         esac
14 done
15
16 if [ -z "${pkgname}" -o -z "${pkgver}" -o -z "${filename}" ]; then
17         echo "Usage: $PROG -n <pkgname> -v <pkgver> -c <pkgcfg> -f <filename>"
18         exit 1
19 fi
20
21 rpm -qa | grep krb5-devel >/dev/null
22 if [ $? == 0 ] ; then
23         GSS="--enable-gss"
24 else
25         GSS="--disable-gss"
26 fi
27
28 cat >${filename} <<EOF
29 PACKAGE_NAME="${pkgname}"
30 PACKAGE_VERSION="${pkgver}"
31 PACKAGE_CONFIG="${pkgcfg}"
32 EOF
33 if [ $pkgname = "lustre" ] ; then
34         cat >>${filename} <<EOF
35 SPL_VERSION=\$(dkms status -m spl -k \${kernelver}/\${arch} | awk -F', ' '{print \$2; exit 0}' | sed 's/: added\$//')
36 ZFS_VERSION=\$(dkms status -m zfs -k \${kernelver}/\${arch} | awk -F', ' '{print \$2; exit 0}' | sed 's/: added\$//')
37 EOF
38 fi
39 cat >>${filename} <<EOF
40 # allow to re-evaluate krb5-devel presence during dkms re-adds and to re-create dkms.conf
41 # accordingly!
42 POST_ADD="lustre-dkms_post-add.sh \$module \$module_version \$kernelver \$kernel_source_dir \
43          \$arch \$source_tree \$dkms_tree"
44 PRE_BUILD="configure
45   --prefix=/usr
46   --with-linux=\${kernel_source_dir}
47   --with-linux-obj=\${kernel_source_dir}
48   --enable-modules
49 EOF
50 if [ $pkgname = "lustre-client" ] ; then
51         cat >>${filename} <<EOF
52   --disable-server
53 EOF
54 else
55         cat >>${filename} <<EOF
56   --enable-server
57   --with-spl=\${source_tree}/spl-\${SPL_VERSION}
58   --with-spl-obj=\${dkms_tree}/spl/\${SPL_VERSION}/\${kernelver}/\${arch}
59   --with-zfs=\${source_tree}/zfs-\${ZFS_VERSION}
60   --with-zfs-obj=\${dkms_tree}/zfs/\${ZFS_VERSION}/\${kernelver}/\${arch}
61   --disable-ldiskfs
62 EOF
63 fi
64 cat >>${filename} <<EOF
65   --disable-iokit
66   --disable-snmp
67   --disable-doc
68   --disable-utils
69   $GSS
70   --disable-tests
71   --disable-maintainer-mode
72   --disable-manpages
73   --disable-dlc
74   \$(
75     [[ -r \${PACKAGE_CONFIG} ]] \\
76     && source \${PACKAGE_CONFIG} \\
77     && shopt -q -s extglob \\
78     && \\
79     {
80       if [[ \${LUSTRE_DKMS_DISABLE_CDEBUG,,} == @(y|yes) ]]
81       then
82         echo --disable-libcfs-cdebug
83       fi
84       if [[ \${LUSTRE_DKMS_DISABLE_TRACE,,} == @(y|yes) ]]
85       then
86         echo --disable-libcfs-trace
87       fi
88       if [[ \${LUSTRE_DKMS_DISABLE_ASSERT,,} == @(y|yes) ]]
89       then
90         echo --disable-libcfs-assert
91       fi
92     }
93   )
94 "
95 EOF
96 if [ $pkgname = "lustre" ] ; then
97         cat >>${filename} <<EOF
98 BUILD_DEPENDS[0]="zfs"
99 EOF
100 fi
101 cat >>${filename} <<EOF
102 AUTOINSTALL="yes"
103 REMAKE_INITRD="no"
104 MAKE[0]="make"
105 # just have to set STRIP[0], it will become the new default.
106 STRIP[0]="\$(
107   [[ -r \${PACKAGE_CONFIG} ]] \\
108   && source \${PACKAGE_CONFIG} \\
109   && shopt -q -s extglob \\
110   && [[ \${LUSTRE_DKMS_DISABLE_STRIP,,} == @(y|yes) ]] \\
111   && echo -n no
112 )"
113
114 # Common modules for both Client & Server
115 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lnet_selftest"
116 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/selftest/"
117 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lnet/"
118 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lnet"
119 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/lnet/"
120 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lnet/"
121 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ksocklnd"
122 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/socklnd/"
123 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lnet/"
124 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ko2iblnd"
125 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/o2iblnd/"
126 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lnet/"
127 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="libcfs"
128 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="libcfs/libcfs/"
129 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
130 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ptlrpc"
131 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ptlrpc/"
132 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
133 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lov"
134 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lov/"
135 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
136 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="fld"
137 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/fld/"
138 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
139 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="obdecho"
140 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/obdecho/"
141 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
142 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="osc"
143 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/osc/"
144 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
145 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mgc"
146 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mgc/"
147 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
148 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="llite_lloop"
149 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/llite/"
150 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
151 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="fid"
152 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/fid/"
153 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
154 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mdc"
155 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mdc/"
156 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
157 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="obdclass"
158 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/obdclass/"
159 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
160 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lmv"
161 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lmv/"
162 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
163 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lustre"
164 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/llite/"
165 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
166 EOF
167 if [ $GSS = "--enable-gss" ] ; then
168         cat >>${filename} <<EOF
169 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ptlrpc_gss"
170 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ptlrpc/gss/"
171 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
172 EOF
173 fi
174 if [ $pkgname = "lustre" ] ; then
175         cat >>${filename} <<EOF
176 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ofd"
177 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ofd/"
178 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
179 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ost"
180 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ost/"
181 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
182 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lfsck"
183 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lfsck/"
184 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
185 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="osd_zfs"
186 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/osd-zfs/"
187 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
188 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mgs"
189 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mgs/"
190 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
191 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lquota"
192 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/quota/"
193 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
194 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mdt"
195 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mdt/"
196 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
197 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="osp"
198 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/osp/"
199 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
200 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mdd"
201 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mdd/"
202 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
203 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="llog_test"
204 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/obdclass/"
205 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
206 BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lod"
207 BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lod/"
208 DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
209 EOF
210 fi