File: postinstall.sh.in

package info (click to toggle)
netcdf 1:4.7.4-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 104,952 kB
  • sloc: ansic: 228,683; sh: 10,980; yacc: 2,561; makefile: 1,319; lex: 1,173; xml: 173; awk: 2
file content (136 lines) | stat: -rw-r--r-- 2,720 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/bash
# Script to automatically build, install netcdf-fortran.
# Very rought draft.

DOCMAKE=""
DOAUTOTOOL=""
DOACTION=""
TARGVERSION="v4.4.4"

MARG=""
if [ $# -lt 1 ]; then
    echo ""
    echo "WARNING! THIS SCRIPT IS NOT MEANT TO BE RUN MANUALLY."
    echo "WARNING! THIS SCRIPT IS NOT MEANT TO BE RUN MANUALLY."
    echo ""
    exit 1
fi


##
# Check for 'git', exit if it's not found.
##
hash git 2>/dev/null1
if [ $? -eq 1 ]; then
    echo "ERROR: 'git' is required to install netcdf-fortran automatically"
    echo "through this method. Please reinstall git and try again."
    exit 1
fi

while getopts "a:t:" o; do
    case "${o}" in
        t)
            MARG=${OPTARG}
            ;;
        a)
            DOACTION=${OPTARG}
            ;;
        *)
            echo "Specify type with -t. Types are autotools or cmake."
            exit 1
            ;;
    esac
done


###
# Make sure we're specifying an allowed
# build system.
###
case ${MARG} in
    cmake)
        DOCMAKE="TRUE"
        ;;
    autotools)
        DOAUTOTOOL="TRUE"
        ;;
    *)
        echo "Illegal type. Types are autotools or cmake."
        exit 1
        ;;
esac

###
# Make sure we're performing a valid action.
###
case ${DOACTION} in
    build)
        ;;
    install)
        ;;
    *)
        echo "Illegal action."
        exit 1
        ;;
esac


###
# Fetch netcdf-fortran from git if need be.
###

if [ ! -d "netcdf-fortran" ]; then
    git clone http://github.com/unidata/netcdf-fortran

fi

cd netcdf-fortran
git checkout $TARGVERSION

###
# Invoke cmake to build netcdf-fortran
###

if [ "x$DOCMAKE" = "xTRUE" ]; then

    mkdir -p build
    cd build

    if [ "x$DOACTION" = "xbuild" ]; then
        cmake .. -DCMAKE_PREFIX_PATH=@CMAKE_INSTALL_PREFIX@ -DCMAKE_INSTALL_PREFIX=@CMAKE_INSTALL_PREFIX@ -DBUILD_SHARED_LIBS=@BUILD_SHARED_LIBS@ -DTEST_PARALLEL=@ENABLE_PARALLEL@ &&
        make && make test
    fi

    if [ "x$DOACTION" = "xinstall" ]; then
        make install
    fi

fi

if [ "x$DOAUTOTOOL" = "xTRUE" ]; then

    if [ "x$DOACTION" = "xbuild" ]; then
        if [ ! -f "configure" ]; then
            autoreconf -if
        fi

        STATIC_BUILD="--disable-static"
        if [ "x@enable_static@" = "xyes" ]; then
            STATIC_BUILD="--enable-static"
        fi

        SHARED_BUILD="--disable-shared"
        if [ "x@enable_shared@" = "xyes" ]; then
            SHARED_BUILD="--enable-shared"
        fi

        LIBS="@LIBS@" CFLAGS="-I@prefix@/include" LDFLAGS="-L@prefix@/lib" ./configure --prefix=@prefix@ $STATIC_BUILD $SHARED_BUILD
        LIBS="@LIBS@" make
        LIBS="@LIBS@" make check
    fi

    if [ "x$DOACTION" = "xinstall" ]; then
        make install
    fi

fi