1dnl ##
2dnl ##  configure.in -- GNU autoconf configuration spec
3dnl ##  Copyright (c) Ralf S. Engelschall, <rse@engelschall.com>
4dnl ##
5dnl ##  Process this file with ``autoconf'' to produce a configure script.
6dnl ##
7
8
9dnl #
10dnl #   standard autoconf prolog
11dnl #
12
13AC_PREREQ(2.10)dnl
14AC_REVISION($Revision: 2.0$)
15echo "Configuring for ePerl `./etc/newvers -l c -D eperl_version.c`"
16
17AC_CONFIG_AUX_DIR(etc)
18AC_INIT(README)
19AC_CONFIG_HEADER(config_ac.h)dnl
20AC_PREFIX_DEFAULT(/usr/local)
21
22
23dnl #
24dnl #   libdir adjustment
25dnl #
26
27test "x$prefix" = xNONE && prefix=$ac_default_prefix
28eval "dir=$prefix"
29case $dir in
30    *eperl* ) libsubdir= ;;
31          * ) libsubdir="/eperl" ;;
32esac
33AC_SUBST(libsubdir)
34
35
36dnl #
37dnl #   latest find Perl interpreter
38dnl #
39
40AC_CONFIGURE_PART(CHECK: Configuration of Perl Language)
41AC_MSG_CHECKING([for Perl language])
42AC_ARG_WITH(perl,dnl
43[  --with-perl=PATH        force the usage of a specific installed Perl],
44perlprog=$with_perl
45perlvers=`$perlprog -v | grep version | sed -e 's/.* version //' -e 's/ built.*//' -e 's/ with.*//'`
46,
47TMPFILE=/tmp/x.$$
48rm -f $TMPFILE
49touch $TMPFILE
50c=0
51for dir in `echo $PATH | sed -e 's/:/ /g'` /tmp; do
52    for perl in perl5 perl miniperl; do
53         if test -f "$dir/$perl"; then
54             if test -x "$dir/$perl"; then
55                 perl="$dir/$perl"
56                 version=`$perl -v | grep version | sed -e 's/.* version //' -e 's/ built.*//' -e 's/ with.*//'`
57                 versionnum="`echo $version | sed -e 's/\.//g' -e 's/_//g'`"
58                 versionnum=`expr $versionnum - $c`
59                 echo "$versionnum $version $perl" >>$TMPFILE
60             fi
61         fi
62    done
63    c=`expr $c + 1`
64done
65perlvers="`cat $TMPFILE | sort -u | tail -1 | cut '-d ' -f2`"
66perlprog="`cat $TMPFILE | sort -u | tail -1 | cut '-d ' -f3`"
67rm -f $TMPFILE
68)dnl
69PATH_PERL=$perlprog
70AC_MSG_RESULT([$perlprog v$perlvers])
71case $perlvers in
72    5.003* | 5.004* | 5.005* | 5.006* )
73        ;;
74    * ) echo ""
75        echo "Latest Perl found on your system is $perlvers,"
76        echo "but at least Perl version 5.003 is required."
77        echo "In case the newer one is not in PATH, just use"
78        echo "the option --with-perl=/path/to/bin/perl to"
79        echo "provide the correct executable."
80        echo ""
81        AC_ERROR([Perl version too old])
82        ;;
83esac
84case $perlvers in
85    5.00[[3-6]_[0-9][0-9]] )
86	    perlvnum=`echo $perlvers | sed -e 's/\.//' -e 's/_//'` ;;
87    5.00[[3-6]] )
88	    perlvnum=`echo $perlvers | sed -e 's/\.//' -e 's/$/00/'` ;;
89	* )
90	    perlvnum=`echo $perlvers | sed -e 's/\.//' -e 's/_//'` ;;
91esac
92AC_SUBST(PATH_PERL)
93AC_SUBST(perlprog)
94AC_SUBST(perlvers)
95AC_SUBST(perlvnum)
96perl_prog=$perlprog
97perl_vers=$perlvers
98perl_vnum=$perlvnum
99AC_SUBST(perl_prog)
100AC_SUBST(perl_vers)
101AC_SUBST(perl_vnum)
102if test -f $PATH_PERL; then
103    :
104else
105    AC_ERROR([required program ``perl'' not found])
106fi
107
108
109dnl #
110dnl #   determine Perl parameters
111dnl #
112
113AC_MSG_CHECKING([for Perl knowledge of system])
114perl_osname="`$perl_prog -e 'use Config; print $Config{osname}'`";
115perl_osvers="`$perl_prog -e 'use Config; print $Config{osvers}'`";
116perl_os="$perl_osname-$perl_osvers"
117AC_SUBST(perl_osname)
118AC_SUBST(perl_osvers)
119AC_SUBST(perl_os)
120AC_MSG_RESULT([$perl_os])
121
122AC_MSG_CHECKING([for Perl standard compiler])
123perl_cc="`$perl_prog -e 'use Config; print $Config{cc}'`";
124if test ".$CC" = .; then
125    CC=$perl_cc
126    export CC
127    AC_MSG_RESULT([$perl_cc])
128else
129    perl_cc=$CC
130    AC_MSG_RESULT([$perl_cc (OVERWRITTEN)])
131fi
132AC_SUBST(perl_cc)
133
134AC_MSG_CHECKING([for Perl standard optimization flags])
135perl_optimize="`$perl_prog -e 'use Config; print $Config{optimize}'`";
136AC_MSG_RESULT([$perl_optimize])
137AC_SUBST(perl_optimize)
138
139AC_MSG_CHECKING([for Perl standard compilation flags])
140perl_ccflags="`$perl_prog -e 'use Config; print $Config{ccflags}'`";
141case $perl_os in
142    *hpux*    ) perl_ccflags="$perl_ccflags -Wp,-H32768" ;;
143    *irix-5.* ) perl_ccflags="`echo $perl_ccflags | sed -e 's/-D_POSIX_SOURCE//'`" ;;
144esac
145AC_MSG_RESULT([$perl_ccflags])
146AC_SUBST(perl_ccflags)
147
148AC_MSG_CHECKING([for Perl standard link flags])
149perl_ldflags="`$perl_prog -e 'use Config; print $Config{ldflags}'`";
150case $perl_os in
151    *irix-6.* ) perl_ldflags="$perl_ldflags '-Wl,-woff 85'" ;;
152esac
153AC_MSG_RESULT([$perl_ldflags])
154AC_SUBST(perl_ldflags)
155
156AC_MSG_CHECKING([for Perl library files])
157perl_libs="`$perl_prog -e 'use Config; print $Config{libs}'`"
158AC_MSG_RESULT([$perl_libs])
159AC_SUBST(perl_libs)
160
161AC_MSG_CHECKING([for Perl architecture directory])
162perl_archlib="`$perlprog -e 'use Config; print $Config{archlib}'`";
163AC_MSG_RESULT([$perl_archlib])
164AC_SUBST(perl_archlib)
165
166AC_MSG_CHECKING([for Perl dynamic loading support])
167usedl="`$perlprog -e 'use Config; print $Config{usedl}'`";
168case $usedl in
169    define )
170        rc=yes
171        AC_DEFINE(HAVE_PERL_DYNALOADER)
172        perl_dla=$perl_archlib/auto/DynaLoader/DynaLoader.a
173        ;;
174    * )
175        rc=no
176        perl_dla=
177        ;;
178esac
179AC_SUBST(perl_dla)
180AC_MSG_RESULT([$rc])
181
182AC_MSG_CHECKING([for Perl dynamic loading compilation flags])
183perl_cccdlflags="`$perlprog -e 'use Config; print $Config{cccdlflags}'`";
184case $perl_cccdlflags in
185    " " ) x="none" ;;
186    * )   x="$perl_cccdlflags" ;;
187esac
188AC_MSG_RESULT([$x])
189AC_SUBST(perl_cccdlflags)
190
191AC_MSG_CHECKING([for Perl dynamic loading link flags])
192perl_ccdlflags="`$perlprog -e 'use Config; print $Config{ccdlflags}'`";
193case $perl_os in
194    *aix* ) perl_ccdlflags="`echo $perl_ccdlflags | sed -e 's;-bE:perl.exp;-bE:${perl_archlib}/CORE/perl.exp;'`" ;;
195esac
196case $perl_ccdlflags in
197    " " ) x="none" ;;
198    * )   x="$perl_ccdlflags" ;;
199esac
200AC_MSG_RESULT([$x])
201AC_SUBST(perl_ccdlflags)
202
203
204dnl #
205dnl #   determine build tools and parameters
206dnl #
207
208AC_CONFIGURE_PART(CHECK: System Build Environment)
209AC_BUILD_USER
210AC_BUILD_TIME
211AC_PROG_CC
212AC_PROG_RANLIB
213AC_PROGRAM_CHECK(AR, ar, ar,)
214AC_PROGRAM_CHECK(SIZE, size, size,)
215case $perl_os in
216    *irix* ) SIZE="$SIZE -B" ;;
217esac
218
219AC_MSG_CHECKING(for compilation debug mode)
220AC_ARG_ENABLE(debug,dnl
221[  --enable-debug          to enable the debugging options for compilation],
222if test ".$ac_cv_prog_gcc" = ".yes"; then
223    CFLAGS="-Wall -g -ggdb3"
224    LDFLAGS="-g -ggdb3"
225else
226    CFLAGS="-g"
227    LDFLAGS="-g"
228fi
229x="enabled"
230debug=on
231AC_DEFINE(DEBUG_ENABLED)
232,
233CFLAGS=""
234LDFLAGS=""
235x=disabled
236debug=off
237)dnl
238AC_SUBST(debug)
239AC_MSG_RESULT([$x])
240
241if test "$debug" = "on"; then
242    AC_MSG_CHECKING(for dmalloc library)
243    dmalloc=""
244    x=no
245    if test -f /sw/include/dmalloc.h; then
246        if test -f /sw/shlib/libdmalloc.a; then
247            AC_DEFINE(HAVE_DMALLOC)
248            CFLAGS="$CFLAGS -I/sw/include"
249            LDFLAGS="$LDFLAGS -L/sw/shlib"
250            dmalloc="-ldmalloc"
251            x=yes
252        fi
253    fi
254    AC_SUBST(dmalloc)
255    AC_MSG_RESULT([$x])
256fi
257
258AC_SET_MAKE
259AC_PROG_INSTALL
260INSTALL_DATA='${INSTALL} -m 644'
261INSTALL_PROGRAM="${INSTALL_PROGRAM} -m 755"
262
263
264dnl #
265dnl #   determine system parameters
266dnl #
267
268AC_CONFIGURE_PART(CHECK: Characteristic of System Headers and Libraries)
269AC_CONST
270AC_STDC_HEADERS
271AC_HAVE_HEADERS(stdio.h stdarg.h stdlib.h string.h ctype.h dnl
272                unistd.h time.h signal.h pwd.h grp.h dnl
273                sys/types.h sys/stat.h sys/param.h dnl
274                sys/socket.h netinet/in.h netdb.h)
275AC_CHECK_TYPE(bool, char)
276AC_CHECK_FUNCS(memmove)
277AC_CHECK_FUNCS(seteuid)
278AC_CHECK_FUNCS(setegid)
279AC_CHECK_FUNCS(strdup)
280
281
282dnl #
283dnl #   finally: source file substitution...
284dnl #
285
286AC_CONFIGURE_PART(RESULT: Sourcefile Substitution)
287AC_OUTPUT(dnl
288Makefile dnl
289t/Makefile dnl
290config_sc.h dnl
291,dnl
292)dnl
293
294echo ""
295echo "Now please type 'make' to compile. Good luck."
296echo ""
297
298dnl ##EOF##
299