Code

screen_file: optimized title formula
[ncmpc.git] / configure.ac
1 AC_INIT(ncurses MPD client, 0.12~git, max@duempel.org, ncmpc)
2 AC_CONFIG_SRCDIR([src/main.c])
3 AM_INIT_AUTOMAKE([gnu 1.9 dist-bzip2])
4 AM_CONFIG_HEADER([config.h])
5 AC_CONFIG_MACRO_DIR([m4])
7 dnl Check for programs
8 AC_PROG_CC_C99
9 AC_PROG_INSTALL
11 dnl =======================================================
12 dnl initialize variables
13 dnl =======================================================
15 dnl i18n
16 ALL_LINGUAS="es da de fr gl no ru sv"
18 set -- $CFLAGS
20 dnl
21 dnl Check for headers
22 dnl
24 AC_CHECK_HEADER([locale.h],
25                 AC_DEFINE([HAVE_LOCALE_H], [1], [locale.h]),
26                 ,)
29 dnl
30 dnl Check for functions
31 dnl
32 AC_CHECK_FUNCS([strcasestr])
35 dnl
36 dnl ncmpc-mini
37 dnl
39 AC_ARG_ENABLE(mini,
40     AS_HELP_STRING([--enable-mini],
41                    [Build ncmpc-mini (default: disabled)]),
42     [enable_mini=$enableval],
43     [enable_mini=no])
45 AM_CONDITIONAL(NCMPC_MINI, test x$enable_mini = xyes)
46 if test "x$enable_mini" = xyes; then
47     AC_DEFINE([NCMPC_MINI], [1], [Build ncmpc-mini, which disables lots of features])
48     auto=no
49     disable_mini=no
50     ncurses=ncurses
51 else
52     auto=auto
53     disable_mini=yes
54     ncurses=auto
55 fi
58 dnl
59 dnl Check for libraries
60 dnl
62 dnl Try to find the socket functions
63 AC_CHECK_FUNC([socket],
64               [], 
65               [AC_CHECK_LIB([socket],[socket],[LIBS="$LIBS -lsocket"],
66                             [AC_MSG_ERROR(No UNIX socket API found)])
67               ])
69 dnl Try to find the gethostbyname functions
70 AC_CHECK_FUNC([gethostbyname],
71               [], 
72               [AC_CHECK_LIB([nsl],[gethostbyname],[LIBS="$LIBS -lnsl"],
73                             [AC_MSG_ERROR(No UNIX gethostbyname API found)])
74               ])
77 dnl wide character support
78 AC_ARG_ENABLE([wide],
79     AC_HELP_STRING([--enable-wide],
80                    [Enable wide character support]),
81                    [enable_wide=$enableval],
82                    [enable_wide=auto])
85 dnl ncurses
86 AC_ARG_WITH([ncurses],
87             AC_HELP_STRING([--with-ncurses], [compile/link with ncurses library] ),
88             [ncurses=ncurses])
89 AC_ARG_WITH(ncursesw,
90             AC_HELP_STRING([--with-ncursesw], [compile/link with wide-char ncurses library @<:@default@:>@]),
91             [ncurses=ncursesw])
93 if test "x$enable_wide" = "xno"; then
94     if test "x$ncurses" = "xauto"; then
95         dnl select narrow ncurses
96         ncurses=ncurses
97     fi
99     if test "x$ncurses" = "xncursesw"; then
100         AC_MSG_WARN([Narrow ncmpc linking against wide libncurses])
101     fi
102 fi
104 if test "x$ncurses" = "xauto"; then
105         AC_CHECK_LIB([ncursesw], 
106                      [initscr],
107                      [ncurses=ncursesw],
108                      [ncurses=ncurses])
109 fi
111 AC_CHECK_LIB([$ncurses], 
112              [initscr],
113              [LIBS="$LIBS -l$ncurses"], 
114              [AC_MSG_ERROR($ncurses library is required)])
116 if test "x$ncurses" = "xncursesw"; then
117     AC_CHECK_HEADER([ncursesw/ncurses.h],
118                     AC_DEFINE([HAVE_NCURSESW_NCURSES_H], [1], [ncursesw/ncurses.h]),
119                     ,)
120 fi
123 dnl wide character support II
125 if test "x$enable_wide" = "xauto" ; then
126     AC_CHECK_LIB([$ncurses], 
127                  [wget_wch],
128                  [enable_wide=yes],
129                  [enable_wide=no])
130 fi
132 AC_MSG_CHECKING([wide character support])
133 AC_MSG_RESULT([$enable_wide])
135 if test "x$enable_wide" = "xyes" ; then
136     AC_DEFINE([ENABLE_WIDE], [1], [Enable wide character support])
137 fi
140 dnl Check for glib-2.4
141 PKG_CHECK_MODULES([GLIB], 
142                   [glib-2.0 >= 2.4],
143                   [glib24=yes],
144                   [AC_MSG_WARN([glib-2.4 is required for NLS support!])])
145 if test "x$glib24" != "xyes"; then
146    PKG_CHECK_MODULES([GLIB], 
147                      [glib-2.0 >= 2.2],
148                      [nls=no],
149                      [AC_MSG_ERROR([glib-2.2 is required])])
150 fi
153 dnl i18n
155 AC_MSG_CHECKING([national language support])
156 AC_ARG_ENABLE([nls],
157         AS_HELP_STRING([--enable-nls], [Enable national language support]),
158         [enable_nls=$enableval],
159         [enable_nls=$disable_mini])
160 AC_MSG_RESULT([$enable_nls])
162 if test "x$enable_nls" = xno; then
163         glib24=no
164         nls=no
165 fi
167 AM_NLS
168 if test "x$glib24" = "xyes"; then
169   nls=$USE_NLS
170 else
171   USE_NLS=no
172   AC_SUBST(USE_NLS)
173 fi
175 if test "x$nls" = "xyes"; then
176    AM_GLIB_GNU_GETTEXT
177    GETTEXT_PACKAGE=$PACKAGE
178    AC_SUBST(GETTEXT_PACKAGE)
179    AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], 
180                       ["${GETTEXT_PACKAGE}"], 
181                       [gettext domain])
182   nls=$gt_cv_have_gettext
183   if test "x$nls" != "xyes"; then
184      AC_MSG_WARN([NLS support disabled!])
185   fi
186 else
187   AM_PO_SUBDIRS
188 fi
190 dnl enable colors
191 AC_MSG_CHECKING([color support])
192 AC_ARG_ENABLE([colors],
193         AC_HELP_STRING([--enable-colors],
194                        [Enable color support]),
195                        [use_colors=$enableval], 
196                        [use_colors=no])
197 AC_MSG_RESULT([$use_colors])
198 if test "x$use_colors" = "xyes" ; then
199     AC_DEFINE([ENABLE_COLORS], [1], [Enable color support])
200 fi
202 dnl test for LIRC support
204 AC_ARG_ENABLE([lirc],
205         AC_HELP_STRING([--enable-lirc],
206                 [Enable LIRC support]),
207         [enable_lirc=$enableval],
208         [enable_lirc=no])
209 if test x$enable_lirc = xyes; then
210         PKG_CHECK_MODULES([LIBLIRCCLIENT], [liblircclient0],,
211                 [AC_MSG_ERROR([liblircclient0 not found])])
212         AC_DEFINE([ENABLE_LIRC], [1], [Enable LIRC support])
213 fi
215 AM_CONDITIONAL(ENABLE_LIRC, test x$enable_lirc = xyes)
217 dnl Debugging 
218 AC_MSG_CHECKING([whether to build with debug support])
219 AC_ARG_ENABLE([debug], 
220               AC_HELP_STRING([--enable-debug],
221                              [Enable debugging @<:@default=no@:>@]),
222               [enable_debug="$enableval"], 
223               [enable_debug=no])
224 AC_MSG_RESULT([$enable_debug])
225 if test "x$enable_debug" = "xyes" ; then
226     CFLAGS="$CFLAGS -g"
227 else
228     CFLAGS="$CFLAGS -DNDEBUG"
229 fi
231 dnl CFLAGS
233 AC_SUBST(AM_CFLAGS)
235 CHECK_CFLAG([-Wall])
236 CHECK_CFLAG([-Wextra])
237 CHECK_CFLAG([-Wno-deprecated-declarations])
238 CHECK_CFLAG([-Wmissing-prototypes])
239 CHECK_CFLAG([-Wdeclaration-after-statement])
240 CHECK_CFLAG([-Wshadow])
241 CHECK_CFLAG([-Wpointer-arith])
242 CHECK_CFLAG([-Wstrict-prototypes])
243 CHECK_CFLAG([-Wcast-qual])
244 CHECK_CFLAG([-Wwrite-strings])
246 dnl Optional screen - help screen
247 AC_MSG_CHECKING([whether to include the help screen])
248 AC_ARG_ENABLE([help-screen],
249         AS_HELP_STRING([--enable-help-screen],
250                 [Enable the help screen @<:@default=yes@:>@]),
251         [help_screen="$enableval"],
252         [help_screen=$disable_mini])
253 AC_MSG_RESULT([$help_screen])
254 if test "x$help_screen" = "xyes" ; then
255         AC_DEFINE(ENABLE_HELP_SCREEN, 1, [Enable the help screen])
256 fi
258 AM_CONDITIONAL(ENABLE_HELP_SCREEN, test x$help_screen = xyes)
260 dnl Optional screen - browse screen
261 #AC_MSG_CHECKING([whether to include the browse screen])r
262 #AC_ARG_ENABLE([browse-screen], 
263 #              AC_HELP_STRING([--enable-browse-screen],
264 #                            [Enable the browse screen @<:@default=yes@:>@]),
265 #             [browse_screen="$enableval"],
266 #             [browse_screen=yes])
267 #AC_MSG_RESULT([$browse_screen])
268 #if test "x$browse_screen" = "xyes" ; then
269 #   AC_DEFINE(ENABLE_BROWSE_SCREEN, 1, [Enable the browse screen])
270 #fi
272 dnl Optional - curses getmouse support
273 AC_MSG_CHECKING([whether to include mouse support])
274 AC_ARG_ENABLE([mouse], 
275               AC_HELP_STRING([--enable-mouse],
276                              [Enable curses getmouse support @<:@default=yes@:>@]),
277               [getmouse="$enableval"],
278               [getmouse=$disable_mini])
279 AC_MSG_RESULT([$getmouse])
280 if test "x$getmouse" = "xyes" ; then
281    AC_CHECK_LIB([$ncurses], 
282                 [getmouse],
283                 [AC_DEFINE([HAVE_GETMOUSE], [1], [$ncurses - getmouse()])],
284                 [])
285 fi
287 dnl Optional screen - artist
288 AC_MSG_CHECKING([whether to include the artist screen])
289 AC_ARG_ENABLE([artist-screen], 
290               AC_HELP_STRING([--enable-artist-screen],
291                              [Enable artist screen (EXPERIMENTAL) @<:@default=no@:>@]),
292               [artist_screen="$enableval"],
293               [artist_screen=no])
294 AC_MSG_RESULT([$artist_screen])
295 if test "x$artist_screen" = "xyes" ; then
296     AC_DEFINE(ENABLE_ARTIST_SCREEN, 1, [Enable artist screen])
297 fi
299 AM_CONDITIONAL(ENABLE_ARTIST_SCREEN, test x$artist_screen = xyes)
301 dnl Optional screen - search
302 AC_MSG_CHECKING([whether to include the search screen])
303 AC_ARG_ENABLE([search-screen], 
304               AC_HELP_STRING([--enable-search-screen],
305                              [Enable search screen (EXPERIMENTAL) @<:@default=yes@:>@]),
306               [search_screen="$enableval"],
307               [search_screen=$disable_mini])
308 AC_MSG_RESULT([$search_screen])
309 if test "x$search_screen" = "xyes" ; then
310     AC_DEFINE(ENABLE_SEARCH_SCREEN, 1, [Enable search screen])
311 fi
313 AM_CONDITIONAL(ENABLE_SEARCH_SCREEN, test x$search_screen = xyes)
314   
315 dnl Optional screen - key editor
316 AC_MSG_CHECKING([whether to include the key editor screen])
317 AC_ARG_ENABLE([key-screen], 
318               AC_HELP_STRING([--enable-key-screen],
319                              [Enable key editor screen @<:@default=yes@:>@]),
320               [keydef_screen="$enableval"],
321               [keydef_screen=$disable_mini])
322 AC_MSG_RESULT([$keydef_screen])
323 if test "x$keydef_screen" = "xyes" ; then
324     AC_DEFINE(ENABLE_KEYDEF_SCREEN, 1, [Enable key editor screen])
325 fi
327 AM_CONDITIONAL(ENABLE_KEYDEF_SCREEN, test x$keydef_screen = xyes)
329 dnl Optional screen - lyrics
330 AC_MSG_CHECKING([whether to include the lyrics screen]) 
331 AC_ARG_ENABLE([lyrics-screen], 
332               AC_HELP_STRING([--enable-lyrics-screen],
333                              [Enable lyrics screen @<:@default=no@:>@]),
334               [lyrics_screen="$enableval"],
335               [lyrics_screen=no])       
336 if test "x$lyrics_screen" = "xyes" ; then
337     AC_DEFINE(ENABLE_LYRICS_SCREEN, 1, [Enable lyrics screen])
338 fi
340 AM_CONDITIONAL(ENABLE_LYRICS_SCREEN, test x$lyrics_screen = xyes)
342 AC_MSG_RESULT([$lyrics_screen])
344 AC_ARG_WITH([lyrics-plugin-dir],
345         AC_HELP_STRING([[--with-lyrics-plugin-dir[=DIRECTORY]]],
346                        [Directory where lyrics plugins are stored @<:@default=PREFIX/lib/ncmpc/lyrics@:>@]),
347        [lyrics_plugin_dir=$withval],
348        [lyrics_plugin_dir=""])
349 if test "x${lyrics_plugin_dir}" = "x"; then
350     if test "x${prefix}" = "xNONE"; then
351         lyrics_plugin_dir="${ac_default_prefix}/lib/ncmpc/lyrics"
352     else
353         lyrics_plugin_dir="${prefix}/lib/ncmpc/lyrics"
354     fi
355 fi
356 AC_DEFINE_UNQUOTED([LYRICS_PLUGIN_DIR], ["$lyrics_plugin_dir"],
357                   [Directory to search for lyrics plugins])
358 AC_SUBST(lyrics_plugin_dir)
360 dnl Default host
361 AC_MSG_CHECKING([for default MPD host])
362 AC_ARG_WITH([default-host],
363             AC_HELP_STRING([--with-default-host=ARG],
364                            [Default MPD host @<:@localhost@:>@]),
365             [DEFAULT_HOST="$withval"],
366             [DEFAULT_HOST="localhost"])
367 AC_MSG_RESULT([$DEFAULT_HOST])
368 AC_DEFINE_UNQUOTED([DEFAULT_HOST], ["$DEFAULT_HOST"], [Default MPD host])
370 dnl Default port
371 AC_MSG_CHECKING([for default MPD port])
372 AC_ARG_WITH([default-port],
373             AC_HELP_STRING([--with-default-port=ARG],
374                            [Default port @<:@6600@:>@]),
375             [DEFAULT_PORT="$withval"],
376             [DEFAULT_PORT="6600"])
377 AC_MSG_RESULT([$DEFAULT_PORT])
378 AC_DEFINE_UNQUOTED([DEFAULT_PORT],     [$DEFAULT_PORT],   [Default MPD port])
379 AC_DEFINE_UNQUOTED([DEFAULT_PORT_STR], ["$DEFAULT_PORT"], [Default MPD port])
381 dnl Default timedisplay type
382 AC_MSG_CHECKING([for default timedisplay type])
383 AC_ARG_WITH([default-timedisplay_type],
384             AC_HELP_STRING([--with-default-timedisplay_type=ARG],
385                            [default_timedisplay]),
386             [DEFAULT_TIMEDISPLAY_TYPE="$withval"],
387             [DEFAULT_TIMEDISPLAY_TYPE="elapsed"])
388 AC_MSG_RESULT([$DEFAULT_TIMEDISPLAY_TYPE])
389 AC_DEFINE_UNQUOTED([DEFAULT_TIMEDISPLAY_TYPE], ["$DEFAULT_TIMEDISPLAY_TYPE"], [Default way to display time, either 'elapsed' or 'remaining'])
390 AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile po/Makefile.in po/Makefile])
391 AC_OUTPUT