[IMPROVE] build.sh: command line args
[kernel/swap-modules.git] / build.sh
1 #!/bin/bash
2
3 modules_dir=`pwd`
4
5 if [ "$#" -lt 2 ] ; then
6         echo "Usage: $0 <kernel dir> <arch (arm/i386)> [<cross compile>]"
7         exit 1
8 fi
9
10 kernel_dir=$1
11 arch=$2
12 cross_compile=$3
13
14 if [ ${arch} = "arm" ] ; then
15         link_name="arm"
16 elif [ ${arch} = "i386" ] ; then
17         link_name="x86"
18 else
19         echo "Unknown arch $arch"
20         exit 1
21 fi
22
23 buffer_dir=${modules_dir}/buffer
24 writer_dir=${modules_dir}/writer
25 driver_new_dir=${modules_dir}/driver_new
26 kprobe_dir=${modules_dir}/kprobe
27 kprobe_arch_dir=${kprobe_dir}/arch
28 ksyms_dir=${modules_dir}/ksyms
29 ks_manager_dir=${modules_dir}/ks_manager
30 uprobe_dir=${modules_dir}/uprobe
31 uprobe_arch_dir=${uprobe_dir}/arch
32 us_manager_dir=${modules_dir}/us_manager
33 ks_features_dir=${modules_dir}/ks_features
34 sampler_dir=${modules_dir}/sampler
35 parser_dir=${modules_dir}/parser
36
37 driver_dir=${modules_dir}/driver
38 common_dir=${modules_dir}/../common
39
40 install_dir="/opt/swap/sdk"
41
42 rm ${kprobe_arch_dir}/asm
43 ln -s asm-${link_name} ${kprobe_arch_dir}/asm
44 rm ${uprobe_arch_dir}/asm
45 ln -s asm-${link_name} ${uprobe_arch_dir}/asm
46
47 buffer_module_name=swap_buffer.ko
48 buffer_inc=${modules_inc}
49 make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${buffer_dir} modules || exit 1
50
51 writer_module_name=swap_writer.ko
52 writer_inc=${modules_inc}
53 make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${writer_dir} modules || exit 1
54
55 driver_new_module_name=swap_driver_new.ko
56 make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${driver_new_dir} \
57         extra_cflags="-I${modules_dir}" modules || exit 1
58
59 kprobe_module_name=swap_kprobe.ko
60 make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${kprobe_dir} \
61         extra_cflags="-I${modules_dir} -I${kprobe_dir} -I${kprobe_arch_dir} -I${ksyms_dir}" \
62         modules || exit 1
63
64 ks_manager_module_name=swap_ks_manager.ko
65 make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${ks_manager_dir} \
66         extra_cflags="-I${kprobe_dir} -I${kprobe_arch_dir}" \
67         modules || exit 1
68
69 uprobe_module_name=swap_uprobe.ko
70 make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${uprobe_dir} \
71         extra_cflags="-I${modules_dir} -I${kprobe_dir} -I${kprobe_arch_dir} -I${uprobe_dir} -I${uprobe_arch_dir}" \
72         modules || exit 1
73
74 us_manager_module_name=swap_us_manager.ko
75 make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${us_manager_dir} \
76         extra_cflags="-I${modules_dir} -I${us_manager_dir} -I${kprobe_dir} -I${kprobe_arch_dir} -I${uprobe_dir} -I${uprobe_arch_dir} -I${driver_dir} -I${common_dir} -I${ksyms_dir}" \
77         modules || exit 1
78
79 ks_features_module_name=swap_ks_features.ko
80 make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${ks_features_dir} \
81         extra_cflags="-I${modules_dir} -I${kprobe_dir} -I${kprobe_arch_dir} -I${ksyms_dir}" \
82         modules || exit 1
83
84 sampler_module_name=swap_sampler.ko
85 make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${sampler_dir} \
86         extra_cflags="-I${modules_dir}" modules || exit 1
87
88 parser_module_name=swap_message_parser.ko
89 make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${parser_dir} \
90         extra_cflags="-I${modules_dir}" modules || exit 1
91
92 modules=\
93 "${buffer_dir}/${buffer_module_name} \
94 ${writer_dir}/${writer_module_name} \
95 ${driver_new_dir}/${driver_new_module_name} \
96 ${kprobe_dir}/${kprobe_module_name} \
97 ${ks_manager_dir}/${ks_manager_module_name} \
98 ${uprobe_dir}/${uprobe_module_name} \
99 ${us_manager_dir}/${us_manager_module_name} \
100 ${ks_features_dir}/${ks_features_module_name} \
101 ${sampler_dir}/${sampler_module_name} \
102 ${parser_dir}/${parser_module_name}"
103
104 # for m in ${modules} ; do
105 #       sdb -e push $m ${install_dir}
106 # done