[project @ 1997-09-04 20:17:37 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 ])
88 LeadingUnderscore=`echo $ac_cv_lead_uscore | sed 'y/yesno/YESNO/'`
89 AC_SUBST(LeadingUnderscore)
90 ])
91
92 #
93 # Check for Happy and version.
94 #
95 AC_DEFUN(AC_HAPPY,
96 [AC_PATH_PROG(HappyCmd,happy)
97 AC_CACHE_CHECK([for version of happy], ac_cv_happy_version,
98 [if test x"$HappyCmd" != x; then
99    ac_cv_happy_version="`$HappyCmd -v |
100 changequote(, )dnl
101                           grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
102 changequote([, ])dnl
103 else
104    ac_cv_happy_version="";
105 fi;
106 ])
107 HappyVersion=$ac_cv_happy_version;
108 AC_SUBST(HappyVersion)
109 ])
110
111 #
112 # What's the best way of doing context diffs?
113 #
114 # (NB: NeXTStep thinks diff'ing a file against itself is "trouble")
115 #
116 AC_DEFUN(AC_PROG_DIFF,
117 [AC_CACHE_CHECK([for ok way to do context diffs], ac_cv_context_diffs,
118 [echo foo > conftest1
119 echo foo > conftest2
120 if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then
121     ac_cv_context_diffs='diff -C 1'
122 else
123     if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then
124         ac_cv_context_diffs='diff -c1'
125     else
126         echo "Can't figure out how to do context diffs."
127         echo "Neither \`diff -C 1' nor \`diff -c1' works."
128         exit 1
129     fi
130 fi
131 rm -f conftest1 conftest2
132 ])
133 ContextDiffCmd=$ac_cv_context_diffs
134 AC_SUBST(ContextDiffCmd)
135 ])
136
137 #
138 # Finding the Right Yacc
139 #
140 AC_DEFUN(AC_PROG_YACCY,
141 [AC_PROG_YACC
142 if test "$YACC" = "yacc"; then
143    AC_CACHE_CHECK([if it is an OK yacc], ac_cv_prog_yacc,
144    [AC_CHECK_PROG(WhatCmd, what, what, :)
145     $WhatCmd $YACC > conftest.out
146     if egrep 'y1\.c 1\..*SMI' conftest.out >/dev/null 2>&1; then
147         echo "I don't trust your $YaccCmd; it looks like an old Sun yacc"
148         if test -f /usr/lang/yacc; then
149            echo "I'm going to use /usr/lang/yacc instead"
150            ac_cv_prog_yacc=/usr/lang/yacc
151         else
152            echo "I'm assuming the worst...no parser generator at all"
153            ac_cv_prog_yacc=:
154         fi
155     elif egrep 'y1\.c.*Revision: 4\.2\.6\.3.*DEC' conftest.out >/dev/null 2>&1; then
156         echo "I don't trust your $YaccCmd; it looks like a lame DEC yacc"
157         echo "I'm assuming the worst...no parser generator at all"
158         ac_cv_prog_yacc=:
159     else
160         ac_cv_prog_yacc=$YACC
161     fi
162     rm -fr conftest*
163 ])
164 else
165     ac_cv_prog_yacc=$YACC
166 fi
167 YaccCmd=$ac_cv_prog_yacc
168 AC_SUBST(YaccCmd)
169 ])
170
171 dnl Checking for ar and its arguments + whether we need ranlib.
172 #
173 # ArCmd and RANLIB are AC_SUBST'ed
174 #
175 AC_DEFUN(AC_PROG_AR_AND_RANLIB,
176 [AC_PATH_PROG(ArCmd,ar)
177 if test -z "$ArCmd"; then
178     echo "You don't seem to have ar in your PATH...I have no idea how to make a library"
179     exit 1;
180 fi
181 if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
182     ArCmd="$ArCmd clqs"
183     NeedRanLib=''
184 elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then
185     ArCmd="$ArCmd cqs"
186     NeedRanLib=''
187 elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then
188     ArCmd="$ArCmd clq"
189     NeedRanLib='YES'
190 elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then
191     ArCmd="$ArCmd cq"
192     NeedRanLib='YES'
193 elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
194     ArCmd="$ArCmd cq"
195     NeedRanLib='YES'
196 else
197     echo "I can't figure out how to use your $ArCmd"
198     exit 1
199 fi
200 rm -rf conftest*
201 test -n "$ArCmd" && test -n "$verbose" && echo "        setting ArCmd to $ArCmd"
202 AC_SUBST(ArCmd)
203 if test -z "$NeedRanLib"; then
204     RANLIB=':'
205     test -n "$verbose" && echo "        setting RANLIB to $RANLIB"
206     AC_SUBST(RANLIB)
207 else
208     AC_PROG_RANLIB
209 fi
210 ])
211
212 #
213 dnl AC_SHEBANG_PERL - can we she-bang perl?
214 #
215 AC_DEFUN(AC_SHEBANG_PERL,
216 [AC_CACHE_CHECK([if your perl works in shell scripts], ac_cv_shebang_perl,
217 [echo "#!$PerlCmd"'
218 exit $1;
219 ' > conftest
220 chmod u+x conftest
221 (SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null)
222 if test $? -ne 69; then
223    ac_cv_shebang_perl=yes
224 else
225    ac_cv_shebang_perl=no
226 fi
227 rm -f conftest
228 ])])
229
230 #
231 # Extra testing of the result AC_PROG_CC, testing the gcc version no.
232 # *Must* be called after AC_PROG_CC
233 #
234 AC_DEFUN(AC_HAVE_GCC,
235 [AC_CACHE_CHECK([whether you have an ok gcc], ac_cv_have_gcc,
236 [if test -z "$GCC"; then
237     echo ''
238     echo "You would be better off with gcc"
239     echo "Perhaps it is already installed, but not in your PATH?"
240     ac_cv_have_gcc='no'
241 else
242 changequote(, )dnl
243     cmd_string="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 20 \\\< \2 \\\* 10 + \3/g' `"
244 changequote([, ])dnl
245     if test `eval $cmd_string 2>/dev/null` != "1"; then
246         echo ''
247         echo "I'm not sure if your version of gcc will work,"
248         echo "but it's worth a shot, eh?"
249     fi
250     ac_cv_have_gcc='yes'
251 fi
252 ])
253 HaveGcc=`echo $ac_cv_have_gcc | sed 'y/yesno/YESNO/'`
254 AC_SUBST(HaveGcc)
255 ])
256
257 #
258 # AC_PROG_GNUCPP gathers the path to the cpp that the
259 # gcc driver calls upon.
260 #
261 # Substitutes: GNUCPP and RAWCPP (latter is 'GNUCPP -traditional')
262 #
263 AC_DEFUN(AC_PROG_GNUCPP,
264 [AC_CACHE_CHECK([how to invoke cpp directly], ac_cv_gnu_cpp,
265 [if echo $CPP | grep gcc >/dev/null 2>&1; then
266     echo > conftest.c
267     gcc -v -E conftest.c >/dev/null 2>conftest.out
268     echo '/(\S+(\/|\\\\)cpp)/ && print "[$]1";' > conftest.pl
269     # GNUCPP: used in jmake.c (GnuCppCmd) and in mkdependC
270     # (where we could do with the usual pre-#defines)
271     ac_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`"
272     rm -fr conftest*
273 else
274     # It is likely that this will go terribly wrong..
275     ac_cv_gnu_cpp='cc -E'
276 fi
277 ])
278 GNUCPP=$ac_cv_gnu_cpp
279 if test "$GNUCPP" = "cc -E"; then
280    RAWCPP="$GNUCPP"
281 else
282    RAWCPP="$GNUCPP -traditional"
283 fi
284 AC_SUBST(GNUCPP)
285 AC_SUBST(RAWCPP)
286 ])
287
288 #
289 # Small feature test for perl version. Assumes PerlCmd
290 # contains path to perl binary
291 #
292 AC_DEFUN(AC_CHECK_PERL_VERSION,
293 [$PerlCmd -v >conftest.out 2>&1
294 if grep "version 4" conftest.out >/dev/null 2>&1; then
295    if grep "Patch level: 35" conftest.out >/dev/null 2>&1; then
296       echo "
297 ************************************************************************
298 Uh-oh...looks like you have Perl 4.035.
299
300 Perl version 4.035 has a bug to do with recursion that will bite if
301 you run the lit2texi script, when making Info files from
302 literate files of various sorts.  Either use perl5, the last version of perl4 
303 (4.036), or an older version (e.g., perl 4.019). Failing that, don't create
304 any Info files :-)
305 ************************************************************************
306 "
307    fi
308 else
309    if grep "version 5" conftest.out >/dev/null 2>&1; then
310       :
311    else
312      echo "I'm not sure if your version of perl will work,"
313      echo "but it's worth a shot, eh?"
314    fi
315 fi
316 rm -fr conftest*
317 ])