Code

screen_queue: set cursor before button handlers
[ncmpc.git] / configure.ac
1 AC_PREREQ(2.60)
2 AC_INIT(ncmpc, 0.16~git, max@duempel.org)
3 AC_CONFIG_SRCDIR([src/main.c])
4 AC_CONFIG_AUX_DIR(build)
5 AM_INIT_AUTOMAKE([foreign 1.9 dist-bzip2])
6 AM_CONFIG_HEADER([config.h])
7 AC_CONFIG_MACRO_DIR([m4])
9 dnl Check for programs
10 AC_PROG_CC_C99
11 AC_PROG_INSTALL
13 dnl =======================================================
14 dnl initialize variables
15 dnl =======================================================
17 dnl i18n
18 ALL_LINGUAS=`grep -v '^\#' po/LINGUAS`
20 set -- $CFLAGS
23 dnl
24 dnl ncmpc-mini
25 dnl
27 AC_ARG_ENABLE(mini,
28     AS_HELP_STRING([--enable-mini],
29                 [Build ncmpc-mini, i.e. without all optional features (default: disabled)]),
30     [enable_mini=$enableval],
31     [enable_mini=no])
33 AM_CONDITIONAL(NCMPC_MINI, test x$enable_mini = xyes)
34 if test "x$enable_mini" = xyes; then
35     AC_DEFINE([NCMPC_MINI], [1], [Build ncmpc-mini, which disables lots of features])
36     auto=no
37     disable_mini=no
38     auto_mini=no
39     ncurses=ncurses
40 else
41     auto=auto
42     disable_mini=yes
43     auto_mini=auto
44     ncurses=auto
45 fi
48 dnl
49 dnl Check for libraries
50 dnl
52 dnl Try to find the socket functions
53 AC_CHECK_FUNC([socket],
54               [], 
55               [AC_CHECK_LIB([socket],[socket],[LIBS="$LIBS -lsocket"],
56                             [AC_MSG_ERROR(No UNIX socket API found)])
57               ])
59 dnl Try to find the gethostbyname functions
60 AC_CHECK_FUNC([gethostbyname],
61               [], 
62               [AC_CHECK_LIB([nsl],[gethostbyname],[LIBS="$LIBS -lnsl"],
63                             [AC_MSG_ERROR(No UNIX gethostbyname API found)])
64               ])
67 dnl wide character support
68 AC_ARG_ENABLE([wide],
69     AC_HELP_STRING([--enable-wide],
70                    [Enable wide character support]),
71                    [enable_wide=$enableval],
72                    [enable_wide=auto])
75 dnl ncurses
76 AC_ARG_WITH([ncurses],
77             AC_HELP_STRING([--with-ncurses], [compile/link with ncurses library] ),
78             [ncurses=ncurses])
79 AC_ARG_WITH(ncursesw,
80             AC_HELP_STRING([--with-ncursesw], [compile/link with wide-char ncurses library @<:@default@:>@]),
81             [ncurses=ncursesw])
83 if test "x$enable_wide" = "xno"; then
84     if test "x$ncurses" = "xauto"; then
85         dnl select narrow ncurses
86         ncurses=ncurses
87     fi
89     if test "x$ncurses" = "xncursesw"; then
90         AC_MSG_WARN([Narrow ncmpc linking against wide libncurses])
91     fi
92 fi
94 if test "x$ncurses" = "xauto"; then
95         AC_CHECK_LIB([ncursesw], 
96                      [initscr],
97                      [ncurses=ncursesw],
98                      [ncurses=ncurses])
99 fi
101 AC_CHECK_LIB([$ncurses], 
102              [initscr],
103              [LIBS="$LIBS -l$ncurses"], 
104              [AC_MSG_ERROR($ncurses library is required)])
106 if test "x$ncurses" = "xncursesw"; then
107     AC_CHECK_HEADER([ncursesw/ncurses.h],
108                     AC_DEFINE([HAVE_NCURSESW_NCURSES_H], [1], [ncursesw/ncurses.h]),
109                     ,)
110 fi
113 dnl wide character support II
115 if test "x$enable_wide" = "xauto" ; then
116     AC_CHECK_LIB([$ncurses], 
117                  [wget_wch],
118                  [enable_wide=yes],
119                  [enable_wide=no])
120 fi
122 AC_MSG_CHECKING([wide character support])
123 AC_MSG_RESULT([$enable_wide])
125 if test "x$enable_wide" = "xyes" ; then
126     AC_DEFINE([ENABLE_WIDE], [1], [Enable wide character support])
127 fi
129 dnl multi-byte character support
131 AC_ARG_ENABLE([multibyte],
132         AC_HELP_STRING([--disable-multibyte],
133                 [Disable multibyte character support (default: enabled)]),
134                 [enable_multibyte=$enableval],
135                 [enable_multibyte=$disable_mini])
137 if test x$enable_multibyte = xyes; then
138         AC_DEFINE([ENABLE_MULTIBYTE], [1], [Enable multibyte character support])
139 else
140         if test x$enable_wide = xyes; then
141                 AC_MSG_WARN(wide characters without multibyte characters makes little sense)
142         fi
143 fi
145 dnl Check for glib-2.4
146 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.4],,
147         [AC_MSG_ERROR([glib 2.4 is required])])
149 dnl Check for libmpdclient 2.0
150 PKG_CHECK_MODULES([LIBMPDCLIENT], [libmpdclient >= 2.0],,
151         [AC_MSG_ERROR([libmpdclient2 is required])])
154 dnl i18n
156 AC_ARG_ENABLE([locale],
157         AC_HELP_STRING([--disable-locale],
158                 [Disable locale support (default: auto)]),
159                 [enable_locale=$enableval],
160                 [enable_locale=$auto_mini])
162 if test x$enable_locale = xyes; then
163         AC_CHECK_HEADER([locale.h],,
164                 [AC_MSG_ERROR(locale.h is unavailable)])
165 fi
167 if test x$enable_locale = xauto; then
168         AC_CHECK_HEADER([locale.h],
169                 [enable_locale=yes],
170                 [enable_locale=no])
171 fi
173 if test x$enable_locale = xyes; then
174         AC_DEFINE([ENABLE_LOCALE], [1], [Locale support is enabled])
175 fi
177 if test x$enable_mini != xyes; then
178         AM_NLS
179 else
180         USE_NLS=no
181 fi
183 if test x$USE_NLS = xyes; then
184    AM_GLIB_GNU_GETTEXT
185    GETTEXT_PACKAGE=$PACKAGE
186    AC_SUBST(GETTEXT_PACKAGE)
187    AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], 
188                       ["${GETTEXT_PACKAGE}"], 
189                       [gettext domain])
190         USE_NLS=$gt_cv_have_gettext
191         if test x$USE_NLS != xyes; then
192      AC_MSG_WARN([NLS support disabled!])
193   fi
194 else
195   AM_PO_SUBDIRS
196 fi
198 dnl enable colors
199 AC_MSG_CHECKING([color support])
200 AC_ARG_ENABLE([colors],
201         AC_HELP_STRING([--enable-colors],
202                        [Enable color support]),
203                        [use_colors=$enableval], 
204         [use_colors=$disable_mini])
205 AC_MSG_RESULT([$use_colors])
206 if test "x$use_colors" = "xyes" ; then
207     AC_DEFINE([ENABLE_COLORS], [1], [Enable color support])
208 fi
210 dnl test for LIRC support
212 AC_ARG_ENABLE([lirc],
213         AC_HELP_STRING([--enable-lirc],
214                 [Enable LIRC support]),
215         [enable_lirc=$enableval],
216         [enable_lirc=no])
217 if test x$enable_lirc = xyes; then
218         PKG_CHECK_MODULES([LIBLIRCCLIENT], [liblircclient0],,
219                 [AC_MSG_ERROR([liblircclient0 not found])])
220         AC_DEFINE([ENABLE_LIRC], [1], [Enable LIRC support])
221 fi
223 AM_CONDITIONAL(ENABLE_LIRC, test x$enable_lirc = xyes)
226 dnl Optional screen - help screen
227 AC_MSG_CHECKING([whether to include the help screen])
228 AC_ARG_ENABLE([help-screen],
229         AS_HELP_STRING([--enable-help-screen],
230                 [Enable the help screen @<:@default=yes@:>@]),
231         [help_screen="$enableval"],
232         [help_screen=$disable_mini])
233 AC_MSG_RESULT([$help_screen])
234 if test "x$help_screen" = "xyes" ; then
235         AC_DEFINE(ENABLE_HELP_SCREEN, 1, [Enable the help screen])
236 fi
238 AM_CONDITIONAL(ENABLE_HELP_SCREEN, test x$help_screen = xyes)
240 dnl Optional screen - browse screen
241 #AC_MSG_CHECKING([whether to include the browse screen])r
242 #AC_ARG_ENABLE([browse-screen], 
243 #              AC_HELP_STRING([--enable-browse-screen],
244 #                            [Enable the browse screen @<:@default=yes@:>@]),
245 #             [browse_screen="$enableval"],
246 #             [browse_screen=yes])
247 #AC_MSG_RESULT([$browse_screen])
248 #if test "x$browse_screen" = "xyes" ; then
249 #   AC_DEFINE(ENABLE_BROWSE_SCREEN, 1, [Enable the browse screen])
250 #fi
252 dnl Optional - curses getmouse support
253 AC_MSG_CHECKING([whether to include mouse support])
254 AC_ARG_ENABLE([mouse], 
255               AC_HELP_STRING([--enable-mouse],
256                              [Enable curses getmouse support @<:@default=yes@:>@]),
257               [getmouse="$enableval"],
258               [getmouse=$disable_mini])
259 AC_MSG_RESULT([$getmouse])
260 if test "x$getmouse" = "xyes" ; then
261    AC_CHECK_LIB([$ncurses], 
262                 [getmouse],
263                 [AC_DEFINE([HAVE_GETMOUSE], [1], [$ncurses - getmouse()])],
264                 [])
265 fi
267 dnl Optional screen - artist
268 AC_MSG_CHECKING([whether to include the artist screen])
269 AC_ARG_ENABLE([artist-screen], 
270               AC_HELP_STRING([--enable-artist-screen],
271                              [Enable artist screen @<:@default=yes@:>@]),
272               [artist_screen="$enableval"],
273               [artist_screen=$disable_mini])
274 AC_MSG_RESULT([$artist_screen])
275 if test "x$artist_screen" = "xyes" ; then
276     AC_DEFINE(ENABLE_ARTIST_SCREEN, 1, [Enable artist screen])
277 fi
279 AM_CONDITIONAL(ENABLE_ARTIST_SCREEN, test x$artist_screen = xyes)
281 dnl Optional screen - search
282 AC_MSG_CHECKING([whether to include the search screen])
283 AC_ARG_ENABLE([search-screen], 
284               AC_HELP_STRING([--enable-search-screen],
285                              [Enable search screen (EXPERIMENTAL) @<:@default=yes@:>@]),
286               [search_screen="$enableval"],
287               [search_screen=$disable_mini])
288 AC_MSG_RESULT([$search_screen])
289 if test "x$search_screen" = "xyes" ; then
290     AC_DEFINE(ENABLE_SEARCH_SCREEN, 1, [Enable search screen])
291 fi
293 AM_CONDITIONAL(ENABLE_SEARCH_SCREEN, test x$search_screen = xyes)
295 dnl Optional screen - song viewer
296 AC_MSG_CHECKING([whether to include the song viewer screen])
297 AC_ARG_ENABLE([song-screen],
298         AC_HELP_STRING([--enable-song-screen],
299                 [Enable song viewer screen @<:@default=yes@:>@]),
300         [song_screen="$enableval"],
301         [song_screen=$disable_mini])
302 AC_MSG_RESULT([$song_screen])
303 if test "x$song_screen" = "xyes" ; then
304         AC_DEFINE(ENABLE_SONG_SCREEN, 1, [Enable song viewer screen])
305 fi
307 AM_CONDITIONAL(ENABLE_SONG_SCREEN, test x$song_screen = xyes)
308   
309 dnl Optional screen - key editor
310 AC_MSG_CHECKING([whether to include the key editor screen])
311 AC_ARG_ENABLE([key-screen], 
312               AC_HELP_STRING([--enable-key-screen],
313                              [Enable key editor screen @<:@default=yes@:>@]),
314               [keydef_screen="$enableval"],
315               [keydef_screen=$disable_mini])
316 AC_MSG_RESULT([$keydef_screen])
317 if test "x$keydef_screen" = "xyes" ; then
318     AC_DEFINE(ENABLE_KEYDEF_SCREEN, 1, [Enable key editor screen])
319 fi
321 AM_CONDITIONAL(ENABLE_KEYDEF_SCREEN, test x$keydef_screen = xyes)
323 dnl Optional screen - lyrics
324 AC_MSG_CHECKING([whether to include the lyrics screen]) 
325 AC_ARG_ENABLE([lyrics-screen], 
326               AC_HELP_STRING([--enable-lyrics-screen],
327                              [Enable lyrics screen @<:@default=no@:>@]),
328               [lyrics_screen="$enableval"],
329               [lyrics_screen=no])       
330 if test "x$lyrics_screen" = "xyes" ; then
331     AC_DEFINE(ENABLE_LYRICS_SCREEN, 1, [Enable lyrics screen])
332 fi
334 AM_CONDITIONAL(ENABLE_LYRICS_SCREEN, test x$lyrics_screen = xyes)
336 AC_MSG_RESULT([$lyrics_screen])
338 AC_ARG_WITH([lyrics-plugin-dir],
339         AC_HELP_STRING([[--with-lyrics-plugin-dir[=DIRECTORY]]],
340                        [Directory where lyrics plugins are stored @<:@default=PREFIX/lib/ncmpc/lyrics@:>@]),
341        [lyrics_plugin_dir=$withval],
342        [lyrics_plugin_dir=""])
343 if test "x${lyrics_plugin_dir}" = "x"; then
344     if test "x${prefix}" = "xNONE"; then
345         lyrics_plugin_dir="${ac_default_prefix}/lib/ncmpc/lyrics"
346     else
347         lyrics_plugin_dir="${prefix}/lib/ncmpc/lyrics"
348     fi
349 fi
350 AC_DEFINE_UNQUOTED([LYRICS_PLUGIN_DIR], ["$lyrics_plugin_dir"],
351                   [Directory to search for lyrics plugins])
352 AC_SUBST(lyrics_plugin_dir)
354 AM_CONDITIONAL(ENABLE_PLUGIN_LIBRARY, test x$lyrics_screen = xyes)
355 AM_CONDITIONAL(ENABLE_SCREEN_TEXT, test x$lyrics_screen = xyes)
357 dnl Optional screen - outputs
358 AC_MSG_CHECKING([whether to include the outputs screen])
359 AC_ARG_ENABLE([outputs-screen],
360         AC_HELP_STRING([--enable-outputs-screen],
361                 [Enable outputs screen @<:@default=yes@:>@]),
362         [outputs_screen=$enableval],
363         [outputs_screen=$disable_mini])
364 if test "x$outputs_screen" = "xyes" ; then
365         AC_DEFINE(ENABLE_OUTPUTS_SCREEN, 1, [Enable outputs screen])
366 fi
368 AM_CONDITIONAL(ENABLE_OUTPUTS_SCREEN, test x$outputs_screen = xyes)
371 dnl
372 dnl build options
373 dnl
375 AC_ARG_ENABLE(werror,
376         AS_HELP_STRING([--enable-werror],
377                 [Treat warnings as errors (default: disabled)]),
378         ENABLE_WERROR=$enableval,
379         ENABLE_WERROR=no)
381 if test "x$ENABLE_WERROR" = xyes; then
382         AM_CFLAGS="$AM_CFLAGS -Werror"
383 fi
385 AC_ARG_ENABLE(debug,
386         AS_HELP_STRING([--enable-debug],
387                 [Enable debugging (default: disabled)]),
388         ENABLE_DEBUG=$enableval,
389         ENABLE_DEBUG=no)
391 if test "x$ENABLE_DEBUG" = xno; then
392         AM_CFLAGS="$AM_CFLAGS -DNDEBUG"
393 fi
396 dnl
397 dnl CFLAGS
398 dnl
400 AC_SUBST(AM_CFLAGS)
402 CHECK_CFLAG([-Wall])
403 CHECK_CFLAG([-Wextra])
404 CHECK_CFLAG([-Wno-deprecated-declarations])
405 CHECK_CFLAG([-Wmissing-prototypes])
406 CHECK_CFLAG([-Wdeclaration-after-statement])
407 CHECK_CFLAG([-Wshadow])
408 CHECK_CFLAG([-Wpointer-arith])
409 CHECK_CFLAG([-Wstrict-prototypes])
410 CHECK_CFLAG([-Wcast-qual])
411 CHECK_CFLAG([-Wwrite-strings])
414 dnl
415 dnl Generate output files
416 dnl
418 AC_CONFIG_FILES([Makefile po/Makefile.in po/Makefile])
419 AC_OUTPUT