| 1 #!/bin/sh |
1 #!/bin/sh |
| |
2 |
| |
3 |
| |
4 # some utility functions |
| |
5 isplatform() |
| |
6 { |
| |
7 for p in $PLATFORM |
| |
8 do |
| |
9 if [ "$p" = "$1" ]; then |
| |
10 return 0 |
| |
11 fi |
| |
12 done |
| |
13 return 1 |
| |
14 } |
| |
15 notisplatform() |
| |
16 { |
| |
17 for p in $PLATFORM |
| |
18 do |
| |
19 if [ "$p" = "$1" ]; then |
| |
20 return 1 |
| |
21 fi |
| |
22 done |
| |
23 return 0 |
| |
24 } |
| |
25 istoolchain() |
| |
26 { |
| |
27 for t in $TOOLCHAIN |
| |
28 do |
| |
29 if [ "$t" = "$1" ]; then |
| |
30 return 0 |
| |
31 fi |
| |
32 done |
| |
33 return 1 |
| |
34 } |
| |
35 notistoolchain() |
| |
36 { |
| |
37 for t in $TOOLCHAIN |
| |
38 do |
| |
39 if [ "$t" = "$1" ]; then |
| |
40 return 1 |
| |
41 fi |
| |
42 done |
| |
43 return 0 |
| |
44 } |
| |
45 |
| |
46 # clean abort |
| |
47 abort_configure() |
| |
48 { |
| |
49 rm -Rf "$TEMP_DIR" |
| |
50 exit 1 |
| |
51 } |
| |
52 |
| |
53 # Test for availability of pkg-config |
| |
54 PKG_CONFIG=`command -v pkg-config` |
| |
55 : ${PKG_CONFIG:="false"} |
| |
56 |
| |
57 # Simple uname based platform detection |
| |
58 # $PLATFORM is used for platform dependent dependency selection |
| |
59 OS=`uname -s` |
| |
60 OS_VERSION=`uname -r` |
| |
61 printf "detect platform... " |
| |
62 if [ "$OS" = "SunOS" ]; then |
| |
63 PLATFORM="solaris sunos unix svr4" |
| |
64 elif [ "$OS" = "Linux" ]; then |
| |
65 PLATFORM="linux unix" |
| |
66 elif [ "$OS" = "FreeBSD" ]; then |
| |
67 PLATFORM="freebsd bsd unix" |
| |
68 elif [ "$OS" = "OpenBSD" ]; then |
| |
69 PLATFORM="openbsd bsd unix" |
| |
70 elif [ "$OS" = "NetBSD" ]; then |
| |
71 PLATFORM="netbsd bsd unix" |
| |
72 elif [ "$OS" = "Darwin" ]; then |
| |
73 PLATFORM="macos osx bsd unix" |
| |
74 elif echo "$OS" | grep -i "MINGW" > /dev/null; then |
| |
75 PLATFORM="windows mingw" |
| |
76 fi |
| |
77 : ${PLATFORM:="unix"} |
| |
78 |
| |
79 PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -` |
| |
80 echo "$PLATFORM_NAME" |
| |
81 |
| |
82 |
| |
83 # help text |
| |
84 printhelp() |
| |
85 { |
| |
86 echo "Usage: $0 [OPTIONS]..." |
| |
87 cat << __EOF__ |
| |
88 Installation directories: |
| |
89 --prefix=PREFIX path prefix for architecture-independent files |
| |
90 [$prefix] |
| |
91 --exec-prefix=EPREFIX path prefix for architecture-dependent files |
| |
92 [PREFIX] |
| |
93 |
| |
94 --bindir=DIR user executables [EPREFIX/bin] |
| |
95 --sbindir=DIR system admin executables [EPREFIX/sbin] |
| |
96 --libexecdir=DIR program executables [EPREFIX/libexec] |
| |
97 --sysconfdir=DIR system configuration files [PREFIX/etc] |
| |
98 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] |
| |
99 --localstatedir=DIR modifiable single-machine data [PREFIX/var] |
| |
100 --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run] |
| |
101 --libdir=DIR object code libraries [EPREFIX/lib] |
| |
102 --includedir=DIR C header files [PREFIX/include] |
| |
103 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] |
| |
104 --datadir=DIR read-only architecture-independent data [DATAROOTDIR] |
| |
105 --infodir=DIR info documentation [DATAROOTDIR/info] |
| |
106 --mandir=DIR man documentation [DATAROOTDIR/man] |
| |
107 --localedir=DIR locale-dependent data [DATAROOTDIR/locale] |
| |
108 |
| |
109 Build Types: |
| |
110 --debug add extra compile flags for debug builds |
| |
111 --release add extra compile flags for release builds |
| |
112 |
| |
113 Options: |
| |
114 --toolkit=(libadwaita|gtk4|gtk3|gtk2|gtk2legacy|qt5|qt4|motif) |
| |
115 |
| |
116 __EOF__ |
| |
117 } |
| 2 |
118 |
| 3 # create temporary directory |
119 # create temporary directory |
| 4 TEMP_DIR=".tmp-`uname -n`" |
120 TEMP_DIR=".tmp-`uname -n`" |
| 5 rm -Rf "$TEMP_DIR" |
121 rm -Rf "$TEMP_DIR" |
| 6 if mkdir -p "$TEMP_DIR"; then |
122 if mkdir -p "$TEMP_DIR"; then |
| 33 mandir= |
149 mandir= |
| 34 |
150 |
| 35 # custom variables |
151 # custom variables |
| 36 |
152 |
| 37 # features |
153 # features |
| 38 |
|
| 39 # clean abort |
|
| 40 abort_configure() |
|
| 41 { |
|
| 42 rm -Rf "$TEMP_DIR" |
|
| 43 exit 1 |
|
| 44 } |
|
| 45 |
|
| 46 # help text |
|
| 47 printhelp() |
|
| 48 { |
|
| 49 echo "Usage: $0 [OPTIONS]..." |
|
| 50 cat << __EOF__ |
|
| 51 Installation directories: |
|
| 52 --prefix=PREFIX path prefix for architecture-independent files |
|
| 53 [/usr] |
|
| 54 --exec-prefix=EPREFIX path prefix for architecture-dependent files |
|
| 55 [PREFIX] |
|
| 56 |
|
| 57 --bindir=DIR user executables [EPREFIX/bin] |
|
| 58 --sbindir=DIR system admin executables [EPREFIX/sbin] |
|
| 59 --libexecdir=DIR program executables [EPREFIX/libexec] |
|
| 60 --sysconfdir=DIR system configuration files [PREFIX/etc] |
|
| 61 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] |
|
| 62 --localstatedir=DIR modifiable single-machine data [PREFIX/var] |
|
| 63 --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run] |
|
| 64 --libdir=DIR object code libraries [EPREFIX/lib] |
|
| 65 --includedir=DIR C header files [PREFIX/include] |
|
| 66 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] |
|
| 67 --datadir=DIR read-only architecture-independent data [DATAROOTDIR] |
|
| 68 --infodir=DIR info documentation [DATAROOTDIR/info] |
|
| 69 --mandir=DIR man documentation [DATAROOTDIR/man] |
|
| 70 --localedir=DIR locale-dependent data [DATAROOTDIR/locale] |
|
| 71 |
|
| 72 Options: |
|
| 73 --debug add extra compile flags for debug builds |
|
| 74 --release add extra compile flags for release builds |
|
| 75 --toolkit=(libadwaita|gtk4|gtk3|gtk2|gtk2legacy|qt5|qt4|motif) |
|
| 76 |
|
| 77 __EOF__ |
|
| 78 } |
|
| 79 |
154 |
| 80 # |
155 # |
| 81 # parse arguments |
156 # parse arguments |
| 82 # |
157 # |
| 83 BUILD_TYPE="default" |
158 BUILD_TYPE="default" |
| 97 "--localstatedir="*) localstatedir=${ARG#--localstatedir=} ;; |
172 "--localstatedir="*) localstatedir=${ARG#--localstatedir=} ;; |
| 98 "--includedir="*) includedir=${ARG#--includedir=} ;; |
173 "--includedir="*) includedir=${ARG#--includedir=} ;; |
| 99 "--infodir="*) infodir=${ARG#--infodir=} ;; |
174 "--infodir="*) infodir=${ARG#--infodir=} ;; |
| 100 "--mandir"*) mandir=${ARG#--mandir} ;; |
175 "--mandir"*) mandir=${ARG#--mandir} ;; |
| 101 "--localedir"*) localedir=${ARG#--localedir} ;; |
176 "--localedir"*) localedir=${ARG#--localedir} ;; |
| 102 "--help"*) printhelp; abort_configure ;; |
177 "--help"*) printhelp; abort_configure ;; |
| 103 "--debug") BUILD_TYPE="debug" ;; |
178 "--debug") BUILD_TYPE="debug" ;; |
| 104 "--release") BUILD_TYPE="release" ;; |
179 "--release") BUILD_TYPE="release" ;; |
| 105 "--toolkit="*) OPT_TOOLKIT=${ARG#--toolkit=} ;; |
180 "--toolkit="*) OPT_TOOLKIT=${ARG#--toolkit=} ;; |
| |
181 "--toolkit") echo "option '$ARG' needs a value:"; echo " $ARG=(libadwaita|gtk4|gtk3|gtk2|gtk2legacy|qt5|qt4|motif)"; abort_configure ;; |
| 106 "-"*) echo "unknown option: $ARG"; abort_configure ;; |
182 "-"*) echo "unknown option: $ARG"; abort_configure ;; |
| 107 esac |
183 esac |
| 108 done |
184 done |
| 109 |
185 |
| 110 |
186 |
| 141 elif [ -f "$prefix/etc/config.site" ]; then |
217 elif [ -f "$prefix/etc/config.site" ]; then |
| 142 printf "loading site defaults... " |
218 printf "loading site defaults... " |
| 143 . "$prefix/etc/config.site" |
219 . "$prefix/etc/config.site" |
| 144 echo ok |
220 echo ok |
| 145 fi |
221 fi |
| 146 |
|
| 147 # Test for availability of pkg-config |
|
| 148 PKG_CONFIG=`command -v pkg-config` |
|
| 149 : ${PKG_CONFIG:="false"} |
|
| 150 |
|
| 151 # Simple uname based platform detection |
|
| 152 # $PLATFORM is used for platform dependent dependency selection |
|
| 153 OS=`uname -s` |
|
| 154 OS_VERSION=`uname -r` |
|
| 155 printf "detect platform... " |
|
| 156 if [ "$OS" = "SunOS" ]; then |
|
| 157 PLATFORM="solaris sunos unix svr4" |
|
| 158 elif [ "$OS" = "Linux" ]; then |
|
| 159 PLATFORM="linux unix" |
|
| 160 elif [ "$OS" = "FreeBSD" ]; then |
|
| 161 PLATFORM="freebsd bsd unix" |
|
| 162 elif [ "$OS" = "OpenBSD" ]; then |
|
| 163 PLATFORM="openbsd bsd unix" |
|
| 164 elif [ "$OS" = "NetBSD" ]; then |
|
| 165 PLATFORM="netbsd bsd unix" |
|
| 166 elif [ "$OS" = "Darwin" ]; then |
|
| 167 PLATFORM="macos osx bsd unix" |
|
| 168 elif echo "$OS" | grep -i "MINGW" > /dev/null; then |
|
| 169 PLATFORM="windows mingw" |
|
| 170 fi |
|
| 171 : ${PLATFORM:="unix"} |
|
| 172 |
|
| 173 PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -` |
|
| 174 echo "$PLATFORM_NAME" |
|
| 175 |
|
| 176 isplatform() |
|
| 177 { |
|
| 178 for p in $PLATFORM |
|
| 179 do |
|
| 180 if [ "$p" = "$1" ]; then |
|
| 181 return 0 |
|
| 182 fi |
|
| 183 done |
|
| 184 return 1 |
|
| 185 } |
|
| 186 notisplatform() |
|
| 187 { |
|
| 188 for p in $PLATFORM |
|
| 189 do |
|
| 190 if [ "$p" = "$1" ]; then |
|
| 191 return 1 |
|
| 192 fi |
|
| 193 done |
|
| 194 return 0 |
|
| 195 } |
|
| 196 istoolchain() |
|
| 197 { |
|
| 198 for t in $TOOLCHAIN |
|
| 199 do |
|
| 200 if [ "$t" = "$1" ]; then |
|
| 201 return 0 |
|
| 202 fi |
|
| 203 done |
|
| 204 return 1 |
|
| 205 } |
|
| 206 notistoolchain() |
|
| 207 { |
|
| 208 for t in $TOOLCHAIN |
|
| 209 do |
|
| 210 if [ "$t" = "$1" ]; then |
|
| 211 return 1 |
|
| 212 fi |
|
| 213 done |
|
| 214 return 0 |
|
| 215 } |
|
| 216 |
222 |
| 217 |
223 |
| 218 # generate vars.mk |
224 # generate vars.mk |
| 219 cat > "$TEMP_DIR/vars.mk" << __EOF__ |
225 cat > "$TEMP_DIR/vars.mk" << __EOF__ |
| 220 prefix=$prefix |
226 prefix=$prefix |