Set release date
[geany-mirror.git] / configure.ac
blob8a586c80c6480a2a027be83bd024323b5223bd94
1 dnl Process this file with autoconf to produce a configure script.
3 AC_PREREQ([2.60])
4 AC_INIT([Geany], [1.34],
5                 [https://github.com/geany/geany/issues])
6 AC_CONFIG_SRCDIR([src/geany.h])
7 AC_CONFIG_AUX_DIR([build-aux])
8 AC_CONFIG_MACRO_DIR([m4])
9 AM_INIT_AUTOMAKE([1.11 -Wall parallel-tests subdir-objects])
10 AC_CONFIG_HEADERS([config.h])
12 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
14 GEANY_PREFIX
15 GEANY_DOCDIR
17 GEANY_STATUS_ADD([Install Geany in], [${prefix}])
18 if test -n "${build}" -a -n "${target}"; then
19         GEANY_STATUS_ADD([Building Geany on], [${build}])
20         GEANY_STATUS_ADD([Building Geany for], [${target}])
23 # why do we use this?
24 AC_USE_SYSTEM_EXTENSIONS
26 m4_ifdef([AM_PROG_AR],[AM_PROG_AR])
27 LT_INIT([disable-static])
28 AC_PROG_CC
29 AC_PROG_CC_C99
30 AM_PROG_CC_C_O
32 AC_PROG_CXX
33 GEANY_PROG_CXX
34 AX_CXX_COMPILE_STDCXX_11
36 AC_PROG_INSTALL
37 AC_PROG_LN_S
39 # autoscan start
41 # Checks for header files.
42 AC_CHECK_HEADERS([fcntl.h fnmatch.h glob.h stdlib.h sys/time.h])
44 # Checks for typedefs, structures, and compiler characteristics.
45 AC_TYPE_OFF_T
46 AC_TYPE_SIZE_T
47 AC_STRUCT_TM
49 # Checks for library functions.
50 AC_CHECK_FUNCS([ftruncate fgetpos fnmatch mkstemp strerror strstr])
52 # autoscan end
55 # check for VCS revision
56 GEANY_CHECK_REVISION([dnl force debug mode for a VCS working copy
57                                           CFLAGS="-g -DGEANY_DEBUG $CFLAGS"])
59 # GTK version check
60 AC_ARG_ENABLE([gtk3],
61                 [AS_HELP_STRING([--enable-gtk3],
62                                                 [compile against GTK3 [default=auto]])],
63                 [enable_gtk3=$enableval],
64                 [enable_gtk3=auto])
66 gtk2_package=gtk+-2.0
67 gtk2_min_version=2.24
68 gtk3_package=gtk+-3.0
69 gtk3_min_version=3.0
71 PKG_CHECK_EXISTS([$gtk2_package >= $gtk2_min_version], [have_gtk2=yes], [have_gtk2=no])
72 PKG_CHECK_EXISTS([$gtk3_package >= $gtk3_min_version], [have_gtk3=yes], [have_gtk3=no])
73 AS_IF([test "x$enable_gtk3" = xyes || (test "x$enable_gtk3" != xno &&
74                                                                            test "x$have_gtk3" = xyes &&
75                                                                            test "x$have_gtk2" = xno)],
76           [gtk_package=$gtk3_package
77            gtk_min_version=$gtk3_min_version],
78           [gtk_package=$gtk2_package
79            gtk_min_version=$gtk2_min_version])
80 AM_CONDITIONAL([GTK3], [test "x$gtk_package" = "x$gtk3_package"])
82 # GTK/GLib/GIO checks
83 gtk_modules="$gtk_package >= $gtk_min_version glib-2.0 >= 2.32"
84 gtk_modules_private="gio-2.0 >= 2.32 gmodule-no-export-2.0"
85 PKG_CHECK_MODULES([GTK], [$gtk_modules $gtk_modules_private])
86 AC_SUBST([DEPENDENCIES], [$gtk_modules])
87 AS_VAR_APPEND([GTK_CFLAGS], [" -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32"])
88 dnl Disable all GTK deprecations on 3.x so long as we want to keep 2.x support and only require 3.0.
89 dnl No need on 2.x as we target the latest version.
90 AM_COND_IF([GTK3], [AS_VAR_APPEND([GTK_CFLAGS], [" -DGDK_DISABLE_DEPRECATION_WARNINGS"])])
91 AC_SUBST([GTK_CFLAGS])
92 AC_SUBST([GTK_LIBS])
93 GTK_VERSION=`$PKG_CONFIG --modversion $gtk_package`
94 AC_SUBST([GTK_VERSION])
95 GEANY_STATUS_ADD([Using GTK version], [${GTK_VERSION}])
96 # GTHREAD checks
97 gthread_modules="gthread-2.0"
98 PKG_CHECK_MODULES([GTHREAD], [$gthread_modules])
99 AC_SUBST([GTHREAD_CFLAGS])
100 AC_SUBST([GTHREAD_LIBS])
102 # --disable-deprecated switch for GTK purification
103 AC_ARG_ENABLE([deprecated],
104                 [AS_HELP_STRING([--disable-deprecated], [Disable deprecated GTK functions.])],
105                 [GTK_CFLAGS="$GTK_CFLAGS -DG_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"],
106                 [])
109 # Check for binary relocation support
110 GEANY_CHECK_BINRELOC
111 # CTags source compatibility (we actually use GRegex instead of POSIX regcomp)
112 AC_DEFINE([HAVE_REGCOMP], [1], [Should always be 1, required for CTags.])
113 # Plugins support
114 GEANY_CHECK_PLUGINS
115 # check for mingw specific settings
116 GEANY_CHECK_MINGW
118 GEANY_CHECK_SOCKET
119 GEANY_CHECK_VTE
120 GEANY_CHECK_MAC_INTEGRATION
121 GEANY_CHECK_THE_FORCE dnl hehe
123 # i18n
124 GEANY_I18N
126 # double eval since datarootdir is usually defined as ${prefix}/share
127 AM_COND_IF([MINGW],
128   [pkgdatadir='${prefix}/data'],
129   [pkgdatadir='${datarootdir}/geany'])
130 AC_SUBST([GEANY_DATA_DIR], [$(eval echo $(eval echo $pkgdatadir))])
131 AC_SUBST([pkgdatadir])
133 # Documentation tools
134 GEANY_CHECK_DOCUTILS
135 GEANY_CHECK_DOXYGEN
136 GEANY_CHECK_GTKDOC_HEADER
138 # libgeany
139 GEANY_LIB_INIT
141 # Output
142 AC_CONFIG_FILES([
143                 Makefile
144                 icons/Makefile
145                 icons/16x16/Makefile
146                 icons/24x24/Makefile
147                 icons/32x32/Makefile
148                 icons/48x48/Makefile
149                 icons/scalable/Makefile
150                 icons/tango/Makefile
151                 icons/tango/16x16/Makefile
152                 icons/tango/24x24/Makefile
153                 icons/tango/32x32/Makefile
154                 icons/tango/48x48/Makefile
155                 icons/tango/scalable/Makefile
156                 ctags/Makefile
157                 scintilla/Makefile
158                 scintilla/include/Makefile
159                 src/Makefile
160                 src/tagmanager/Makefile
161                 plugins/Makefile
162                 po/Makefile.in
163                 data/Makefile
164                 doc/Makefile
165                 doc/geany.1
166                 geany.spec
167                 geany.pc
168                 geany.nsi
169                 doc/Doxyfile
170                 tests/Makefile
171                 tests/ctags/Makefile
173 AC_OUTPUT
175 # Summary
176 GEANY_STATUS_OUTPUT
177 echo ""
178 echo "Configuration is done OK."
179 echo ""