xref: /nrf52832-nimble/rt-thread/tools/kconfig-frontends/configure.ac (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero#                                               -*- Autoconf -*-
2*10465441SEvalZero# Process this file with autoconf to produce a configure script.
3*10465441SEvalZero
4*10465441SEvalZero#---------------------------------------------------------------------------
5*10465441SEvalZero# Global initialisation
6*10465441SEvalZero
7*10465441SEvalZero#----------------------------------------
8*10465441SEvalZero# Prepare autoconf
9*10465441SEvalZeroAC_PREREQ([2.67])
10*10465441SEvalZeroAC_INIT(
11*10465441SEvalZero    [kconfig-frontends],
12*10465441SEvalZero    [m4_esyscmd_s([./scripts/version.sh])],
13*10465441SEvalZero    [[email protected]])
14*10465441SEvalZeroAC_CONFIG_SRCDIR([frontends/conf/conf.c])
15*10465441SEvalZero# Use a config.h to avoid brazilions -DHAVE_FOO on compile lines
16*10465441SEvalZeroAC_CONFIG_HEADERS([scripts/.autostuff/config.h])
17*10465441SEvalZeroAC_CONFIG_AUX_DIR([scripts/.autostuff/scripts])
18*10465441SEvalZeroAC_CONFIG_MACRO_DIR([scripts/.autostuff/m4])
19*10465441SEvalZero
20*10465441SEvalZero#----------------------------------------
21*10465441SEvalZero# Prepare automake
22*10465441SEvalZero
23*10465441SEvalZeroAM_INIT_AUTOMAKE([foreign subdir-objects])
24*10465441SEvalZero
25*10465441SEvalZero# For releases, enable silent rules, unless the user explicitly
26*10465441SEvalZero# disables them.
27*10465441SEvalZero# For the devel tree, do build with verbose output, unless user
28*10465441SEvalZero# explicitly enables silent rules
29*10465441SEvalZeroAS_IF(
30*10465441SEvalZero    [test "$(${srcdir}/scripts/version.sh --internal)" = "git"],
31*10465441SEvalZero    [AM_SILENT_RULES],
32*10465441SEvalZero    [AM_SILENT_RULES([yes])])
33*10465441SEvalZero
34*10465441SEvalZero#----------------------------------------
35*10465441SEvalZero# Prepare libtool
36*10465441SEvalZerom4_ifdef([AM_PROG_AR], [AM_PROG_AR]) dnl Automake, we have a problem...
37*10465441SEvalZeroLT_PREREQ([2.2.6])
38*10465441SEvalZeroLT_INIT([disable-static])
39*10465441SEvalZero
40*10465441SEvalZero#---------------------------------------------------------------------------
41*10465441SEvalZero# Set misc options
42*10465441SEvalZero
43*10465441SEvalZero# By default, do build with -Wall, unless the user asks not to
44*10465441SEvalZero[wall_CFLAGS=-Wall]
45*10465441SEvalZeroAC_ARG_ENABLE(
46*10465441SEvalZero    [wall],
47*10465441SEvalZero    [AS_HELP_STRING(
48*10465441SEvalZero        [--disable-wall],
49*10465441SEvalZero        [build with -Wall (default=yes)])],
50*10465441SEvalZero    [AS_CASE(
51*10465441SEvalZero        ["$enableval"],
52*10465441SEvalZero        [yes], [wall_CFLAGS=-Wall],
53*10465441SEvalZero        [*],   [wall_CFLAGS=""])])
54*10465441SEvalZeroAC_SUBST([wall_CFLAGS],[${wall_CFLAGS}])
55*10465441SEvalZero
56*10465441SEvalZero# For releases, do not build with -Werror, unless the user explicitly
57*10465441SEvalZero# requests to build with -Werror.
58*10465441SEvalZero# For the devel tree, do build with -Werror by default, unless user
59*10465441SEvalZero# explicitly disables -Werror
60*10465441SEvalZeroAS_IF(
61*10465441SEvalZero    [test "$(${srcdir}/scripts/version.sh --internal)" = "git"],
62*10465441SEvalZero    [werror_CFLAGS=-Werror])
63*10465441SEvalZeroAC_ARG_ENABLE(
64*10465441SEvalZero    [werror],
65*10465441SEvalZero    [AS_HELP_STRING(
66*10465441SEvalZero        [--enable-werror],
67*10465441SEvalZero        [build with -Werror (default=no)])],
68*10465441SEvalZero    [AS_CASE(
69*10465441SEvalZero        ["$enableval"],
70*10465441SEvalZero        [yes], [werror_CFLAGS=-Werror],
71*10465441SEvalZero        [*],   [werror_CFLAGS=""])])
72*10465441SEvalZeroAC_SUBST([werror_CFLAGS],[${werror_CFLAGS}])
73*10465441SEvalZero
74*10465441SEvalZero# Although there is a default (="linux") in the code, we do provide
75*10465441SEvalZero# a default here, to get a consistent autostuff behavior
76*10465441SEvalZeroAC_ARG_ENABLE(
77*10465441SEvalZero    [root-menu-prompt],
78*10465441SEvalZero    [AS_HELP_STRING(
79*10465441SEvalZero        [--enable-root-menu-prompt=PROMPT],
80*10465441SEvalZero        [set the root-menu prompt (default=Configuration)])],
81*10465441SEvalZero    [AS_CASE(
82*10465441SEvalZero        ["$enableval"],
83*10465441SEvalZero        [yes], [root_menu=Configuration],
84*10465441SEvalZero        [no],  [root_menu=],
85*10465441SEvalZero               [# Escape the $ signs, otherwise they would get munged by make
86*10465441SEvalZero                root_menu="$( echo "$enableval" |sed -e 's/\$/\\$$/g;' )"])])
87*10465441SEvalZeroAC_SUBST([root_menu], [${root_menu=Configuration}])
88*10465441SEvalZero
89*10465441SEvalZeroAC_ARG_ENABLE(
90*10465441SEvalZero    [config-prefix],
91*10465441SEvalZero    [AS_HELP_STRING(
92*10465441SEvalZero        [--enable-config-prefix=PREFIX],
93*10465441SEvalZero        [the prefix to the config option (default=CONFIG_)])],
94*10465441SEvalZero    [AS_CASE(
95*10465441SEvalZero        ["$enableval"],
96*10465441SEvalZero        [*" "*],[AC_MSG_ERROR([config prefix can not contain spaces: '$enableval'])],
97*10465441SEvalZero        [yes],  [config_prefix=CONFIG_],
98*10465441SEvalZero        [no],   [config_prefix=],
99*10465441SEvalZero                [config_prefix=$enableval])])
100*10465441SEvalZeroAC_SUBST([config_prefix], [${config_prefix-CONFIG_}])
101*10465441SEvalZero
102*10465441SEvalZeroAC_ARG_ENABLE(
103*10465441SEvalZero    [utils],
104*10465441SEvalZero    [AS_HELP_STRING(
105*10465441SEvalZero        [--disable-utils],
106*10465441SEvalZero        [install utilities to manage .config files (default=yes)])])
107*10465441SEvalZeroAC_SUBST([enable_utils], [${enable_utils:-yes}])
108*10465441SEvalZero
109*10465441SEvalZeroAC_ARG_ENABLE(
110*10465441SEvalZero    [L10n],
111*10465441SEvalZero    [AS_HELP_STRING(
112*10465441SEvalZero        [--disable-L10n],
113*10465441SEvalZero        [enable localisation (L10n) (default=auto)])])
114*10465441SEvalZeroAC_SUBST([enable_L10n], [${enable_L10n:-yes}])
115*10465441SEvalZero
116*10465441SEvalZero#----------------------------------------
117*10465441SEvalZero# Options to selectively enable/disable frontends
118*10465441SEvalZero# All are selected by default
119*10465441SEvalZeroAC_ARG_ENABLE(
120*10465441SEvalZero    [kconfig],
121*10465441SEvalZero    [AS_HELP_STRING(
122*10465441SEvalZero        [--disable-kconfig],
123*10465441SEvalZero        [kconfig, the meta-frontend to all kconfig tools (default=yes)])])
124*10465441SEvalZeroAC_SUBST([enable_kconfig], [${enable_kconfig:-yes}])
125*10465441SEvalZero
126*10465441SEvalZeroAC_ARG_ENABLE(
127*10465441SEvalZero    [conf],
128*10465441SEvalZero    [AS_HELP_STRING(
129*10465441SEvalZero        [--disable-conf],
130*10465441SEvalZero        [conf, the stdin-based frontend (default=auto)])])
131*10465441SEvalZeroAC_SUBST([enable_conf], [${enable_conf:-auto}])
132*10465441SEvalZeroAC_ARG_ENABLE(
133*10465441SEvalZero    [mconf],
134*10465441SEvalZero    [AS_HELP_STRING(
135*10465441SEvalZero        [--disable-mconf],
136*10465441SEvalZero        [mconf, the traditional ncurses-based frontend (default=auto)])])
137*10465441SEvalZeroAC_SUBST([enable_mconf], [${enable_mconf:-auto}])
138*10465441SEvalZeroAC_ARG_ENABLE(
139*10465441SEvalZero    [nconf],
140*10465441SEvalZero    [AS_HELP_STRING(
141*10465441SEvalZero        [--disable-nconf],
142*10465441SEvalZero        [nconf, the modern ncurses-based frontend (default=auto)])])
143*10465441SEvalZeroAC_SUBST([enable_nconf], [${enable_nconf:-auto}])
144*10465441SEvalZeroAC_ARG_ENABLE(
145*10465441SEvalZero    [gconf],
146*10465441SEvalZero    [AS_HELP_STRING(
147*10465441SEvalZero        [--disable-gconf],
148*10465441SEvalZero        [gconf, the GTK-based frontend (default=auto)])])
149*10465441SEvalZeroAC_SUBST([enable_gconf], [${enable_gconf:-auto}])
150*10465441SEvalZeroAC_ARG_ENABLE(
151*10465441SEvalZero    [qconf],
152*10465441SEvalZero    [AS_HELP_STRING(
153*10465441SEvalZero        [--disable-qconf],
154*10465441SEvalZero        [qconf, the QT-based frontend (default=auto)])])
155*10465441SEvalZeroAC_SUBST([enable_qconf], [${enable_qconf:-auto}])
156*10465441SEvalZero
157*10465441SEvalZeroAC_ARG_ENABLE(
158*10465441SEvalZero    [frontends],
159*10465441SEvalZero    [AS_HELP_STRING(
160*10465441SEvalZero        [--enable-frontends=list],
161*10465441SEvalZero        [enables only the set of frontends in comma-separated 'list'
162*10465441SEvalZero         (default: auto selection), takes precedence over all
163*10465441SEvalZero         --enable-*conf, above])],
164*10465441SEvalZero    [for f in conf mconf nconf gconf qconf; do
165*10465441SEvalZero        AS_CASE(
166*10465441SEvalZero            ["$enableval"],
167*10465441SEvalZero            [yes],      [eval enable_$f=yes],
168*10465441SEvalZero            ["$f"],     [eval enable_$f=yes],
169*10465441SEvalZero            ["$f",*],   [eval enable_$f=yes],
170*10465441SEvalZero            [*,"$f"],   [eval enable_$f=yes],
171*10465441SEvalZero            [*,"$f",*], [eval enable_$f=yes],
172*10465441SEvalZero                        [eval enable_$f=no])
173*10465441SEvalZero     done])
174*10465441SEvalZeroAC_SUBST([enable_frontends])
175*10465441SEvalZero
176*10465441SEvalZero#----------------------------------------
177*10465441SEvalZero# What extra CFLAGS we will be using
178*10465441SEvalZeroAC_SUBST([kf_CFLAGS], ["$wall_CFLAGS $werror_CFLAGS"])
179*10465441SEvalZero
180*10465441SEvalZero#----------------------------------------
181*10465441SEvalZero# Dependencies that will be needed, depending on the frontends
182*10465441SEvalZeroAS_CASE(
183*10465441SEvalZero    ["$enable_mconf":"$enable_nconf"],
184*10465441SEvalZero    [*yes*],  [need_curses=yes],
185*10465441SEvalZero    [*auto*], [need_curses=auto],
186*10465441SEvalZero              [need_curses=no])
187*10465441SEvalZero[need_panel_menu="$enable_nconf"]
188*10465441SEvalZeroAS_CASE(
189*10465441SEvalZero    ["$enable_gconf":"$enable_qconf"],
190*10465441SEvalZero    [*yes*],  [need_pkgconfig=yes],
191*10465441SEvalZero    [*auto*], [need_pkgconfig=yes],
192*10465441SEvalZero              [need_pkgconfig=no ])
193*10465441SEvalZero[need_gtk="$enable_gconf"]
194*10465441SEvalZero[need_qt="$enable_qconf"]
195*10465441SEvalZero
196*10465441SEvalZero#---------------------------------------------------------------------------
197*10465441SEvalZero# Now check we have the required stuff
198*10465441SEvalZero
199*10465441SEvalZero#----------------------------------------
200*10465441SEvalZero# Some program checks
201*10465441SEvalZeroAC_PROG_CC
202*10465441SEvalZeroAM_PROG_CC_C_O
203*10465441SEvalZeroAC_PROG_CXX
204*10465441SEvalZeroAC_C_INLINE
205*10465441SEvalZeroAC_PROG_MAKE_SET
206*10465441SEvalZeroAS_IF(
207*10465441SEvalZero    [test "$need_pkgconfig" = "yes"],
208*10465441SEvalZero    [PKG_PROG_PKG_CONFIG()])
209*10465441SEvalZero# Look for `lex'. If it cannot be found, autoconf sets $LEX to ':'.
210*10465441SEvalZeroAC_PROG_LEX
211*10465441SEvalZeroAS_IF(
212*10465441SEvalZero    [test "$LEX" = ":"],
213*10465441SEvalZero    [AC_MSG_ERROR([can not find a lexer generator (such as lex or flex)])])
214*10465441SEvalZeroAC_SUBST([AM_LFLAGS], ["-L -P zconf"])
215*10465441SEvalZero# Look for `yacc'. If it cannot be found, autoconf sets $YACC to 'yacc'.
216*10465441SEvalZeroAC_PROG_YACC
217*10465441SEvalZeroAS_IF(
218*10465441SEvalZero    [test "$YACC" = "yacc"],
219*10465441SEvalZero    [AC_CHECK_PROGS(
220*10465441SEvalZero        [YACC_IN_PATH],
221*10465441SEvalZero        [yacc])]
222*10465441SEvalZero     AS_IF(
223*10465441SEvalZero        [test -z "$YACC_IN_PATH"],
224*10465441SEvalZero        [AC_MSG_ERROR([can not find a parser generator (such as yacc or bison)])]))
225*10465441SEvalZeroAC_SUBST([AM_YFLAGS], ["-t -l -p zconf"])
226*10465441SEvalZero
227*10465441SEvalZero#----------------------------------------
228*10465441SEvalZero# Special section to check for gperf.
229*10465441SEvalZeroAC_CHECK_PROGS(
230*10465441SEvalZero    [GPERF],
231*10465441SEvalZero    [gperf])
232*10465441SEvalZeroAS_IF(
233*10465441SEvalZero    [test -z "$GPERF"],
234*10465441SEvalZero    [AC_MSG_ERROR([can not find gperf])])
235*10465441SEvalZero
236*10465441SEvalZero# gperf 3.1 generates functions with 'size_t' instead of 'unsigned int'
237*10465441SEvalZeroAC_MSG_CHECKING([for the type used in gperf declarations])
238*10465441SEvalZeroGPERF_LEN_TYPE=
239*10465441SEvalZeroAS_VAR_SET(
240*10465441SEvalZero    [GPERF_PROLOG],
241*10465441SEvalZero    [`echo foo,bar | ${GPERF} -L ANSI-C`])
242*10465441SEvalZeroAC_COMPILE_IFELSE(
243*10465441SEvalZero    [AC_LANG_PROGRAM(
244*10465441SEvalZero        [[
245*10465441SEvalZero        #include <string.h>
246*10465441SEvalZero        ${GPERF_PROLOG}
247*10465441SEvalZero        const char * in_word_set(const char *, size_t);
248*10465441SEvalZero        ]])
249*10465441SEvalZero    ],
250*10465441SEvalZero    [GPERF_LEN_TYPE='size_t'],
251*10465441SEvalZero    [
252*10465441SEvalZero    AC_COMPILE_IFELSE(
253*10465441SEvalZero        [AC_LANG_PROGRAM(
254*10465441SEvalZero            [[
255*10465441SEvalZero            #include <string.h>
256*10465441SEvalZero            ${GPERF_PROLOG}
257*10465441SEvalZero            const char * in_word_set(const char *, unsigned int);
258*10465441SEvalZero            ]])
259*10465441SEvalZero        ],
260*10465441SEvalZero        [GPERF_LEN_TYPE='unsigned int'],
261*10465441SEvalZero        [AC_MSG_RESULT([not size_t, not unsigned int. What else?])
262*10465441SEvalZero         AC_MSG_FAILURE([unable to detect the type used in gperf declarations])
263*10465441SEvalZero        ])])
264*10465441SEvalZeroAC_MSG_RESULT([${GPERF_LEN_TYPE}])
265*10465441SEvalZeroAC_SUBST([GPERF_LEN_TYPE])
266*10465441SEvalZero
267*10465441SEvalZero#----------------------------------------
268*10465441SEvalZero# Check for gettext, for the kconfig frontends
269*10465441SEvalZero[has_gettext="$enable_L10n"]
270*10465441SEvalZeroAS_IF(
271*10465441SEvalZero    [test "$has_gettext" = "yes"],
272*10465441SEvalZero    [AC_CHECK_HEADERS(
273*10465441SEvalZero        [libintl.h],
274*10465441SEvalZero        [ac_ct_gettext_hdr=$ac_header; break],
275*10465441SEvalZero        [has_gettext=no])])
276*10465441SEvalZeroAS_IF(
277*10465441SEvalZero    [test "$has_gettext" = "yes"],
278*10465441SEvalZero    [AC_CHECK_DECL(
279*10465441SEvalZero        [gettext],,
280*10465441SEvalZero        [has_gettext=no],
281*10465441SEvalZero        [#include <$ac_ct_gettext_hdr>])])
282*10465441SEvalZeroAS_IF(
283*10465441SEvalZero    [test "$has_gettext" = "yes"],
284*10465441SEvalZero    [LIBS_old="$LIBS"
285*10465441SEvalZero     LIBS=
286*10465441SEvalZero     AC_SEARCH_LIBS(
287*10465441SEvalZero        [gettext],
288*10465441SEvalZero        [intl],,
289*10465441SEvalZero        [has_gettext=no])
290*10465441SEvalZero    intl_LIBS="$LIBS"
291*10465441SEvalZero    LIBS="$LIBS_old"])
292*10465441SEvalZeroAS_IF(
293*10465441SEvalZero    [test "$has_gettext" = "no"],
294*10465441SEvalZero    [intl_CPPFLAGS=-DKBUILD_NO_NLS])
295*10465441SEvalZeroAC_SUBST([intl_CPPFLAGS])
296*10465441SEvalZeroAC_SUBST([intl_LIBS])
297*10465441SEvalZero
298*10465441SEvalZero#----------------------------------------
299*10465441SEvalZero# Check for ncurses, for the mconf & nconf frontends
300*10465441SEvalZeroAS_IF(
301*10465441SEvalZero    [test "$need_curses" = "yes" -o "$need_curses" = "auto"],
302*10465441SEvalZero    [AC_SUBST([ncurses_mconf_CPPFLAGS])
303*10465441SEvalZero     AC_SUBST([ncurses_LIBS])
304*10465441SEvalZero     LIBS_old="$LIBS"
305*10465441SEvalZero     LIBS=
306*10465441SEvalZero     AC_CHECK_HEADERS(
307*10465441SEvalZero        [ncursesw/curses.h ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h],
308*10465441SEvalZero        [CURSES_LOC=$ac_header
309*10465441SEvalZero         ncurses_mconf_CPPFLAGS=-DCURSES_LOC=\\\"$ac_header\\\"
310*10465441SEvalZero         break # Stupid syntax-coloring in vim: "])
311*10465441SEvalZero     AS_IF(
312*10465441SEvalZero        [test -z "$CURSES_LOC"],
313*10465441SEvalZero        [AS_IF(
314*10465441SEvalZero            [test "$need_curses" = "yes"],
315*10465441SEvalZero            [AC_MSG_ERROR([could not find curses headers (frontends: mconf/nconf)])],
316*10465441SEvalZero            [has_curses=no])])
317*10465441SEvalZero     AS_CASE(
318*10465441SEvalZero        [$CURSES_LOC],
319*10465441SEvalZero        [ncursesw/*],[ncurses_mconf_CPPFLAGS="$ncurses_mconf_CPPFLAGS -DNCURSES_WIDECHAR=1"])
320*10465441SEvalZero     AC_SEARCH_LIBS(
321*10465441SEvalZero        [setupterm],
322*10465441SEvalZero        [tinfo],
323*10465441SEvalZero        [break])
324*10465441SEvalZero     AC_SEARCH_LIBS(
325*10465441SEvalZero        [initscr],
326*10465441SEvalZero        [ncursesw ncurses curses],
327*10465441SEvalZero        [ac_ct_curses_lib_found=yes; break])
328*10465441SEvalZero     AS_IF(
329*10465441SEvalZero        [test -z "$ac_ct_curses_lib_found"],
330*10465441SEvalZero        [AS_IF(
331*10465441SEvalZero            [test "$need_curses" = "yes"],
332*10465441SEvalZero            [AC_MSG_ERROR([could not find curses library (frontends: mconf/nconf)])],
333*10465441SEvalZero            [has_curses=no])])
334*10465441SEvalZero     ncurses_LIBS="$LIBS"
335*10465441SEvalZero     LIBS=$LIBS_old])
336*10465441SEvalZero
337*10465441SEvalZeroAS_IF(
338*10465441SEvalZero    [test "$has_curses" = "no" ],
339*10465441SEvalZero    [enable_mconf=no; enable_nconf=no])
340*10465441SEvalZero
341*10465441SEvalZero#----------------------------------------
342*10465441SEvalZero# Check for libpanel and libmenu, for the nconf frontend
343*10465441SEvalZeroAS_IF(
344*10465441SEvalZero    [test "$need_panel_menu" = "yes" -o "$need_panel_menu" = "auto"],
345*10465441SEvalZero    [AC_SUBST([ncurses_nconf_CPPFLAGS])
346*10465441SEvalZero     AC_SUBST([ncurses_panel_menu_LIBS])
347*10465441SEvalZero     AS_CASE(
348*10465441SEvalZero        [$CURSES_LOC],
349*10465441SEvalZero        [ncursesw/*],[ncurses_nconf_CPPFLAGS="-I/usr/include/ncursesw"],
350*10465441SEvalZero        [ncurses/*],[ncurses_nconf_CPPFLAGS="-I/usr/include/ncurses"])
351*10465441SEvalZero     LIBS_old="$LIBS"
352*10465441SEvalZero     LIBS=
353*10465441SEvalZero     AC_SEARCH_LIBS(
354*10465441SEvalZero        [new_panel],
355*10465441SEvalZero        [panelw panel],
356*10465441SEvalZero        [ac_ct_panel_lib_found=yes; break],,
357*10465441SEvalZero        [$ncurses_LIBS])
358*10465441SEvalZero     AS_IF(
359*10465441SEvalZero        [test -z "$ac_ct_panel_lib_found"],
360*10465441SEvalZero        [AS_IF(
361*10465441SEvalZero            [test "$need_panel_menu" = "yes"],
362*10465441SEvalZero            [AC_MSG_ERROR([could not find libpanel library (frontend: nconf)])],
363*10465441SEvalZero            [has_panel_menu=no])])
364*10465441SEvalZero     AC_SEARCH_LIBS(
365*10465441SEvalZero        [menu_init],
366*10465441SEvalZero        [menuw menu],
367*10465441SEvalZero        [ac_ct_menu_lib_found=yes; break],,
368*10465441SEvalZero        [$ncurses_LIBS])
369*10465441SEvalZero     AS_IF(
370*10465441SEvalZero        [test -z "$ac_ct_panel_lib_found"],
371*10465441SEvalZero        [AS_IF(
372*10465441SEvalZero            [test "$need_panel_menu" = "yes"],
373*10465441SEvalZero            [AC_MSG_ERROR([could not find libmenu library (frontend: nconf)])],
374*10465441SEvalZero            [has_panel_menu=no])])
375*10465441SEvalZero     ncurses_panel_menu_LIBS="$LIBS"
376*10465441SEvalZero     LIBS=$LIBS_old])
377*10465441SEvalZero
378*10465441SEvalZeroAS_IF(
379*10465441SEvalZero    [test "$has_panel_menu" = "no" ],
380*10465441SEvalZero    [enable_nconf=no])
381*10465441SEvalZero
382*10465441SEvalZero#----------------------------------------
383*10465441SEvalZero# Check headers and libs for gconf
384*10465441SEvalZeroAS_IF(
385*10465441SEvalZero    [test "$need_gtk" = "yes" -o "$need_gtk" = "auto"],
386*10465441SEvalZero    [PKG_CHECK_MODULES(
387*10465441SEvalZero        [gtk],
388*10465441SEvalZero        [gtk+-2.0 gmodule-2.0 libglade-2.0],
389*10465441SEvalZero        [has_gtk=yes],
390*10465441SEvalZero        [AS_IF(
391*10465441SEvalZero            [test "$need_gtk" = "yes"],
392*10465441SEvalZero            [AC_MSG_ERROR([could not find GTK+ headers and/or libraries (frontend: gconf)])],
393*10465441SEvalZero            [has_gtk=no])])])
394*10465441SEvalZero
395*10465441SEvalZeroAS_IF(
396*10465441SEvalZero    [test "$has_gtk" = "no" ],
397*10465441SEvalZero    [enable_gconf=no])
398*10465441SEvalZero
399*10465441SEvalZero#----------------------------------------
400*10465441SEvalZero# Check headers and libs for qconf
401*10465441SEvalZeroAS_IF(
402*10465441SEvalZero    [test "$need_qt" = "yes" -o "$need_qt" = "auto"],
403*10465441SEvalZero    [PKG_CHECK_MODULES(
404*10465441SEvalZero        [Qt5],
405*10465441SEvalZero        [Qt5Core Qt5Gui Qt5Widgets],
406*10465441SEvalZero        [has_qt=yes; need_moc="$need_qt"],
407*10465441SEvalZero        [AS_IF(
408*10465441SEvalZero            [test "$need_qt" = "yes"],
409*10465441SEvalZero            [AC_MSG_ERROR([could not find Qt5 headers and/or libraries (frontend: qconf)])],
410*10465441SEvalZero            [has_qt=no; need_moc=no])])])
411*10465441SEvalZero
412*10465441SEvalZeroAC_ARG_VAR([MOC], [Qt5 meta object compiler (moc) command])
413*10465441SEvalZeroAS_IF(
414*10465441SEvalZero    [test "$need_moc" = "yes" -o "$need_moc" = "auto"],
415*10465441SEvalZero    [QT5_BINDIR=`$PKG_CONFIG Qt5Core --variable host_bins`
416*10465441SEvalZero     AC_PATH_PROGS(
417*10465441SEvalZero        [MOC],
418*10465441SEvalZero        [moc-qt5 moc],,
419*10465441SEvalZero        [$QT5_BINDIR:$PATH])
420*10465441SEvalZero     AS_IF(
421*10465441SEvalZero        [test -n "$MOC"],
422*10465441SEvalZero        [has_moc=yes],
423*10465441SEvalZero        [AS_IF(
424*10465441SEvalZero            [test "$need_moc" = "yes"],
425*10465441SEvalZero            [AC_MSG_ERROR([could not find moc (frontend: qconf)])],
426*10465441SEvalZero            [has_moc=no])])])
427*10465441SEvalZero
428*10465441SEvalZeroAS_IF(
429*10465441SEvalZero    [test "$has_qt" = "no" -o "$has_moc" = "no"],
430*10465441SEvalZero    [enable_qconf=no])
431*10465441SEvalZero
432*10465441SEvalZero#----------------------------------------
433*10465441SEvalZero# Per-frontends extra libraries
434*10465441SEvalZeroAC_ARG_VAR([conf_EXTRA_LIBS],  [Extra libraries to build the conf frontend] )
435*10465441SEvalZeroAC_ARG_VAR([gconf_EXTRA_LIBS], [Extra libraries to build the gconf frontend])
436*10465441SEvalZeroAC_ARG_VAR([mconf_EXTRA_LIBS], [Extra libraries to build the mconf frontend])
437*10465441SEvalZeroAC_ARG_VAR([nconf_EXTRA_LIBS], [Extra libraries to build the nconf frontend])
438*10465441SEvalZeroAC_ARG_VAR([qconf_EXTRA_LIBS], [Extra libraries to build the qconf frontend])
439*10465441SEvalZero
440*10465441SEvalZero#---------------------------------------------------------------------------
441*10465441SEvalZero# Now, we know what frontends to enable
442*10465441SEvalZeroAS_IF([test "$enable_conf"  = "auto"], [enable_conf=yes ])
443*10465441SEvalZeroAS_IF([test "$enable_gconf" = "auto"], [enable_gconf=yes])
444*10465441SEvalZeroAS_IF([test "$enable_mconf" = "auto"], [enable_mconf=yes])
445*10465441SEvalZeroAS_IF([test "$enable_nconf" = "auto"], [enable_nconf=yes])
446*10465441SEvalZeroAS_IF([test "$enable_qconf" = "auto"], [enable_qconf=yes])
447*10465441SEvalZero
448*10465441SEvalZero#----------------------------------------
449*10465441SEvalZero# Check if the lxdialog library should be built
450*10465441SEvalZeroAS_IF(
451*10465441SEvalZero    [test "$enable_mconf" = "yes"],
452*10465441SEvalZero    [need_lxdialog=yes],
453*10465441SEvalZero    [need_lxdialog=no])
454*10465441SEvalZero
455*10465441SEvalZero#----------------------------------------
456*10465441SEvalZero# Check if the images library should be built
457*10465441SEvalZeroAS_IF(
458*10465441SEvalZero    [test "$enable_gconf" = "yes" -o "$enable_qconf" = "yes"],
459*10465441SEvalZero    [need_images=yes],
460*10465441SEvalZero    [need_images=no])
461*10465441SEvalZero
462*10465441SEvalZero#----------------------------------------
463*10465441SEvalZero# Setup automake conditional build
464*10465441SEvalZeroAM_CONDITIONAL(
465*10465441SEvalZero    [COND_kconfig],
466*10465441SEvalZero    [test "$enable_kconfig" = "yes"])
467*10465441SEvalZeroAM_CONDITIONAL(
468*10465441SEvalZero    [COND_conf],
469*10465441SEvalZero    [test "$enable_conf" = "yes"])
470*10465441SEvalZeroAM_CONDITIONAL(
471*10465441SEvalZero    [COND_mconf],
472*10465441SEvalZero    [test "$enable_mconf" = "yes"])
473*10465441SEvalZeroAM_CONDITIONAL(
474*10465441SEvalZero    [COND_nconf],
475*10465441SEvalZero    [test "$enable_nconf" = "yes"])
476*10465441SEvalZeroAM_CONDITIONAL(
477*10465441SEvalZero    [COND_gconf],
478*10465441SEvalZero    [test "$enable_gconf" = "yes"])
479*10465441SEvalZeroAM_CONDITIONAL(
480*10465441SEvalZero    [COND_qconf],
481*10465441SEvalZero    [test "$enable_qconf" = "yes"])
482*10465441SEvalZeroAM_CONDITIONAL(
483*10465441SEvalZero    [COND_lxdialog],
484*10465441SEvalZero    [test "$need_lxdialog" = "yes"])
485*10465441SEvalZeroAM_CONDITIONAL(
486*10465441SEvalZero    [COND_images],
487*10465441SEvalZero    [test "$need_images" = "yes"])
488*10465441SEvalZeroAM_CONDITIONAL(
489*10465441SEvalZero    [COND_utils],
490*10465441SEvalZero    [test "$enable_utils" = "yes"])
491*10465441SEvalZeroAM_CONDITIONAL(
492*10465441SEvalZero    [COND_utils_gettext],
493*10465441SEvalZero    [test "$has_gettext" = "yes"])
494*10465441SEvalZero
495*10465441SEvalZero#----------------------------------------
496*10465441SEvalZero# Get the version to apply to the parser shared library
497*10465441SEvalZeroAC_SUBST(
498*10465441SEvalZero    [KCONFIGPARSER_LIB_VERSION],
499*10465441SEvalZero    [m4_esyscmd_s([./scripts/version.sh --plain])])
500*10465441SEvalZero
501*10465441SEvalZero#----------------------------------------
502*10465441SEvalZero# Pretty-print the configuration settings
503*10465441SEvalZero[fe_list=]
504*10465441SEvalZeroAS_IF([test "$enable_conf"  = "yes"], [fe_list="$fe_list conf" ])
505*10465441SEvalZeroAS_IF([test "$enable_gconf" = "yes"], [fe_list="$fe_list gconf"])
506*10465441SEvalZeroAS_IF([test "$enable_mconf" = "yes"], [fe_list="$fe_list mconf"])
507*10465441SEvalZeroAS_IF([test "$enable_nconf" = "yes"], [fe_list="$fe_list nconf"])
508*10465441SEvalZeroAS_IF([test "$enable_qconf" = "yes"], [fe_list="$fe_list qconf"])
509*10465441SEvalZero# The meta frontend is handled separatly, below, because we do not
510*10465441SEvalZero# want it in the list of tools, kcfg_list.
511*10465441SEvalZero
512*10465441SEvalZero[kcfg_list="$fe_list"]
513*10465441SEvalZeroAS_IF([test "$enable_utils" = "yes"], [kcfg_list="$kcfg_list diff merge tweak"])
514*10465441SEvalZeroAS_IF([test "$has_gettext" = "yes"],  [kcfg_list="$kcfg_list gettext"])
515*10465441SEvalZeroAC_SUBST([kcfg_list], [${kcfg_list}])
516*10465441SEvalZero
517*10465441SEvalZeroAS_IF([test "$enable_kconfig" = "yes"], [fe_list=" kconfig$fe_list"])
518*10465441SEvalZero
519*10465441SEvalZero[lib_list=]
520*10465441SEvalZeroAS_IF(
521*10465441SEvalZero    [test "$enable_shared" = "yes"],
522*10465441SEvalZero    [lib_list="$lib_list shared (version: $KCONFIGPARSER_LIB_VERSION)"])
523*10465441SEvalZeroAS_IF(
524*10465441SEvalZero    [test "$enable_static" = "yes"],
525*10465441SEvalZero    [lib_list="$lib_list${lib_list:+,} static"])
526*10465441SEvalZero
527*10465441SEvalZero#----------------------------------------
528*10465441SEvalZero# Finalise
529*10465441SEvalZero# All generated files are generated by a Makefile rule, except Makefile
530*10465441SEvalZero# itself of course.
531*10465441SEvalZero# There is no generic solution in automake to generate a file from its
532*10465441SEvalZero# .in source, so we'd have to provide custom, hand-made rules, which is
533*10465441SEvalZero# not nice. So, we handle libs/parser/kconfig-parser.pc here.
534*10465441SEvalZeroAC_CONFIG_FILES([
535*10465441SEvalZero    Makefile
536*10465441SEvalZero    libs/parser/kconfig-parser.pc
537*10465441SEvalZero])
538*10465441SEvalZeroAC_OUTPUT
539*10465441SEvalZero
540*10465441SEvalZeroAC_MSG_NOTICE()
541*10465441SEvalZeroAC_MSG_NOTICE([Configured with:])
542*10465441SEvalZeroAC_MSG_NOTICE([- parser library     :$lib_list])
543*10465441SEvalZeroAC_MSG_NOTICE([  - root-menu prompt : $root_menu])
544*10465441SEvalZeroAC_MSG_NOTICE([  - config prefix    : $config_prefix])
545*10465441SEvalZeroAC_MSG_NOTICE([- frontends          :$fe_list])
546*10465441SEvalZeroAC_MSG_NOTICE([  - localised        : $has_gettext])
547*10465441SEvalZeroAC_MSG_NOTICE([- install utilities  : $enable_utils])
548*10465441SEvalZeroAC_MSG_NOTICE([- CFLAGS CXXFLAGS    : $wall_CFLAGS $werror_CFLAGS])
549