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