d7b4c3d51afe3714b3e64d934c8ff72e4f3e898f
[framework/uifw/elementary.git] / configure.ac
1 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3 m4_define([v_maj], [0])
4 m4_define([v_min], [7])
5 m4_define([v_mic], [0])
6 m4_define([v_rev], m4_esyscmd([(svnversion . | grep -v exported || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
7 m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
8 ##--   When released, remove the dnl on the below line
9 dnl m4_undefine([v_rev])
10 ##--   When doing snapshots - change soname. remove dnl on below line
11 m4_define([relname], [ver-pre-svn-06])
12 m4_define([v_rel], [-release relname])
13 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
14 m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])],
15 [m4_define([v_ver], [v_maj.v_min.v_mic])])
16 m4_define([lt_rev], m4_eval(v_maj + v_min))
17 m4_define([lt_cur], v_mic)
18 m4_define([lt_age], v_min)
19 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
20 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
21
22 AC_INIT([elementary], [v_ver], [enlightenment-devel@lists.sourceforge.net])
23 AC_PREREQ(2.52)
24 AC_CONFIG_SRCDIR([configure.ac])
25 AC_CONFIG_MACRO_DIR([m4])
26 AC_CANONICAL_BUILD
27 AC_CANONICAL_HOST
28
29 AM_INIT_AUTOMAKE([1.6 dist-bzip2])
30 AM_CONFIG_HEADER([elementary_config.h])
31 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
32
33 AC_CANONICAL_BUILD
34 AC_CANONICAL_HOST
35 AC_C_BIGENDIAN
36 AC_ISC_POSIX
37 AC_PROG_CC
38 AM_PROG_CC_STDC
39 AC_HEADER_STDC
40 AC_C_CONST
41 AC_C___ATTRIBUTE__
42 AC_FUNC_ALLOCA
43
44 AC_LIBTOOL_WIN32_DLL
45 define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
46 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
47 AC_PROG_LIBTOOL
48
49 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
50 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
51 m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
52 m4_ifdef([v_rel], , [m4_define([v_rel], [])])
53 AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version])
54 AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version])
55 AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
56 AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
57 version_info="lt_rev:lt_cur:lt_age"
58 release_info="v_rel"
59 AC_SUBST(version_info)
60 AC_SUBST(release_info)
61 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
62 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
63 VMAJ=v_maj
64 VMIN=v_min
65 AC_SUBST(VMAJ)
66 AC_SUBST(VMIN)
67
68 case "$host_os" in
69   mingw32ce* | cegcc*)
70     MODULE_ARCH="$host_os-$host_cpu"
71     ;;
72   *)
73     MODULE_ARCH="$host_os-$host_cpu-relname"
74     ;;
75 esac
76 AC_SUBST(release_info)
77 AC_SUBST(MODULE_ARCH)
78 AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture")
79
80 EFL_SHARED_EXTENSION="${shrext_cmds}"
81 AC_DEFINE_UNQUOTED(EFL_SHARED_EXTENSION, "${EFL_SHARED_EXTENSION}", "Shared extension")
82
83 requirement_elm=""
84
85 PKG_PROG_PKG_CONFIG
86
87 # Check whether pkg-config supports Requires.private
88 if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then
89    pkgconfig_requires_private="Requires.private"
90 else
91    pkgconfig_requires_private="Requires"
92 fi
93 AC_SUBST(pkgconfig_requires_private)
94
95 lt_enable_auto_import=""
96 ELM_UNIX_DEF="#undef"
97 ELM_WIN32_DEF="#undef"
98 ELM_WINCE_DEF="#undef"
99 have_windows="no"
100 case "$host_os" in
101    mingw32ce* | cegcc*)
102       PKG_CHECK_MODULES([EVIL], [evil])
103       AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed.])
104       lt_enable_auto_import="-Wl,--enable-auto-import"
105       ELM_WINCE_DEF="#define"
106       have_windows="yes"
107 dnl managed by evil
108       AC_DEFINE(HAVE_DLADDR)
109       requirement_elm="evil"
110       have_socket="no"
111     ;;
112    mingw*)
113       PKG_CHECK_MODULES([EVIL], [evil])
114       AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed.])
115       lt_enable_auto_import="-Wl,--enable-auto-import"
116       ELM_WIN32_DEF="#define"
117       have_windows="yes"
118       requirement_elm="evil"
119       have_socket="no"
120       ;;
121    *solaris*)
122       ELM_UNIX_DEF="#define"
123       have_socket="yes"
124       AC_CHECK_LIB([socket], [connect], [], [have_socket="no"])
125       ;;
126    darwin*)
127       ELM_UNIX_DEF="#define"
128       have_socket="yes"
129       AC_CHECK_HEADERS([crt_externs.h])
130       AC_DEFINE([environ], [(*_NSGetEnviron())], [apple doesn't follow POSIX in this case.])
131       ;;
132    *)
133       ELM_UNIX_DEF="#define"
134       AC_CHECK_FUNCS(dlopen, res=yes, res=no)
135       if test "x$res" = "xyes"; then
136         AC_CHECK_FUNCS(dladdr, AC_DEFINE(HAVE_DLADDR))
137       else
138         AC_CHECK_LIB(dl, dlopen, res=yes, res=no)
139         if test "x$res" = "xyes"; then
140           AC_CHECK_LIB(dl, dladdr, AC_DEFINE(HAVE_DLADDR))
141           dlopen_libs=-ldl
142         else
143           AC_MSG_ERROR(Cannot find dlopen)
144         fi
145       fi
146       have_socket="yes"
147       ;;
148 esac
149 AM_CONDITIONAL([BUILD_RUN], [test "x$have_socket" = "xyes"])
150
151 have_fork="no"
152 AC_CHECK_FUNCS(fork, [
153   have_fork="yes"
154   AC_DEFINE(HAVE_FORK)
155 ])
156 AM_CONDITIONAL([BUILD_QUICKLAUNCH], [test "x$have_fork" = "xyes"])
157
158 AC_SUBST(dlopen_libs)
159 AC_SUBST(lt_enable_auto_import)
160 AC_SUBST(ELM_UNIX_DEF)
161 AC_SUBST(ELM_WIN32_DEF)
162 AC_SUBST(ELM_WINCE_DEF)
163
164 AM_CONDITIONAL([ELEMENTARY_WINDOWS_BUILD], [test "x${have_windows}" = "xyes"])
165
166 PKG_CHECK_MODULES([ELEMENTARY],
167    [
168     eina-0 >= 0.0.1
169     eet >= 1.2.3
170     evas >= 0.9.9
171     ecore >= 0.9.9
172     ecore-evas >= 0.9.9
173     ecore-file >= 0.9.9
174     ecore-imf >= 0.9.9
175     edje >= 0.9.9
176    ]
177 )
178
179 AC_ARG_WITH(eet-eet,
180 [  --with-eet-eet=PATH              specify a specific path to eet utility],
181 [
182   v=$withval;
183   eet_eet=$v
184   echo "  Elementary eet explicitly set to "$eet_eet;
185 ],[
186   eet_eet=$(pkg-config --variable=prefix eet)/bin/eet
187 ])
188 AC_SUBST(eet_eet)
189         
190 requirement_elm="edje ecore-file ecore-evas ecore evas eet eina-0 ${requirement_elm}"
191
192 have_elementary_x="no"
193 want_elementary_x="auto"
194 AC_ARG_ENABLE([ecore-x],
195    [AC_HELP_STRING([--disable-ecore-x], [disable ecore-x support. @<:@default=detect@:>@])],
196    [want_elementary_x=$enableval], [])
197
198 if test "x$want_elementary_x" != "xno"; then
199    PKG_CHECK_MODULES([ELEMENTARY_X],
200       [ecore-x],
201       [
202        AC_DEFINE(HAVE_ELEMENTARY_X, 1, [X11 support for Elementary])
203        have_elementary_x="yes"
204        requirement_elm="ecore-x ${requirement_elm}"
205       ],
206       [have_elementary_x="no"]
207    )
208 else
209     have_elementary_x="no"
210 fi
211 if test "x$want_elementary_x" = "xyes" -a "x$have_elementary_x" = "xno"; then
212     AC_MSG_ERROR([ecore-x support requested, but not found by pkg-config.])
213 fi
214
215
216 have_elementary_fb="no"
217 want_elementary_fb="auto"
218 AC_ARG_ENABLE([ecore-fb],
219    [AC_HELP_STRING([--disable-ecore-fb], [disable ecore-fb support. @<:@default=detect@:>@])],
220    [want_elementary_fb=$enableval], [])
221
222 if test "x$want_elementary_fb" != "xno"; then
223    PKG_CHECK_MODULES([ELEMENTARY_FB],
224       [ecore-fb],
225       [
226        AC_DEFINE(HAVE_ELEMENTARY_FB, 1, [FB support for Elementary])
227        have_elementary_fb="yes"
228        requirement_elm="ecore-fb ${requirement_elm}"
229       ],
230       [have_elementary_fb="no"]
231    )
232 else
233     have_elementary_fb="no"
234 fi
235 if test "x$want_elementary_fb" = "xyes" -a "x$have_elementary_fb" = "xno"; then
236     AC_MSG_ERROR([ecore-fb support requested, but not found by pkg-config.])
237 fi
238
239 have_elementary_sdl="no"
240 want_elementary_sdl="auto"
241 AC_ARG_ENABLE([ecore-sdl],
242    [AC_HELP_STRING([--disable-ecore-sdl], [disable ecore-sdl support. @<:@default=detect@:>@])],
243    [want_elementary_sdl=$enableval], [])
244
245 if test "x$want_elementary_sdl" != "xno"; then
246    PKG_CHECK_MODULES([ELEMENTARY_SDL],
247       [ecore-sdl],
248       [
249        AC_DEFINE(HAVE_ELEMENTARY_SDL, 1, [SDL support for Elementary])
250        have_elementary_sdl="yes"
251        requirement_elm="ecore-sdl ${requirement_elm}"
252       ],
253       [have_elementary_sdl="no"]
254    )
255 else
256     have_elementary_sdl="no"
257 fi
258 if test "x$want_elementary_sdl" = "xyes" -a "x$have_elementary_sdl" = "xno"; then
259     AC_MSG_ERROR([ecore-sdl support requested, but not found by pkg-config.])
260 fi
261
262 have_elementary_win32="no"
263 want_elementary_win32="auto"
264 AC_ARG_ENABLE([ecore-win32],
265    [AC_HELP_STRING([--disable-ecore-win32], [disable ecore-win32 support. @<:@default=detect@:>@])],
266    [want_elementary_win32=$enableval], [])
267
268 if test "x$want_elementary_win32" != "xno"; then
269    PKG_CHECK_MODULES([ELEMENTARY_WIN32],
270       [ecore-win32],
271       [
272        AC_DEFINE(HAVE_ELEMENTARY_WIN32, 1, [Windows XP support for Elementary])
273        have_elementary_win32="yes"
274        requirement_elm="ecore-win32 ${requirement_elm}"
275       ],
276       [have_elementary_win32="no"]
277    )
278 else
279     have_elementary_win32="no"
280 fi
281 if test "x$want_elementary_win32" = "xyes" -a "x$have_elementary_win32" = "xno"; then
282     AC_MSG_ERROR([ecore-win32 support requested, but not found by pkg-config.])
283 fi
284
285 have_elementary_wince="no"
286 want_elementary_wince="auto"
287 AC_ARG_ENABLE([ecore-wince],
288    [AC_HELP_STRING([--disable-ecore-wince], [disable ecore-wince support. @<:@default=detect@:>@])],
289    [want_elementary_wince=$enableval], [])
290
291 if test "x$want_elementary_wince" != "xno"; then
292    PKG_CHECK_MODULES([ELEMENTARY_WINCE],
293       [ecore-wince],
294       [
295        AC_DEFINE(HAVE_ELEMENTARY_WINCE, 1, [Windows CE support for Elementary])
296        have_elementary_wince="yes"
297        requirement_elm="ecore-wince ${requirement_elm}"
298       ],
299       [have_elementary_wince="no"]
300    )
301 else
302     have_elementary_wince="no"
303 fi
304 if test "x$want_elementary_wince" = "xyes" -a "x$have_elementary_wince" = "xno"; then
305     AC_MSG_ERROR([ecore-wince support requested, but not found by pkg-config.])
306 fi
307
308 ELM_EDBUS_DEF="#undef"
309 have_elementary_edbus="no"
310 want_elementary_edbus="auto"
311 AC_ARG_ENABLE([edbus],
312    [AC_HELP_STRING([--disable-edbus], [disable edbus support. @<:@default=detect@:>@])],
313    [want_elementary_edbus=$enableval], [])
314
315 if test "x$want_elementary_edbus" != "xno"; then
316     PKG_CHECK_MODULES([ELEMENTARY_EDBUS],
317        [
318         edbus
319         ehal
320        ],
321        [
322         AC_DEFINE(HAVE_ELEMENTARY_EDBUS, 1, [EDBus support for Elementary])
323         have_elementary_edbus="yes"
324         ELM_EDBUS_DEF="#define"
325         requirement_elm="ehal edbus ${requirement_elm}"
326        ],
327        [have_elementary_edbus="no"]
328     )
329 else
330     have_elementary_edbus="no"
331 fi
332 if test "x$want_elementary_edbus" = "xyes" -a "x$have_elementary_edbus" = "xno"; then
333     AC_MSG_ERROR([E_DBus support requested, but no edbus/ehal found by pkg-config.])
334 fi
335 AC_SUBST(ELM_EDBUS_DEF)
336
337 ELM_EFREET_DEF="#undef"
338 have_elementary_efreet="no"
339 want_elementary_efreet="auto"
340 AC_ARG_ENABLE([efreet],
341    [AC_HELP_STRING([--disable-efreet], [disable efreet support. @<:@default=detect@:>@])],
342    [want_elementary_efreet=$enableval], [])
343
344 if test "x$want_elementary_efreet" != "xno"; then
345     PKG_CHECK_MODULES([ELEMENTARY_EFREET],
346        [
347         efreet
348         efreet-mime
349         efreet-trash
350        ],
351        [
352         AC_DEFINE(HAVE_ELEMENTARY_EFREET, 1, [Efreet support for Elementary])
353         have_elementary_efreet="yes"
354         ELM_EFREET_DEF="#define"
355         requirement_elm="efreet efreet-mime efreet-trash ${requirement_elm}"
356        ],
357        [have_elementary_efreet="no"]
358     )
359 else
360     have_elementary_efreet="no"
361 fi
362 if test "x$want_elementary_efreet" = "xyes" -a "x$have_elementary_efreet" = "xno"; then
363     AC_MSG_ERROR([Efreet support requested, but no efreet/efreet-mime/efreet-trash found by pkg-config.])
364 fi
365 AC_SUBST(ELM_EFREET_DEF)
366
367 ELM_EWEATHER_DEF="#undef"
368 have_elementary_eweather="no"
369 want_elementary_eweather="auto"
370 AC_ARG_ENABLE([eweather],
371    [AC_HELP_STRING([--disable-eweather], [disable eweather support. @<:@default=detect@:>@])],
372    [want_elementary_eweather=$enableval], [])
373
374 if test "x$want_elementary_eweather" != "xno"; then
375     PKG_CHECK_MODULES([ELEMENTARY_EWEATHER],
376        [
377         eweather
378        ],
379        [
380         AC_DEFINE(HAVE_ELEMENTARY_EWEATHER, 1, [EWeather support for Elementary])
381         have_elementary_eweather="yes"
382         ELM_EWEATHER_DEF="#define"
383         requirement_elm="eweather ${requirement_elm}"
384        ],
385        [have_elementary_eweather="no"]
386     )
387 else
388     have_elementary_eweather="no"
389 fi
390 if test "x$want_elementary_eweather" = "xyes" -a "x$have_elementary_eweather" = "xno"; then
391     AC_MSG_ERROR([Eweather support requested, but no eweather found by pkg-config.])
392 fi
393 AC_SUBST(ELM_EWEATHER_DEF)
394
395 ELM_EWEBKIT_DEF="#undef"
396 have_elementary_ewebkit="no"
397 want_elementary_ewebkit="auto"
398 AC_ARG_ENABLE([ewebkit],
399    [AC_HELP_STRING([--disable-ewebkit], [disable ewebkit support. @<:@default=detect@:>@])],
400    [want_elementary_ewebkit=$enableval], [])
401
402 if test "x$want_elementary_ewebkit" != "xno"; then
403     PKG_CHECK_MODULES([ELEMENTARY_EWEBKIT],
404        [
405         ewebkit
406        ],
407        [
408         AC_DEFINE(HAVE_ELEMENTARY_EWEBKIT, 1, [EWebKit support for Elementary])
409         have_elementary_ewebkit="yes"
410         ELM_EWEBKIT_DEF="#define"
411         requirement_elm="ewebkit ${requirement_elm}"
412        ],
413        [have_elementary_ewebkit="no"]
414     )
415     PKG_CHECK_MODULES([ELEMENTARY_EWEBKIT_SUPPORT],
416        [
417         glib-2.0
418         gobject-2.0
419         gthread-2.0
420        ],
421        [],
422        [have_elementary_ewebkit="no"]
423     )
424
425 else
426     have_elementary_ewebkit="no"
427 fi
428 if test "x$want_elementary_ewebkit" = "xyes" -a "x$have_elementary_ewebkit" = "xno"; then
429     AC_MSG_ERROR([EWebKit support requested, but no ewebkit found by pkg-config.])
430 fi
431 AC_SUBST(ELM_EWEBKIT_DEF)
432
433 ELM_ETHUMB_DEF="#undef"
434 have_elementary_ethumb="no"
435 want_elementary_ethumb="auto"
436 AC_ARG_ENABLE([ethumb],
437    [AC_HELP_STRING([--disable-ethumb], [disable ethumb support. @<:@default=detect@:>@])],
438    [want_elementary_ethumb=$enableval], [])
439
440 if test "x$want_elementary_ethumb" != "xno"; then
441     PKG_CHECK_MODULES([ELEMENTARY_ETHUMB],
442        [
443         ethumb_client
444        ],
445        [
446         AC_DEFINE(HAVE_ELEMENTARY_ETHUMB, 1, [Ethumb support for Elementary])
447         have_elementary_ethumb="yes"
448         ELM_ETHUMB_DEF="#define"
449         requirement_elm="ethumb ${requirement_elm}"
450        ],
451        [have_elementary_ethumb="no"]
452     )
453 else
454     have_elementary_ethumb="no"
455 fi
456 if test "x$want_elementary_ethumb" = "xyes" -a "x$have_elementary_ethumb" = "xno"; then
457     AC_MSG_ERROR([Ethumb support requested, but no ethumb found by pkg-config.])
458 fi
459 AC_SUBST(ELM_ETHUMB_DEF)
460
461 ELM_ALLOCA_H_DEF="#undef"
462 AC_CHECK_HEADER(alloca.h, [ELM_ALLOCA_H_DEF="#define"])
463 AC_SUBST(ELM_ALLOCA_H_DEF)
464
465 ELM_LIBINTL_H_DEF="#undef"
466 AC_CHECK_HEADER(libintl.h, [ELM_LIBINTL_H_DEF="#define"])
467 AC_SUBST(ELM_LIBINTL_H_DEF)
468
469 AC_ARG_WITH(edje-cc,
470 [  --with-edje-cc=PATH              specify a specific path to edje_cc],
471 [
472   v=$withval;
473   edje_cc=$v
474   echo "  Elementary edje_cc explicitly set to "$edje_cc;
475 ],[
476   edje_cc=$(pkg-config --variable=prefix edje)/bin/edje_cc
477 ])
478 AC_SUBST(edje_cc)
479
480 my_libs="-lm"
481 AC_SUBST(my_libs)
482 AC_SUBST(requirement_elm)
483
484 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
485
486 AC_OUTPUT([
487 Makefile
488 elementary.spec
489 elementary.pc
490 doc/elementary.dox
491 doc/Makefile
492 src/Makefile
493 src/lib/Makefile
494 src/lib/Elementary.h
495 src/bin/Makefile
496 src/modules/Makefile
497 src/modules/test_entry/Makefile
498 src/modules/ctxpopup_copypasteUI/Makefile
499 src/modules/popup_copypasteUI/Makefile
500 src/edje_externals/Makefile
501 data/Makefile
502 data/themes/Makefile
503 data/images/Makefile
504 data/objects/Makefile
505 data/desktop/Makefile
506 data/edje_externals/Makefile
507 config/Makefile
508 config/default/Makefile
509 config/standard/Makefile
510 config/illume/Makefile
511 ])
512
513 #####################################################################
514 ## Info
515
516 echo
517 echo
518 echo
519 echo "------------------------------------------------------------------------"
520 echo "$PACKAGE $VERSION"
521 echo "------------------------------------------------------------------------"
522 echo
523 echo "Configuration Options Summary:"
524 echo
525 echo "  Engines:"
526 echo "    X11................: ${have_elementary_x}"
527 echo "    Framebuffer........: ${have_elementary_fb}"
528 echo "    SDL................: ${have_elementary_sdl}"
529 echo "    Windows XP.........: ${have_elementary_win32}"
530 echo "    Windows CE.........: ${have_elementary_wince}"
531 echo
532 echo "  Features:"
533 echo "    EDBus..............: ${have_elementary_edbus}"
534 echo "    EFreet.............: ${have_elementary_efreet}"
535 echo "    EWeather...........: ${have_elementary_eweather}"
536 echo "    Ethumb.............: ${have_elementary_ethumb}"
537 echo "    EWebKit............: ${have_elementary_ewebkit}"
538 echo
539 echo "  edje_cc..............: ${edje_cc}"
540 echo
541 echo "Compilation............: make (or gmake)"
542 echo "  CPPFLAGS.............: $CPPFLAGS"
543 echo "  CFLAGS...............: $CFLAGS"
544 echo "  LDFLAGS..............: $LDFLAGS"
545 echo
546 echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
547 echo "  prefix...............: $prefix"
548 echo