1 dnl == autoconf source for the Glasgow FP tools ==
2 dnl (grep for '^dnl' to see the outline of this file)
4 dnl * INITIAL SETUP, CHOICE OF PLATFORM(S)
7 # (c) The AQUA Project, Glasgow University, 1994-1997
9 # Configure script for the Glasgow functional programming tools
10 # (created automagically by autoconf...do not edit by hand)
12 # Do "./configure --help" to see what flags are available.
13 # (Better yet, read the documentation!)
15 # First off, a distrib sanity check..
16 AC_INIT(mk/config.mk.in)
18 # -------------------------------------------------------------------------
19 # Prepare to generate the following header files
22 AC_CONFIG_HEADER(mk/config.h)
24 # No, we don't do `--srcdir'...
25 if test x"$srcdir" != 'x.' ; then
26 echo "This configuration does not support the \`--srcdir' option.."
31 # Remove common automounter nonsense + convert from UNC to DOS style paths
32 # (cygwin32-beta18 for UNC isn't quite there yet.)
35 hardtop=`echo $hardtop | sed 's|^/tmp_mnt.*\(/local/.*\)$|\1|' | sed 's|^/tmp_mnt/|/|' | sed 's|^/grasp_tmp|/local/grasp_tmp|' | sed 's|^//\(.\)/|\1:/|' `
38 echo "*** The top of your build tree is: $hardtop"
41 ####--------------------------------------------------------------------
42 dnl ** choose host(/target/build) platform
44 # Guess host/target/build platform(s) if necessary.
48 # "$host" defaults to "$target"
49 if test "x$host" = xNONE ; then
52 # "$build" defaults to "$host"
53 #if test "x$build" = xNONE ; then
56 # echo "This configuration does not support the \`--build' option."
60 dnl ** canonicalize platform names
61 # Canonicali[sz]e those babies
62 BuildPlatform=`/bin/sh $srcdir/config.sub $build` || exit 1
63 HostPlatform=`/bin/sh $srcdir/config.sub $host` || exit 1
64 TargetPlatform=`/bin/sh $srcdir/config.sub $target` || exit 1
66 if test x"$TargetPlatform" != x"$HostPlatform" ; then
67 echo "GHC configuration does not support differing host/target (i.e., cross-compiling)"
73 # The following will be more difficult when we *are* cross-compiling.
74 # Suitable names to slam in *_CPP are in platform.h.in.
75 # We also record the architecture, vendor, and operating system (OS)
79 HostPlatform=alpha-dec-osf1 # canonicalise for our purposes
80 TargetPlatform=alpha-dec-osf1 # this will work for now... (hack)
81 BuildPlatform=alpha-dec-osf1 # hack
82 HostPlatform_CPP='alpha_dec_osf1'
88 HostPlatform=alpha-dec-osf3 # canonicalise for our purposes
89 TargetPlatform=alpha-dec-osf3 # this will work for now... (hack)
90 BuildPlatform=alpha-dec-osf3 # hack
91 HostPlatform_CPP='alpha_dec_osf3'
97 HostPlatform=hppa1.1-hp-hpux # canonicalise for our purposes (hack)
98 TargetPlatform=hppa1.1-hp-hpux
99 BuildPlatform=hppa1.1-hp-hpux
100 HostPlatform_CPP='hppa1_1_hp_hpux'
101 HostArch_CPP='hppa1_1'
105 i[[3456]]86-*-linuxaout*)
106 HostPlatform=i386-unknown-linuxaout # hack again
107 TargetPlatform=i386-unknown-linuxaout
108 BuildPlatform=i386-unknown-linuxaout
109 HostPlatform_CPP='i386_unknown_linuxaout'
111 HostVendor_CPP='unknown'
112 HostOS_CPP='linuxaout'
114 i[[3456]]86-*-linux*)
115 HostPlatform=i386-unknown-linux # hack again
116 TargetPlatform=i386-unknown-linux
117 BuildPlatform=i386-unknown-linux
118 HostPlatform_CPP='i386_unknown_linux'
120 HostVendor_CPP='unknown'
123 i[[3456]]86-*-freebsd*)
124 HostPlatform=i386-unknown-freebsd # hack again
125 TargetPlatform=i386-unknown-freebsd
126 BuildPlatform=i386-unknown-freebsd
127 HostPlatform_CPP='i386_unknown_freebsd'
129 HostVendor_CPP='unknown'
132 i[[3456]]86-*-netbsd*)
133 HostPlatform=i386-unknown-netbsd # hack again
134 TargetPlatform=i386-unknown-netbsd
135 BuildPlatform=i386-unknown-netbsd
136 HostPlatform_CPP='i386_unknown_netbsd'
138 HostVendor_CPP='unknown'
141 i[[3456]]86-*-solaris2*)
142 HostPlatform=i386-unknown-solaris2 # hack again
143 TargetPlatform=i386-unknown-solaris2
144 BuildPlatform=i386-unknown-solaris2
145 HostPlatform_CPP='i386_unknown_solaris2'
147 HostVendor_CPP='unknown'
148 HostOS_CPP='solaris2'
150 i[[3456]]86-*-cygwin32*)
151 HostPlatform=i386-unknown-cygwin32 # hack again
152 TargetPlatform=i386-unknown-cygwin32
153 BuildPlatform=i386-unknown-cygwin32
154 HostPlatform_CPP='i386_unknown_cygwin32'
156 HostVendor_CPP='unknown'
157 HostOS_CPP='cygwin32'
161 HostPlatform_CPP='m68k_next_nextstep2'
163 HostVendor_CPP='next'
164 HostOS_CPP='nextstep2'
167 HostPlatform_CPP='m68k_next_nextstep3'
169 HostVendor_CPP='next'
170 HostOS_CPP='nextstep3'
172 i[[3456]]86-next-nextstep3)
173 HostPlatform=i386-next-nextstep3 # hack again
174 TargetPlatform=i386-next-nextstep3
175 BuildPlatform=i386-next-nextstep3
176 HostPlatform_CPP='i386_next_nextstep3'
178 HostVendor_CPP='next'
179 HostOS_CPP='nextstep3'
182 HostPlatform=m68k-sun-sunos4
183 TargetPlatform=m68k-sun-sunos4 #hack
184 BuildPlatform=m68k-sun-sunos4 #hack
185 HostPlatform_CPP='m68k_sun_sunos4'
191 HostPlatform_CPP='mips_dec_ultrix'
192 HostArch_CPP='mipsel' # NB a little different
197 HostPlatform=mips-sgi-irix
198 TargetPlatform=mips-sgi-irix #hack
199 BuildPlatform=mips-sgi-irix #hack
200 HostPlatform_CPP='mips_sgi_irix'
201 HostArch_CPP='mipseb' # NB a little different
206 HostPlatform=rs6000-ibm-aix
207 TargetPlatform=rs6000-ibm-aix #hack
208 BuildPlatform=rs6000-ibm-aix #hack
209 HostPlatform_CPP='rs6000_ibm_aix'
210 HostArch_CPP='rs6000'
215 HostPlatform=powerpc-ibm-aix
216 TargetPlatform=powerpc-ibm-aix #hack
217 BuildPlatform=powerpc-ibm-aix #hack
218 HostPlatform_CPP='powerpc_ibm_aix'
219 HostArch_CPP='powerpc'
224 HostPlatform=sparc-sun-sunos4
225 TargetPlatform=sparc-sun-sunos4 #hack
226 BuildPlatform=sparc-sun-sunos4 #hack
227 HostPlatform_CPP='sparc_sun_sunos4'
233 HostPlatform=sparc-sun-solaris2
234 TargetPlatform=sparc-sun-solaris2 #hack
235 BuildPlatform=sparc-sun-solaris2 #hack
236 HostPlatform_CPP='sparc_sun_solaris2'
239 HostOS_CPP='solaris2'
242 echo "Unrecognised platform: $HostPlatform"
246 echo "Canonicalised to: $HostPlatform"
247 test x"$HostPlatform" != x"$TargetPlatform" && echo "Target platform set to $TargetPlatform"
248 test x"$BuildPlatform" != x"$HostPlatform" && echo "Build platform set to $BuildPlatform"
250 BuildPlatform_CPP=$HostPlatform_CPP
251 TargetPlatform_CPP=$HostPlatform_CPP
252 BuildArch_CPP=$HostArch_CPP
253 TargetArch_CPP=$HostArch_CPP
254 BuildOS_CPP=$HostOS_CPP
256 TargetOS_CPP=$HostOS_CPP
257 BuildVendor_CPP=$HostVendor_CPP
258 TargetVendor_CPP=$HostVendor_CPP
260 dnl Cannot afford all these SUBSTs (because of braindead seds w/ 99 cmd limits)
261 dnl AC_SUBST(BuildPlatform)
263 AC_SUBST(HostPlatform)
264 AC_SUBST(TargetPlatform)
265 AC_SUBST(HostPlatform_CPP)
266 dnl AC_SUBST(BuildPlatform_CPP)
267 dnl AC_SUBST(TargetPlatform_CPP)
269 AC_SUBST(HostArch_CPP)
270 dnl AC_SUBST(BuildArch_CPP)
271 dnl AC_SUBST(TargetArch_CPP)
274 AC_SUBST(HostOS_Full)
275 dnl AC_SUBST(BuildOS_CPP)
276 dnl AC_SUBST(TargetOS_CPP)
278 AC_SUBST(HostVendor_CPP)
279 dnl AC_SUBST(BuildVendor_CPP)
280 dnl AC_SUBST(TargetVendor_CPP)
284 # -------------------------------------------------------------------------
286 dnl * _GENERAL_ CONFIGURATION CHECKS
294 dnl ** look for `perl', but watch out for version 4.035
296 AC_PATH_PROG(PerlCmd,perl)
297 if test -z "$PerlCmd"; then
298 echo "You must install perl before you can continue"
299 echo "Perhaps it is already installed, but not in your PATH?"
302 AC_CHECK_PERL_VERSION
306 dnl ** does #!.../perl work? (sometimes it's too long...)
310 # Remove: we work around the problem in the single place
311 # where we rely on something (getopts) from the libraries.
313 #dnl ** check if perl library is properly installed
315 # (by seeing if a "do 'getopts.pl'" works...
316 #if $PerlCmd -e 'do "getopts.pl" || exit(1); exit(0);' > /dev/null 2>&1 ; then
319 # echo "I think your perl library is misinstalled:"
320 # echo "The following script did not work:"
321 # echo ' do "getopts.pl" || exit(1); exit(0);'
322 # echo 'But, anyway, we will continue in our quest..'
327 dnl ** look for GCC and find out which version
328 # Figure out which C compiler to use. Gcc is preferred.
329 # If gcc, make sure it's at least 2.1
335 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
341 dnl ** figure out how to do context diffs
346 dnl ** look for a decent parser generator (bison preferred)
348 # (AC_PROG_YACCY is AC_PROG_YACC, but with some extra testing
349 # on the suitability of the 'yacc' returned.)
353 dnl ** Find lex command (lex or flex) and library (-ll or -lfl)
358 dnl ** figure out how to do a BSD-ish install
362 dnl ** how to invoke `ar' and `ranlib'
364 AC_PROG_AR_AND_RANLIB
368 dnl ** Check to see whether ln -s works
373 dnl ** Find the path to sed **
375 AC_PATH_PROG(SedCmd,sed)
378 dnl ** check for time command **
379 AC_PATH_PROG(TimeCmd,time)
382 dnl ** check for tar **
384 # if GNU tar is named gtar, look for it first.
386 AC_PATH_PROGS(TarCmd,gtar tar,tar)
389 dnl ** check for gzip/compress **
390 AC_PATH_PROGS(CompressCmd,gzip compress,gzip)
392 compress_nm=`basename $CompressCmd`
393 if test x"$compress_nm" = xgzip; then
394 CompressCmd="$CompressCmd -d"
399 AC_SUBST(CompressCmd)
400 AC_SUBST(CompressSuffix)
403 dnl ** check for installed happy binary + version
407 if test x"$HappyCmd" != x; then
408 if expr $HappyVersion \< "1.3" >/dev/null; then
409 echo " Happy Version 1.3 or later is required to compile GHC."
410 echo " Using the Happy sources in the tree.";
417 dnl ** check for installed lx binary
419 AC_PATH_PROG(LxCmd,lx)
421 #### program checking section ends here ####
423 ####--------------------------------------------------
424 #### checking the state of the local header files and syscalls ####
427 dnl ** check for full ANSI header (.h) files
432 dnl ** check for specific header (.h) files that we are interested in
434 AC_CHECK_HEADERS(dirent.h fcntl.h grp.h malloc.h memory.h nlist.h pwd.h siginfo.h signal.h stdlib.h string.h sys/fault.h sys/file.h sys/mman.h sys/param.h sys/procfs.h sys/resource.h sys/signal.h sys/socket.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/utsname.h sys/vadvise.h sys/wait.h termios.h time.h types.h unistd.h utime.h vfork.h readline/readline.h )
437 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
441 dnl ** how do we get a timezone name, and UTC offset ?
446 dnl what's the type of timezone?
450 dnl do we have altzone?
454 dnl do we have the GNU libc?
458 dnl define uint, ulong and ullong if not already defined
459 AC_CHECK_TYPE(uint,unsigned int)
460 AC_CHECK_TYPE(ulong,unsigned long)
461 AC_CHECK_TYPE(ullong,unsigned long long)
464 dnl ** check for specific library functions that we are interested in
466 AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect setitimer stat sysconf timelocal times vadvise vfork)
471 dnl ** can we get alloca?
473 dnl ** determine whether or not const works
475 dnl ** determine the type of signal()
479 dnl ** check for leading underscores in symbol names
483 AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h )
486 echo '************************************************'
487 echo '*** NOW DO: gmake boot followed by gmake all'
488 echo '*** (where gmake == GNU make)'
489 echo '************************************************'