qi: Bump to release 2.12
[dragora.git] / qi / configure
blob25cff491f25cd97c9d8219cae696c4bfe7107dc6
1 #! /bin/sh -
3 # Simple "configure" script for Qi.
5 # Copyright (c) 2016-2018, 2020-2022, 2024 Matias Fonzo, <selk@dragora.org>.
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
11 # http://www.apache.org/licenses/LICENSE-2.0
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
19 set -e
21 usage() {
22 printf '%s' \
23 "Usage: configure [options]
25 Defaults for the options are specified in brackets.
27 Options:
28 --prefix=DIR install files in DIR [${prefix}]
29 --exec-prefix=DIR base DIR for arch-dependent files [${exec_prefix}]
30 --bindir=DIR user executables [${bindir}]
31 --sbindir=DIR system admin executables [${sbindir}]
32 --libexecdir=DIR program executables [${libexecdir}]
33 --sysconfdir=DIR read-only single-machine data [${sysconfdir}]
34 --localstatedir=DIR modifiable single-machine data [${localstatedir}]
35 --datarootdir=DIR read-only arch-independent data root [${datarootdir}]
36 --infodir=DIR info documentation [${infodir}]
37 --mandir=DIR man documentation [${mandir}]
38 --docdir=DIR documentation root [${docdir}]
39 --arch=NAME architecture name to build packages [${arch}]
40 --packagedir=DIR directory for package installations [${packagedir}]
41 --targetdir=DIR target directory for symbolic links [${targetdir}]
42 --outdir=DIR output directory for binary packages [${outdir}]
43 --qi-cflags=CFLAGS default Qi C flags for compiler [${qi_cflags}]
44 --qi-cxxflags=CXXFLAGS default Qi C++ flags for compiler [${qi_cxxflags}]
45 --qi-ldflags=LDFLAGS default Qi flags for linker [${qi_ldflags}]
46 --qi-cppflags=CPPFLAGS default Qi C/C++ preprocessor flags [${qi_cppflags}]
50 # Defaults
51 prefix=/usr/local
52 exec_prefix='$(prefix)'
53 bindir='$(exec_prefix)/bin'
54 sbindir='$(exec_prefix)/sbin'
55 libexecdir='$(exec_prefix)/libexec'
56 sysconfdir='$(prefix)/etc'
57 localstatedir='$(prefix)/var'
58 datarootdir='$(prefix)/share'
59 infodir='$(datarootdir)/info'
60 mandir='$(datarootdir)/man'
61 docdir='$(datarootdir)/doc'
62 arch="$(uname -m)"
63 packagedir='$(prefix)/pkgs'
64 targetdir='$(prefix)'
65 outdir='$(localstatedir)/cache/qi/packages'
66 qi_cflags='-O2'
67 qi_cxxflags='-O2'
68 qi_ldflags=''
69 qi_cppflags=''
71 return_variables()
73 printf '%s\n' \
74 "prefix = $prefix" \
75 "exec_prefix = $exec_prefix" \
76 "bindir = $bindir" \
77 "sbindir = $sbindir" \
78 "libexecdir = $libexecdir" \
79 "sysconfdir = $sysconfdir" \
80 "localstatedir = $localstatedir" \
81 "datarootdir = $datarootdir" \
82 "infodir = $infodir" \
83 "mandir = $mandir" \
84 "docdir = $docdir" \
85 "arch = $arch" \
86 "packagedir = $packagedir" \
87 "targetdir = $targetdir" \
88 "outdir = $outdir" \
89 "qi_cflags = $qi_cflags" \
90 "qi_cxxflags = $qi_cxxflags" \
91 "qi_ldflags = $qi_ldflags" \
92 "qi_cppflags = $qi_cppflags" \
96 # Handle options
97 while test $# -gt 0
99 case $1 in
100 --prefix)
101 prefix="$2"
102 shift
104 --prefix=*)
105 prefix="${1#*=}"
107 --exec-prefix)
108 exec_prefix="$2"
109 shift
111 --exec-prefix=*)
112 exec_prefix="${1#*=}"
114 --bindir)
115 bindir="$2"
116 shift
118 --bindir=*)
119 bindir="${1#*=}"
121 --sbindir)
122 sbindir="$2"
123 shift
125 --sbindir=*)
126 sbindir="${1#*=}"
128 --libexecdir)
129 libexecdir="$2"
130 shift
132 --libexecdir=*)
133 libexecdir="${1#*=}"
135 --sysconfdir)
136 sysconfdir="$2"
137 shift
139 --sysconfdir=*)
140 sysconfdir="${1#*=}"
142 --localstatedir)
143 localstatedir="$2"
144 shift
146 --localstatedir=*)
147 localstatedir="${1#*=}"
149 --datarootdir)
150 datarootdir="$2"
151 shift
153 --datarootdir=*)
154 datarootdir="${1#*=}"
156 --infodir)
157 infodir="$2"
158 shift
160 --infodir=*)
161 infodir="${1#*=}"
163 --mandir)
164 mandir="$2"
165 shift
167 --mandir=*)
168 mandir="${1#*=}"
170 --docdir)
171 docdir="$2"
172 shift
174 --docdir=*)
175 docdir="${1#*=}"
177 --arch)
178 arch="$2"
179 shift
181 --arch=*)
182 arch="${1#*=}"
184 --packagedir)
185 packagedir="$2"
186 shift
188 --packagedir=*)
189 packagedir="${1#*=}"
191 --targetdir)
192 targetdir="$2"
193 shift
195 --targetdir=*)
196 targetdir="${1#*=}"
198 --outdir)
199 outdir="$2"
200 shift
202 --outdir=*)
203 outdir="${1#*=}"
205 --qi-cflags)
206 qi_cflags="$2"
207 shift
209 --qi-cflags=*)
210 qi_cflags="${1#*=}"
212 --qi-cxxflags)
213 qi_cxxflags="$2"
214 shift
216 --qi-cxxflags=*)
217 qi_cxxflags="${1#*=}"
219 --qi-ldflags)
220 qi_ldflags="$2"
221 shift
223 --qi-ldflags=*)
224 qi_ldflags="${1#*=}"
226 --qi-cppflags)
227 qi_cppflags="$2"
228 shift
230 --qi-cppflags=*)
231 qi_cppflags="${1#*=}"
233 --help | --hel | --he | --h | '--?' | -help | -hel | -he | -h | '-?' )
234 usage
235 exit
238 shift
239 break; # End of options.
242 echo "configure: WARNING: unrecognized option '${1}'" 1>&2
245 break
247 esac
248 shift
249 done
251 echo "Creating config.mak ..."
253 return_variables; # Show configured variables.
254 : > config.mak; # Clean up config.mak, first.
256 if return_variables > config.mak
257 then
258 touch src/qi.in && echo "OK, now you can run \`make'"