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