blob: 802c7a703e4d5b605b7cdbd83b41aa573a7de751 (
plain)
1 --- truecrypt-4.3a/Linux/build.sh.orig 2010-05-17 23:18:38.256965720 +0900
2 +++ truecrypt-4.3a/Linux/build.sh 2010-05-17 23:19:47.604458859 +0900
3 @@ -11,154 +11,9 @@
4 KERNEL_BUILD=/lib/modules/$KERNEL_VER/build
5 KERNEL_SRC=/lib/modules/$KERNEL_VER/source
6
7 -TMP=.build.sh.tmp
8 -umask 022
9 -
10 -error ()
11 -{
12 - echo "Error: $*" >&2
13 -}
14 -
15 -check_kernel_version ()
16 -{
17 - M="$1/Makefile"
18 - [ ! -f "$M" ] && return 1
19 -
20 - VER=$(grep '^VERSION *=' "$M" | head -n 1 | tr -d ' ' | cut -d'=' -f2)
21 - VER=$VER.$(grep '^PATCHLEVEL *=' "$M" | head -n 1 | tr -d ' ' | cut -d'=' -f2)
22 - VER=$VER.$(grep '^SUBLEVEL *=' "$M" | head -n 1 | tr -d ' ' | cut -d'=' -f2)
23 -
24 - [ $VER = $(echo $KERNEL_VER | cut -d- -f1 | cut -d. -f1-3) ] && return 0
25 - return 1
26 -}
27 -
28 -# Prerequisites
29 -
30 -echo "Checking build requirements..."
31 -
32 -[ $(id -u) -ne 0 ] && error "Administrator (root) privileges required for kernel source configuration." && exit 1
33 -
34 -V=""
35 -case "$KERNEL_VER" in
36 - [01].*) V=1 ;;
37 - 2.[0-5].*) V=1 ;;
38 - 2.6.[0-4]) V=1 ;;
39 - 2.6.[0-4][.-]*) V=1 ;;
40 -esac
41 -[ "$V" ] && error "TrueCrypt requires Linux kernel 2.6.5 or later" && exit 1
42 -
43 -check_kernel_version "$KERNEL_SRC" || KERNEL_SRC=/usr/src/linux-$KERNEL_VER
44 -check_kernel_version "$KERNEL_SRC" || KERNEL_SRC=/usr/src/linux-source-$KERNEL_VER
45 -check_kernel_version "$KERNEL_SRC" || KERNEL_SRC=/usr/src/kernels/$KERNEL_VER-$(uname -p)
46 -check_kernel_version "$KERNEL_SRC" || KERNEL_SRC=/usr/src/linux-$(echo $KERNEL_VER | cut -d'-' -f1)
47 -check_kernel_version "$KERNEL_SRC" || KERNEL_SRC=/usr/src/linux-source-$(echo $KERNEL_VER | cut -d'-' -f1)
48 -check_kernel_version "$KERNEL_SRC" || KERNEL_SRC=/usr/src/linux
49 -
50 -if ! check_kernel_version "$KERNEL_SRC"
51 -then
52 - echo -n "Linux kernel ($KERNEL_VER) source directory [$KERNEL_SRC]: "
53 - read A
54 - [ "$A" ] && KERNEL_SRC="$A"
55 - [ ! -d "$KERNEL_SRC" ] && error "$KERNEL_SRC does not exit" && exit 1
56 -fi
57 -
58 -if ! check_kernel_version "$KERNEL_SRC"
59 -then
60 - error "Kernel source version in $KERNEL_SRC is not $KERNEL_VER"
61 - exit 1
62 -fi
63 -
64 -if [ ! -f "$KERNEL_SRC/drivers/md/dm.h" ]
65 -then
66 - error "Kernel source code is incomplete - $KERNEL_SRC/drivers/md/dm.h not found."
67 - exit 1
68 -fi
69 -
70 -if [ ! -d "$KERNEL_BUILD/include/asm/" -o ! -f "$KERNEL_BUILD/Module.symvers" -o ! -f "$KERNEL_BUILD/.config" ]
71 -then
72 - if [ ! -f "$KERNEL_SRC/.config" ]
73 - then
74 - if [ -f /proc/config.gz -o -f /boot/config-$KERNEL_VER -o -f /boot/config-$(uname -r) ]
75 - then
76 - echo -n "Configure kernel source according to the system configuration? [Y/n]: "
77 - read A
78 - if [ -z "$A" -o "$A" = "y" -o "$A" = "Y" ]
79 - then
80 - echo -n "Configuring kernel source in $KERNEL_SRC... "
81 -
82 - if [ -f /proc/config.gz ]
83 - then
84 - zcat /proc/config.gz >$KERNEL_SRC/.config || exit 1
85 - else
86 - if [ -f /boot/config-$(uname -r) ]
87 - then
88 - cp /boot/config-$(uname -r) $KERNEL_SRC/.config || exit 1
89 - else
90 - cp /boot/config-$KERNEL_VER $KERNEL_SRC/.config || exit 1
91 - fi
92 - fi
93 -
94 - make -C $KERNEL_SRC oldconfig </dev/null >/dev/null || exit 1
95 - echo Done.
96 - fi
97 - fi
98 -
99 - if [ ! -f "$KERNEL_SRC/.config" ]
100 - then
101 - error "Kernel not configured. You should run make -C $KERNEL_SRC config"
102 - exit 1
103 - fi
104 - fi
105 -
106 - if [ ! -d "$KERNEL_SRC/include/asm" ] && grep -q modules_prepare $KERNEL_SRC/Makefile
107 - then
108 - echo -n "Preparing kernel build system in $KERNEL_SRC... "
109 - if ! make -C $KERNEL_SRC modules_prepare >/dev/null 2>$TMP
110 - then
111 - cat $TMP; rm $TMP
112 - exit 1
113 - fi
114 - rm $TMP
115 - echo Done.
116 - fi
117 -
118 -
119 - if [ ! -d "$KERNEL_SRC/include/asm" -o ! -f "$KERNEL_SRC/Module.symvers" ]
120 - then
121 - echo -n "Building internal kernel modules (may take a long time)... "
122 - if ! make -C $KERNEL_SRC modules >/dev/null 2>$TMP
123 - then
124 - cat $TMP; rm $TMP
125 - exit 1
126 - fi
127 - rm $TMP
128 - echo Done.
129 - fi
130 -
131 - if [ ! -d "$KERNEL_SRC/include/asm" ]
132 - then
133 - error "Kernel source code is not prepared for building of modules - $KERNEL_SRC/include/asm not found."
134 - exit 1
135 - fi
136 -
137 - KERNEL_BUILD=$KERNEL_SRC
138 -fi
139 -
140 -if [ -f $KERNEL_BUILD/.config ]
141 -then
142 - grep -qi 'CONFIG_BLK_DEV_DM=[YM]' $KERNEL_BUILD/.config || echo "Warning: kernel device mapper support (CONFIG_BLK_DEV_DM) is disabled in $KERNEL_SRC"
143 -fi
144 -
145 # Build
146
147 echo -n "Building kernel module... "
148 -cd Kernel && make "KERNEL_SRC=$KERNEL_SRC" "KERNEL_BUILD=$KERNEL_BUILD" NO_WARNINGS=1 >/dev/null
149 -[ $? -ne 0 ] && error "Failed to build kernel module" && exit 1
150 -echo Done.
151 -
152 -echo -n "Building truecrypt... "
153 -cd ../Cli && make NO_WARNINGS=1 >/dev/null
154 -[ $? -ne 0 ] && error "Failed to build truecrypt" && exit 1
155 -echo Done.
156 +cd Kernel && make "KERNEL_SRC=$KERNEL_SRC" "KERNEL_BUILD=$KERNEL_BUILD" NO_WARNINGS=1 && \
157 +cd ../Cli && make NO_WARNINGS=1
158
159 -exit 0
|