1dnl Process this file with autoconf to produce a configure script.
2
3AC_PREREQ(2.61)
4
5AC_INIT([engrampa], [1.26.0], [https://github.com/mate-desktop/engrampa/issues], [engrampa], [https://mate-desktop.org])
6AM_INIT_AUTOMAKE([1.9 foreign dist-xz no-dist-gzip check-news])
7m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
8
9AC_CONFIG_SRCDIR([config.h.in])
10AC_CONFIG_HEADER([config.h])
11AC_CONFIG_MACRO_DIR([m4])
12
13MATE_COMMON_INIT
14MATE_DEBUG_CHECK([no])
15MATE_COMPILE_WARNINGS
16
17AC_PROG_CC
18AM_DISABLE_STATIC
19AC_PROG_LIBTOOL
20PKG_PROG_PKG_CONFIG
21GLIB_GSETTINGS
22
23AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
24AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
25AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
26
27dnl ==========================================================================
28dnl
29dnl If you add a version number here, you *must* add an AC_SUBST line for
30dnl it too, or it will never make it into the spec file!
31dnl
32dnl ==========================================================================
33
34GLIB_REQUIRED=2.50.0
35GIO_REQUIRED=2.50.0
36GTK_REQUIRED=3.22.0
37CAJA_REQUIRED=1.17.1
38JSON_GLIB_REQUIRED=0.14.0
39SM_REQUIRED=1.0.0
40ICE_REQUIRED=1.0.0
41
42AC_SUBST(GLIB_REQUIRED)
43AC_SUBST(GIO_REQUIRED)
44AC_SUBST(GTK_REQUIRED)
45AC_SUBST(CAJA_REQUIRED)
46
47dnl ===========================================================================
48
49PKG_CHECK_MODULES(LIBEGG, [glib-2.0 >= $GLIB_REQUIRED
50                           gtk+-3.0 >= $GTK_REQUIRED
51                           sm >= $SM_REQUIRED
52                           ice >= $ICE_REQUIRED])
53AC_SUBST([LIBEGG_CFLAGS])
54AC_SUBST([LIBEGG_LIBS])
55
56dnl ===========================================================================
57
58AC_ARG_ENABLE(run_in_place,
59              AS_HELP_STRING([--enable-run-in-place],
60                             [load ui data and extensions from the source tree]),,
61              [enable_run_in_place=no])
62AM_CONDITIONAL(RUN_IN_PLACE, test "x$enable_run_in_place" != xno)
63
64dnl ===========================================================================
65
66PKG_CHECK_MODULES(FR,					\
67	glib-2.0 >= $GLIB_REQUIRED			\
68	gthread-2.0					\
69	gio-unix-2.0 >= $GIO_REQUIRED			\
70	gtk+-3.0 >= $GTK_REQUIRED)
71AC_SUBST(FR_CFLAGS)
72AC_SUBST(FR_LIBS)
73
74dnl ******************************
75
76AC_ARG_ENABLE([caja_actions],
77	[AS_HELP_STRING([--disable-caja-actions],
78			[do not build the caja context menu actions])],,
79	[enable_caja_actions=yes])
80
81if test x"$enable_caja_actions" != x"no" ; then
82	PKG_CHECK_MODULES(CAJA, \
83			  libcaja-extension >= $CAJA_REQUIRED \
84			  glib-2.0 \
85			  gio-2.0)
86	AC_SUBST(CAJA_CFLAGS)
87	AC_SUBST(CAJA_LIBS)
88
89fi
90AM_CONDITIONAL(ENABLE_CAJA_ACTIONS, test "x$enable_caja_actions" = xyes)
91
92AC_ARG_WITH(cajadir,
93        AS_HELP_STRING([--with-cajadir=DIR],[Installation path for Caja extension @<:@auto@:>@]),
94        [ac_with_cajadir=$withval],
95        [ac_with_cajadir=""])
96if test "${ac_with_cajadir}" = ""; then
97        ac_with_cajadir=`$PKG_CONFIG --variable=extensiondir libcaja-extension`
98fi
99
100AC_MSG_NOTICE([installing caja plugin in ${ac_with_cajadir}])
101AC_SUBST([CAJA_EXTENSION_DIR],[${ac_with_cajadir}])
102
103dnl ******************************
104
105PKG_CHECK_MODULES(JSON_GLIB,
106		  [json-glib-1.0 >= $JSON_GLIB_REQUIRED
107		   glib-2.0],
108		  [enable_json_glib=yes],
109		  [enable_json_glib=no])
110
111if test x$enable_json_glib = xyes ; then
112	AC_DEFINE(HAVE_JSON_GLIB, 1, [Define to 1 if json-glib support is included])
113fi
114
115AC_SUBST(JSON_GLIB_CFLAGS)
116AC_SUBST(JSON_GLIB_LIBS)
117
118AM_CONDITIONAL(ENABLE_JSON_GLIB, test x"$enable_json_glib" != x"no")
119
120dnl ******************************
121
122AC_CHECK_LIB(m, floor)
123
124dnl ==========================================================================
125
126AC_ARG_ENABLE(packagekit,
127	      [AC_HELP_STRING([--disable-packagekit],[build without PackageKit support])],,
128	      [enable_packagekit=yes])
129if test "x$enable_packagekit" != "xno"; then
130	AC_DEFINE(ENABLE_PACKAGEKIT, 1, [define to enable PackageKit installer])
131fi
132AM_CONDITIONAL(ENABLE_PACKAGEKIT, test x"$enable_packagekit" != x"no")
133
134dnl ******************************
135
136GETTEXT_PACKAGE=AC_PACKAGE_NAME
137AC_SUBST(GETTEXT_PACKAGE)
138AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [GetText Package])
139
140AM_GNU_GETTEXT([external])
141AM_GNU_GETTEXT_VERSION([0.19.8])
142AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.8])
143AM_CONDITIONAL([USE_NLS], [test "x${USE_NLS}" = "xyes"])
144
145dnl ******************************
146
147AC_ARG_ENABLE([magic],
148              AS_HELP_STRING([--enable-magic], [use libmagic to detect file type]),,
149              [enable_magic=no])
150
151zstd_mime_type="application/zstd"
152if test x"$enable_magic" = x"yes" ; then
153	save_LIBS="$LIBS"
154	LIBS="$LIBS -lmagic"
155	AC_MSG_CHECKING([whether libmagic works])
156	AC_LINK_IFELSE([AC_LANG_SOURCE([
157#include <magic.h>
158int main () { magic_t m = magic_open(MAGIC_NONE); }
159])],
160		       [AC_MSG_RESULT([yes])],
161		       [AC_MSG_RESULT([no])
162		        AC_MSG_ERROR([libmagic is needed for magic])])
163
164	dnl *******************************************
165	dnl This check can be removed with file >= 5.38
166	dnl *******************************************
167	AC_MSG_CHECKING([for zstd mime type])
168	AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
169#include <string.h>
170#include <magic.h>]],
171		[[
172    FILE *fptr;
173    char *test_file = "test.zst";
174    char *default_mime_type = "application/zstd";
175    int status = 0;
176    if ((fptr = fopen (test_file,"wb")) == NULL) {
177        status = 1;
178    } else {
179	const unsigned char data[5] = "\x28\xb5\x2f\xfd\0";
180        int i;
181	for (i = 0; i < strlen (data); i++)
182            fwrite (&data[i], 1, 1, fptr);
183        fclose (fptr);
184        magic_t magic_cookie = magic_open (MAGIC_MIME_TYPE);
185        if (magic_cookie == NULL) {
186            status = 1;
187        } else {
188            if (magic_load (magic_cookie, NULL) != 0) {
189                status = 1;
190            } else {
191                const char *mime = magic_file (magic_cookie, test_file);
192                status = (strcmp (default_mime_type, mime) == 0);
193            }
194            magic_close(magic_cookie);
195        }
196	remove (test_file);
197    }
198    return status;]])],
199		[zstd_mime_type="application/x-zstd"],
200		[zstd_mime_type="application/zstd"]
201	)
202	AC_MSG_RESULT($zstd_mime_type)
203	dnl *******************************************
204
205	LIBS="$save_LIBS"
206
207	MAGIC_CFLAGS=
208	MAGIC_LIBS=-lmagic
209
210	AC_SUBST(MAGIC_CFLAGS)
211	AC_SUBST(MAGIC_LIBS)
212
213	AC_DEFINE(ENABLE_MAGIC, 1, [define to enable magic])
214fi
215
216AM_CONDITIONAL(ENABLE_MAGIC, test x"$enable_magic" != x"no")
217ZSTD_MIME_TYPE="$zstd_mime_type"
218AC_SUBST(ZSTD_MIME_TYPE)
219AC_DEFINE_UNQUOTED(ZSTD_MIME_TYPE, "$zstd_mime_type", [define zstd mime type])
220
221AC_ARG_VAR([CPIO], [Path to the `cpio` command])
222AC_PATH_PROGS(CPIO, gcpio cpio, cpio)
223AC_DEFINE_UNQUOTED(CPIO_PATH, "${CPIO}", [Path to cpio])
224
225dnl ******************************
226
227YELP_HELP_INIT
228
229dnl ******************************
230
231AC_CONFIG_FILES([Makefile
232		 data/Makefile
233		 data/engrampa.appdata.xml.in
234		 data/engrampa.desktop.in
235		 data/org.mate.engrampa.gschema.xml
236		 data/icons/Makefile
237		 mate-submodules/Makefile
238		 mate-submodules/libegg/Makefile
239		 src/Makefile
240		 src/sh/Makefile
241		 src/ui/Makefile
242		 caja/Makefile
243		 caja/libcaja-engrampa.caja-extension.desktop.in
244		 help/Makefile
245		 po/Makefile.in])
246AC_OUTPUT
247
248echo "
249Configure summary:
250
251	${PACKAGE_STRING}
252	`echo $PACKAGE_STRING | sed "s/./=/g"`
253
254	Source code location:      ${srcdir}
255	Compiler:                  ${CC}
256	Compiler flags:            ${CFLAGS}
257	Warning flags:             ${WARN_CFLAGS}
258	Linker flags:              ${LDFLAGS}
259	Caja support:              ${enable_caja_actions}
260	PackageKit support:        ${enable_packagekit}
261	Run in place               ${enable_run_in_place}
262	Use libmagic:              ${enable_magic}
263	JSON support:              ${enable_json_glib}
264	Native Language support:   ${USE_NLS}
265"
266