Annotation of truecrypt/linux/build.sh, revision 1.1.1.2

1.1       root        1: #!/bin/sh 
                      2: # TrueCrypt build script
                      3: 
                      4: KERNEL_SRC=/usr/src/linux-$(uname -r)
                      5: 
                      6: umask 022
                      7: 
                      8: error ()
                      9: {
                     10:        echo "Error: $*" >&2
                     11: }
                     12: 
                     13: check_kernel_version ()
                     14: {
                     15:        M="$1/Makefile"
1.1.1.2 ! root       16:        VER=$(grep '^VERSION *=' "$M" | head -n 1 | tr -d ' ' | cut -d'=' -f2)
        !            17:        VER=$VER.$(grep '^PATCHLEVEL *=' "$M" | head -n 1 | tr -d ' ' | cut -d'=' -f2)
        !            18:        VER=$VER.$(grep '^SUBLEVEL *=' "$M" | head -n 1 | tr -d ' ' | cut -d'=' -f2)
1.1       root       19: 
                     20:        [ $VER = $( uname -r | tr -- - . | cut -d. -f1-3) ] && return 0
                     21:        return 1
                     22: }
                     23: 
                     24: # Prerequisites
                     25: 
                     26: echo "Checking build requirements..."
                     27: 
                     28: [ $(id -u) -ne 0 ] && error "Administrator (root) privileges required" && exit 1
                     29: 
                     30: V=""
                     31: case "$(uname -r)" in
                     32:        [01].*) V=1 ;;
                     33:        2.[0-5].*) V=1 ;;
                     34:        2.6.[0-4]) V=1 ;;
                     35:        2.6.[0-4][.-]*) V=1 ;;
                     36: esac
                     37: [ "$V" ] && error "TrueCrypt requires Linux kernel 2.6.5 or later" && exit 1
                     38: 
                     39: [ ! -d $KERNEL_SRC ] && KERNEL_SRC=/usr/src/linux
                     40: if [ ! -d $KERNEL_SRC ] || ! check_kernel_version "$KERNEL_SRC"
                     41: then
                     42:        echo -n "Linux kernel ($(uname -r)) source directory [$KERNEL_SRC]: "
                     43:        read A
                     44:        [ "$A" ] && KERNEL_SRC="$A"
                     45:        [ ! -d $KERNEL_SRC ] && error "$KERNEL_SRC does not exit" && exit 1
                     46: fi 
                     47: 
                     48: if ! check_kernel_version "$KERNEL_SRC"
                     49: then
                     50:        error "Kernel source version in $KERNEL_SRC is not $(uname -r)"
                     51:        exit 1
                     52: fi
                     53: 
                     54: if [ ! -f "$KERNEL_SRC/.config" ]
                     55: then
                     56:        error "Kernel not configured. You should run make -C $KERNEL_SRC config modules"
                     57:        exit 1
                     58: fi
                     59: 
1.1.1.2 ! root       60: if [ ! -f "$KERNEL_SRC/drivers/md/dm.h" ]
        !            61: then
        !            62:        error "Kernel source code is incomplete - header file dm.h not found."
        !            63:        exit 1
        !            64: fi
        !            65: 
1.1       root       66: grep -qi 'CONFIG_BLK_DEV_DM=N' $KERNEL_SRC/.config && echo "Warning: kernel device mapper support (CONFIG_BLK_DEV_DM) is disabled in $KERNEL_SRC" && sleep 5
                     67: 
                     68: 
                     69: # Build
                     70: 
                     71: echo -n "Building kernel module... "
                     72: cd Kernel && make "KERNEL_SRC=$KERNEL_SRC" NO_WARNINGS=1 >/dev/null
                     73: [ $? -ne 0 ] && error "Failed to build kernel module" && exit 1
                     74: echo Done.
                     75: 
                     76: echo -n "Building truecrypt... "
                     77: cd ../Cli && make NO_WARNINGS=1 >/dev/null
                     78: [ $? -ne 0 ] && error "Failed to build truecrypt" && exit 1
                     79: echo Done.
                     80: 
                     81: exit 0

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.