]> git.ipfire.org Git - people/stevee/pakfire.git/blob - configure.ac
Major rewrite how transactions are built.
[people/stevee/pakfire.git] / configure.ac
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
21 AC_PREREQ([2.64])
22
23 AC_INIT([pakfire],
24 [0.9.26],
25 [info@ipfire.org],
26 [pakfire],
27 [http://git.ipfire.org/?p=pakfire.git;a=summary])
28
29 AC_CONFIG_MACRO_DIR([m4])
30 AC_CONFIG_HEADERS([config.h])
31 AC_CONFIG_AUX_DIR([build-aux])
32
33 AC_USE_SYSTEM_EXTENSIONS
34 AC_SYS_LARGEFILE
35 AC_PREFIX_DEFAULT([/usr])
36
37 AM_INIT_AUTOMAKE([
38 foreign
39 1.11
40 -Wall
41 -Wno-portability
42 silent-rules
43 tar-pax
44 subdir-objects
45 ])
46 AM_SILENT_RULES([yes])
47 LT_PREREQ(2.2)
48 LT_INIT([disable-static])
49
50 IT_PROG_INTLTOOL([0.40.0])
51
52 GETTEXT_PACKAGE=pakfire
53 AC_SUBST(GETTEXT_PACKAGE)
54
55 AC_PROG_LN_S
56 AC_PROG_MKDIR_P
57 AC_PROG_SED
58
59 # pkg-config
60 PKG_PROG_PKG_CONFIG
61 # This makes sure pkg.m4 is available.
62 m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
63
64 # C Compiler
65 AC_PROG_CC
66 AC_PROG_CC_C99
67 AC_PROG_CC_C_O
68 AC_PROG_GCC_TRADITIONAL
69 AC_OPENMP
70
71 CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
72 -pipe \
73 -Wall \
74 -Wextra \
75 -Wno-inline \
76 -Wundef \
77 "-Wformat=2 -Wformat-security -Wformat-nonliteral" \
78 -Wno-unused-parameter \
79 -Wno-unused-result \
80 -fno-strict-aliasing \
81 -ffunction-sections \
82 -fdata-sections \
83 -fstack-protector-all \
84 --param=ssp-buffer-size=4])
85 AC_SUBST([OUR_CFLAGS], $with_cflags)
86
87 AS_CASE([$CFLAGS], [*-O[[12345g\ ]]*],
88 [CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\
89 -Wp,-D_FORTIFY_SOURCE=2])],
90 [AC_MSG_RESULT([skipping -D_FORTIFY_SOURCE, optimization not enabled])])
91 AC_SUBST([OUR_CPPFLAGS], $with_cppflags)
92
93 CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
94 -Wl,--as-needed \
95 -Wl,--no-undefined \
96 -Wl,--gc-sections \
97 -Wl,-z,relro \
98 -Wl,-z,now])
99 AC_SUBST([OUR_LDFLAGS], $with_ldflags)
100
101 # Python
102 AM_PATH_PYTHON([2.7])
103
104 save_LIBS="$LIBS"
105
106 # beecrypt
107 LIBS=
108 AC_SEARCH_LIBS([hashFunctionContextInit], [beecrypt], [], [AC_MSG_ERROR([*** beecrypt library not found])])
109 BEECRYPT_LIBS="$LIBS"
110 AC_SUBST(BEECRYPT_LIBS)
111
112 # libdl
113 LIBS=
114 AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([*** Dynamic linking loader library not found])])
115 DL_LIBS="$LIBS"
116 AC_SUBST(DL_LIBS)
117
118 # libcap
119 AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])])
120
121 LIBS=
122 AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])])
123 CAP_LIBS="$LIBS"
124 AC_SUBST(CAP_LIBS)
125
126 # libelf
127 AC_CHECK_HEADERS([libelf.h gelf.h], [], [AC_MSG_ERROR([*** libelf headers not found])])
128
129 LIBS=
130 AC_SEARCH_LIBS([gelf_getvernaux], [elf], [], [AC_MSG_ERROR([*** libelf library not found])])
131 ELF_LIBS="$LIBS"
132 AC_SUBST(ELF_LIBS)
133
134 # libpopt
135 AC_CHECK_HEADERS([popt.h], [], [AC_MSG_ERROR([*** libpopt headers not found])])
136
137 LIBS=
138 AC_SEARCH_LIBS([poptGetContext], [popt], [], [AC_MSG_ERROR([*** libpopt library not found])])
139 POPT_LIBS="$LIBS"
140 AC_SUBST(POPT_LIBS)
141
142 # libsolv
143 AC_CHECK_HEADERS([solv/solvversion.h], [], [AC_MSG_ERROR([*** libsolv headers not found])])
144
145 LIBS=
146 AC_SEARCH_LIBS([solver_create], [solv], [], [AC_MSG_ERROR([*** libsolv library not found])])
147 SOLV_LIBS="$LIBS"
148 AC_SUBST(SOLV_LIBS)
149 LIBS="$save_LIBS"
150
151 PKG_CHECK_MODULES([PYTHON_DEVEL], [python-${PYTHON_VERSION}])
152 PKG_CHECK_MODULES([LZMA], [liblzma])
153
154 AC_ARG_WITH([systemdsystemunitdir],
155 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
156 [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
157 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
158 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"])
159
160 AC_CONFIG_FILES([
161 Makefile
162 po/Makefile.in
163 src/pakfire/__version__.py
164 ])
165
166 AC_OUTPUT
167 AC_MSG_RESULT([
168 $PACKAGE_NAME $VERSION
169
170 CFLAGS: ${OUR_CFLAGS} ${CFLAGS}
171 CPPFLAGS: ${OUR_CPPFLAGS} ${CPPFLAGS}
172 LDFLAGS: ${OUR_LDFLAGS} ${LDFLAGS}
173 PYTHON_CFLAGS: ${PYTHON_DEVEL_CFLAGS}
174 PYTHON_LIBS: ${PYTHON_DEVEL_LIBS}
175 ])