1AC_INIT([adasockets], [1.12])
2AC_CONFIG_SRCDIR([src/sockets.ads])
3AC_CONFIG_AUX_DIR([support])
4AC_CONFIG_MACRO_DIR([support])
5AM_INIT_AUTOMAKE
6AM_CONFIG_HEADER(src/config.h)
7#
8# Package description
9#
10AC_ARG_WITH([libversioninfo],
11            [AS_HELP_STRING([--with-libversion=VSN],
12                            [Shared Object version for relocatable library [1:0:0]])],
13            [LIBVERSIONINFO=$withval],
14            [LIBVERSIONINFO=1:0:0])
15AC_SUBST(LIBVERSIONINFO)
16#
17AC_ARG_WITH([adasrcinstalldir],
18            [AS_HELP_STRING([--with-adasrcinstalldir=DIR],
19                            [Ada sources go under DIR/adasockets [LIBDIR]])],
20            [ada_src_install_dir=$withval],
21            [ada_src_install_dir='${libdir}'])
22AC_SUBST(ada_src_install_dir)
23#
24AC_ARG_WITH([aliinstalldir],
25            [AS_HELP_STRING([--with-aliinstalldir=DIR],
26                            [Ada Lib Info go under DIR/adasockets [LIBDIR]])],
27            [ali_install_dir=$withval],
28            [ali_install_dir='${libdir}'])
29AC_SUBST(ali_install_dir)
30#
31AC_ARG_WITH([gprinstalldir],
32            [AS_HELP_STRING([--with-gprinstalldir=DIR],
33                            [GPRBuild project goes under DIR [DATADIR/gpr]])],
34            [gpr_install_dir=$withval],
35            [gpr_install_dir='${datadir}/gpr'])
36AC_SUBST(gpr_install_dir)
37#
38AM_PROG_LIBTOOL
39#
40AC_CHECK_PROGS(AWK, [gnuawk gawk awk])
41#
42# Check for maintainer mode
43#
44AC_ARG_VAR(ADAFLAGS,[Ada compiler flags])
45AC_ARG_ENABLE(maintainer-mode,
46AS_HELP_STRING(--enable-maintainer-mode,turn on debugging options),
47[ADAFLAGS="-g -O2 -Wall -Werror -gnatag -gnatwa -gnatwe -gnatg $ADAFLAGS"],
48[ADAFLAGS="-O2 -gnatpng $ADAFLAGS"])
49#
50# Check for documentation build and installation
51#
52AC_ARG_ENABLE(doc,
53AS_HELP_STRING(--disable-doc,do not build and install documentation),
54[case "${enableval}" in
55  yes) doc=true ;;
56  no)  doc=false ;;
57  *) AC_MSG_ERROR(bad value ${enableval} for --enable-doc) ;;
58esac],[doc=true])
59AM_CONDITIONAL(BUILD_DOC, test x$doc = xtrue)
60#
61# Check for examples build and installation
62#
63AC_ARG_ENABLE(examples,
64AS_HELP_STRING(--disable-examples,do not build and install examples),
65[case "${enableval}" in
66  yes) examples=true ;;
67  no)  examples=false ;;
68  *) AC_MSG_ERROR(bad value ${enableval} for --enable-examples) ;;
69esac],[examples=true])
70AM_CONDITIONAL(BUILD_EXAMPLES, test x$examples = xtrue)
71#
72# Check for documentation software
73#
74AC_CHECK_PROG(GETDEFS, getdefs, getdefs)
75AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo)
76AC_CHECK_PROG(TEXI2DVI, texi2dvi, texi2dvi)
77#
78# Look for the C compiler
79#
80AC_PROG_CC
81#
82# Look for the Ada compiler
83#
84AC_CHECK_PROG([GNATMAKE], [gnatmake], [gnatmake])
85if test -z "$GNATMAKE"; then
86  AC_MSG_ERROR([unable to find gnatmake])
87fi
88#
89# Libtool checks
90#
91AC_PROG_LIBTOOL
92#
93# Test for -lnsl, -lsocket and -lresolv
94#
95AC_CHECK_FUNC(gethostbyname,NSLNEEDED="--  ",
96  AC_CHECK_LIB(nsl,gethostbyname,,NSLNEEDED="--  "))
97AC_SUBST(NSLNEEDED)
98AC_CHECK_FUNC(connect,SOCKETNEEDED="--  ",
99  AC_CHECK_LIB(socket,connect,,SOCKETNEEDED="--  "))
100AC_SUBST(SOCKETNEEDED)
101AC_CHECK_FUNC(inet_aton,RESOLVNEEDED="--  ",
102  AC_CHECK_LIB(resolv,inet_aton,,RESOLVNEEDED="--  "))
103AC_SUBST(RESOLVNEEDED)
104#
105# Extra libraries
106#
107AC_ARG_WITH(extra-libs,
108 [  --with-extra-libs=libs  Add extra libraries when building a program],
109 [EXTRA_LIBS="${withval}"])
110AC_SUBST(EXTRA_LIBS)
111#
112# Header files
113#
114AC_CHECK_HEADERS([stdio.h sys/types.h sys/socket.h errno.h netdb.h stdlib.h])
115AC_CHECK_HEADERS([netinet/in.h signal.h fcntl.h termio.h termios.h sys/file.h])
116AC_CHECK_HEADERS([sys/ioctl.h netinet/tcp.h sys/systeminfo.h poll.h stropts.h])
117AC_CHECK_HEADERS([sys/conf.h sys/param.h time.h windows.h string.h linux/sockios.h])
118AC_CHECK_HEADERS(windows.h, [usewin32=true useunix=false],
119                            [usewin32=false useunix=true])
120#
121# sa_len field ?
122#
123AC_CHECK_MEMBER(struct sockaddr.sa_len,[SA_LEN="" NO_SA_LEN="--  "],[SA_LEN="--  " NO_SA_LEN=""],[#include <sys/types.h>
124AC_SUBST(SA_LEN)
125AC_SUBST(NO_SA_LEN)
126#include <sys/socket.h>])
127#
128# Conditional import for Win32 and substitution
129#
130AM_CONDITIONAL(WIN32, $usewin32)
131if $useunix; then
132  WINNEEDED="--  "
133fi
134AC_SUBST(WINNEEDED)
135#
136# Output
137#
138AC_CONFIG_FILES([Makefile
139           src/Makefile
140           src/sockets-link.ads
141           src/sockets-types.ads
142	   src/adasockets.pc
143           man/Makefile
144           examples/Makefile
145           doc/Makefile
146           tests/Makefile])
147AC_OUTPUT
148