Merge pull request #2212 from TwlyY29/bibtex-parser
[geany-mirror.git] / configure.ac
blobeba9daedcfbb3573ad0e9c530efcebbc9bf1d55d
1 dnl Process this file with autoconf to produce a configure script.
3 AC_PREREQ([2.60])
4 AC_INIT([Geany], [1.37],
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 glob.h stdlib.h sys/time.h errno.h limits.h])
44 # Checks for dependencies needed by ctags
45 AC_CHECK_HEADERS([fnmatch.h direct.h io.h sys/dir.h])
46 AC_DEFINE([USE_STDBOOL_H], [1], [whether or not to use <stdbool.h>.])
47 AC_DEFINE([CTAGS_LIB], [1], [compile ctags as a library.])
49 # Checks for typedefs, structures, and compiler characteristics.
50 AC_TYPE_OFF_T
51 AC_TYPE_SIZE_T
52 AC_STRUCT_TM
54 # Checks for library functions.
55 AC_CHECK_FUNCS([fgetpos fnmatch mkstemp strerror strstr realpath])
57 # Function checks for u-ctags
58 AC_CHECK_FUNCS([strcasecmp stricmp], [break])
59 AC_CHECK_FUNCS([strncasecmp strnicmp], [break])
60 AC_CHECK_FUNCS([truncate ftruncate chsize], [break])
61 # non-functions checks for u-ctags.  Not that we really need those as we don't
62 # use u-ctags's main, but the corresponding macros have to be defined to
63 # something, so simply perform the actual checks.
64 AC_CHECK_DECLS([__environ],,,[[#include <unistd.h>]])
65 AC_CHECK_DECLS([_NSGetEnviron],,,[[#include <crt_externs.h>]])
67 # autoscan end
70 # check for VCS revision
71 GEANY_CHECK_REVISION([dnl force debug mode for a VCS working copy
72                                           CFLAGS="-g -DGEANY_DEBUG $CFLAGS"])
74 # GTK version check
75 AC_ARG_ENABLE([gtk3],
76                 [AS_HELP_STRING([--enable-gtk3],
77                                                 [compile against GTK3 [default=auto]])],
78                 [enable_gtk3=$enableval],
79                 [enable_gtk3=auto])
81 gtk2_package=gtk+-2.0
82 gtk2_min_version=2.24
83 gtk3_package=gtk+-3.0
84 gtk3_min_version=3.0
86 PKG_CHECK_EXISTS([$gtk2_package >= $gtk2_min_version], [have_gtk2=yes], [have_gtk2=no])
87 PKG_CHECK_EXISTS([$gtk3_package >= $gtk3_min_version], [have_gtk3=yes], [have_gtk3=no])
88 AS_IF([test "x$enable_gtk3" = xyes || (test "x$enable_gtk3" != xno &&
89                                                                            test "x$have_gtk3" = xyes &&
90                                                                            test "x$have_gtk2" = xno)],
91           [gtk_package=$gtk3_package
92            gtk_min_version=$gtk3_min_version],
93           [gtk_package=$gtk2_package
94            gtk_min_version=$gtk2_min_version])
95 AM_CONDITIONAL([GTK3], [test "x$gtk_package" = "x$gtk3_package"])
97 # GTK/GLib/GIO checks
98 gtk_modules="$gtk_package >= $gtk_min_version glib-2.0 >= 2.32"
99 gtk_modules_private="gio-2.0 >= 2.32 gmodule-no-export-2.0"
100 PKG_CHECK_MODULES([GTK], [$gtk_modules $gtk_modules_private])
101 AC_SUBST([DEPENDENCIES], [$gtk_modules])
102 AS_VAR_APPEND([GTK_CFLAGS], [" -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32"])
103 dnl Disable all GTK deprecations on 3.x so long as we want to keep 2.x support and only require 3.0.
104 dnl No need on 2.x as we target the latest version.
105 AM_COND_IF([GTK3], [AS_VAR_APPEND([GTK_CFLAGS], [" -DGDK_DISABLE_DEPRECATION_WARNINGS"])])
106 AC_SUBST([GTK_CFLAGS])
107 AC_SUBST([GTK_LIBS])
108 GTK_VERSION=`$PKG_CONFIG --modversion $gtk_package`
109 AC_SUBST([GTK_VERSION])
110 GEANY_STATUS_ADD([Using GTK version], [${GTK_VERSION}])
111 # GTHREAD checks
112 gthread_modules="gthread-2.0"
113 PKG_CHECK_MODULES([GTHREAD], [$gthread_modules])
114 AC_SUBST([GTHREAD_CFLAGS])
115 AC_SUBST([GTHREAD_LIBS])
117 # --disable-deprecated switch for GTK purification
118 AC_ARG_ENABLE([deprecated],
119                 [AS_HELP_STRING([--disable-deprecated], [Disable deprecated GTK functions.])],
120                 [GTK_CFLAGS="$GTK_CFLAGS -DG_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"],
121                 [])
124 # Check for binary relocation support
125 GEANY_CHECK_BINRELOC
126 # CTags source compatibility (we actually use GRegex instead of POSIX regcomp)
127 AC_DEFINE([HAVE_REGCOMP], [1], [Should always be 1, required for CTags.])
128 # Plugins support
129 GEANY_CHECK_PLUGINS
130 # check for mingw specific settings
131 GEANY_CHECK_MINGW
133 GEANY_CHECK_SOCKET
134 GEANY_CHECK_VTE
135 GEANY_CHECK_MAC_INTEGRATION
136 GEANY_CHECK_THE_FORCE dnl hehe
138 # i18n
139 GEANY_I18N
141 # double eval since datarootdir is usually defined as ${prefix}/share
142 AM_COND_IF([MINGW],
143   [pkgdatadir='${prefix}/data'],
144   [pkgdatadir='${datarootdir}/geany'])
145 AC_SUBST([GEANY_DATA_DIR], [$(eval echo $(eval echo $pkgdatadir))])
146 AC_SUBST([pkgdatadir])
148 # Documentation tools
149 GEANY_CHECK_DOCUTILS
150 GEANY_CHECK_DOXYGEN
151 GEANY_CHECK_GTKDOC_HEADER
153 # libgeany
154 GEANY_LIB_INIT
156 # Output
157 AC_CONFIG_FILES([
158                 Makefile
159                 icons/Makefile
160                 icons/16x16/Makefile
161                 icons/24x24/Makefile
162                 icons/32x32/Makefile
163                 icons/48x48/Makefile
164                 icons/scalable/Makefile
165                 icons/tango/Makefile
166                 icons/tango/16x16/Makefile
167                 icons/tango/24x24/Makefile
168                 icons/tango/32x32/Makefile
169                 icons/tango/48x48/Makefile
170                 icons/tango/scalable/Makefile
171                 ctags/Makefile
172                 scintilla/Makefile
173                 scintilla/include/Makefile
174                 src/Makefile
175                 src/tagmanager/Makefile
176                 plugins/Makefile
177                 po/Makefile.in
178                 data/Makefile
179                 doc/Makefile
180                 doc/geany.1
181                 geany.pc
182                 geany.nsi
183                 doc/Doxyfile
184                 tests/Makefile
185                 tests/ctags/Makefile
187 AC_OUTPUT
189 # Summary
190 GEANY_STATUS_OUTPUT
191 echo ""
192 echo "Configuration is done OK."
193 echo ""