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