1# +------------------------------------------------------------------+
2# | madwimax: configure.ac                                           |
3# +------------------------------------------------------------------+
4
5# madwimax version number is defined here and *only* here
6AC_INIT(madwimax, 0.1.1, [http://code.google.com/p/madwimax/issues/list])
7echo "madWiMAX version ${PACKAGE_VERSION}"
8AC_CANONICAL_SYSTEM
9AC_CONFIG_SRCDIR([src/wimax.c])
10AC_CONFIG_HEADERS([include/config.h])
11AC_PREFIX_DEFAULT(/usr/local/madwimax)
12AM_INIT_AUTOMAKE([-Wall -Werror])
13
14# Use "./configure --enable-maintainer-mode" to keep Makefile.in and Makefile
15# in sync after SVN updates.
16AM_MAINTAINER_MODE
17
18# Fix this early so we can expand with eval later
19test "${prefix}" = "NONE" && prefix="${ac_default_prefix}"
20test "${exec_prefix}" = "NONE" && exec_prefix='${prefix}'
21
22# Set defaults
23udevdir='/etc/udev'
24if test ! -d "${udevdir}"; then
25   udevdir=''
26fi
27
28PIDPATH="/var/run"
29script="generic"
30manpages="yes"
31
32# Checks for programs.
33AC_PROG_CC
34AC_PROG_INSTALL
35
36# Checks for header files.
37AC_HEADER_STDC
38AC_HEADER_SYS_WAIT
39AC_CHECK_HEADERS([fcntl.h stdlib.h string.h syslog.h sys/ioctl.h sys/socket.h sys/time.h unistd.h])
40
41# Checks for typedefs, structures, and compiler characteristics.
42AC_C_CONST
43AC_C_INLINE
44AC_HEADER_TIME
45
46# Checks for library functions.
47AC_FUNC_FORK
48AC_PROG_GCC_TRADITIONAL
49AC_FUNC_VPRINTF
50AC_FUNC_WAIT3
51AC_CHECK_FUNCS([gettimeofday memset socket strchr strerror strtoul])
52
53# Check for pkg-config
54PKG_PROG_PKG_CONFIG
55if test -z "${PKG_CONFIG}"; then
56	AC_MSG_ERROR(["pkg-config not found"])
57fi
58
59# Check for libusb-1.0
60PKG_CHECK_MODULES([libusb1], libusb-1.0,,AC_MSG_ERROR([libusb-1.0 not found]))
61
62CFLAGS="$CFLAGS $libusb1_CFLAGS"
63
64# Only use these when compiling with gcc 
65if ( test "${GCC}" = "yes" )
66then
67	CFLAGS="${CFLAGS} -Wall -Wsign-compare"
68fi  
69
70# Check whether to install udev rules
71AC_MSG_CHECKING(whether to install udev rules)
72AC_ARG_WITH(udev-dir,
73	AC_HELP_STRING([--with-udev-dir=PATH], [where to install udev rules (/etc/udev)]),
74	[
75		case "${withval}" in
76			yes)
77				if test -z "${udevdir}"; then
78					AC_MSG_RESULT(no)
79					AC_MSG_ERROR(["udev directory requested but not found"])
80				fi
81			;;
82			auto)
83			;;
84			no)
85				udevdir=""
86			;;
87			*)
88				udevdir="${withval}"
89			;;
90		esac
91	])
92if test -n "${udevdir}"; then
93	AC_MSG_RESULT(using ${udevdir})
94else
95	AC_MSG_RESULT(no)
96fi
97AM_CONDITIONAL(WITH_UDEV, test -n "${udevdir}")
98
99# Check which event script to use
100AC_MSG_CHECKING(which event script to use)
101AC_ARG_WITH(script,
102	AC_HELP_STRING([--with-script=NAME], [which event script to use (generic)]),
103	[
104		case "${withval}" in
105			yes)
106			;;
107			auto)
108			;;
109			no)
110				script=""
111			;;
112			*)
113				script="${withval}"
114			;;
115		esac
116	])
117if test -n "${script}"; then
118	AC_MSG_RESULT(using ${script})
119	scriptfile="scripts/events/event.sh.${script}"
120else
121	AC_MSG_RESULT(no)
122	scriptfile=""
123fi
124AM_CONDITIONAL(WITH_SCRIPT, test -n "${script}")
125
126# Check whether to generate man pages
127AC_MSG_CHECKING(whether to generate man pages)
128AC_ARG_WITH(man-pages,
129	    AC_HELP_STRING([--without-man-pages], [don't generate man pages (default is to generate them)]),
130	[
131		case "${withval}" in
132			yes)
133			;;
134			auto)
135			;;
136			no)
137				manpages="no"
138			;;
139			*)
140			;;
141		esac
142	])
143AC_MSG_RESULT(${manpages})
144if test "${manpages}" = "yes"; then
145	# Check for asciidoc
146	AC_MSG_CHECKING(for asciidoc)
147	if asciidoc --help >/dev/null 2>&1; then
148		AC_MSG_RESULT(yes)
149	else
150		AC_MSG_RESULT(no)
151		AC_MSG_ERROR(["asciidoc not found"])
152	fi
153	
154	# Check for docbook2x-man
155	db2xman=""
156	AC_MSG_CHECKING(for docbook2x-man)
157	for name in docbook2x-man db2x_docbook2man; do
158		if "$name" --help >/dev/null 2>&1; then
159			db2xman="$name"
160			break;
161		fi
162	done
163	if test -n "${db2xman}"; then
164		AC_MSG_RESULT(${db2xman})
165	else
166		AC_MSG_RESULT(no)
167		AC_MSG_ERROR(["docbook2x-man not found"])
168	fi
169
170	AC_SUBST(db2xman)
171fi
172AM_CONDITIONAL(WITH_MAN_PAGES, test "${manpages}" = "yes")
173
174
175# Expand ${sbindir} and write it out
176conftemp="${sbindir}"
177eval conftemp=\"${conftemp}\"
178eval conftemp=\"${conftemp}\"
179
180SBINDIR=${conftemp}
181AC_DEFINE_UNQUOTED(SBINDIR, "${conftemp}",
182			[Default sbin path])
183
184# expand ${sysconfdir} and write it out
185sysconfdir="${sysconfdir}"/madwimax
186conftemp="${sysconfdir}"
187eval conftemp=\"${conftemp}\"
188eval conftemp=\"${conftemp}\"
189
190SYSCONFDIR=${conftemp}
191AC_DEFINE_UNQUOTED(SYSCONFDIR, "${conftemp}",
192			[Default sysconf path])
193
194
195AC_SUBST(SBINDIR)
196AC_SUBST(SYSCONFDIR)
197AC_SUBST(udevdir)
198AC_SUBST(script)
199
200
201AC_CONFIG_FILES([
202	Makefile
203	include/Makefile
204	man/Makefile
205	src/Makefile
206	scripts/events/Makefile
207	${scriptfile}
208	scripts/udev/Makefile
209	scripts/udev/z60_madwimax.rules
210	scripts/Makefile
211])
212AC_OUTPUT
213