Reorganise configure.ac layout (and simplify)
[platform/upstream/elementary.git] / configure.ac
1 EFL_VERSION([1], [11], [99], [dev])
2 AC_INIT([elementary], [efl_version], [enlightenment-devel@lists.sourceforge.net])
3
4 AC_PREREQ(2.63)
5 AC_CONFIG_SRCDIR([configure.ac])
6 AC_CONFIG_MACRO_DIR([m4])
7 AC_CANONICAL_BUILD
8 AC_CANONICAL_HOST
9
10 AC_CONFIG_HEADERS([elementary_config.h])
11 AH_TOP([
12 #ifndef EFL_CONFIG_H__
13 #define EFL_CONFIG_H__
14 ])
15 AH_BOTTOM([
16 #endif /* EFL_CONFIG_H__ */
17 ])
18
19 AC_USE_SYSTEM_EXTENSIONS
20
21 AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz -Wall])
22 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
23 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
24
25 LT_INIT([win32-dll disable-static pic-only])
26 EFL_INIT
27
28
29 ### Additional options to configure
30
31 # C++ bindings
32
33 AC_ARG_ENABLE([cxx-bindings],
34    [AC_HELP_STRING([--disable-cxx-bindings],
35        [disable C++11 bindings. @<:@default=enabled@:>@])],
36    [want_cxx11="${enableval}"],
37    [want_cxx11="yes"])
38
39 # Tests
40
41 AC_ARG_WITH([tests],
42    [AS_HELP_STRING([--with-tests=none|regular],
43                    [choose elementary testing method: regular or none.(coverage will be supported)@<:@default=none@:>@])],
44    [build_tests=${withval}],
45    [build_tests=none])
46
47 # Elementary base dir
48
49 AC_ARG_WITH([elementary-base-dir],
50    [AC_HELP_STRING([--with-elementary-base-dir=PATH], [specify the subdirectory for all elementary data @<:@default=${elementary_base_dir}@:>@])],
51    [elementary_base_dir=${withval}],
52    [elementary_base_dir=".elementary"])
53
54 AC_MSG_NOTICE([ELEMENTARY_BASE_DIR set to ${elementary_base_dir}])
55 AC_DEFINE_UNQUOTED([ELEMENTARY_BASE_DIR], ["${elementary_base_dir}"], ["subdirectory for all elementary data"])
56
57 # Build and install examples
58
59 EFL_CHECK_BUILD_EXAMPLES(
60    [enable_build_examples="yes"],
61    [enable_build_examples="no"])
62
63 EFL_CHECK_INSTALL_EXAMPLES(
64    [enable_install_examples="yes"],
65    [enable_install_examples="no"])
66
67 # Debug mode
68
69 AC_ARG_ENABLE([debug],
70    [AC_HELP_STRING([--enable-debug], [enable elementary debug support. @<:@default=disabled@:>@])],
71    [want_elementary_debug=$enableval],
72    [want_elementary_debug="no"])
73
74 ELM_DEBUG_DEF="#undef"
75 if test "x$want_elementary_debug" = "xyes"; then
76    AC_DEFINE([HAVE_ELEMENTARY_DEBUG], [1], [Elementary debug.])
77    ELM_DEBUG_DEF="#define"
78 fi
79 AC_SUBST([ELM_DEBUG_DEF])
80
81 # quicklaunch support
82
83 AC_ARG_ENABLE([quick-launch],
84    [AC_HELP_STRING([--disable-quick-launch], [disable quick-launch support, @<:@default=detect@:>@])],
85    [want_quicklaunch=$enableval],
86    [want_quicklaunch="auto"])
87
88
89 ### Default options with respect to host and default values
90
91 ELM_VERSION_MAJOR="v_maj"
92 ELM_VERSION_MINOR="v_min"
93 AC_SUBST([ELM_VERSION_MAJOR])
94 AC_SUBST([ELM_VERSION_MINOR])
95
96 MODULE_ARCH="v-v_maj.v_min.v_mic"
97 AC_SUBST([MODULE_ARCH])
98 AC_DEFINE_UNQUOTED([MODULE_ARCH], ["$MODULE_ARCH"], ["Module architecture"])
99
100 EFL_SHARED_EXTENSION="${shrext_cmds}"
101 AC_DEFINE_UNQUOTED([EFL_SHARED_EXTENSION], ["${EFL_SHARED_EXTENSION}"], ["Shared extension"])
102
103 ELM_UNIX_DEF="#undef"
104 ELM_WIN32_DEF="#undef"
105 have_windows="no"
106 have_freebsd="no"
107
108 case "$host_os" in
109    mingw*)
110       AC_DEFINE([HAVE_EVIL], [1], [Set to 1 if evil package is installed.])
111       ELM_WIN32_DEF="#define"
112       have_windows="yes"
113       ;;
114    *solaris*)
115       ELM_UNIX_DEF="#define"
116       ;;
117    freebsd*)
118       ELM_UNIX_DEF="#define"
119       have_freebsd="yes"
120       ;;
121    darwin*)
122       ELM_UNIX_DEF="#define"
123       ;;
124    *)
125       ELM_UNIX_DEF="#define"
126       ;;
127 esac
128
129 AM_CONDITIONAL([ELEMENTARY_WINDOWS_BUILD], [test "x${have_windows}" = "xyes"])
130 AM_CONDITIONAL([HAVE_FREEBSD], [test "x${have_freebsd}" = "xyes"])
131 AC_SUBST([ELM_UNIX_DEF])
132 AC_SUBST([ELM_WIN32_DEF])
133
134
135 ### Checks for programs
136
137 # gettext
138 m4_ifdef([AM_GNU_GETTEXT_VERSION], [
139 AM_GNU_GETTEXT_VERSION([0.17])
140 ])
141
142 m4_ifdef([AM_GNU_GETTEXT], [
143 AM_GNU_GETTEXT([external])
144 po_makefile_in=po/Makefile.in
145 have_po="yes"
146 ],[
147 have_po="no"
148 ])
149 AC_SUBST([LTLIBINTL])
150
151 if test "x${POSUB}" = "x" ; then
152    have_po="no"
153 fi
154
155 AM_CONDITIONAL([HAVE_PO], [test "x${have_po}" = "xyes"])
156
157 # compilers
158 AC_PROG_CC
159 AC_PROG_CC_STDC
160 AC_PROG_CXX
161
162 EFL_CXX_COMPILE_STDCXX_11([ext])
163
164 # pkg-config
165 PKG_PROG_PKG_CONFIG
166
167 # Check whether pkg-config supports Requires.private
168 if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then
169    pkgconfig_requires_private="Requires.private"
170 else
171    pkgconfig_requires_private="Requires"
172 fi
173 AC_SUBST([pkgconfig_requires_private])
174
175 # doxygen
176 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
177
178 # EFL binaries
179 EFL_WITH_BIN([eet], [eet-eet], [eet])
180 EFL_WITH_BIN([edje], [edje-cc], [edje_cc])
181 EFL_WITH_BIN([elementary], [elementary-codegen], [elementary_codegen])
182 EFL_WITH_BIN([elementary], [elm-prefs-cc], [elm_prefs_cc])
183 EFL_WITH_BIN([eolian], [eolian-gen], [eolian_gen])
184 EFL_WITH_BIN([eolian-cxx], [eolian-cxx], [eolian_cxx])
185 # Force the helper to try external eolian generators
186 AM_CONDITIONAL([HAVE_EOLIAN_GEN], [true])
187 AM_CONDITIONAL([HAVE_EOLIAN_CXX], [true])
188
189 EFL_ENABLE_BIN([elementary-test])
190 EFL_ENABLE_BIN([elementary-codegen])
191 EFL_ENABLE_BIN([elm-prefs-cc])
192 EFL_ENABLE_BIN([elementary-config])
193
194
195 ### Checks for libraries
196
197 requirement_elm=""
198
199 case "$host_os" in
200    mingw*)
201       requirement_elm="evil >= efl_version"
202       ;;
203 esac
204
205 requirement_elm="\
206     ${requirement_elm} \
207     efl >= efl_version \
208     eina >= efl_version \
209     eet >= efl_version \
210     evas >= efl_version \
211     ecore >= efl_version \
212     ecore-evas >= efl_version \
213     ecore-file >= efl_version \
214     ecore-input >= efl_version \
215     edje >= efl_version \
216     eo >= efl_version \
217     ethumb_client >= efl_version \
218     emotion >= efl_version \
219     ecore-imf >= efl_version \
220     ecore-con >= efl_version \
221     eio >= efl_version \
222     eldbus >= efl_version \
223     efreet >= efl_version \
224     efreet-mime >= efl_version \
225     efreet-trash >= efl_version \
226     eio >= efl_version \
227     "
228
229 PKG_CHECK_MODULES([ELEMENTARY],
230    [${requirement_elm}])
231
232 EFL_ENABLE_EO_API_SUPPORT
233 EFL_ENABLE_BETA_API_SUPPORT
234
235
236 if test "x${HAVE_CXX11}" = "x1" -a "x${want_cxx11}" = "xyes"; then
237    PKG_CHECK_MODULES([ELEMENTARY_CXX],
238       [
239         eo-cxx >= efl_version
240         eina-cxx >= efl_version
241         evas-cxx >= efl_version
242       ],
243       [
244         requirement_elm="${requirement_elm} \
245           eo-cxx >= efl_version \
246           eina-cxx >= efl_version \
247           evas-cxx >= efl_version \
248         "
249         have_cxx11="yes"
250         LDFLAGS="${LDFLAGS} -fPIC -DPIC"
251         CXXFLAGS="${CXXFLAGS} -fPIC -DPIC"
252       ],
253       [have_cxx11="no"]
254    )
255 else
256    have_cxx11="no"
257 fi
258 AM_CONDITIONAL([HAVE_CXX11], [test "x${have_cxx11}" = "xyes"])
259
260
261 MODULE_EDJE=`${PKG_CONFIG} --variable=module_arch edje`
262 AC_SUBST([MODULE_EDJE])
263 AC_DEFINE_UNQUOTED([MODULE_EDJE], ["$MODULE_EDJE"], ["Edje module architecture"])
264
265 # Needs to be moved into a macro, and also, needs a way to automatically fetch
266 # from all the dependencies using the Requires.
267 DEPS_EOLIAN_FLAGS=`${PKG_CONFIG} --variable=eolian_flags eo evas edje ecore efl`
268 AC_SUBST([DEPS_EOLIAN_FLAGS])
269
270 my_libs="-lm"
271
272 # sockets
273
274 case "$host_os" in
275    mingw*)
276       have_socket="no"
277       ;;
278    *solaris*)
279       AC_CHECK_LIB([socket], [connect],
280          [
281           have_socket="yes"
282           my_libs="-lsocket ${my_libs}"
283          ],
284          [have_socket="no"])
285       ;;
286    darwin*)
287       have_socket="yes"
288       ;;
289    *)
290       have_socket="yes"
291       ;;
292 esac
293
294 AM_CONDITIONAL([BUILD_RUN], [test "x$have_socket" = "xyes"])
295
296 # dlopen
297
298 have_dlopen="no"
299 case "$host_os" in
300    mingw*)
301 dnl managed by evil
302       AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if you have the `dladdr' function.])
303       have_dlopen="yes"
304       my_libs="-ldl ${my_libs}"
305       ;;
306    *solaris*)
307       have_dlopen="yes"
308       ;;
309    darwin*)
310       have_dlopen="yes"
311       ;;
312    *)
313       AC_CHECK_LIB([dl], [dlopen], [res=yes], [res=no])
314       if test "x$res" = "xyes"; then
315          AC_CHECK_LIB([dl], [dladdr], AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if you have the `dladdr' function.]))
316          my_libs="-ldl ${my_libs}"
317          have_dlopen="yes"
318       fi
319       ;;
320 esac
321
322 AM_CONDITIONAL([BUILD_MODULES], [test "x$have_dlopen" = "xyes"])
323
324 AC_SUBST([my_libs])
325 AC_SUBST([requirement_elm])
326
327 # check unit testing library
328 if test "${build_tests}" = "regular"; then
329    PKG_CHECK_MODULES([CHECK], [check >= 0.9.5])
330 fi
331 AM_CONDITIONAL([ENABLE_ELEMENTARY_TESTS], [test "${build_tests}" = "regular"])
332
333
334 ### Checks for header files
335
336 ELM_ALLOCA_H_DEF="#undef"
337 AC_CHECK_HEADER([alloca.h], [ELM_ALLOCA_H_DEF="#define"])
338 AC_SUBST([ELM_ALLOCA_H_DEF])
339
340 ELM_LIBINTL_H_DEF="#undef"
341 AC_CHECK_HEADER([libintl.h], [ELM_LIBINTL_H_DEF="#define"])
342 AC_SUBST([ELM_LIBINTL_H_DEF])
343
344 ELM_DIRENT_H_DEF="#undef"
345 AC_CHECK_HEADER([dirent.h], [ELM_DIRENT_H_DEF="#define"])
346 AC_SUBST([ELM_DIRENT_H_DEF])
347
348 AC_CHECK_HEADER([sys/mman.h], [have_mman="yes"], [have_mman="no"])
349 if test "x${have_mman}" = "xyes"; then
350    AC_DEFINE([HAVE_MMAN_H], [1], [Have sys/mman.h header file])
351 fi
352
353 AC_CHECK_HEADERS([locale.h langinfo.h sys/times.h])
354
355 case "$host_os" in
356    darwin*)
357       AC_CHECK_HEADERS([crt_externs.h])
358       ;;
359 esac
360
361
362 ### Checks for types
363
364
365 ### Checks for structures
366
367
368 ### Checks for compiler characteristics
369
370 AC_C_BIGENDIAN
371
372 m4_ifdef([v_mic],
373    [
374     EFL_COMPILER_FLAG([-Wshadow])
375     EFL_COMPILER_FLAG([-Wall])
376     EFL_COMPILER_FLAG([-W])
377    ])
378
379 EFL_COMPILER_FLAG([-Wall -Wextra -Wpointer-arith -Wno-missing-field-initializers -fvisibility=hidden -fdata-sections -ffunction-sections])
380
381 EFL_CHECK_PATH_MAX
382
383
384 ### Checks for linker characteristics
385
386 EFL_LINKER_FLAG([-fvisibility=hidden -fdata-sections -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed -Wl,--no-copy-dt-needed-entries])
387
388 # Check if we can build binary with quicklaunch support
389 ELM_QUICKLAUNCH
390
391
392 ### Checks for library functions
393
394 AC_FUNC_ALLOCA
395
396 AC_CHECK_FUNCS([geteuid getuid])
397
398 if test "x${want_quicklaunch}" != "xno"; then
399    AC_CHECK_FUNCS([fork clearenv])
400 fi
401
402 if test "x${have_dlopen}" = "xno"; then
403    AC_CHECK_FUNCS([dlopen dladdr])
404 fi
405
406 if test "x${ac_cv_func_dlopen}" = "xyes"; then
407    have_dlopen="yes"
408 fi
409
410 AM_CONDITIONAL([BUILD_QUICKLAUNCH], [test "x${ac_cv_func_fork}" = "xyes" && test "x${have_dlopen}" = "xyes"])
411
412 # environ variable
413
414 AC_COMPILE_IFELSE(
415    [AC_LANG_PROGRAM(
416       [[
417 # define _GNU_SOURCE 1
418 #include <unistd.h>
419       ]],
420       [[
421 extern char **environ;
422       ]])
423    ],
424    [AC_DEFINE([HAVE_ENVIRON], [1], [extern environ exists])])
425
426 case "$host_os" in
427    darwin*)
428       AC_DEFINE([environ], [(*_NSGetEnviron())], ["apple doesn't follow POSIX in this case."])
429       ;;
430 esac
431
432
433
434
435 have_elementary_x="no"
436 want_elementary_x="auto"
437 AC_ARG_ENABLE([ecore-x],
438    [AC_HELP_STRING([--disable-ecore-x], [disable ecore-x support. @<:@default=detect@:>@])],
439    [want_elementary_x=$enableval], [])
440
441 if test "x$want_elementary_x" != "xno"; then
442    PKG_CHECK_MODULES([ELEMENTARY_X],
443       [ecore-x >= efl_version],
444       [
445        AC_DEFINE(HAVE_ELEMENTARY_X, 1, [X11 support for Elementary])
446        have_elementary_x="yes"
447        requirement_elm="ecore-x >= efl_version ${requirement_elm}"
448       ],
449       [have_elementary_x="no"]
450    )
451 else
452     have_elementary_x="no"
453 fi
454 if test "x$want_elementary_x" = "xyes" -a "x$have_elementary_x" = "xno"; then
455     AC_MSG_ERROR([ecore-x support requested, but ecore-x was not found by pkg-config.])
456 fi
457
458
459 have_elementary_fb="no"
460 want_elementary_fb="auto"
461 AC_ARG_ENABLE([ecore-fb],
462    [AC_HELP_STRING([--disable-ecore-fb], [disable ecore-fb support. @<:@default=detect@:>@])],
463    [want_elementary_fb=$enableval], [])
464
465 if test "x$want_elementary_fb" != "xno"; then
466    PKG_CHECK_MODULES([ELEMENTARY_FB],
467       [ecore-fb >= efl_version],
468       [
469        AC_DEFINE(HAVE_ELEMENTARY_FB, 1, [FB support for Elementary])
470        have_elementary_fb="yes"
471        requirement_elm="ecore-fb >= efl_version ${requirement_elm}"
472       ],
473       [have_elementary_fb="no"]
474    )
475 else
476     have_elementary_fb="no"
477 fi
478 if test "x$want_elementary_fb" = "xyes" -a "x$have_elementary_fb" = "xno"; then
479     AC_MSG_ERROR([ecore-fb support requested, but ecore-fb was not found by pkg-config.])
480 fi
481
482 have_elementary_psl1ght="no"
483 want_elementary_psl1ght="auto"
484 AC_ARG_ENABLE([ecore-psl1ght],
485    [AC_HELP_STRING([--disable-ecore-psl1ght], [disable ecore-psl1ght support. @<:@default=detect@:>@])],
486    [want_elementary_psl1ght=$enableval], [])
487
488 if test "x$want_elementary_psl1ght" != "xno"; then
489    PKG_CHECK_MODULES([ELEMENTARY_PSL1GHT],
490       [ecore-psl1ght >= efl_version],
491       [
492        AC_DEFINE(HAVE_ELEMENTARY_PSL1GHT, 1, [PSL1GHT support for Elementary])
493        have_elementary_psl1ght="yes"
494        requirement_elm="ecore-psl1ght >= efl_version ${requirement_elm}"
495       ],
496       [have_elementary_psl1ght="no"]
497    )
498 else
499     have_elementary_psl1ght="no"
500 fi
501 if test "x$want_elementary_psl1ght" = "xyes" -a "x$have_elementary_psl1ght" = "xno"; then
502     AC_MSG_ERROR([ecore-psl1ght support requested, but ecore-psl1ght was not found by pkg-config.])
503 fi
504
505 have_elementary_sdl="no"
506 want_elementary_sdl="auto"
507 AC_ARG_ENABLE([ecore-sdl],
508    [AC_HELP_STRING([--disable-ecore-sdl], [disable ecore-sdl support. @<:@default=detect@:>@])],
509    [want_elementary_sdl=$enableval], [])
510
511 if test "x$want_elementary_sdl" != "xno"; then
512    PKG_CHECK_MODULES([ELEMENTARY_SDL],
513       [ecore-sdl >= efl_version],
514       [
515        AC_DEFINE(HAVE_ELEMENTARY_SDL, 1, [SDL support for Elementary])
516        have_elementary_sdl="yes"
517        requirement_elm="ecore-sdl >= efl_version ${requirement_elm}"
518       ],
519       [have_elementary_sdl="no"]
520    )
521 else
522     have_elementary_sdl="no"
523 fi
524 if test "x$want_elementary_sdl" = "xyes" -a "x$have_elementary_sdl" = "xno"; then
525     AC_MSG_ERROR([ecore-sdl support requested, but ecore-sdl was not found by pkg-config.])
526 fi
527
528 have_elementary_cocoa="no"
529 want_elementary_cocoa="auto"
530 AC_ARG_ENABLE([ecore-cocoa],
531    [AC_HELP_STRING([--disable-ecore-cocoa], [disable ecore-cocoa support. @<:@default=detect@:>@])],
532    [want_elementary_cocoa=$enableval], [])
533
534 if test "x$want_elementary_cocoa" != "xno"; then
535    PKG_CHECK_MODULES([ELEMENTARY_COCOA],
536       [ecore-cocoa >= efl_version],
537       [
538        AC_DEFINE(HAVE_ELEMENTARY_COCOA, 1, [COCOA support for Elementary])
539        have_elementary_cocoa="yes"
540        requirement_elm="ecore-cocoa >= efl_version ${requirement_elm}"
541       ],
542       [have_elementary_cocoa="no"]
543    )
544 else
545     have_elementary_cocoa="no"
546 fi
547 if test "x$want_elementary_cocoa" = "xyes" -a "x$have_elementary_cocoa" = "xno"; then
548     AC_MSG_ERROR([ecore-cocoa support requested, but ecore-cocoa was not found by pkg-config.])
549 fi
550
551 have_elementary_win32="no"
552 want_elementary_win32="auto"
553 AC_ARG_ENABLE([ecore-win32],
554    [AC_HELP_STRING([--disable-ecore-win32], [disable ecore-win32 support. @<:@default=detect@:>@])],
555    [want_elementary_win32=$enableval], [])
556
557 if test "x$want_elementary_win32" != "xno"; then
558    PKG_CHECK_MODULES([ELEMENTARY_WIN32],
559       [ecore-win32 >= efl_version],
560       [
561        AC_DEFINE(HAVE_ELEMENTARY_WIN32, 1, [Windows XP support for Elementary])
562        have_elementary_win32="yes"
563        requirement_elm="ecore-win32 >= efl_version ${requirement_elm}"
564       ],
565       [have_elementary_win32="no"]
566    )
567 else
568     have_elementary_win32="no"
569 fi
570 if test "x$want_elementary_win32" = "xyes" -a "x$have_elementary_win32" = "xno"; then
571     AC_MSG_ERROR([ecore-win32 support requested, but ecore-win32 was not found by pkg-config.])
572 fi
573
574 have_elementary_wayland="no"
575 want_elementary_wayland="auto"
576 AC_ARG_ENABLE([ecore-wayland],
577    [AC_HELP_STRING([--disable-ecore-wayland], [disable ecore-wayland support. @<:@default=detect@:>@])],
578    [want_elementary_wayland=$enableval], [])
579
580 if test "x$want_elementary_wayland" != "xno"; then
581    PKG_CHECK_MODULES([ELEMENTARY_WAYLAND],
582       [ecore-wayland],
583       [
584        AC_DEFINE(HAVE_ELEMENTARY_WAYLAND, 1, [Wayland support for Elementary])
585        have_elementary_wayland="yes"
586        requirement_elm="ecore-wayland ${requirement_elm}"
587       ],
588       [have_elementary_wayland="no"]
589    )
590 else
591     have_elementary_wayland="no"
592 fi
593 if test "x$want_elementary_wayland" = "xyes" -a "x$have_elementary_wayland" = "xno"; then
594     AC_MSG_ERROR([ecore-wayland support requested, but ecore-wayland was not found by pkg-config.])
595 fi
596
597 have_elementary_drm="no"
598 want_elementary_drm="auto"
599 AC_ARG_ENABLE([ecore-drm],
600    [AC_HELP_STRING([--disable-ecore-drm], [disable ecore-drm support. @<:@default=detect@:>@])],
601    [want_elementary_drm=$enableval], [])
602
603 if test "x$want_elementary_drm" != "xno"; then
604    PKG_CHECK_MODULES([ELEMENTARY_DRM],
605       [ecore-drm >= efl_version],
606       [
607        AC_DEFINE(HAVE_ELEMENTARY_DRM, 1, [DRM support for Elementary])
608        have_elementary_drm="yes"
609        requirement_elm="ecore-drm >= efl_version ${requirement_elm}"
610       ],
611       [have_elementary_drm="no"]
612    )
613 else
614     have_elementary_drm="no"
615 fi
616 if test "x$want_elementary_drm" = "xyes" -a "x$have_elementary_drm" = "xno"; then
617     AC_MSG_ERROR([ecore-drm support requested, but ecore-drm was not found by pkg-config.])
618 fi
619
620
621 ELM_ELOCATION_DEF="#undef"
622 have_elementary_elocation="no"
623 want_elementary_elocation="auto"
624 AC_ARG_ENABLE([elocation],
625    [AC_HELP_STRING([--disable-elocation], [disable elocation support. @<:@default=detect@:>@])],
626    [want_elementary_elocation=$enableval], [])
627
628 if test "x$want_elementary_elocation" != "xno"; then
629     PKG_CHECK_MODULES([ELEMENTARY_ELOCATION],
630        [
631         elocation >= 0.1.0
632        ],
633        [
634         AC_DEFINE(HAVE_ELEMENTARY_ELOCATION, 1, [Elocation support for Elementary])
635         have_elementary_elocation="yes"
636         ELM_ELOCATION_DEF="#define"
637         requirement_elm="elocation >= 0.1.0 ${requirement_elm}"
638        ],
639        [have_elementary_elocation="no"]
640     )
641 else
642     have_elementary_elocation="no"
643 fi
644 if test "x$want_elementary_elocation" = "xyes" -a "x$have_elementary_elocation" = "xno"; then
645     AC_MSG_ERROR([elocation support requested, but elocation was not found by pkg-config.])
646 fi
647 AC_SUBST(ELM_ELOCATION_DEF)
648
649 ELM_EWEATHER_DEF="#undef"
650 have_elementary_eweather="no"
651 want_elementary_eweather="auto"
652 AC_ARG_ENABLE([eweather],
653    [AC_HELP_STRING([--disable-eweather], [disable eweather support. @<:@default=detect@:>@])],
654    [want_elementary_eweather=$enableval], [])
655
656 if test "x$want_elementary_eweather" != "xno"; then
657     PKG_CHECK_MODULES([ELEMENTARY_EWEATHER],
658        [
659         eweather
660        ],
661        [
662         AC_DEFINE(HAVE_ELEMENTARY_EWEATHER, 1, [EWeather support for Elementary])
663         have_elementary_eweather="yes"
664         ELM_EWEATHER_DEF="#define"
665         requirement_elm="eweather ${requirement_elm}"
666        ],
667        [have_elementary_eweather="no"]
668     )
669 else
670     have_elementary_eweather="no"
671 fi
672 if test "x$want_elementary_eweather" = "xyes" -a "x$have_elementary_eweather" = "xno"; then
673     AC_MSG_ERROR([Eweather support requested, but eweather was not found by pkg-config.])
674 fi
675 AC_SUBST(ELM_EWEATHER_DEF)
676
677 ELM_EMAP_DEF="#undef"
678 have_elementary_emap="no"
679 want_elementary_emap="auto"
680 AC_ARG_ENABLE([emap],
681    [AC_HELP_STRING([--disable-emap], [disable emap support. @<:@default=detect@:>@])],
682    [want_elementary_emap=$enableval], [])
683
684 if test "x$want_elementary_emap" != "xno"; then
685     PKG_CHECK_MODULES([ELEMENTARY_EMAP],
686        [
687         emap
688        ],
689        [
690         AC_DEFINE(HAVE_ELEMENTARY_EMAP, 1, [EMap support for Elementary])
691         have_elementary_emap="yes"
692         ELM_EMAP_DEF="#define"
693         requirement_elm="emap ${requirement_elm}"
694        ],
695        [have_elementary_emap="no"]
696     )
697 else
698     have_elementary_emap="no"
699 fi
700 if test "x$want_elementary_emap" = "xyes" -a "x$have_elementary_emap" = "xno"; then
701     AC_MSG_ERROR([Emap support requested, but emap was not found by pkg-config.])
702 fi
703 AC_SUBST(ELM_EMAP_DEF)
704
705 ELM_WEB2_DEF="#undef"
706
707 elementary_web_backend="detect"
708 elementary_web="no"
709 want_elementary_web=""
710 AC_ARG_WITH([elementary-web-backend],
711    [AC_HELP_STRING([--with-elementary-web-backend=@<:@ewebkit2/detect/none@:>@], [Select the WebKit backend for Elementary to support web @<:@default=detect@:>@])],
712    [
713     elementary_web_backend=${withval}
714    ],
715    [elementary_web_backend="detect"])
716
717 case "$elementary_web_backend" in
718     ewebkit2|detect|none) ;;
719     *) AC_MSG_ERROR([Invalid web backend: must be ewebkit2, detect or none]) ;;
720 esac
721
722 if test "x$elementary_web_backend" = "xdetect"; then
723     want_elementary_web="ewebkit2"
724 else
725     want_elementary_web=$elementary_web_backend
726 fi
727
728 if test "x$want_elementary_web" != "xnone"; then
729     PKG_CHECK_MODULES([ELEMENTARY_WEB],
730        [$want_elementary_web],
731        [
732         AC_DEFINE(HAVE_ELEMENTARY_WEB, 1, [Web support for Elementary])
733         webkit_datadir=$($PKG_CONFIG $want_elementary_web --variable=datadir)
734         AC_DEFINE_UNQUOTED(WEBKIT_DATADIR,
735                            "$webkit_datadir",
736                            "WebKit's data dir")
737         ELM_WEB2_DEF="#define"
738 o
739         elementary_web=$want_elementary_web
740         requirement_elm="${want_elementary_web} ${requirement_elm}"
741        ],
742        [elementary_web="no"]
743     )
744 else
745     elementary_web="no"
746 fi
747
748 if test "x$elementary_web_backend" = "xewebkit2"; then
749     if test "x$elementary_web" = "xnone"; then
750         AC_MSG_ERROR([Web support requested, but no $elementary_web_backend found by pkg-config.])
751     fi
752 fi
753 AC_SUBST(ELM_WEB2_DEF)
754
755 AC_CONFIG_FILES([
756 Makefile
757 elementary.spec
758 elementary.pc
759 doc/Makefile
760 doc/Doxyfile
761 doc/widgets/Makefile
762 src/Makefile
763 src/lib/Makefile
764 src/lib/Elementary.h
765 src/lib/elm_intro.h
766 src/bin/Makefile
767 src/modules/Makefile
768 src/modules/prefs/Makefile
769 src/modules/access_output/Makefile
770 src/modules/datetime_input_ctxpopup/Makefile
771 src/modules/test_entry/Makefile
772 src/modules/test_map/Makefile
773 src/edje_externals/Makefile
774 src/examples/Makefile
775 src/tests/Makefile
776 src/imported/Makefile
777 src/imported/atspi/Makefile
778 data/Makefile
779 data/themes/Makefile
780 data/images/Makefile
781 data/objects/Makefile
782 data/desktop/Makefile
783 data/edje_externals/Makefile
784 config/Makefile
785 config/default/Makefile
786 config/default/base.src
787 config/standard/Makefile
788 config/standard/base.src
789 config/mobile/Makefile
790 config/mobile/base.src
791 $po_makefile_in
792 cmakeconfig/ElementaryConfig.cmake
793 cmakeconfig/ElementaryConfigVersion.cmake
794 ])
795
796 AC_OUTPUT
797
798 #####################################################################
799 ## Info
800
801 echo
802 echo
803 echo
804 echo "------------------------------------------------------------------------"
805 echo "$PACKAGE $VERSION"
806 echo "------------------------------------------------------------------------"
807 echo
808 echo "Configuration Options Summary:"
809 echo
810 echo "  Engines:"
811 echo "    X11....................: ${have_elementary_x}"
812 echo "    Framebuffer............: ${have_elementary_fb}"
813 echo "    DRM....................: ${have_elementary_drm}"
814 echo "    PSL1GHT................: ${have_elementary_psl1ght}"
815 echo "    SDL....................: ${have_elementary_sdl}"
816 echo "    Cocoa..................: ${have_elementary_cocoa}"
817 echo "    Windows XP.............: ${have_elementary_win32}"
818 echo "    Wayland................: ${have_elementary_wayland}"
819 echo
820 echo "  Features:"
821 echo "    EWeather...............: ${have_elementary_eweather}"
822 echo "    EMap...................: ${have_elementary_emap}"
823 echo "    Web (WebKit)...........: ${elementary_web}"
824 echo "    Quick Launch...........: ${ac_cv_func_fork}"
825 echo "    Elocation..............: ${have_elementary_elocation}"
826 echo
827 echo "  eet......................: ${eet_eet}"
828 echo "  edje_cc..................: ${edje_cc}"
829 echo "  elementary_codegen.......: ${elementary_codegen}"
830 echo "  elm_prefs_cc.............: ${elm_prefs_cc}"
831 echo "  eolian_gen...............: ${eolian_gen}"
832 echo "  eolian_cxx...............: ${eolian_cxx}"
833 echo
834 echo "  Build elementary_test....: ${have_elementary_test}"
835 echo "  Build elementary_codegen.: ${have_elementary_codegen}"
836 echo "  Build elm_prefs_cc.......: ${have_elm_prefs_cc}"
837 echo "  Examples.................: ${enable_build_examples}"
838 echo "  Examples installed.......: ${enable_install_examples}"
839 echo "  Build elementary_config..: ${have_elementary_config}"
840 echo "  Enable debug.............: ${want_elementary_debug}"
841 echo "  Enable C++...............: ${have_cxx11}"
842 echo
843 echo "Compilation................: make (or gmake)"
844 echo "  CPPFLAGS.................: $CPPFLAGS"
845 echo "  CFLAGS...................: $CFLAGS"
846 if test "x${have_cxx11}" = "xyes"; then
847 echo "  CXXFLAGS.................: $CXXFLAGS"
848 fi
849 echo "  LDFLAGS..................: $LDFLAGS"
850 echo
851 if test "${build_tests}" = "none"; then
852 echo "Tests......................: no"
853 else
854 echo "Tests......................: make check"
855 fi
856 if test "${build_doc}" = "no"; then
857 echo "Docs.......................: no (doxygen not found)"
858 else
859 echo "Docs.......................: make doc"
860 fi
861 echo
862 echo "Installation...............: make install (as root if needed, with 'su' or 'sudo')"
863 echo "  prefix...................: $prefix"
864 echo