1#!/bin/sh
2# mmap-win32 configure script
3#
4# Parts copied from FFmpeg's configure
5#
6
7set_all(){
8    value=$1
9    shift
10    for var in $*; do
11        eval $var=$value
12    done
13}
14
15enable(){
16    set_all yes $*
17}
18
19disable(){
20    set_all no $*
21}
22
23enabled(){
24    eval test "x\$$1" = "xyes"
25}
26
27disabled(){
28    eval test "x\$$1" = "xno"
29}
30
31show_help(){
32  echo "Usage: configure [options]"
33  echo "Options: [defaults in brackets after descriptions]"
34  echo "All \"enable\" options have \"disable\" counterparts"
35  echo
36  echo "  --help                    print this message"
37  echo "  --prefix=PREFIX           install in PREFIX [$PREFIX]"
38  echo "  --libdir=DIR              install libs in DIR [$PREFIX/lib]"
39  echo "  --incdir=DIR              install includes in DIR [$PREFIX/include]"
40  echo "  --enable-static           build static libraries [yes]"
41  echo "  --enable-msvc             create msvc-compatible import lib [auto]"
42  echo
43  echo "  --cc=CC                   use C compiler CC [$cc_default]"
44  echo "  --cross-prefix=PREFIX     use PREFIX for compilation tools [$cross_prefix]"
45  exit 1
46}
47
48die_unknown(){
49    echo "Unknown option \"$1\"."
50    echo "See $0 --help for available options."
51    exit 1
52}
53
54PREFIX="/mingw"
55libdir="${PREFIX}/lib"
56incdir="${PREFIX}/include/sys"
57ar="ar"
58cc_default="gcc"
59ranlib="ranlib"
60strip="strip"
61
62DEFAULT="msvc
63"
64
65DEFAULT_YES="static
66    stripping
67"
68
69CMDLINE_SELECT="$DEFAULT
70    $DEFAULT_NO
71    $DEFAULT_YES
72"
73
74enable  $DEFAULT_YES
75disable $DEFAULT_NO
76
77for opt do
78    optval="${opt#*=}"
79    case "$opt" in
80    --help)
81        show_help
82    ;;
83    --prefix=*)
84        PREFIX="$optval"
85    ;;
86    --libdir=*)
87        libdir="$optval"
88    ;;
89    --incdir=*)
90        incdir="$optval"
91    ;;
92    --cc=*)
93        cc="$optval"
94    ;;
95    --cross-prefix=*)
96        cross_prefix="$optval"
97    ;;
98    --enable-?*|--disable-?*)
99        eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
100        echo "$CMDLINE_SELECT" | grep -q "^ *$option\$" || die_unknown $opt
101        $action $option
102    ;;
103    *)
104        die_unknown $opt
105    ;;
106    esac
107done
108
109ar="${cross_prefix}${ar}"
110cc_default="${cross_prefix}${cc_default}"
111ranlib="${cross_prefix}${ranlib}"
112strip="${cross_prefix}${strip}"
113
114if ! test -z $cc; then
115    cc_default="${cc}"
116fi
117cc="${cc_default}"
118
119disabled static && {
120    echo "At least one library type must be set.";
121    exit 1;
122}
123
124if enabled msvc; then
125    lib /? > /dev/null 2>&1 /dev/null || {
126        echo "MSVC's lib command not found."
127        echo "Make sure MSVC is installed and its bin folder is in your \$PATH."
128        exit 1
129    }
130fi
131
132if ! enabled stripping; then
133    strip="echo ignoring strip"
134fi
135
136enabled msvc && libcmd="lib" || libcmd="echo ignoring lib"
137
138echo "# Automatically generated by configure" > config.mak
139echo "PREFIX=$PREFIX" >> config.mak
140echo "libdir=$libdir" >> config.mak
141echo "incdir=$incdir" >> config.mak
142echo "AR=$ar" >> config.mak
143echo "CC=$cc" >> config.mak
144echo "RANLIB=$ranlib" >> config.mak
145echo "STRIP=$strip" >> config.mak
146echo "BUILD_STATIC=$static" >> config.mak
147echo "BUILD_MSVC=$msvc" >> config.mak
148echo "LIBCMD=$libcmd" >> config.mak
149
150echo "prefix: $PREFIX"
151echo "libdir: $libdir"
152echo "incdir: $incdir"
153echo "ar:     $ar"
154echo "cc:     $cc"
155echo "ranlib: $ranlib"
156echo "strip:  $strip"
157echo "static: $static"
158