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)
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