[project @ 1997-10-13 09:44:11 by simonm]
[ghc-hetmet.git] / aclocal.m4
1 #
2 # Extra autoconf macros for the Glasgow fptools
3 #
4
5 #
6 # Has timezone the type time_t or long (HP-UX 10.20 apparently
7 # has `long'..)
8 #
9 AC_DEFUN(AC_TYPE_TIMEZONE,
10 [AC_CACHE_CHECK([type of timezone], ac_cv_type_timezone,
11 [AC_TRY_COMPILE([#if TIME_WITH_SYS_TIME
12 # include <sys/time.h>
13 # include <time.h>
14 #else
15 # if HAVE_SYS_TIME_H
16 #  include <sys/time.h>
17 # else
18 #  include <time.h>
19 # endif
20 #endif
21
22 extern time_t timezone;
23 ],
24 [int i;], ac_cv_type_timezone=time_t, ac_cv_type_timezone=long)])
25 AC_DEFINE_UNQUOTED(TYPE_TIMEZONE, $ac_cv_type_timezone)
26 ])
27
28 #
29 # Is altzone available?
30 #
31 AC_DEFUN(AC_ALTZONE,
32 [AC_CACHE_CHECK([altzone], ac_cv_altzone,
33 [AC_TRY_LINK([#if TIME_WITH_SYS_TIME
34 # include <sys/time.h>
35 # include <time.h>
36 #else
37 # if HAVE_SYS_TIME_H
38 #  include <sys/time.h>
39 # else
40 #  include <time.h>
41 # endif
42 #endif
43 ], [return altzone;], 
44 ac_cv_altzone=yes, ac_cv_altzone=no)])
45 if test "$ac_cv_altzone" = yes; then
46   AC_DEFINE(HAVE_ALTZONE)
47 fi
48 ])
49
50 #
51 dnl ** check for leading underscores in symbol names
52 #
53 # Test for determining whether symbol names have a leading
54 # underscore.
55 #
56 # We assume that they _haven't_ if anything goes wrong.
57 #
58 AC_DEFUN(AC_UNDERSCORE,
59 [AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl
60 AC_CACHE_CHECK([leading underscore in symbol names], ac_cv_lead_uscore,
61 #
62 # Hack!: nlist() under Digital UNIX insist on there being an _,
63 # but symbol table listings show none. What is going on here?!?
64 #
65 if test $HostPlatform = "alpha-dec-osf1"; then
66    ac_cv_lead_uscore='no'
67 else
68 AC_TRY_RUN([#ifdef HAVE_NLIST_H
69 #include <nlist.h>
70 changequote(<<, >>)dnl
71 <<
72 struct nlist xYzzY[] = {{"_xYzzY", 0},{0}};
73 #endif
74
75 main(argc, argv)
76 int argc;
77 char **argv;
78 {
79 #ifdef HAVE_NLIST_H
80     if(nlist(argv[0], xYzzY) == 0 && xYzzY[0].n_value != 0)
81         exit(0);>>
82 changequote([, ])dnl
83 #endif
84     exit(1);
85 }], ac_cv_lead_uscore=yes, ac_cv_lead_uscore=no, ac_cv_lead_uscore=NO)
86 fi);
87 LeadingUnderscore=`echo $ac_cv_lead_uscore | sed 'y/yesno/YESNO/'`
88 AC_SUBST(LeadingUnderscore)
89 ])
90
91 #
92 # Check for Happy and version.
93 #
94 AC_DEFUN(AC_HAPPY,
95 [AC_PATH_PROG(HappyCmd,happy)
96 AC_CACHE_CHECK([for version of happy], ac_cv_happy_version,
97 [if test x"$HappyCmd" != x; then
98    ac_cv_happy_version="`$HappyCmd -v |
99 changequote(, )dnl
100                           grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
101 changequote([, ])dnl
102 else
103    ac_cv_happy_version="";
104 fi;
105 ])
106 HappyVersion=$ac_cv_happy_version;
107 AC_SUBST(HappyVersion)
108 ])
109
110 #
111 # What's the best way of doing context diffs?
112 #
113 # (NB: NeXTStep thinks diff'ing a file against itself is "trouble")
114 #
115 AC_DEFUN(AC_PROG_DIFF,
116 [AC_CACHE_CHECK([for ok way to do context diffs], ac_cv_context_diffs,
117 [echo foo > conftest1
118 echo foo > conftest2
119 if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then
120     ac_cv_context_diffs='diff -C 1'
121 else
122     if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then
123         ac_cv_context_diffs='diff -c1'
124     else
125         echo "Can't figure out how to do context diffs."
126         echo "Neither \`diff -C 1' nor \`diff -c1' works."
127         exit 1
128     fi
129 fi
130 rm -f conftest1 conftest2
131 ])
132 ContextDiffCmd=$ac_cv_context_diffs
133 AC_SUBST(ContextDiffCmd)
134 ])
135
136 #
137 # Finding the Right Yacc
138 #
139 AC_DEFUN(AC_PROG_YACCY,
140 [AC_PROG_YACC
141 if test "$YACC" = "yacc"; then
142    AC_CACHE_CHECK([if it is an OK yacc], ac_cv_prog_yacc,
143    [AC_CHECK_PROG(WhatCmd, what, what, :)
144     $WhatCmd $YACC > conftest.out
145     if egrep 'y1\.c 1\..*SMI' conftest.out >/dev/null 2>&1; then
146         echo "I don't trust your $YaccCmd; it looks like an old Sun yacc"
147         if test -f /usr/lang/yacc; then
148            echo "I'm going to use /usr/lang/yacc instead"
149            ac_cv_prog_yacc=/usr/lang/yacc
150         else
151            echo "I'm assuming the worst...no parser generator at all"
152            ac_cv_prog_yacc=:
153         fi
154     elif egrep 'y1\.c.*Revision: 4\.2\.6\.3.*DEC' conftest.out >/dev/null 2>&1; then
155         echo "I don't trust your $YaccCmd; it looks like a lame DEC yacc"
156         echo "I'm assuming the worst...no parser generator at all"
157         ac_cv_prog_yacc=:
158     else
159         ac_cv_prog_yacc=$YACC
160     fi
161     rm -fr conftest*
162 ])
163 else
164     ac_cv_prog_yacc=$YACC
165 fi
166 YaccCmd=$ac_cv_prog_yacc
167 AC_SUBST(YaccCmd)
168 ])
169
170 dnl Checking for ar and its arguments + whether we need ranlib.
171 #
172 # ArCmd and RANLIB are AC_SUBST'ed
173 #
174 AC_DEFUN(AC_PROG_AR_AND_RANLIB,
175 [AC_PATH_PROG(ArCmd,ar)
176 if test -z "$ArCmd"; then
177     echo "You don't seem to have ar in your PATH...I have no idea how to make a library"
178     exit 1;
179 fi
180 if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
181     ArCmd="$ArCmd clqs"
182     NeedRanLib=''
183 elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then
184     ArCmd="$ArCmd cqs"
185     NeedRanLib=''
186 elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then
187     ArCmd="$ArCmd clq"
188     NeedRanLib='YES'
189 elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then
190     ArCmd="$ArCmd cq"
191     NeedRanLib='YES'
192 elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
193     ArCmd="$ArCmd cq"
194     NeedRanLib='YES'
195 else
196     echo "I can't figure out how to use your $ArCmd"
197     exit 1
198 fi
199 rm -rf conftest*
200 test -n "$ArCmd" && test -n "$verbose" && echo "        setting ArCmd to $ArCmd"
201 AC_SUBST(ArCmd)
202 if test -z "$NeedRanLib"; then
203     RANLIB=':'
204     test -n "$verbose" && echo "        setting RANLIB to $RANLIB"
205     AC_SUBST(RANLIB)
206 else
207     AC_PROG_RANLIB
208 fi
209 ])
210
211 #
212 dnl AC_SHEBANG_PERL - can we she-bang perl?
213 #
214 AC_DEFUN(AC_SHEBANG_PERL,
215 [AC_CACHE_CHECK([if your perl works in shell scripts], ac_cv_shebang_perl,
216 [echo "#!$PerlCmd"'
217 exit $1;
218 ' > conftest
219 chmod u+x conftest
220 (SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null)
221 if test $? -ne 69; then
222    ac_cv_shebang_perl=yes
223 else
224    ac_cv_shebang_perl=no
225 fi
226 rm -f conftest
227 ])])
228
229 #
230 # Extra testing of the result AC_PROG_CC, testing the gcc version no.
231 # *Must* be called after AC_PROG_CC
232 #
233 AC_DEFUN(AC_HAVE_GCC,
234 [AC_CACHE_CHECK([whether you have an ok gcc], ac_cv_have_gcc,
235 [if test -z "$GCC"; then
236     echo ''
237     echo "You would be better off with gcc"
238     echo "Perhaps it is already installed, but not in your PATH?"
239     ac_cv_have_gcc='no'
240 else
241 changequote(, )dnl
242     cmd_string="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 20 \\\< \1 \\\* 10 + \2/g' `"
243 changequote([, ])dnl
244     if test `eval $cmd_string 2>/dev/null` != "1"; then
245         echo ''
246         echo "I'm not sure if your version of gcc will work,"
247         echo "but it's worth a shot, eh?"
248     fi
249     ac_cv_have_gcc='yes'
250 fi
251 ])
252 HaveGcc=`echo $ac_cv_have_gcc | sed 'y/yesno/YESNO/'`
253 AC_SUBST(HaveGcc)
254 ])
255
256 #
257 # AC_PROG_GNUCPP gathers the path to the cpp that the
258 # gcc driver calls upon.
259 #
260 # Substitutes: GNUCPP and RAWCPP (latter is 'GNUCPP -traditional')
261 #
262 AC_DEFUN(AC_PROG_GNUCPP,
263 [AC_CACHE_CHECK([how to invoke cpp directly], ac_cv_gnu_cpp,
264 [if echo $CPP | grep gcc >/dev/null 2>&1; then
265     echo > conftest.c
266     gcc -v -E conftest.c >/dev/null 2>conftest.out
267     echo '/(\S+(\/|\\\\)cpp)/ && print "[$]1";' > conftest.pl
268     # GNUCPP: used in jmake.c (GnuCppCmd) and in mkdependC
269     # (where we could do with the usual pre-#defines)
270     ac_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`"
271     rm -fr conftest*
272 else
273     # It is likely that this will go terribly wrong..
274     ac_cv_gnu_cpp='cc -E'
275 fi
276 ])
277 GNUCPP=$ac_cv_gnu_cpp
278 if test "$GNUCPP" = "cc -E"; then
279    RAWCPP="$GNUCPP"
280 else
281    RAWCPP="$GNUCPP -traditional"
282 fi
283 AC_SUBST(GNUCPP)
284 AC_SUBST(RAWCPP)
285 ])
286
287 #
288 # Small feature test for perl version. Assumes PerlCmd
289 # contains path to perl binary
290 #
291 AC_DEFUN(AC_CHECK_PERL_VERSION,
292 [$PerlCmd -v >conftest.out 2>&1
293 if grep "version 4" conftest.out >/dev/null 2>&1; then
294    if grep "Patch level: 35" conftest.out >/dev/null 2>&1; then
295       echo "
296 ************************************************************************
297 Uh-oh...looks like you have Perl 4.035.
298
299 Perl version 4.035 has a bug to do with recursion that will bite if
300 you run the lit2texi script, when making Info files from
301 literate files of various sorts.  Either use perl5, the last version of perl4 
302 (4.036), or an older version (e.g., perl 4.019). Failing that, don't create
303 any Info files :-)
304 ************************************************************************
305 "
306    fi
307 else
308    if grep "version 5" conftest.out >/dev/null 2>&1; then
309       :
310    else
311      echo "I'm not sure if your version of perl will work,"
312      echo "but it's worth a shot, eh?"
313    fi
314 fi
315 rm -fr conftest*
316 ])