[project @ 1997-11-24 21:15:26 by sof]
[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 GNU cpp directly], ac_cv_gnu_cpp,
264 [if test "$HaveGcc" = "YES"; 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         ac_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`"
269         rm -fr conftest*
270  else
271         # We need to be able to invoke CPP directly, preferably
272         # with input from stdin (mkdependHS and hscpp depend on
273         # this at the moment).
274         # Take a guess at what to use, this probably won't work.
275         echo Warning: GNU cpp not found, using $CPP
276         ac_cv_gnu_cpp = $CPP
277  fi
278 ])
279 GNUCPP=$ac_cv_gnu_cpp
280 RAWCPP="$GNUCPP -traditional"
281 AC_SUBST(GNUCPP)
282 AC_SUBST(RAWCPP)
283 ])
284
285 #
286 # Small feature test for perl version. Assumes PerlCmd
287 # contains path to perl binary
288 #
289 AC_DEFUN(AC_CHECK_PERL_VERSION,
290 [$PerlCmd -v >conftest.out 2>&1
291 if grep "version 4" conftest.out >/dev/null 2>&1; then
292    if grep "Patch level: 35" conftest.out >/dev/null 2>&1; then
293       echo "
294 ************************************************************************
295 Uh-oh...looks like you have Perl 4.035.
296
297 Perl version 4.035 has a bug to do with recursion that will bite if
298 you run the lit2texi script, when making Info files from
299 literate files of various sorts.  Either use perl5, the last version of perl4 
300 (4.036), or an older version (e.g., perl 4.019). Failing that, don't create
301 any Info files :-)
302 ************************************************************************
303 "
304    fi
305 else
306    if grep "version 5" conftest.out >/dev/null 2>&1; then
307       :
308    else
309      echo "I'm not sure if your version of perl will work,"
310      echo "but it's worth a shot, eh?"
311    fi
312 fi
313 rm -fr conftest*
314 ])