svn update: 49550 (latest:49550)
[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     edje >= 0.9.9
175    ]
176 )
177
178 AC_ARG_WITH(eet-eet,
179 [  --with-eet-eet=PATH              specify a specific path to eet utility],
180 [
181   v=$withval;
182   eet_eet=$v
183   echo "  Elementary eet explicitly set to "$eet_eet;
184 ],[
185   eet_eet=$(pkg-config --variable=prefix eet)/bin/eet
186 ])
187 AC_SUBST(eet_eet)
188         
189 requirement_elm="edje ecore-file ecore-evas ecore evas eet eina-0 ${requirement_elm}"
190
191 have_elementary_x="no"
192 want_elementary_x="auto"
193 AC_ARG_ENABLE([ecore-x],
194    [AC_HELP_STRING([--disable-ecore-x], [disable ecore-x support. @<:@default=detect@:>@])],
195    [want_elementary_x=$enableval], [])
196
197 if test "x$want_elementary_x" != "xno"; then
198    PKG_CHECK_MODULES([ELEMENTARY_X],
199       [ecore-x],
200       [
201        AC_DEFINE(HAVE_ELEMENTARY_X, 1, [X11 support for Elementary])
202        have_elementary_x="yes"
203        requirement_elm="ecore-x ${requirement_elm}"
204       ],
205       [have_elementary_x="no"]
206    )
207 else
208     have_elementary_x="no"
209 fi
210 if test "x$want_elementary_x" = "xyes" -a "x$have_elementary_x" = "xno"; then
211     AC_MSG_ERROR([ecore-x support requested, but not found by pkg-config.])
212 fi
213
214
215 have_elementary_fb="no"
216 want_elementary_fb="auto"
217 AC_ARG_ENABLE([ecore-fb],
218    [AC_HELP_STRING([--disable-ecore-fb], [disable ecore-fb support. @<:@default=detect@:>@])],
219    [want_elementary_fb=$enableval], [])
220
221 if test "x$want_elementary_fb" != "xno"; then
222    PKG_CHECK_MODULES([ELEMENTARY_FB],
223       [ecore-fb],
224       [
225        AC_DEFINE(HAVE_ELEMENTARY_FB, 1, [FB support for Elementary])
226        have_elementary_fb="yes"
227        requirement_elm="ecore-fb ${requirement_elm}"
228       ],
229       [have_elementary_fb="no"]
230    )
231 else
232     have_elementary_fb="no"
233 fi
234 if test "x$want_elementary_fb" = "xyes" -a "x$have_elementary_fb" = "xno"; then
235     AC_MSG_ERROR([ecore-fb support requested, but not found by pkg-config.])
236 fi
237
238 have_elementary_sdl="no"
239 want_elementary_sdl="auto"
240 AC_ARG_ENABLE([ecore-sdl],
241    [AC_HELP_STRING([--disable-ecore-sdl], [disable ecore-sdl support. @<:@default=detect@:>@])],
242    [want_elementary_sdl=$enableval], [])
243
244 if test "x$want_elementary_sdl" != "xno"; then
245    PKG_CHECK_MODULES([ELEMENTARY_SDL],
246       [ecore-sdl],
247       [
248        AC_DEFINE(HAVE_ELEMENTARY_SDL, 1, [SDL support for Elementary])
249        have_elementary_sdl="yes"
250        requirement_elm="ecore-sdl ${requirement_elm}"
251       ],
252       [have_elementary_sdl="no"]
253    )
254 else
255     have_elementary_sdl="no"
256 fi
257 if test "x$want_elementary_sdl" = "xyes" -a "x$have_elementary_sdl" = "xno"; then
258     AC_MSG_ERROR([ecore-sdl support requested, but not found by pkg-config.])
259 fi
260
261 have_elementary_win32="no"
262 want_elementary_win32="auto"
263 AC_ARG_ENABLE([ecore-win32],
264    [AC_HELP_STRING([--disable-ecore-win32], [disable ecore-win32 support. @<:@default=detect@:>@])],
265    [want_elementary_win32=$enableval], [])
266
267 if test "x$want_elementary_win32" != "xno"; then
268    PKG_CHECK_MODULES([ELEMENTARY_WIN32],
269       [ecore-win32],
270       [
271        AC_DEFINE(HAVE_ELEMENTARY_WIN32, 1, [Windows XP support for Elementary])
272        have_elementary_win32="yes"
273        requirement_elm="ecore-win32 ${requirement_elm}"
274       ],
275       [have_elementary_win32="no"]
276    )
277 else
278     have_elementary_win32="no"
279 fi
280 if test "x$want_elementary_win32" = "xyes" -a "x$have_elementary_win32" = "xno"; then
281     AC_MSG_ERROR([ecore-win32 support requested, but not found by pkg-config.])
282 fi
283
284 have_elementary_wince="no"
285 want_elementary_wince="auto"
286 AC_ARG_ENABLE([ecore-wince],
287    [AC_HELP_STRING([--disable-ecore-wince], [disable ecore-wince support. @<:@default=detect@:>@])],
288    [want_elementary_wince=$enableval], [])
289
290 if test "x$want_elementary_wince" != "xno"; then
291    PKG_CHECK_MODULES([ELEMENTARY_WINCE],
292       [ecore-wince],
293       [
294        AC_DEFINE(HAVE_ELEMENTARY_WINCE, 1, [Windows CE support for Elementary])
295        have_elementary_wince="yes"
296        requirement_elm="ecore-wince ${requirement_elm}"
297       ],
298       [have_elementary_wince="no"]
299    )
300 else
301     have_elementary_wince="no"
302 fi
303 if test "x$want_elementary_wince" = "xyes" -a "x$have_elementary_wince" = "xno"; then
304     AC_MSG_ERROR([ecore-wince support requested, but not found by pkg-config.])
305 fi
306
307 ELM_EDBUS_DEF="#undef"
308 have_elementary_edbus="no"
309 want_elementary_edbus="auto"
310 AC_ARG_ENABLE([edbus],
311    [AC_HELP_STRING([--disable-edbus], [disable edbus support. @<:@default=detect@:>@])],
312    [want_elementary_edbus=$enableval], [])
313
314 if test "x$want_elementary_edbus" != "xno"; then
315     PKG_CHECK_MODULES([ELEMENTARY_EDBUS],
316        [
317         edbus
318         ehal
319        ],
320        [
321         AC_DEFINE(HAVE_ELEMENTARY_EDBUS, 1, [EDBus support for Elementary])
322         have_elementary_edbus="yes"
323         ELM_EDBUS_DEF="#define"
324         requirement_elm="ehal edbus ${requirement_elm}"
325        ],
326        [have_elementary_edbus="no"]
327     )
328 else
329     have_elementary_edbus="no"
330 fi
331 if test "x$want_elementary_edbus" = "xyes" -a "x$have_elementary_edbus" = "xno"; then
332     AC_MSG_ERROR([E_DBus support requested, but no edbus/ehal found by pkg-config.])
333 fi
334 AC_SUBST(ELM_EDBUS_DEF)
335
336 ELM_EFREET_DEF="#undef"
337 have_elementary_efreet="no"
338 want_elementary_efreet="auto"
339 AC_ARG_ENABLE([efreet],
340    [AC_HELP_STRING([--disable-efreet], [disable efreet support. @<:@default=detect@:>@])],
341    [want_elementary_efreet=$enableval], [])
342
343 if test "x$want_elementary_efreet" != "xno"; then
344     PKG_CHECK_MODULES([ELEMENTARY_EFREET],
345        [
346         efreet
347         efreet-mime
348         efreet-trash
349        ],
350        [
351         AC_DEFINE(HAVE_ELEMENTARY_EFREET, 1, [Efreet support for Elementary])
352         have_elementary_efreet="yes"
353         ELM_EFREET_DEF="#define"
354         requirement_elm="efreet efreet-mime efreet-trash ${requirement_elm}"
355        ],
356        [have_elementary_efreet="no"]
357     )
358 else
359     have_elementary_efreet="no"
360 fi
361 if test "x$want_elementary_efreet" = "xyes" -a "x$have_elementary_efreet" = "xno"; then
362     AC_MSG_ERROR([Efreet support requested, but no efreet/efreet-mime/efreet-trash found by pkg-config.])
363 fi
364 AC_SUBST(ELM_EFREET_DEF)
365
366 ELM_EWEATHER_DEF="#undef"
367 have_elementary_eweather="no"
368 want_elementary_eweather="auto"
369 AC_ARG_ENABLE([eweather],
370    [AC_HELP_STRING([--disable-eweather], [disable eweather support. @<:@default=detect@:>@])],
371    [want_elementary_eweather=$enableval], [])
372
373 if test "x$want_elementary_eweather" != "xno"; then
374     PKG_CHECK_MODULES([ELEMENTARY_EWEATHER],
375        [
376         eweather
377        ],
378        [
379         AC_DEFINE(HAVE_ELEMENTARY_EWEATHER, 1, [EWeather support for Elementary])
380         have_elementary_eweather="yes"
381         ELM_EWEATHER_DEF="#define"
382         requirement_elm="eweather ${requirement_elm}"
383        ],
384        [have_elementary_eweather="no"]
385     )
386 else
387     have_elementary_eweather="no"
388 fi
389 if test "x$want_elementary_eweather" = "xyes" -a "x$have_elementary_eweather" = "xno"; then
390     AC_MSG_ERROR([Eweather support requested, but no eweather found by pkg-config.])
391 fi
392 AC_SUBST(ELM_EWEATHER_DEF)
393
394 ELM_ETHUMB_DEF="#undef"
395 have_elementary_ethumb="no"
396 want_elementary_ethumb="auto"
397 AC_ARG_ENABLE([ethumb],
398    [AC_HELP_STRING([--disable-ethumb], [disable ethumb support. @<:@default=detect@:>@])],
399    [want_elementary_ethumb=$enableval], [])
400
401 if test "x$want_elementary_ethumb" != "xno"; then
402     PKG_CHECK_MODULES([ELEMENTARY_ETHUMB],
403        [
404         ethumb_client
405        ],
406        [
407         AC_DEFINE(HAVE_ELEMENTARY_ETHUMB, 1, [Ethumb support for Elementary])
408         have_elementary_ethumb="yes"
409         ELM_ETHUMB_DEF="#define"
410         requirement_elm="ethumb ${requirement_elm}"
411        ],
412        [have_elementary_ethumb="no"]
413     )
414 else
415     have_elementary_ethumb="no"
416 fi
417 if test "x$want_elementary_ethumb" = "xyes" -a "x$have_elementary_ethumb" = "xno"; then
418     AC_MSG_ERROR([Ethumb support requested, but no ethumb found by pkg-config.])
419 fi
420 AC_SUBST(ELM_ETHUMB_DEF)
421
422 ELM_ALLOCA_H_DEF="#undef"
423 AC_CHECK_HEADER(alloca.h, [ELM_ALLOCA_H_DEF="#define"])
424 AC_SUBST(ELM_ALLOCA_H_DEF)
425
426 ELM_LIBINTL_H_DEF="#undef"
427 AC_CHECK_HEADER(libintl.h, [ELM_LIBINTL_H_DEF="#define"])
428 AC_SUBST(ELM_LIBINTL_H_DEF)
429
430 AC_ARG_WITH(edje-cc,
431 [  --with-edje-cc=PATH              specify a specific path to edje_cc],
432 [
433   v=$withval;
434   edje_cc=$v
435   echo "  Elementary edje_cc explicitly set to "$edje_cc;
436 ],[
437   edje_cc=$(pkg-config --variable=prefix edje)/bin/edje_cc
438 ])
439 AC_SUBST(edje_cc)
440
441 my_libs="-lm"
442 AC_SUBST(my_libs)
443 AC_SUBST(requirement_elm)
444
445 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
446
447 AC_OUTPUT([
448 Makefile
449 elementary.spec
450 elementary.pc
451 doc/elementary.dox
452 doc/Makefile
453 src/Makefile
454 src/lib/Makefile
455 src/lib/Elementary.h
456 src/bin/Makefile
457 src/modules/Makefile
458 src/modules/test_entry/Makefile
459 src/edje_externals/Makefile
460 data/Makefile
461 data/themes/Makefile
462 data/images/Makefile
463 data/objects/Makefile
464 data/desktop/Makefile
465 data/edje_externals/Makefile
466 config/Makefile
467 config/default/Makefile
468 config/standard/Makefile
469 config/illume/Makefile
470 ])
471
472 #####################################################################
473 ## Info
474
475 echo
476 echo
477 echo
478 echo "------------------------------------------------------------------------"
479 echo "$PACKAGE $VERSION"
480 echo "------------------------------------------------------------------------"
481 echo
482 echo "Configuration Options Summary:"
483 echo
484 echo "  Engines:"
485 echo "    X11................: ${have_elementary_x}"
486 echo "    Framebuffer........: ${have_elementary_fb}"
487 echo "    SDL................: ${have_elementary_sdl}"
488 echo "    Windows XP.........: ${have_elementary_win32}"
489 echo "    Windows CE.........: ${have_elementary_wince}"
490 echo
491 echo "  Features:"
492 echo "    EDBus..............: ${have_elementary_edbus}"
493 echo "    EFreet.............: ${have_elementary_efreet}"
494 echo "    EWeather...........: ${have_elementary_eweather}"
495 echo "    Ethumb.............: ${have_elementary_ethumb}"
496 echo
497 echo "  edje_cc..............: ${edje_cc}"
498 echo
499 echo "Compilation............: make (or gmake)"
500 echo "  CPPFLAGS.............: $CPPFLAGS"
501 echo "  CFLAGS...............: $CFLAGS"
502 echo "  LDFLAGS..............: $LDFLAGS"
503 echo
504 echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
505 echo "  prefix...............: $prefix"
506 echo