Lines 51-57
Link Here
|
51 |
AC_MSG_CHECKING([which gecko to use]) |
51 |
AC_MSG_CHECKING([which gecko to use]) |
52 |
|
52 |
|
53 |
AC_ARG_WITH([gecko], |
53 |
AC_ARG_WITH([gecko], |
54 |
AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner@:>@], |
54 |
AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner|libxul-embedding@:>@], |
55 |
[Which gecko engine to use (autodetected by default)])) |
55 |
[Which gecko engine to use (autodetected by default)])) |
56 |
|
56 |
|
57 |
# Backward compat |
57 |
# Backward compat |
Lines 60-71
Link Here
|
60 |
gecko_cv_gecko=$with_gecko |
60 |
gecko_cv_gecko=$with_gecko |
61 |
|
61 |
|
62 |
# Autodetect gecko |
62 |
# Autodetect gecko |
63 |
_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla" |
63 |
_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla libxul-embedding" |
64 |
if test -z "$gecko_cv_gecko"; then |
64 |
if test -z "$gecko_cv_gecko"; then |
65 |
for lizard in $_geckos; do |
65 |
for lizard in $_geckos; do |
66 |
if $PKG_CONFIG --exists $lizard-xpcom; then |
66 |
if $PKG_CONFIG --exists $lizard-xpcom; then |
67 |
gecko_cv_gecko=$lizard |
67 |
gecko_cv_gecko=$lizard |
68 |
break; |
68 |
break; |
|
|
69 |
elif $PKG_CONFIG --exist $lizard; then |
70 |
gecko_cv_gecko=$lizard |
71 |
break; |
69 |
fi |
72 |
fi |
70 |
done |
73 |
done |
71 |
fi |
74 |
fi |
Lines 93-105
Link Here
|
93 |
seamonkey) gecko_cv_gecko_flavour=mozilla ;; |
96 |
seamonkey) gecko_cv_gecko_flavour=mozilla ;; |
94 |
*firefox) gecko_cv_gecko_flavour=toolkit ;; |
97 |
*firefox) gecko_cv_gecko_flavour=toolkit ;; |
95 |
xulrunner) gecko_cv_gecko_flavour=toolkit ;; |
98 |
xulrunner) gecko_cv_gecko_flavour=toolkit ;; |
|
|
99 |
libxul-embedding) gecko_cv_gecko_flavour=toolkit ;; |
96 |
esac |
100 |
esac |
97 |
|
101 |
|
98 |
_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`" |
102 |
if $PKG_CONFIG --exists ${gecko_cv_gecko}-xpcom; then |
99 |
_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" |
103 |
_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`" |
100 |
_GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" |
104 |
_GECKO_CFLAGS="-I$GECKO_INCLUDE_ROOT" |
101 |
_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`" |
105 |
_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" |
102 |
|
106 |
_GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" |
|
|
107 |
_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`" |
108 |
else |
109 |
_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}`/unstable" |
110 |
_GECKO_CFLAGS="`$PKG_CONFIG --cflags ${gecko_cv_gecko}` `$PKG_CONFIG --define-variable=includetype=unstable --cflags ${gecko_cv_gecko}`" |
111 |
_GECKO_LIBDIR="`$PKG_CONFIG --variable=sdkdir ${gecko_cv_gecko}`/bin" |
112 |
_GECKO_HOME=# NO HOME |
113 |
_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}`" |
114 |
fi |
103 |
fi # if gecko_cv_have_gecko |
115 |
fi # if gecko_cv_have_gecko |
104 |
|
116 |
|
105 |
if test "$gecko_cv_gecko_flavour" = "toolkit"; then |
117 |
if test "$gecko_cv_gecko_flavour" = "toolkit"; then |
Lines 111-116
Link Here
|
111 |
$1[]=$gecko_cv_gecko |
123 |
$1[]=$gecko_cv_gecko |
112 |
$1[]_FLAVOUR=$gecko_cv_gecko_flavour |
124 |
$1[]_FLAVOUR=$gecko_cv_gecko_flavour |
113 |
$1[]_INCLUDE_ROOT=$_GECKO_INCLUDE_ROOT |
125 |
$1[]_INCLUDE_ROOT=$_GECKO_INCLUDE_ROOT |
|
|
126 |
$1[]_CFLAGS=$_GECKO_CFLAGS |
114 |
$1[]_LIBDIR=$_GECKO_LIBDIR |
127 |
$1[]_LIBDIR=$_GECKO_LIBDIR |
115 |
$1[]_HOME=$_GECKO_HOME |
128 |
$1[]_HOME=$_GECKO_HOME |
116 |
$1[]_PREFIX=$_GECKO_PREFIX |
129 |
$1[]_PREFIX=$_GECKO_PREFIX |
Lines 184-190
Link Here
|
184 |
AC_LANG_PUSH([C++]) |
197 |
AC_LANG_PUSH([C++]) |
185 |
|
198 |
|
186 |
_SAVE_CPPFLAGS="$CPPFLAGS" |
199 |
_SAVE_CPPFLAGS="$CPPFLAGS" |
187 |
CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT" |
200 |
CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS" |
188 |
|
201 |
|
189 |
AC_MSG_CHECKING([[whether we have a gtk 2 gecko build]]) |
202 |
AC_MSG_CHECKING([[whether we have a gtk 2 gecko build]]) |
190 |
AC_RUN_IFELSE( |
203 |
AC_RUN_IFELSE( |
Lines 209-216
Link Here
|
209 |
AC_COMPILE_IFELSE( |
222 |
AC_COMPILE_IFELSE( |
210 |
[AC_LANG_SOURCE( |
223 |
[AC_LANG_SOURCE( |
211 |
[[#include <mozilla-config.h> |
224 |
[[#include <mozilla-config.h> |
|
|
225 |
#if !defined(MOZ_STORAGE) |
212 |
#if !defined(MOZ_REFLOW_PERF) || !defined(MOZ_REFLOW_PERF_DSP) |
226 |
#if !defined(MOZ_REFLOW_PERF) || !defined(MOZ_REFLOW_PERF_DSP) |
213 |
#error No |
227 |
#error No |
|
|
228 |
#endif |
214 |
#endif]] |
229 |
#endif]] |
215 |
)], |
230 |
)], |
216 |
[gecko_cv_have_debug=yes], |
231 |
[gecko_cv_have_debug=yes], |
Lines 241-247
Link Here
|
241 |
AC_LANG_PUSH([C++]) |
256 |
AC_LANG_PUSH([C++]) |
242 |
|
257 |
|
243 |
_SAVE_CPPFLAGS="$CPPFLAGS" |
258 |
_SAVE_CPPFLAGS="$CPPFLAGS" |
244 |
CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT" |
259 |
CPPFLAGS="$CPPFLAGS $_GECKO_CFLAGS" |
245 |
|
260 |
|
246 |
AC_CACHE_CHECK([for gecko version], |
261 |
AC_CACHE_CHECK([for gecko version], |
247 |
[gecko_cv_gecko_version], |
262 |
[gecko_cv_gecko_version], |
Lines 328-335
Link Here
|
328 |
gecko_cv_extra_pkg_dependencies= |
343 |
gecko_cv_extra_pkg_dependencies= |
329 |
|
344 |
|
330 |
if test "$gecko_cv_gecko_version_int" -ge "1009000"; then |
345 |
if test "$gecko_cv_gecko_version_int" -ge "1009000"; then |
331 |
gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul" |
346 |
# gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul" |
332 |
gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue_s" |
347 |
gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue" |
333 |
else |
348 |
else |
334 |
gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed" |
349 |
gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed" |
335 |
fi |
350 |
fi |
Lines 359-368
Link Here
|
359 |
_SAVE_CXXFLAGS="$CXXFLAGS" |
374 |
_SAVE_CXXFLAGS="$CXXFLAGS" |
360 |
_SAVE_LDFLAGS="$LDFLAGS" |
375 |
_SAVE_LDFLAGS="$LDFLAGS" |
361 |
_SAVE_LIBS="$LIBS" |
376 |
_SAVE_LIBS="$LIBS" |
362 |
CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)" |
377 |
if test "${gecko_cv_gecko}" = "libxul-embedding"; then |
363 |
CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)" |
378 |
CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --define-variable=includetype=unstable --cflags-only-I ${gecko_cv_gecko})" |
364 |
LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME" |
379 |
CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --define-variable=includetype=unstable --cflags-only-other ${gecko_cv_gecko})" |
365 |
LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)" |
380 |
LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}) -ldl" |
|
|
381 |
else |
382 |
CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xapcom)" |
383 |
CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xapcom)" |
384 |
LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)" |
385 |
fi |
386 |
if test -n "$_GECKO_HOME"; then |
387 |
LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME" |
388 |
else |
389 |
LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS" |
390 |
fi |
366 |
|
391 |
|
367 |
_GECKO_DISPATCH_INCLUDEDIRS="$2" |
392 |
_GECKO_DISPATCH_INCLUDEDIRS="$2" |
368 |
|
393 |
|
Lines 371-379
Link Here
|
371 |
# Mind you, it's useful to be able to test against uninstalled mozilla builds... |
396 |
# Mind you, it's useful to be able to test against uninstalled mozilla builds... |
372 |
_GECKO_DISPATCH_INCLUDEDIRS="$_GECKO_DISPATCH_INCLUDEDIRS dom necko pref" |
397 |
_GECKO_DISPATCH_INCLUDEDIRS="$_GECKO_DISPATCH_INCLUDEDIRS dom necko pref" |
373 |
|
398 |
|
374 |
# Now add them to CPPFLAGS |
399 |
# Now add them to CPPFLAGS - well ... not anymore since 1.9 -> test whether they exist before adding. |
375 |
for i in $_GECKO_DISPATCH_INCLUDEDIRS; do |
400 |
for i in $_GECKO_DISPATCH_INCLUDEDIRS; do |
376 |
CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i" |
401 |
if test -d "$_GECKO_INCLUDE_ROOT/$i"; then |
|
|
402 |
CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i" |
403 |
fi |
377 |
done |
404 |
done |
378 |
|
405 |
|
379 |
m4_indir([$1],m4_shiftn(2,$@)) |
406 |
m4_indir([$1],m4_shiftn(2,$@)) |
Lines 426-436
Link Here
|
426 |
#include <mozilla-config.h> |
453 |
#include <mozilla-config.h> |
427 |
#include <stdlib.h> |
454 |
#include <stdlib.h> |
428 |
#include <stdio.h> |
455 |
#include <stdio.h> |
|
|
456 |
|
457 |
#ifdef XPCOM_GLUE |
458 |
#include <nsXPCOMGlue.h> |
459 |
#else |
429 |
#include <nsXPCOM.h> |
460 |
#include <nsXPCOM.h> |
|
|
461 |
#endif // XPCOM_GLUE |
462 |
|
430 |
#include <nsCOMPtr.h> |
463 |
#include <nsCOMPtr.h> |
431 |
#include <nsILocalFile.h> |
464 |
#include <nsILocalFile.h> |
432 |
#include <nsIServiceManager.h> |
465 |
#include <nsIServiceManager.h> |
433 |
#ifdef HAVE_GECKO_1_8 |
466 |
#if defined(HAVE_GECKO_1_8) || defined(HAVE_GECKO_1_9) |
434 |
#include <nsStringAPI.h> |
467 |
#include <nsStringAPI.h> |
435 |
#else |
468 |
#else |
436 |
#include <nsString.h> |
469 |
#include <nsString.h> |
Lines 438-453
Link Here
|
438 |
]] |
471 |
]] |
439 |
[$1], |
472 |
[$1], |
440 |
[[ |
473 |
[[ |
|
|
474 |
|
475 |
nsresult rv; |
476 |
#ifdef XPCOM_GLUE |
477 |
static const GREVersionRange greVersion = { |
478 |
"1.8", PR_TRUE, |
479 |
"2", PR_TRUE |
480 |
}; |
481 |
char xpcomLocation[4096]; |
482 |
rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096); |
483 |
if (NS_FAILED(rv)) { |
484 |
exit(123); |
485 |
} |
486 |
|
487 |
// Startup the XPCOM Glue that links us up with XPCOM. |
488 |
XPCOMGlueStartup(xpcomLocation); |
489 |
if (NS_FAILED(rv)) { |
490 |
exit(124); |
491 |
} |
492 |
#endif // XPCOM_GLUE |
493 |
|
441 |
// redirect unwanted mozilla debug output to the bit bucket |
494 |
// redirect unwanted mozilla debug output to the bit bucket |
442 |
freopen ("/dev/null", "w", stdout); |
495 |
freopen ("/dev/null", "w", stdout); |
443 |
|
496 |
|
444 |
nsresult rv; |
497 |
nsCOMPtr<nsILocalFile> directory = nsnull; |
445 |
nsCOMPtr<nsILocalFile> directory; |
498 |
#ifndef XPCOM_GLUE |
446 |
rv = NS_NewNativeLocalFile (NS_LITERAL_CSTRING("$_GECKO_HOME"), PR_FALSE, |
499 |
rv = NS_NewNativeLocalFile (NS_LITERAL_CSTRING("$_GECKO_HOME"), PR_FALSE, |
447 |
getter_AddRefs (directory)); |
500 |
getter_AddRefs (directory)); |
448 |
if (NS_FAILED (rv) || !directory) { |
501 |
if (NS_FAILED (rv) || !directory) { |
449 |
exit (126); |
502 |
exit (126); |
450 |
} |
503 |
} |
|
|
504 |
#endif |
451 |
|
505 |
|
452 |
rv = NS_InitXPCOM2 (nsnull, directory, nsnull); |
506 |
rv = NS_InitXPCOM2 (nsnull, directory, nsnull); |
453 |
if (NS_FAILED (rv)) { |
507 |
if (NS_FAILED (rv)) { |
Lines 595-617
Link Here
|
595 |
AC_DEFUN([GECKO_XPIDL], |
649 |
AC_DEFUN([GECKO_XPIDL], |
596 |
[AC_REQUIRE([GECKO_INIT])dnl |
650 |
[AC_REQUIRE([GECKO_INIT])dnl |
597 |
|
651 |
|
598 |
_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" |
652 |
if test ${gecko_cv_gecko} = "libxul-embedding"; then |
|
|
653 |
_GECKO_LIBDIR="`$PKG_CONFIG pkg-config --variable=sdkdir ${gecko_cv_gecko}`/bin" |
654 |
else |
655 |
_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" |
656 |
fi |
599 |
|
657 |
|
600 |
AC_PATH_PROG([XPIDL],[xpidl],[no],[$_GECKO_LIBDIR:$PATH]) |
658 |
AC_PATH_PROG([XPIDL],[xpidl],[no],[$_GECKO_LIBDIR:$PATH]) |
601 |
|
659 |
|
|
|
660 |
if test ${gecko_cv_gecko} = "libxul-embedding"; then |
661 |
XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}`" |
662 |
else |
602 |
XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}-xpcom`" |
663 |
XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}-xpcom`" |
|
|
664 |
fi |
603 |
|
665 |
|
604 |
# Older geckos don't have this variable, see |
666 |
# Older geckos don't have this variable, see |
605 |
# https://bugzilla.mozilla.org/show_bug.cgi?id=240473 |
667 |
# https://bugzilla.mozilla.org/show_bug.cgi?id=240473 |
606 |
|
668 |
|
607 |
if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then |
669 |
if test ${gecko_cv_gecko} != "libxul-embedding"; then |
608 |
XPIDL_IDLDIR="`echo $_GECKO_LIBDIR | sed -e s!lib!share/idl!`" |
670 |
if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then |
609 |
fi |
671 |
XPIDL_IDLDIR="`echo $_GECKO_LIBDIR | sed -e s!lib!share/idl!`" |
610 |
|
672 |
fi |
611 |
# Some distributions (Gentoo) have it in unusual places |
673 |
# Some distributions (Gentoo) have it in unusual places |
612 |
|
674 |
if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then |
613 |
if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then |
675 |
XPIDL_IDLDIR="$_GECKO_INCLUDE_ROOT/idl" |
614 |
XPIDL_IDLDIR="$_GECKO_INCLUDE_ROOT/idl" |
676 |
fi |
615 |
fi |
677 |
fi |
616 |
|
678 |
|
617 |
if test "$XPIDL" != "no" -a -n "$XPIDL_IDLDIR" -a -f "$XPIDL_IDLDIR/nsISupports.idl"; then |
679 |
if test "$XPIDL" != "no" -a -n "$XPIDL_IDLDIR" -a -f "$XPIDL_IDLDIR/nsISupports.idl"; then |