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