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