Update copyright notice.
[gmpc.git] / configure.ac
blob8780f0bb837ef7491f4f89b70e0d07545e8a1a72
1 #Define the version
2 # micro version (aka day) is 90+ means developers release
3 m4_define([package_major_version], [11])
4 m4_define([package_minor_version], [8])
5 m4_define([package_micro_version], [90])
6 m4_define([package_version], [package_major_version.package_minor_version.package_micro_version])
8 AC_INIT([gmpc],[11.8.90],[qball@gmpclient.org])
10 #Define variable
11 m4_define([package_tagline],       "All hail the Greg")
12 m4_define([package_website],       "http://gmpclient.org")
13 m4_define([package_copyright],     "Copyright 2003-2014 Qball Cow")
14 m4_define([package_bugtracker],    "http://gmpc.wikia.com/wiki/GMPC_HELP")
18 AC_CONFIG_HEADERS([config.h])
19 AC_CONFIG_MACRO_DIR([m4])
20 AM_INIT_AUTOMAKE([subdir-objects])
22 AM_MAINTAINER_MODE
25 #Make version and variables available in config.h
26 #AC_DEFINE(GMPC_MAJOR_VERSION,   package_major_version, ["Major version of gmpc"])
27 #AC_DEFINE(GMPC_MINOR_VERSION,   package_minor_version, ["Minor version of gmpc"])
28 #AC_DEFINE(GMPC_MICRO_VERSION,   package_micro_version, ["Micro version of gmpc"])
29 # This makes sure the right substitution is done
30 [GMPC_MAJOR_VERSION]=package_major_version
31 [GMPC_MINOR_VERSION]=package_minor_version
32 [GMPC_MICRO_VERSION]=package_micro_version
33 [GMPC_COPYRIGHT]=package_copyright
34 AC_SUBST([GMPC_MAJOR_VERSION])
35 AC_SUBST([GMPC_MINOR_VERSION])
36 AC_SUBST([GMPC_MICRO_VERSION])
37 AC_SUBST([GMPC_COPYRIGHT])
38 AC_DEFINE(GMPC_TAGLINE,         package_tagline,        ["Gmpc's tagline"])
39 AC_DEFINE(GMPC_WEBSITE,         package_website,        ["Gmpc's website"])
40 AC_DEFINE(GMPC_BUGTRACKER,      package_bugtracker,     ["Gmpc's bugtracker"])
41 AC_DEFINE(GMPC_COPYRIGHT,       package_copyright,      ["Gmpc's Copyright"])
43 AC_PREREQ([2.67])
45 # Remove the check for c++ and fortran compiler
46 LT_INIT([win32-dll])
47 LT_LANG([Windows Resource])
48 m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
49 m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
50 AC_REPLACE_FUNCS(strndup)
53 #intltool, libtool. Check for CC compiler
54 IT_PROG_INTLTOOL([0.21])
56 # Check for intltool version, needed for make dist.
57 AM_CONDITIONAL([INTLTOOL_HIGHER_04000], [test ${INTLTOOL_APPLIED_VERSION_AS_INT} -ge 4000])
60 AC_PROG_CC
61 AM_PROG_CC_C_O
62 LT_PROG_RC
64 dnl Checks for libm
65 AC_CHECK_LIB([m],[floor])
67 # test for zlib
68 zlib=0
69 AC_CHECK_LIB(z, inflate,zlib=1,zlib=0)
70 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
71 if test "x$zlib" != "x1"
72 then
73  AC_MSG_ERROR([GMPC plugin requires zlib])
78 PKG_PROG_PKG_CONFIG
80 #glyr
81 PKG_CHECK_MODULES([libglyr], libglyr)
82 AC_SUBST(libglyr_LIBS)
83 AC_SUBST(libglyr_CFLAGS)
85 # libxspf
86 libxspf=0;
87 libspiff=0;
90 AC_ARG_ENABLE([libxspf],
91               [--enable-libxspf Use libxspf.],
92                   [case "${enableval}" in
93                             yes)    enable_libxspf=true;;
94                              no)    enable_libxspf=false;;
95                               *)    AC_MSG_ERROR([bad value ${enableval} for --enable-libxspf]);;
96                esac],
97                [enable_libxspf=detect])
98 if test "x$enable_libxspf" = "xdetect"; then
99         PKG_CHECK_MODULES([libxspf], xspf, enable_libxspf=true, enable_libxspf=false)
101 if test "x$enable_libxspf" = "xtrue"; then
102         PKG_CHECK_MODULES([libxspf], xspf)
103         AC_SUBST(libxspf_LIBS)
104         AC_SUBST(libxspf_CFLAGS)
105     libxspf=1;
106         AC_DEFINE([XSPF], 1, [Use xspf])
107 else
109 AC_ARG_ENABLE(libspiff,
110     [   --enable-libspiff      Use libspiff to parse spiff playlists.],
111     [ case "${enableval}" in
112         yes)    enable_libspiff=yes;;
113          no)    enable_libspiff=no;;
114           *)    AC_MSG_ERROR([bad value ${enableval} for --enable-libspiff]);;
115      esac],
116      [enable_libspiff=auto])
118 if test "x${enable_libspiff}" != xno; then
119     AC_CHECK_HEADER(spiff/spiff_c.h, AC_CHECK_LIB(spiff, spiff_parse,libspiff=1,libspiff=0),libspiff=0)
120     if test "x${libspiff}" = "x1";
121     then
122         AC_DEFINE(SPIFF,1,["Use or don't use libspiff"])
123         SPIFF_LIBS=-lspiff
124         AC_SUBST(SPIFF_LIBS)
125     else
126         if test "x${enable_libspiff}" = "xyes"; then
127             AC_MSG_ERROR([libspiff not found])
128         fi
129     fi
134 # Check for libnotify
136 AC_ARG_ENABLE(libnotify,
137     [   --enable-libnotify      Use libnotify for user notifications.],
138     [ case "${enableval}" in
139         yes)    enable_libnotify=yes;;
140          no)    enable_libnotify=no;;
141           *)    AC_MSG_ERROR([bad value ${enableval} for --enable-libnotify]);;
142      esac],
143      [enable_libnotify=auto])
145 if test "x${enable_libnotify}" != xno; then
146         PKG_CHECK_MODULES([libnotify], libnotify, enable_libnotify=true, enable_libnotify=false)
148 if test "x$enable_libnotify" = "xtrue"; then
149         PKG_CHECK_MODULES([libnotify], libnotify)
150         AC_SUBST(libnotify_LIBS)
151         AC_SUBST(libnotify_CFLAGS)
152         AC_DEFINE([HAVE_LIBNOTIFY], 1, [Use notify])
155 # Checks for header files.
156 AC_HEADER_STDC
157 AC_CHECK_HEADERS([stdlib.h string.h unistd.h])
159 # Checks for typedefs, structures, and compiler characteristics.
160 AC_C_CONST
162 # Checks for libraries.
163 AC_SUBST(GLIB_REQUIRED)
164 AC_SUBST(GTK_REQUIRED)
167 # User params
171 # Maintainer mode
172 AC_ARG_ENABLE([timing],
173               [--enable-timing Print timing debug output.],
174                   [case "${enableval}" in
175                             yes)    enable_timing=true;;
176                              no)    enable_timing=false;;
177                               *)    AC_MSG_ERROR([bad value ${enableval} for --enable-timing]);;
178                esac],
179                [enable_timing=false])
181 if test x${enable_timing} = xtrue; then
182 # Add DEBUG_ENABLE define to config.h
183     AC_DEFINE(DEBUG_TIMING, 1, [Enable timing output])
186 # EXTRA VERSION
187 AC_ARG_WITH([extra-version],
188         [--with-extra-version=revision Specify extra version.],
189         with_extra_version=${withval})
190 if test x"${with_extra_version}" != x; then
191     AM_CONDITIONAL([EXTRA_VERSION], [true])
192     EXTRA_VERSION="${with_extra_version}";
193     AC_SUBST(EXTRA_VERSION)
194 else
195     AM_CONDITIONAL([EXTRA_VERSION], [false])
200 # Split this out, because pkgconfig macro doesn't return nicely what is missing
202 # glib
203 PKG_CHECK_MODULES([glib], glib-2.0 >= 2.16)
204 AC_SUBST(glib_LIBS)
205 AC_SUBST(glib_CFLAGS)
207 # gobject
208 PKG_CHECK_MODULES([gobject], gobject-2.0 >= 2.4)
209 AC_SUBST(gobject_LIBS)
210 AC_SUBST(gobject_CFLAGS)
212 #gtk
213 PKG_CHECK_MODULES([gtk], gtk+-3.0 >= 3.0)
214 AC_SUBST(gtk_LIBS)
215 AC_SUBST(gtk_CFLAGS)
217 #gmodule
218 PKG_CHECK_MODULES([gmodule], gmodule-2.0 >= 2.4)
219 AC_SUBST(gmodule_LIBS)
220 AC_SUBST(gmodule_CFLAGS)
222 # libmpd
223 PKG_CHECK_MODULES([libmpd], libmpd >= 11.8.90)
224 AC_SUBST(libmpd_LIBS)
225 AC_SUBST(libmpd_CFLAGS)
228 # gthread
229 PKG_CHECK_MODULES([gthread], gthread-2.0)
230 AC_SUBST(gthread_LIBS)
231 AC_SUBST(gthread_CFLAGS)
233 #libsoup
234 PKG_CHECK_MODULES([libsoup], libsoup-2.4)
235 AC_SUBST(libsoup_LIBS)
236 AC_SUBST(libsoup_CFLAGS)
238 #libgio
239 PKG_CHECK_MODULES([libgio], gio-2.0)
240 AC_SUBST(libgio_LIBS)
241 AC_SUBST(libgio_CFLAGS)
243 #libxml2
244 PKG_CHECK_MODULES([libxml2], libxml-2.0)
245 AC_SUBST(libxml2_LIBS)
246 AC_SUBST(libxml2_CFLAGS)
249 # installation paths
250 AC_MSG_CHECKING(prefix)
252 if test "x${prefix}" = "xNONE"; then
253         PACKAGE_PREFIX="${ac_default_prefix}"
254 else
255         PACKAGE_PREFIX="${prefix}"
257 AC_MSG_RESULT($PACKAGE_PREFIX)
259 # i18n support
260 dnl please keep them in alphabetical order
261 ALL_LINGUAS="ar bg bn bs ca cs da de el et en_CA en_GB es fi fr gl he hi hu hy id it ja jv lv ml ms nb ne nl oc pl pt pt_BR ro ru sq sv th tr zh_CN zh_TW"
264 AM_GLIB_GNU_GETTEXT
265 GETTEXT_PACKAGE=gmpc
266 AC_SUBST(GETTEXT_PACKAGE)
267 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",[GMPC gettext package])
269 if test x$gt_cv_have_gettext != "xyes"; then
271         echo "Translations support is required."
272         exit 1;
275 #AM_GNU_GETTEXT([external])
276 # setting correct paths
277 PACKAGE_LOCALE_DIR="${PACKAGE_PREFIX}/${DATADIRNAME}/locale"
278 AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR,"$PACKAGE_LOCALE_DIR",[The package's locale path for gettext])
281 AC_SUBST(PACKAGE_LOCALE_DIR)
282 AC_SUBST(PACKAGE_LIBS)
286 #Win32 compile support
288 EXTRA_CFLAGS=
289 EXTRA_LDFLAGS=
290 case "$CC" in
291 *gcc*)
292         EXTRA_CFLAGS="-Wmissing-prototypes -Wmissing-declarations"
293         ;;
294 esac
296 win32=no
297 macosx=no
298 case $host in
299   *-*-mingw32* | *-*-windows)
300     win32=yes
301     EXTRA_CFLAGS="$EXTRA_CFLAGS -mwindows -mms-bitfields"
302     EXTRA_LDFLAGS="-export-all-symbols -mwindows -mms-bitfields" ;;
303   *-*-cygwin*)
304     win32=yes
305     EXTRA_LDFLAGS="-export-all-symbols -mms-bitfields" ;;
306   *-apple-darwin*)
307     EXTRA_LDFLAGS="-framework Carbon"
308     macosx=yes;;
309 esac
310 AM_CONDITIONAL(WIN32, test x$win32 = xyes)
311 AM_CONDITIONAL(OSX, test x$macosx = xyes)
312 # for smclient
313 AM_CONDITIONAL(PLATFORM_WIN32, test x$win32 = xyes)
314 AM_CONDITIONAL(PLATFORM_OSX, test x$macosx = xyes)
317 # These depend on if we are or are not on windows or osX
319 if test x$macosx = xno && test x$win32 = xno ; then
320 # Multimedia keys
321 AC_ARG_ENABLE([mmkeys],
322               [  --disable-mmkeys                       Disable multimedia keys support.],
323               [ case "${enableval}" in
324                     yes)    enable_mmkeys=yes;;
325                      no)    enable_mmkeys=no;;
326                       *)    AC_MSG_ERROR([bad value ${enableval} for --disable--mmkeys]);;
327                 esac],
328               [enable_mmkeys=yes])
329 if test x${enable_mmkeys} = xyes; then
330     #libx11
331     PKG_CHECK_MODULES([libx11], [x11 gdk-x11-3.0 gtk+-x11-3.0])
332     AC_SUBST(libx11_LIBS)
333     AC_SUBST(libx11_CFLAGS)
335     AC_DEFINE(ENABLE_MMKEYS, 1, [Enable multimedia support])
338 else
339 # force them off
340 enable_mmkeys=no;
342 AC_SUBST(EXTRA_CFLAGS)
343 AC_SUBST(EXTRA_LDFLAGS)
345 # Check for gob2
346 GOB2_CHECK(2.0.0)
347 # Make the gob2 check fatal
348 if test x${GOB2} = x""; then
349         exit 1;
352 AM_PROG_VALAC([0.14.0])
354 if test x${VALAC} = x""; then
355     exit 1;
358 APPINDICATOR_REQUIRED=0.3
360 AC_ARG_ENABLE(appindicator,
361                         AS_HELP_STRING([--enable-appindicator[=@<:@no/auto/yes@:>@]],[Build support for application indicators ]),
362                         [enable_appindicator=$enableval],
363                         [enable_appindicator="no"])
365 if test x$enable_appindicator = xauto ; then
366         PKG_CHECK_EXISTS([appindicator3-0.1 >= $APPINDICATOR_REQUIRED],
367                          enable_appindicator="yes",
368                          enable_appindicator="no")
371 if test x$enable_appindicator = xyes ; then
372         PKG_CHECK_EXISTS([appindicator3-0.1 >= $APPINDICATOR_REQUIRED],,
373                          AC_MSG_ERROR([appindicator3-0.1 is not installed]))
374         PKG_CHECK_MODULES(APP_INDICATOR,
375                         appindicator3-0.1 >= $APPINDICATOR_REQUIRED)
376         AC_SUBST(APP_INDICATOR_CFLAGS)
377         AC_SUBST(APP_INDICATOR_LIBS)
378         AC_DEFINE(HAVE_APP_INDICATOR, 1, [Have AppIndicator])
380 AM_CONDITIONAL(HAVE_APP_INDICATOR, test x"$enable_appindicator" = xyes)
382 AC_ARG_ENABLE([shave],
383             [  --disable-shave                  Use shave output cleaner when building.],
384               [ case "${enableval}" in
385                     yes)    enable_shave=yes;;
386                      no)    enable_shave=no;;
387                       *)    AC_MSG_ERROR([bad value ${enableval} for --disable-shave]);;
388                 esac],
389               [enable_shave=no])
390 if test x$enable_shave = xyes; then
391 SHAVE_INIT([./])
394 AC_CONFIG_FILES([
395 shave
396 shave-libtool
397 Makefile
398 src/Makefile
399 src/gmpc-version.h
400 src/gmpc-win32.rc
401 glade/Makefile
402 data/Makefile
403 po/Makefile.in
404 po/Makefile
405 data/gmpc.pc
406 doc/Makefile
407 pixmaps/Makefile
408 pixmaps/icons/Makefile
409 pixmaps/icons/hicolor/Makefile
410 pixmaps/icons/hicolor/16x16/Makefile
411 pixmaps/icons/hicolor/16x16/actions/Makefile
412 pixmaps/icons/hicolor/16x16/status/Makefile
413 pixmaps/icons/hicolor/16x16/apps/Makefile
414 pixmaps/icons/hicolor/22x22/Makefile
415 pixmaps/icons/hicolor/22x22/actions/Makefile
416 pixmaps/icons/hicolor/22x22/status/Makefile
417 pixmaps/icons/hicolor/22x22/apps/Makefile
418 pixmaps/icons/hicolor/32x32/Makefile
419 pixmaps/icons/hicolor/32x32/actions/Makefile
420 pixmaps/icons/hicolor/32x32/status/Makefile
421 pixmaps/icons/hicolor/32x32/apps/Makefile
422 pixmaps/icons/hicolor/48x48/Makefile
423 pixmaps/icons/hicolor/48x48/actions/Makefile
424 pixmaps/icons/hicolor/48x48/apps/Makefile
425 pixmaps/icons/hicolor/48x48/status/Makefile
426 pixmaps/icons/hicolor/64x64/Makefile
427 pixmaps/icons/hicolor/64x64/apps/Makefile
428 pixmaps/icons/hicolor/64x64/status/Makefile
429 pixmaps/icons/hicolor/72x72/Makefile
430 pixmaps/icons/hicolor/72x72/apps/Makefile
431 pixmaps/icons/hicolor/72x72/status/Makefile
432 pixmaps/icons/hicolor/96x96/Makefile
433 pixmaps/icons/hicolor/96x96/apps/Makefile
434 pixmaps/icons/hicolor/96x96/status/Makefile
435 pixmaps/icons/hicolor/128x128/Makefile
436 pixmaps/icons/hicolor/128x128/apps/Makefile
437 pixmaps/icons/hicolor/128x128/status/Makefile
438 pixmaps/icons/hicolor/128x128/categories/Makefile
439 pixmaps/icons/hicolor/scalable/Makefile
440 pixmaps/icons/hicolor/scalable/actions/Makefile
441 pixmaps/icons/hicolor/scalable/status/Makefile
442 pixmaps/icons/hicolor/scalable/apps/Makefile
443 pixmaps/icons/hicolor/scalable/categories/Makefile
444 pixmaps/icons/Humanity/16x16/Makefile
445 pixmaps/icons/Humanity/16x16/actions/Makefile
446 pixmaps/icons/Humanity/16x16/status/Makefile
447 pixmaps/icons/Humanity/16x16/apps/Makefile
448 pixmaps/icons/Humanity/22x22/Makefile
449 pixmaps/icons/Humanity/22x22/actions/Makefile
450 pixmaps/icons/Humanity/22x22/status/Makefile
451 pixmaps/icons/Humanity/22x22/apps/Makefile
452 pixmaps/icons/Humanity/24x24/Makefile
453 pixmaps/icons/Humanity/24x24/actions/Makefile
454 pixmaps/icons/Humanity/24x24/status/Makefile
455 pixmaps/icons/Humanity/24x24/categories/Makefile
456 pixmaps/icons/Humanity/24x24/apps/Makefile
457 pixmaps/icons/Humanity/32x32/Makefile
458 pixmaps/icons/Humanity/32x32/actions/Makefile
459 pixmaps/icons/Humanity/32x32/status/Makefile
460 pixmaps/icons/Humanity/32x32/apps/Makefile
461 pixmaps/icons/Humanity/48x48/Makefile
462 pixmaps/icons/Humanity/48x48/actions/Makefile
463 pixmaps/icons/Humanity/48x48/apps/Makefile
464 pixmaps/icons/Humanity/48x48/status/Makefile
465 pixmaps/icons/Humanity/64x64/Makefile
466 pixmaps/icons/Humanity/64x64/apps/Makefile
467 pixmaps/icons/Humanity/64x64/status/Makefile
468 pixmaps/icons/Humanity/64x64/actions/Makefile
469 pixmaps/icons/Humanity/72x72/Makefile
470 pixmaps/icons/Humanity/72x72/apps/Makefile
471 pixmaps/icons/Humanity/72x72/status/Makefile
472 pixmaps/icons/Humanity/72x72/actions/Makefile
473 pixmaps/icons/Humanity/96x96/Makefile
474 pixmaps/icons/Humanity/96x96/apps/Makefile
475 pixmaps/icons/Humanity/96x96/status/Makefile
476 pixmaps/icons/Humanity/96x96/actions/Makefile
477 pixmaps/icons/Humanity/128x128/Makefile
478 pixmaps/icons/Humanity/128x128/apps/Makefile
479 pixmaps/icons/Humanity/128x128/status/Makefile
480 pixmaps/icons/Humanity/128x128/categories/Makefile
481 pixmaps/icons/Humanity/128x128/actions/Makefile
482 pixmaps/icons/Humanity/Makefile
483 pixmaps/icons/Humanity/scalable/Makefile
484 pixmaps/icons/Humanity/scalable/actions/Makefile
485 pixmaps/icons/Humanity/scalable/status/Makefile
486 pixmaps/icons/Humanity/scalable/apps/Makefile
487 pixmaps/icons/Humanity/scalable/categories/Makefile
489 AC_OUTPUT
490 echo ""
491 echo ""
492 echo "------------------ Status ------------------"
493 if test x$enable_timing = xtrue; then
494         echo "Debug timing output is:           enabled"
495 else
496         echo "Debug timing output is:           disabled"
498 if test x${enable_mmkeys} = xyes; then
499         echo "Multimedia keys support is:       enabled"
500 else
501         echo "Multimedia keys support is:       disabled"
503 if test x"$enable_appindicator" = xyes; then
504     echo "AppIndicator Support is:          enabled"
505 else
506     echo "AppIndicator Support is:          disabled"
508 if test "x$libspiff" = "x1"; then
509         echo "Use libspiff library:             enabled"
510 else
511         echo "Use libspiff library:             disabled"
513 if test "x$libxspf" = "x1"; then
514         echo "Use libxspf library:              enabled"
515 else
516         echo "Use libxspf library:              disabled"
518 if test "x$have_gdu" = "xyes"; then
519         echo "Use Gnome Documentation:          enabled"
520 else
521         echo "Use Gnome Documentation:          disabled"
523 if test x${enable_libnotify} = xtrue; then
524         echo "Use libnotify:                    enabled"
525 else
526         echo "Use libnotify:                    disabled"
528 echo "";
529 echo "Now type make to build"
530 if test x$enable_shave = xyes; then
531     echo "Building is done with reduced output. (shave";
532     echo "use --disable-shave to get all (old) output back";