just an update
[pacman.git] / configure.ac
blobb5dcbac489e146732a1b4325817705a20c29ca64
1 ENV_CFLAGS=$CFLAGS
2 CFLAGS=""
4 AC_PREREQ(2.59)
5 dnl Update it right before the release since $pkgver_foo are all _post_ release snapshots
6 AC_INIT([Pacman package manager], 3.0.0, [pacman-dev@archlinux.org], pacman)
7 AC_LANG(C)
8 AM_CONFIG_HEADER(config.h)
9 AC_CANONICAL_SYSTEM
10 AM_INIT_AUTOMAKE
11 AM_GNU_GETTEXT([external])
12 AM_GNU_GETTEXT_VERSION(0.13.1)
14 dnl Host dependant flags
15 case "${host}" in
16         *-*-cygwin*)
17                 ENV_CFLAGS="$ENV_CFLAGS -DCYGWIN"
18                 ;;
19 esac
21 dnl Define here the libalpm version number
22 PM_MAJOR_VERSION=0
23 PM_MINOR_VERSION=1
24 PM_MICRO_VERSION=0
25 PM_VERSION=$PM_MAJOR_VERSION.$PM_MINOR_VERSION.$PM_MICRO_VERSION
26 dnl Needed for libtool to create proper shared lib version
27 PM_VERSION_INFO=`expr $PM_MAJOR_VERSION + $PM_MINOR_VERSION`:$PM_MICRO_VERSION:$PM_MINOR_VERSION
29 AC_SUBST(PM_MAJOR_VERSION)
30 AC_SUBST(PM_MINOR_VERSION)
31 AC_SUBST(PM_MICRO_VERSION)
32 AC_SUBST(PM_VERSION)
33 AC_SUBST(PM_VERSION_INFO)
35 dnl Put out version numbers to config.h
36 AC_DEFINE_UNQUOTED([PM_VERSION], ["$PM_VERSION"], [libalpm version number])
38 dnl Configuration files
39 dnl AC_CONFIG_FILES([etc/makepkg.conf] [etc/pacman.conf])
41 AC_PROG_CC
42 AC_HEADER_STDC
43 AC_PROG_INSTALL
44 AC_CHECK_FUNCS([strverscmp])
45 AM_PROG_LIBTOOL
46 AM_CONDITIONAL(LINKSTATIC, test "$enable_static" = "yes")
48 dnl Humor lowers blood pressure
49 AC_MSG_CHECKING(your blood pressure)
50 AC_MSG_RESULT([a bit high, but we can proceed])
52 dnl Help line for man2html
53 AC_ARG_ENABLE(man2html,
54     AC_HELP_STRING([--enable-man2html], [Build html docs via man2html]),
55     [wantman2html=$enableval], [wantman2html=no])
57 dnl Help line for po4a
58 AC_ARG_ENABLE(po4a,
59     AC_HELP_STRING([--disable-po4a], [Build localized manpages via po4a]),
60     [wantpo4a=$enableval], [wantpo4a=yes])
62 dnl Help line for doxygen
63 AC_ARG_ENABLE(doxygen,
64     AC_HELP_STRING([--disable-doxygen], [Build API docs via Doxygen]),
65     [wantdoxygen=$enableval], [wantdoxygen=yes])
67 dnl Help line for python
68 AC_ARG_ENABLE(python,
69     AC_HELP_STRING([--disable-python], [Build Python bindings]),
70     [wantpython=$enableval], [wantpython=yes])
72 dnl Help line for perl
73 AC_ARG_ENABLE(perl,
74     AC_HELP_STRING([--disable-perl], [Build Perl bindings]),
75     [wantperl=$enableval], [wantperl=yes])
77 dnl Help line for java
78 AC_ARG_ENABLE(java,
79     AC_HELP_STRING([--disable-java], [Build Java bindings]),
80     [wantjava=$enableval], [wantjava=yes])
82 dnl Check for architecture
83 case "$host" in
84         i686-*) AC_DEFINE_UNQUOTED([CARCH], ["i686"], [Architecture])
85                 AC_DEFINE_UNQUOTED([CARCHFLAGS], ["i686"], [Architecture])
86                 AC_DEFINE_UNQUOTED([MARCHFLAG], ["march"], [Architecture])
87                 CARCH="i686"
88                 CARCHFLAGS="i686"
89                 MARCHFLAG="march"
90                 CHOST="${host}"
91                 ;;
92         x86_64-*) AC_DEFINE_UNQUOTED([CARCH], ["x86_64"], [Architecture])
93                 AC_DEFINE_UNQUOTED([CARCHFLAGS], ["k8"], [Architecture])
94                 AC_DEFINE_UNQUOTED([MARCHFLAG], ["march"], [Architecture])
95                 CARCH="x86_64"
96                 CARCHFLAGS="k8"
97                 MARCHFLAG="march"
98                 CHOST="${host}"
99                 ;;
100         ia64-*) AC_DEFINE_UNQUOTED([CARCH], ["ia64"], [Architecture])
101                 AC_DEFINE_UNQUOTED([CARCHFLAGS], ["ia64"], [Architecture])
102                 AC_DEFINE_UNQUOTED([MARCHFLAG], ["march"], [Architecture])
103                 CARCH="ia64"
104                 CARCHFLAGS="ia64"
105                 MARCHFLAG="march"
106                 CHOST="${host}"
107                 ;;
108         sparc-*) AC_DEFINE_UNQUOTED([CARCH], ["sparc"], [Architecture])
109                 AC_DEFINE_UNQUOTED([CARCHFLAGS], ["v9"], [Architecture])
110                 AC_DEFINE_UNQUOTED([MARCHFLAG], ["mcpu"], [Architecture])
111                 CARCH="sparc"
112                 CARCHFLAGS="v9"
113                 MARCHFLAG="mcpu"
114                 CHOST="${host}"
115                 ;;
116         ppc-* | powerpc-*)
117                 AC_DEFINE_UNQUOTED([CARCH], ["ppc"], [Architecture])
118                 AC_DEFINE_UNQUOTED([CARCHFLAGS], ["750"], [Architecture])
119                 AC_DEFINE_UNQUOTED([MARCHFLAG], ["mcpu"], [Architecture])
120                 CARCH="ppc"
121                 CARCHFLAGS="750"
122                 MARCHFLAG="mcpu"
123                 CHOST="${host}"
124                 ;;
125         i386-*) AC_DEFINE_UNQUOTED([CARCH], ["i386"], [Architecture])
126                 AC_DEFINE_UNQUOTED([CARCHFLAGS], ["i386"], [Architecture])
127                 AC_DEFINE_UNQUOTED([MARCHFLAG], ["march"], [Architecture])
128                 CARCH="i386"
129                 CARCHFLAGS="i386"
130                 MARCHFLAG="march"
131                 CHOST="${host}"
132                 ;;
133         *)
134                 AC_MSG_ERROR([Your architecture is not supported])
135                 ;;
136 esac
138 AC_SUBST(CARCH)
139 AC_SUBST(CARCHFLAGS)
140 AC_SUBST(MARCHFLAG)
141 AC_SUBST(CHOST)
143 dnl Help line for config file
144 AC_ARG_WITH(config-file,
145     AC_HELP_STRING([  --with-config-file=path], [Set the name and path for pacman's config file]),
146     [configfile=$withval], [configfile=/etc/pacman.conf])
148 dnl Help line for debug
149 AC_ARG_ENABLE(debug,
150     AC_HELP_STRING([--enable-debug], [Enable debugging support]),
151     [debug=$enableval], [debug=no])
153 dnl Help line for fakeroot
154 AC_ARG_ENABLE(fakeroot,
155     AC_HELP_STRING([--disable-fakeroot], [Disable fakeroot proof support]),
156     [fakeroot=$enableval], [fakeroot=yes])
158 dnl Check for man2html binary
159 AC_MSG_CHECKING(for support man2html)
160 if test x$wantman2html = xyes ; then
161     AC_CHECK_PROGS([MAN2HTML], [man2html])
162     AM_CONDITIONAL(HAS_MAN2HTML, test $MAN2HTML)
163     if test $MAN2HTML ; then
164         AC_DEFINE([HAS_MAN2HTML], [TRUE], [Enabled HTML generation from man via man2html])
165         AC_MSG_RESULT(yes)
166     else
167         AC_DEFINE([HAS_MAN2HTML], [FALSE], [Disabled HTML generation from man via man2html])
168         AC_MSG_RESULT(no, man2html missing)
169     fi
170 else
171     AM_CONDITIONAL(HAS_MAN2HTML, test $MAN2HTML)
172     AC_DEFINE([HAS_MAN2HTML], [FALSE], [Not specified at configure line])
173     AC_MSG_RESULT(not requested by configure)
176 dnl Check for po4a binary
177 AC_MSG_CHECKING(for support po4a)
178 if test x$wantpo4a = xyes ; then
179     AC_CHECK_PROGS([PO4A], [po4a])
180     AM_CONDITIONAL(HAS_PO4A, test $PO4A)
181     if test $PO4A ; then
182         AC_DEFINE([HAS_PO4A], [TRUE], [Enabled PO4A (localization support for manpages)])
183         AC_MSG_RESULT(yes)
184         POSTATUS="yes, path: `which $PO4A`"
185     else
186         AC_DEFINE([HAS_PO4A], [FALSE], [Disabled PO4A (localization support for manpages)])
187         AC_MSG_RESULT(no, po4a binary missing)
188         POSTATUS="no, missing po4a binary"
189     fi
190 else
191     AM_CONDITIONAL(HAS_PO4A, test $PO4A)
192     AC_DEFINE([HAS_PO4A], [FALSE], [Not specified at configure line])
193     AC_MSG_RESULT(not requested by configure)
194     POSTATUS="no, disabled by configure"
197 dnl Check for doxygen support
198 if test x$wantdoxygen = xyes ; then
199     AC_CHECK_PROGS([DOXYGEN], [doxygen])
200     if test $DOXYGEN ; then
201         DOXYSTATUS="yes, path: `which $DOXYGEN`"
202     else
203         DOXYSTATUS="doxygen binary not found"
204     fi
205 else
206     DOXYSTATUS="no, disabled by configure"
208 AM_CONDITIONAL(HAS_DOXYGEN, test $DOXYGEN)
210 dnl Check for swig binary
211 AC_CHECK_PROGS([SWIG], [swig])
213 dnl Check for python support
214 AC_MSG_CHECKING(if Python bindings should be generated)
215 if test x$wantpython = xyes ; then
216     AM_CONDITIONAL(HAS_PYTHON, test $SWIG)
217     if test $SWIG ; then
218         AC_DEFINE([HAS_PYTHON], [TRUE], [Enabled Python Support])
219         AC_MSG_RESULT(yes)
220         PYTHONSTATUS="yes, path: `which $SWIG`"
221     else
222         AC_DEFINE([HAS_PYTHON], [FALSE], [Disabled Python support])
223         AC_MSG_RESULT(no, swig missing)
224         PYTHONSTATUS="swig binary not found"
225     fi
226 else
227     AM_CONDITIONAL(HAS_PYTHON, test $PYTHON)
228     AC_DEFINE([HAS_PYTHON], [FALSE], [Not specified at configure line])
229     AC_MSG_RESULT(not requested by configure)
230     PYTHONSTATUS="no, disabled by configure"
233 dnl Check for perl support
234 AC_MSG_CHECKING(if Perl bindings should be generated)
235 if test x$wantperl = xyes ; then
236     AM_CONDITIONAL(HAS_PERL, test $SWIG)
237     if test $SWIG ; then
238         AC_DEFINE([HAS_PERL], [TRUE], [Enabled Perl Support])
239         AC_MSG_RESULT(yes)
240         PERLSTATUS="yes, path: `which $SWIG`"
241     else
242         AC_DEFINE([HAS_PERL], [FALSE], [Disabled Perl support])
243         AC_MSG_RESULT(no, swig missing)
244         PERLSTATUS="swig binary not found"
245     fi
246 else
247     AM_CONDITIONAL(HAS_PERL, test $PERL)
248     AC_DEFINE([HAS_PERL], [FALSE], [Not specified at configure line])
249     AC_MSG_RESULT(not requested by configure)
250     PERLSTATUS="no, disabled by configure"
253 dnl Check for java support
254 AC_MSG_CHECKING(if Java bindings should be generated)
255 if test x$wantjava = xyes ; then
256         AC_CHECK_PROGS([JAVAC], [javac])
257         AM_CONDITIONAL(HAS_JAVA, test "$JAVAC" -a "$SWIG")
258         if test $JAVAC ; then
259                 if test $SWIG ; then
260                         AC_DEFINE([HAS_JAVA], [TRUE], [Enabled Java Support (javac=ok swig=ok)])
261                         AC_MSG_RESULT(yes)
262                         JAVASTATUS="yes, path: `which $JAVAC`"
263                 else
264                         AC_DEFINE([HAS_JAVA], [FALSE], [Java support disabled because swig not found (javac=ok swig=missing)])
265                         AC_MSG_RESULT(no, swig not found and that is need for java)
266                         JAVASTATUS="java compiler found, swig not found"
267                 fi
268         else
269                 if test $SWIG ; then
270                         AC_DEFINE([HAS_JAVA], [FALSE], [Disabled Java support (javac=missing swig=ok])
271                         AC_MSG_RESULT(no, javac missing, swig ok)
272                         JAVASTATUS="java compiler not found, swig found"
273                 else
274                         AC_DEFINE([HAS_JAVA], [FALSE], [Disabled Java support (javac=missing swig=missing])
275                         AC_MSG_RESULT(no, javac missing, swig missing)
276                         JAVASTATUS="java compiler not found, swig not found"
277                 fi
278         fi
279 else
280     AM_CONDITIONAL(HAS_JAVA, test $JAVAC -a $SWIG)
281     AC_DEFINE([HAS_JAVA], [FALSE], [Not specified at configure line])
282     AC_MSG_RESULT(not requested by configure)
283     JAVASTATUS="no, disabled by configure"
286 dnl Check for math
287 AC_CHECK_LIB([m], [sqrt], [AC_CHECK_HEADER([math.h], [LIBM='-lm'])])
288 if test -z "$LIBM"; then
289     AC_MSG_ERROR("math library needed to compile pacman!");
292 dnl Check for libarchive
293 AC_CHECK_LIB([archive], [archive_read_data], [AC_CHECK_HEADER([archive.h], [LIBARCHIVE='-larchive'])])
294 if test -z "$LIBARCHIVE"; then
295     AC_MSG_ERROR("libarchive is needed to compile pacman!");
298 dnl Check for libdownload
299 AC_CHECK_LIB([download], [downloadParseURL], [AC_CHECK_HEADER([download.h], [LIBDOWNLOAD='-ldownload'])])
300 if test -z "$LIBDOWNLOAD"; then
301     AC_MSG_ERROR("libdownload is needed to compile pacman!");
304 dnl Set config location
305 AC_MSG_CHECKING(for configuration file name)
306 if test -n "$configfile"; then
307     CFLAGS="$CFLAGS -D'PACCONF=\"$configfile\"'"
308     AC_MSG_RESULT(["$configfile"])
309 else
310     AC_MSG_ERROR(["pacman config file (--with-config-file is not set"])
313 dnl Enable or disable debug code
314 AC_MSG_CHECKING(for debug mode request)
315 if test "$debug" = "yes" ; then
316     AM_CONDITIONAL(PACMAN_DEBUG, test "$debug" = "yes")
317         CFLAGS="$CFLAGS -g -Wall -Werror -std=c99 -DPACMAN_DEBUG"
318         LDFLAGS="$LDFLAGS -lmcheck"
319     AC_MSG_RESULT(yes)
320 else
321     AM_CONDITIONAL(PACMAN_DEBUG, test "$debug" = "no")
322         CFLAGS="$CFLAGS -Wall -std=c99"
323     AC_MSG_RESULT(no)
326 dnl Enable or disable fakeroot code
327 AC_MSG_CHECKING(for fakeroot proof support)
328 if test "$fakeroot" = "yes" ; then
329         AC_MSG_RESULT(yes)
330 else
331         CFLAGS="$CFLAGS -DFAKEROOT"
332         AC_MSG_RESULT(no)
335 dnl ==========================================================================
337 AC_OUTPUT([
338 lib/libalpm/Makefile
339 lib/libalpm/po/Makefile.in
340 src/pacman/Makefile
341 src/pacman/po/Makefile.in
342 src/util/Makefile
343 scripts/Makefile
344 doc/Makefile
345 doc/makepkg.8
346 doc/libalpm.3
347 doc/pacman.8
348 doc/hu/Makefile
349 etc/Makefile
350 etc/makepkg.conf
351 etc/pacman.conf
352 etc/pacman.d/Makefile
353 etc/pacman.d/mirrorlist
354 etc/abs/Makefile
355 bindings/perl/Makefile
356 bindings/python/Makefile
357 bindings/java/Makefile
358 Makefile
361 echo "
362 pacman-$VERSION:
364     prefix                   : ${prefix}
365     source code location     : ${srcdir}
366     compiler                 : ${CC}
367     compiler flags           : ${CFLAGS}
369     libalpm version          : ${PM_VERSION}
370     pacman.conf location     : ${configfile}
372     Architecture CARCH       : ${CARCH}
373     Architecture used cflag  : ${CARCHFLAGS}
374     Architecture CHOST       : ${CHOST}
376     Doxygen support          : ${DOXYSTATUS}
377     Manpage localization     : ${POSTATUS}
378     Perl bindings            : ${PERLSTATUS}
379     Python bindings          : ${PYTHONSTATUS}
380     Java bindings            : ${JAVASTATUS}
382     debug support            : ${debug}