Commit | Line | Data |
---|---|---|
ca1d1d23 JB |
1 | #!/bin/sh |
2 | # Configuration script for GNU Emacs | |
3 | # Copyright (C) 1992 Free Software Foundation, Inc. | |
4 | ||
5 | #This file is part of GNU Emacs. | |
6 | ||
7 | #GNU Emacs is free software; you can redistribute it and/or modify | |
8 | #it under the terms of the GNU General Public License as published by | |
9 | #the Free Software Foundation; either version 1, or (at your option) | |
10 | #any later version. | |
11 | ||
12 | #GNU Emacs is distributed in the hope that it will be useful, | |
13 | #but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | #GNU General Public License for more details. | |
16 | ||
17 | #You should have received a copy of the GNU General Public License | |
18 | #along with GNU Emacs; see the file COPYING. If not, write to | |
19 | #the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
20 | ||
21 | # Shell script to edit files and make symlinks in preparation for | |
22 | # compiling Emacs. | |
46947372 | 23 | # |
ca1d1d23 JB |
24 | # Usage: configure machine |
25 | # | |
26 | # If configure succeeds, it leaves its status in config.status. | |
46947372 | 27 | # If configure fails after disturbing the status quo, |
ca1d1d23 JB |
28 | # config.status is removed. |
29 | # | |
30 | ||
e065a56e JB |
31 | # Remove any leading "." elements from the path name. When this |
32 | # script is invoked from the config.status script, a new ./ gets added | |
33 | # to the the front of the path, resulting in a "././" prefix. That | |
34 | # prefix is then recorded in the resulting config.status file, so | |
35 | # basically each time config.status is used, it prepends another "./" | |
36 | # to the filename. This wouldn't be a problem, except that since | |
37 | # progname gets recorded in all the Makefiles this script produces, | |
38 | # move-if-changed thinks they're different when they're not. | |
39 | progname="`echo $0 | sed 's:^\(\./\)*::'`" | |
ca1d1d23 JB |
40 | |
41 | short_usage="Type \`${progname} -usage' for more information about options." | |
42 | ||
43 | usage_message="Usage: ${progname} MACHINENAME [-OPTION[=VALUE] ...] | |
4746118a JB |
44 | |
45 | This message needs to be updated. | |
46 | ||
ca1d1d23 JB |
47 | Set compilation and installation parameters for GNU Emacs, and report. |
48 | MACHINENAME is the machine to build for. See \`etc/MACHINES'. | |
49 | Options are: | |
50 | -opsystem=SYSTEM - operating system to build for; see \`etc/MACHINES'. | |
4746118a | 51 | -prefix=DIR - where to install Emacs's library files |
ca1d1d23 JB |
52 | These options have reasonable defaults (in []s), and may not be needed: |
53 | -g, -O - Passed to the compiler. If omitted, use -O only. | |
54 | -cc=COMPILER - Which compiler to use. Defaults to gcc if available. | |
55 | -libdir=DIR - where to look for arch-dependent library files | |
56 | -datadir=DIR - where to look for architecture-independent library files | |
8c0e7b73 | 57 | -bindir=DIR - where to install the Emacs executable, and some friends |
ca1d1d23 JB |
58 | -lisppath=PATH - colon-separated list of Elisp directories |
59 | -lockdir=DIR - where Emacs should do its file-locking stuff | |
60 | -window_system=none or [x11, if it is installed] - what window system to use | |
61 | -have_x_menu=yes or [no] - include menu support under X11 | |
62 | -gnu_malloc=[yes] or no - use the GNU memory allocator | |
63 | -rel_alloc=[yes] or no - use compacting allocator for buffers | |
64 | -highpri=N - run at N points higher-than-normal priority | |
8c0e7b73 | 65 | -lisp_float_type=[yes] or no - Support native floating point in Elisp |
ca1d1d23 JB |
66 | If successful, ${progname} leaves its status in config.status. If |
67 | unsuccessful after disturbing the status quo, config.status is removed." | |
68 | ||
69 | if [ ! -r ./src/lisp.h ]; then | |
70 | echo "${progname}: Can't find Emacs sources in \`./src'. | |
e5d77022 | 71 | Run this config script in the top directory of the Emacs source tree." >&2 |
ca1d1d23 JB |
72 | exit 1 |
73 | fi | |
74 | ||
75 | options=":\ | |
76 | usage:help:\ | |
77 | machine:opsystem:\ | |
78 | g:O:cc:\ | |
4746118a JB |
79 | prefix:bindir:emacsdir:datadir:lispdir:locallisppath:\ |
80 | lisppath:buildlisppath:statedir:lockdir:libdir:mandir:infodir:\ | |
ca1d1d23 JB |
81 | gnu_malloc:rel_alloc:highpri:lisp_float_type:\ |
82 | window_system:have_x_menu:\ | |
83 | " | |
84 | ||
85 | boolean_opts=":\ | |
86 | g:O:\ | |
87 | gnu_malloc:rel_alloc:lisp_float_type:have_x_menu:\ | |
88 | " | |
89 | ||
90 | config_h_opts=":\ | |
91 | highpri:gnu_malloc:rel_alloc:lisp_float_type:\ | |
92 | have_x_windows:have_x11:have_x_menu:\ | |
93 | c_switch_site:sigtype:\ | |
94 | " | |
95 | ||
4746118a | 96 | prefix= |
8c0e7b73 | 97 | bindir=/usr/local/bin |
ca1d1d23 JB |
98 | gnu_malloc=yes |
99 | lisp_float_type=yes | |
100 | ||
101 | # The default values for the following options are guessed at after other | |
102 | # options have been checked and given values, so we set them to null here. | |
103 | lisppath="" | |
104 | datadir="" | |
105 | libdir="" | |
106 | lockdir="" | |
107 | window_system="" | |
108 | have_x_menu="" | |
109 | ||
e065a56e JB |
110 | # Record all the arguments, so we can save them in config.status. |
111 | arguments="$*" | |
112 | ||
46947372 | 113 | echo "Examining options." |
4746118a JB |
114 | while [ $# != 0 ]; do |
115 | arg="$1" | |
ca1d1d23 JB |
116 | case "${arg}" in |
117 | -*) | |
118 | # Separate the switch name from the value it's being given. | |
119 | case "${arg}" in | |
120 | -*=* ) | |
121 | opt=`echo ${arg} | sed 's:^-\([^=]*\)=.*$:\1:'` | |
122 | val=`echo ${arg} | sed 's:^-[^=]*=\(.*\)$:\1:'` | |
123 | valomitted=no | |
124 | ;; | |
125 | -* ) | |
4746118a JB |
126 | # If FOO is a boolean argument, -FOO is equivalent to |
127 | # -FOO=yes. Otherwise, the value comes from the next | |
128 | # argument - see below. | |
ca1d1d23 JB |
129 | opt=`echo ${arg} | sed 's:^-\(.*\)$:\1:'` |
130 | val="yes" | |
131 | valomitted=yes | |
132 | ;; | |
133 | esac | |
134 | ||
135 | # Make sure the argument is valid and unambiguous. | |
136 | case ${options} in | |
137 | *:${opt}:* ) # Exact match. | |
138 | optvar=${opt} | |
139 | ;; | |
140 | *:${opt}*:${opt}*:* ) # Ambiguous prefix. | |
141 | echo "\`-${opt}' is an ambiguous switch; it could be any of the following:" | |
e5d77022 JB |
142 | # We can't just use tr to translate colons to newlines, since |
143 | # BSD sed and SYSV sed use different syntaxes for that. | |
144 | spaced_options=`echo ${options} | tr ':' ' '` | |
145 | echo `(for option in ${spaced_options}; do echo $option; done) \ | |
146 | | grep "^${opt}"` | |
ca1d1d23 JB |
147 | echo ${short_usage} |
148 | exit 1 | |
149 | ;; | |
150 | *:${opt}*:* ) # Unambigous prefix. | |
151 | optvar=`echo ${options} | sed 's/^.*:\('${opt}'[^:]*\):.*$/\1/'` | |
152 | ;; | |
153 | * ) | |
154 | (echo "\`-${opt}' is not a valid option." | |
155 | echo "${short_usage}") | more | |
156 | exit 1 | |
157 | ;; | |
158 | esac | |
159 | ||
160 | case "${optvar}" in | |
161 | usage | help) | |
162 | echo "${usage_message}" | more | |
163 | exit 1 | |
164 | ;; | |
165 | esac | |
166 | ||
167 | # If the variable is supposed to be boolean, make sure the value | |
168 | # given is either "yes" or "no". If not, make sure some value | |
169 | # was given. | |
170 | case "${boolean_opts}" in | |
171 | *:${optvar}:* ) | |
172 | case "${val}" in | |
173 | y | ye | yes ) val=yes ;; | |
174 | n | no ) val=no ;; | |
175 | * ) | |
176 | echo "The \`-${optvar}' option (\`-${opt}') is supposed to have a boolean | |
e5d77022 | 177 | value - set it to either \`yes' or \`no'." >&2 |
ca1d1d23 JB |
178 | exit 1 |
179 | ;; | |
180 | esac | |
181 | ;; | |
182 | *) | |
183 | if [ "${valomitted}" = "yes" ]; then | |
4746118a JB |
184 | if [ $# = 1 ]; then |
185 | (echo "${progname}: You must give a value for the \`-${opt}' option, as in | |
186 | \`-${opt}=FOO'." | |
187 | echo "${short_usage}") | more | |
188 | exit 1 | |
189 | fi | |
190 | shift; val="$1" | |
ca1d1d23 JB |
191 | fi |
192 | ;; | |
193 | esac | |
194 | ||
195 | eval "${optvar}=\"${val}\"" | |
196 | ;; | |
197 | *) | |
198 | machine=${arg} | |
199 | ;; | |
200 | esac | |
4746118a | 201 | shift |
ca1d1d23 JB |
202 | done |
203 | ||
204 | if [ "${machine}" = "" ]; then | |
205 | (echo "You must specify a machine name as an argument to ${progname}." | |
206 | echo "${short_usage}") | more | |
207 | exit 1 | |
208 | fi | |
209 | ||
46947372 | 210 | echo "Checking the machine." |
ca1d1d23 JB |
211 | machfile="m/${machine}.h" |
212 | if [ ! -r src/${machfile} ]; then | |
213 | echo "${progname}: Emacs has no configuration info for the machine called | |
214 | \`${machine}'. Look at etc/MACHINES for the names of machines | |
e5d77022 | 215 | that Emacs has been ported to." >&2 |
ca1d1d23 JB |
216 | exit 1 |
217 | fi | |
218 | ||
46947372 | 219 | echo "Checking the operating system." |
ca1d1d23 JB |
220 | if [ "${opsystem}" = "" ]; then |
221 | ||
222 | echo " No operating system explicitly specified." | |
46947372 | 223 | echo " Guessing, based on machine." |
ca1d1d23 JB |
224 | # Get the default operating system to go with the specified machine. |
225 | opsystem=`grep 'USUAL-OPSYS="' src/${machfile} \ | |
226 | | sed 's/^.*USUAL-OPSYS="\([^"]*\)".*$/\1/'` | |
227 | ||
228 | if [ "${opsystem}" = "" ]; then | |
229 | echo "${progname}: Emacs's configuration files don't suggest what operating | |
230 | system a \`${machine}' machine might run. Try specifying the | |
231 | operating system explicitly by passing ${progname} an | |
232 | \`-opsystem=SYSTEM-NAME' flag. Look at etc/MACHINES for the | |
e5d77022 | 233 | names of operating systems that Emacs has been ported to." >&2 |
ca1d1d23 JB |
234 | exit 1 |
235 | fi | |
236 | ||
237 | if [ "${opsystem}" = "note" ]; then | |
238 | echo "The \`${machine}' machine can be used with more than one operating | |
239 | system, and Emacs's configuration info isn't clever enough to figure | |
240 | out which one you're running. Run ${progname} with -machine and | |
241 | -opsystem arguments as specified below for the appropriate system. | |
242 | (This information comes from the file \`etc/MACHINES' - see that | |
243 | file for more detail.) | |
244 | ||
e5d77022 | 245 | " >&2 |
ca1d1d23 JB |
246 | sed < src/${machfile} -e '1,/NOTE-START/d' -e '/NOTE-END/,$d' | more |
247 | echo | |
248 | exit 1 | |
249 | fi | |
250 | ||
251 | opsysfile="s/${opsystem}.h" | |
252 | if [ ! -r src/${opsysfile} ]; then | |
253 | echo "${progname}: Emacs's configuration files say that the default | |
254 | operating system for the machine \`${machine}' is \`${opsystem}', | |
255 | but there is no configuration file for \`${opsystem}', so Emacs's | |
256 | default info is screwed up. Try specifying the operating system | |
e5d77022 | 257 | explicitly by passing ${progname} an \`-opsystem=SYSTEM-NAME' flag." >&2 |
ca1d1d23 JB |
258 | exit 1 |
259 | fi | |
260 | else | |
261 | opsysfile="s/${opsystem}.h" | |
262 | if [ ! -r src/${opsysfile} ]; then | |
263 | echo "${progname}: Emacs has no configuration info for the operating system | |
264 | \`${opsystem}'. Look at etc/MACHINES for the names of operating | |
e5d77022 | 265 | systems that Emacs has been ported to." >&2 |
ca1d1d23 JB |
266 | exit 1 |
267 | fi | |
268 | fi | |
269 | ||
4746118a JB |
270 | if [ ! "${prefix}" ]; then |
271 | prefix="/usr/local" | |
272 | fi | |
273 | ||
274 | if [ ! "${emacsdir}" ]; then | |
275 | emacsdir="${prefix}/emacs-19.0" | |
276 | fi | |
277 | ||
278 | if [ ! "${datadir}" ]; then | |
279 | datadir="${emacsdir}/etc" | |
280 | fi | |
281 | ||
282 | if [ ! "${lispdir}" ]; then | |
283 | lispdir="${emacsdir}/lisp" | |
284 | fi | |
285 | ||
286 | if [ ! "${locallisppath}" ]; then | |
287 | locallisppath="${emacsdir}/local-lisp" | |
288 | fi | |
289 | ||
290 | if [ ! "${lisppath}" ]; then | |
291 | lisppath="${locallisppath}:${lispdir}" | |
292 | fi | |
293 | ||
294 | if [ ! "${buildlisppath}" ]; then | |
295 | buildlisppath=../lisp | |
296 | fi | |
297 | ||
298 | if [ ! "${statedir}" ]; then | |
299 | statedir="${emacsdir}" | |
300 | fi | |
301 | ||
302 | if [ ! "${lockdir}" ]; then | |
303 | lockdir="${statedir}/lock" | |
304 | fi | |
305 | ||
306 | if [ "${libdir}" = "" ]; then | |
307 | libdir="${emacsdir}/arch-lib" | |
308 | fi | |
309 | ||
310 | if [ ! "${mandir}" ]; then | |
311 | mandir="/usr/man/man1" | |
312 | fi | |
313 | ||
314 | if [ ! "${infodir}" ]; then | |
315 | infodir="${prefix}/info" | |
ca1d1d23 JB |
316 | fi |
317 | ||
46947372 | 318 | echo "Checking window system." |
e5d77022 JB |
319 | # Note that SYSV `tr' doesn't handle character ranges. |
320 | window_system="`echo ${window_system} \ | |
321 | | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" | |
ca1d1d23 JB |
322 | case "${window_system}" in |
323 | "none" | "x11" | "x10" ) ;; | |
324 | "x" ) window_system=x11 ;; | |
325 | "" ) | |
46947372 | 326 | echo " No window system specifed. Looking for X Windows." |
ca1d1d23 JB |
327 | window_system=none |
328 | if [ -r /usr/lib/libX11.a -a -d /usr/include/X11 ]; then | |
329 | window_system=x11 | |
46947372 | 330 | fi |
ca1d1d23 JB |
331 | ;; |
332 | * ) | |
e5d77022 | 333 | echo "The \`-window_system' option must be set to \`none' or \`X11'." >&2 |
ca1d1d23 JB |
334 | exit 1 |
335 | ;; | |
336 | esac | |
337 | ||
338 | case "${window_system}" in | |
339 | x11 ) | |
340 | have_x_windows=yes | |
341 | have_x11=yes | |
342 | ;; | |
343 | x10 ) | |
344 | have_x_windows=yes | |
345 | have_x11=no | |
346 | ;; | |
347 | none ) | |
348 | have_x_windows=no | |
349 | have_x11=no | |
350 | ;; | |
351 | esac | |
352 | ||
ca1d1d23 JB |
353 | if [ "${have_x_menu}" = "" ]; then |
354 | have_x_menu=no | |
355 | fi | |
356 | ||
46947372 | 357 | echo "Checking for GCC." |
ca1d1d23 JB |
358 | case "${cc}" in |
359 | "" ) | |
360 | temppath=`echo $PATH | sed 's/^:/.:/ | |
361 | s/::/:.:/g | |
362 | s/:$/:./ | |
363 | s/:/ /g'` | |
364 | cc=`( | |
365 | for dir in ${temppath}; do | |
366 | if [ -f ${dir}/gcc ]; then echo gcc; exit 0; fi | |
367 | done | |
368 | echo cc | |
369 | )` | |
370 | ;; | |
371 | esac | |
372 | ||
4746118a JB |
373 | case "${cc}" in |
374 | "gcc" ) | |
375 | # With GCC, both O and g should default to yes, no matter what | |
376 | # the other is. | |
377 | case "${O},${g}" in | |
378 | , ) O=yes; g=yes ;; | |
379 | ,* ) O=yes; ;; | |
380 | *, ) g=yes ;; | |
381 | esac | |
382 | ;; | |
383 | "*" ) | |
384 | # With other compilers, treat them as mutually exclusive, | |
385 | # defaulting to debug. | |
386 | case "${O},${g}" in | |
387 | , ) O=no ; g=yes ;; | |
388 | ,no ) O=yes; ;; | |
389 | ,yes ) O=no ; ;; | |
390 | no, ) g=yes ;; | |
391 | yes, ) g=no ;; | |
392 | esac | |
393 | ;; | |
ca1d1d23 JB |
394 | esac |
395 | ||
4746118a JB |
396 | # What is the return type of a signal handler? We run |
397 | # /usr/include/signal.h through cpp and grep for the declaration of | |
398 | # the signal function. Yuck. | |
399 | echo "Looking for return type of signal handler functions." | |
400 | signal_h_file='' | |
401 | if [ -r /usr/include/signal.h ]; then | |
402 | signal_h_file=/usr/include/signal.h | |
403 | elif [ -r /usr/include/sys/signal.h ]; then | |
404 | signal_h_file=/usr/include/sys/signal.h | |
405 | fi | |
406 | sigtype=void | |
407 | if [ "${signal_h_file}" ]; then | |
408 | sigpattern='[ ]*([ ]*\*[ ]*signal[ ]*(' | |
409 | ||
410 | # We make a symbolic link whose name ends in .c, so the compiler | |
411 | # won't complain about having only been given a .h file. | |
412 | tempcname="configure.tmp.$$.c" | |
413 | ln -s ${signal_h_file} ${tempcname} | |
414 | if ${cc} -E ${tempcname} | grep "int${sigpattern}" > /dev/null; then | |
415 | sigtype=int | |
416 | fi | |
417 | rm ${tempcname} | |
418 | fi | |
419 | ||
46947372 JB |
420 | echo "Examining the machine- and system-dependent files to find out" |
421 | echo " - which libraries the lib-src programs will want, and" | |
422 | echo " - whether the GNU malloc routines are usable." | |
423 | tempcname="configure.tmp.$$.c" | |
ca1d1d23 JB |
424 | echo '#include "src/'${machfile}'" |
425 | #include "src/'${opsysfile}'" | |
426 | #ifndef LIBS_MACHINE | |
427 | #define LIBS_MACHINE | |
428 | #endif | |
429 | #ifndef LIBS_SYSTEM | |
430 | #define LIBS_SYSTEM | |
431 | #endif | |
4746118a | 432 | @configure@ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM |
46947372 | 433 | #ifdef SYSTEM_MALLOC |
4746118a | 434 | @configure@ system_malloc=yes |
46947372 | 435 | #else |
4746118a | 436 | @configure@ system_malloc=no |
46947372 JB |
437 | #endif |
438 | ' > ${tempcname} | |
4746118a JB |
439 | eval `${cc} -E ${tempcname} \ |
440 | | grep '@configure@' \ | |
441 | | sed -e 's/^@configure@//'` | |
46947372 JB |
442 | rm ${tempcname} |
443 | ||
444 | # Do the opsystem or machine files prohibit the use of the GNU malloc? | |
445 | if [ "${system_malloc}" = "yes" ]; then | |
446 | gnu_malloc=no | |
447 | gnu_malloc_reason=" | |
448 | (The GNU allocators don't work with this machine and/or operating system.)" | |
449 | fi | |
450 | ||
451 | if [ ! "${rel_alloc}" ]; then | |
452 | rel_alloc=${gnu_malloc} | |
453 | fi | |
ca1d1d23 JB |
454 | |
455 | rm -f config.status | |
456 | set -e | |
457 | ||
458 | # Make the proper settings in the config file. | |
46947372 | 459 | echo "Making src/config.h from src/config.h.in" |
ca1d1d23 JB |
460 | if [ "${highpri}" != "" ]; then |
461 | highpri="(-${highpri})" | |
462 | fi | |
463 | case "${g}" in | |
464 | "yes" ) c_switch_site="${c_switch_site} -g" ;; | |
465 | esac | |
466 | case "${O}" in | |
467 | "yes" ) c_switch_site="${c_switch_site} -O" ;; | |
468 | esac | |
469 | sed_flags="-e 's:@machine@:${machfile}:'" | |
470 | sed_flags="${sed_flags} -e 's:@opsystem@:${opsysfile}:'" | |
471 | for flag in `echo ${config_h_opts} | tr ':' ' '`; do | |
e5d77022 | 472 | # Note that SYSV `tr' doesn't handle character ranges. |
4746118a JB |
473 | cflagname=`echo ${flag} \ |
474 | | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ` | |
ca1d1d23 JB |
475 | val=`eval echo '$'${flag}` |
476 | case ${val} in | |
477 | no | "") | |
478 | f="-e 's:.*#define ${cflagname}.*:/\\* #define ${cflagname} \\*/:'" | |
479 | ;; | |
480 | yes) | |
481 | f="-e 's:.*#define ${cflagname}.*:#define ${cflagname}:'" | |
482 | ;; | |
483 | *) | |
484 | f="-e 's:.*#define ${cflagname}.*:#define ${cflagname} ${val}:'" | |
485 | ;; | |
486 | esac | |
487 | sed_flags="${sed_flags} ${f}" | |
488 | done | |
a88b5c25 | 489 | rm -f src/config.h.tmp |
e065a56e JB |
490 | eval '/bin/sed '${sed_flags}' < src/config.h.in > src/config.h.tmp' |
491 | ./move-if-change src/config.h.tmp src/config.h | |
46947372 JB |
492 | # Remind people not to edit this. |
493 | chmod -w src/config.h | |
ca1d1d23 JB |
494 | |
495 | # Modify the parameters in the top makefile. | |
46947372 | 496 | echo "Producing ./Makefile from ./Makefile.in." |
a88b5c25 | 497 | rm -f Makefile.tmp |
46947372 JB |
498 | (echo "# This file is generated by \`${progname}' from \`./Makefile.in'. |
499 | # If you are thinking about editing it, you should seriously consider | |
500 | # editing \`./Makefile.in' itself, or running \`${progname}' instead." | |
501 | /bin/sed < Makefile.in \ | |
502 | -e '/^# DIST: /d' \ | |
4746118a | 503 | -e 's;^\(prefix=\).*$;\1'"${prefix};" \ |
46947372 | 504 | -e 's;^\(bindir=\).*$;\1'"${bindir};" \ |
4746118a | 505 | -e 's;^\(emacsdir=\).*$;\1'"${emacsdir};" \ |
46947372 | 506 | -e 's;^\(datadir=\).*$;\1'"${datadir};" \ |
4746118a JB |
507 | -e 's;^\(lispdir=\).*$;\1'"${lispdir};" \ |
508 | -e 's;^\(locallisppath=\).*$;\1'"${locallisppath};" \ | |
509 | -e 's;^\(lisppath=\).*$;\1'"${lisppath};" \ | |
510 | -e 's;^\(buildlisppath=\).*$;\1'"${buildlisppath};" \ | |
511 | -e 's;^\(statedir=\).*$;\1'"${statedir};" \ | |
46947372 | 512 | -e 's;^\(lockdir=\).*$;\1'"${lockdir};" \ |
4746118a JB |
513 | -e 's;^\(libdir=\).*$;\1'"${libdir};" \ |
514 | -e 's;^\(mandir=\).*$;\1'"${mandir};" \ | |
515 | -e 's;^\(infodir=\).*$;\1'"${infodir};" \ | |
e065a56e JB |
516 | ) > ./Makefile.tmp |
517 | ./move-if-change Makefile.tmp Makefile | |
46947372 JB |
518 | # Remind people not to edit this. |
519 | chmod -w ./Makefile | |
ca1d1d23 JB |
520 | |
521 | # Modify the parameters in the `build-install' script. | |
46947372 | 522 | echo "Producing ./build-install from ./build-install.in." |
a88b5c25 | 523 | rm -f ./build-install.tmp |
46947372 JB |
524 | (echo "# This file is generated by \`${progname}' from \`./build-install.in'. |
525 | # If you are thinking about editing it, you should seriously consider | |
526 | # editing \`./build-install.in' itself, or running \`${progname}' instead." | |
527 | /bin/sed < build-install.in \ | |
4746118a JB |
528 | -e 's;^\(prefix=\).*$;\1'"${prefix};" \ |
529 | -e 's;^\(bindir=\).*$;\1'"${bindir};" \ | |
530 | -e 's;^\(lisppath=\).*$;\1'"${lisppath};" \ | |
531 | -e 's;^\(datadir=\).*$;\1'"${datadir};" \ | |
532 | -e 's;^\(lockdir=\).*$;\1'"${lockdir};" \ | |
e065a56e JB |
533 | -e 's;^\(libdir=\).*$;\1'"${libdir};") > ./build-install.tmp |
534 | ./move-if-change build-install.tmp build-install | |
46947372 JB |
535 | # Remind people not to edit this. |
536 | chmod -w build-install | |
537 | chmod +x build-install | |
ca1d1d23 JB |
538 | |
539 | # Modify the parameters in the src makefile. | |
46947372 | 540 | echo "Producing src/Makefile from src/Makefile.in." |
a88b5c25 | 541 | rm -f src/Makefile.tmp |
46947372 JB |
542 | (echo "# This file is generated by \`${progname}' from \`Makefile.in'. |
543 | # If you are thinking about editing it, you should seriously consider | |
544 | # editing \`Makefile.in' itself, or running \`${progname}' instead." | |
545 | /bin/sed < src/Makefile.in \ | |
e065a56e JB |
546 | -e 's;^\(CC[ ]*=\).*$;\1'"${cc};") > src/Makefile.tmp |
547 | ./move-if-change src/Makefile.tmp src/Makefile | |
46947372 JB |
548 | # Remind people not to edit this. |
549 | chmod -w src/Makefile | |
ca1d1d23 JB |
550 | |
551 | # Modify the parameters in the lib-src makefile. | |
46947372 | 552 | echo "Producing lib-src/Makefile from lib-src/Makefile.in." |
a88b5c25 | 553 | rm -f lib-src/Makefile.tmp |
46947372 JB |
554 | (echo "# This file is generated by \`${progname}' from \`Makefile.in'. |
555 | # If you are thinking about editing it, you should seriously consider | |
556 | # editing \`Makefile.in' itself, or running \`${progname}' instead." | |
557 | /bin/sed < lib-src/Makefile.in \ | |
558 | -e 's;^\(CFLAGS=\).*$;\1'"${c_switch_site};" \ | |
559 | -e 's;^\(LOADLIBES=\).*$;\1'"${libsrc_libs};" \ | |
e065a56e JB |
560 | -e 's;^\(CC=\).*$;\1'"${cc};") > lib-src/Makefile.tmp |
561 | ./move-if-change lib-src/Makefile.tmp lib-src/Makefile | |
46947372 JB |
562 | # Remind people not to edit this. |
563 | chmod -w lib-src/Makefile | |
564 | ||
ca1d1d23 | 565 | |
8c0e7b73 | 566 | # Create a verbal description of what we have done. |
4746118a JB |
567 | if [ "${highpri}" ]; then |
568 | desc_highpri="${highpri}" | |
569 | else | |
570 | desc_highpri="none" | |
571 | fi | |
e5d77022 JB |
572 | message="Configured for machine \`${machine}' running \`${opsystem}'. |
573 | The following values have been set in ./Makefile and ./build-install: | |
574 | \`make install' or \`build-install' will placed executables in | |
575 | ${bindir}. | |
576 | Emacs's lisp search path will be | |
577 | \`${lisppath}'. | |
578 | Emacs will look for its architecture-independent data in | |
579 | ${datadir}. | |
580 | Emacs will look for its utility programs and other architecture- | |
581 | dependent data in | |
582 | ${libdir}. | |
583 | Emacs will keep track of file-locking in | |
584 | ${lockdir}. | |
585 | The following values have been set in src/config.h: | |
586 | At how much higher than normal priority should Emacs run? ${desc_highpri} | |
587 | Should Emacs use the GNU version of malloc? ${gnu_malloc}${gnu_malloc_reason} | |
588 | Should Emacs use the relocating allocator for buffers? ${rel_alloc} | |
589 | Should Emacs support a floating point Elisp type? ${lisp_float_type} | |
590 | What window system should Emacs use? ${window_system} | |
591 | Should Emacs support mouse menus, which require X11? ${have_x_menu} | |
592 | What compiler should emacs be built with? ${cc} | |
593 | Should the compilation use \`-g' and/or \`-O'? ${c_switch_site- neither}" | |
8c0e7b73 JB |
594 | |
595 | # Document the damage we have done by writing config.status. | |
596 | ||
597 | echo '#!/bin/sh' > config.status | |
598 | ||
599 | echo "# This file is generated by \`${progname}.' | |
600 | # If you are thinking about editing it, you should seriously consider | |
601 | # running \`${progname}' instead. | |
602 | " >> config.status | |
e5d77022 | 603 | echo "${message}" | sed -e 's/^/# /' >> config.status |
e065a56e | 604 | echo "'./${progname}' ${arguments} "'$@' >> config.status |
46947372 JB |
605 | # Remind people not to edit this. |
606 | chmod -w config.status | |
8c0e7b73 JB |
607 | chmod +x config.status |
608 | ||
609 | # Print the description. | |
ca1d1d23 | 610 | echo |
e5d77022 | 611 | echo "${message}" |
ca1d1d23 JB |
612 | |
613 | exit 0 |