]> git.ipfire.org Git - pakfire.git/blame - configure.ac
errors: Rename NotAnIPFireSystemError to NotIPFireError
[pakfire.git] / configure.ac
CommitLineData
b55979b4
MT
1###############################################################################
2# #
3# Pakfire - The IPFire package management system #
4# Copyright (C) 2013 Pakfire development team #
5# #
6# This program is free software: you can redistribute it and/or modify #
7# it under the terms of the GNU General Public License as published by #
8# the Free Software Foundation, either version 3 of the License, or #
9# (at your option) any later version. #
10# #
11# This program is distributed in the hope that it will be useful, #
12# but WITHOUT ANY WARRANTY; without even the implied warranty of #
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
14# GNU General Public License for more details. #
15# #
16# You should have received a copy of the GNU General Public License #
17# along with this program. If not, see <http://www.gnu.org/licenses/>. #
18# #
19###############################################################################
20
21AC_PREREQ([2.64])
22
23AC_INIT([pakfire],
48b888dc 24 [0.9.27],
b55979b4
MT
25 [info@ipfire.org],
26 [pakfire],
27 [http://git.ipfire.org/?p=pakfire.git;a=summary])
28
29AC_CONFIG_MACRO_DIR([m4])
30AC_CONFIG_HEADERS([config.h])
31AC_CONFIG_AUX_DIR([build-aux])
32
33AC_USE_SYSTEM_EXTENSIONS
34AC_SYS_LARGEFILE
35AC_PREFIX_DEFAULT([/usr])
36
37AM_INIT_AUTOMAKE([
38 foreign
39 1.11
40 -Wall
41 -Wno-portability
42 silent-rules
43 tar-pax
44 subdir-objects
45])
46AM_SILENT_RULES([yes])
47LT_PREREQ(2.2)
48LT_INIT([disable-static])
49
50IT_PROG_INTLTOOL([0.40.0])
51
52GETTEXT_PACKAGE=pakfire
53AC_SUBST(GETTEXT_PACKAGE)
54
55AC_PROG_LN_S
56AC_PROG_MKDIR_P
57AC_PROG_SED
58
a5fc19b7
MT
59AC_ARG_ENABLE([debug],
60 AS_HELP_STRING([--enable-debug], [enable debug messages @<:@default=disabled@:>@]),
61 [], [enable_debug=no])
62AS_IF([test "x$enable_debug" = "xyes"], [
63 AC_DEFINE(ENABLE_DEBUG, [1], [Debug messages.])
64])
65
b55979b4
MT
66# pkg-config
67PKG_PROG_PKG_CONFIG
68# This makes sure pkg.m4 is available.
69m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
70
71# C Compiler
72AC_PROG_CC
73AC_PROG_CC_C99
74AC_PROG_CC_C_O
75AC_PROG_GCC_TRADITIONAL
76AC_OPENMP
77
78CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
79 -pipe \
80 -Wall \
81 -Wextra \
82 -Wno-inline \
83 -Wundef \
84 "-Wformat=2 -Wformat-security -Wformat-nonliteral" \
85 -Wno-unused-parameter \
86 -Wno-unused-result \
87 -fno-strict-aliasing \
88 -ffunction-sections \
89 -fdata-sections \
90 -fstack-protector-all \
91 --param=ssp-buffer-size=4])
92AC_SUBST([OUR_CFLAGS], $with_cflags)
93
94AS_CASE([$CFLAGS], [*-O[[12345g\ ]]*],
95 [CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\
96 -Wp,-D_FORTIFY_SOURCE=2])],
97 [AC_MSG_RESULT([skipping -D_FORTIFY_SOURCE, optimization not enabled])])
98AC_SUBST([OUR_CPPFLAGS], $with_cppflags)
99
100CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
101 -Wl,--as-needed \
102 -Wl,--no-undefined \
103 -Wl,--gc-sections \
104 -Wl,-z,relro \
105 -Wl,-z,now])
106AC_SUBST([OUR_LDFLAGS], $with_ldflags)
107
73e181f6
MT
108# Bison & Flex
109AC_PROG_YACC
110AM_PROG_LEX
111
b55979b4 112# Python
2e708cdf 113AM_PATH_PYTHON([3.6])
b55979b4 114
221cc3ce
MT
115AC_C_CONST
116AC_CHECK_LIB([m], [round])
117
118AC_CHECK_HEADERS([ \
119 assert.h \
5f548bf0 120 ctypes.h \
221cc3ce 121 math.h \
0ba52fbe 122 regex.h \
5f548bf0 123 stdarg.h \
221cc3ce
MT
124 stdlib.h \
125 string.h \
5f548bf0 126 syslog.h \
221cc3ce
MT
127 sys/stat.h \
128 unistd.h
129])
130
131AC_CHECK_FUNCS([ \
132 assert \
5f548bf0 133 secure_getenv \
221cc3ce
MT
134 strcmp \
135 strdup
136])
137
b55979b4
MT
138save_LIBS="$LIBS"
139
b55979b4
MT
140# libdl
141LIBS=
142AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([*** Dynamic linking loader library not found])])
143DL_LIBS="$LIBS"
144AC_SUBST(DL_LIBS)
145
146# libcap
147AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])])
148
149LIBS=
150AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])])
151CAP_LIBS="$LIBS"
152AC_SUBST(CAP_LIBS)
153
b55979b4
MT
154# libsolv
155AC_CHECK_HEADERS([solv/solvversion.h], [], [AC_MSG_ERROR([*** libsolv headers not found])])
156
157LIBS=
158AC_SEARCH_LIBS([solver_create], [solv], [], [AC_MSG_ERROR([*** libsolv library not found])])
159SOLV_LIBS="$LIBS"
160AC_SUBST(SOLV_LIBS)
161LIBS="$save_LIBS"
162
221cc3ce 163PKG_CHECK_MODULES([ARCHIVE], [libarchive])
b55979b4
MT
164PKG_CHECK_MODULES([PYTHON_DEVEL], [python-${PYTHON_VERSION}])
165PKG_CHECK_MODULES([LZMA], [liblzma])
166
6d33e7ed 167AM_PATH_LIBGCRYPT([1.8.0], [], [AC_MSG_ERROR([*** libgcrypt not found])])
0e75ae24
MT
168AM_PATH_GPGME([1.6.0], [], [AC_MSG_ERROR([*** GPGME not found])])
169
b55979b4
MT
170AC_ARG_WITH([systemdsystemunitdir],
171 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
172 [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
173AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
174AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"])
175
176AC_CONFIG_FILES([
177 Makefile
178 po/Makefile.in
b55979b4
MT
179 src/pakfire/__version__.py
180])
181
182AC_OUTPUT
183AC_MSG_RESULT([
184 $PACKAGE_NAME $VERSION
185
a5fc19b7
MT
186 Debug: ${enable_debug}
187
b55979b4
MT
188 CFLAGS: ${OUR_CFLAGS} ${CFLAGS}
189 CPPFLAGS: ${OUR_CPPFLAGS} ${CPPFLAGS}
190 LDFLAGS: ${OUR_LDFLAGS} ${LDFLAGS}
191 PYTHON_CFLAGS: ${PYTHON_DEVEL_CFLAGS}
192 PYTHON_LIBS: ${PYTHON_DEVEL_LIBS}
193])