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