]>
Commit | Line | Data |
---|---|---|
8035b8dd MB |
1 | diff -urN yelp-2.22.1/configure.in yelp-2.22.1.new/configure.in |
2 | --- yelp-2.22.1/configure.in 2008-04-07 23:59:54.000000000 +0200 | |
3 | +++ yelp-2.22.1.new/configure.in 2008-07-08 19:40:59.000000000 +0200 | |
4 | @@ -25,6 +25,8 @@ | |
5 | AM_PROG_LIBTOOL | |
6 | AM_PATH_GLIB_2_0 | |
7 | ||
8 | +AM_PROG_CC_C_O | |
9 | + | |
10 | GNOME_DEBUG_CHECK | |
11 | GNOME_COMPILE_WARNINGS([maximum]) | |
12 | GNOME_CXX_WARNINGS | |
13 | @@ -179,6 +181,7 @@ | |
14 | # ***** | |
15 | ||
16 | GECKO_INIT([MOZILLA]) | |
17 | +GECKO_DEFINES | |
18 | ||
19 | AC_SUBST([MOZILLA]) | |
20 | AC_SUBST([MOZILLA_FLAVOUR]) | |
21 | @@ -190,11 +193,17 @@ | |
22 | ||
23 | case "$MOZILLA" in | |
24 | xulrunner) gecko_min_version=1.8 ;; | |
25 | +libxul*) gecko_min_version=1.9 ;; | |
26 | *firefox) gecko_min_version=1.5 ;; | |
27 | *) AC_MSG_ERROR([$gecko_cv_gecko is not supported]) | |
28 | esac | |
29 | ||
30 | -PKG_CHECK_MODULES([MOZILLA_COMPONENT],[${gecko_cv_gecko}-xpcom >= $gecko_min_version $gecko_cv_extra_pkg_dependencies]) | |
31 | +if test $MOZILLA = libxul-embedding; then | |
32 | + PKG_CHECK_MODULES([MOZILLA_COMPONENT],[libxul-embedding $gecko_cv_extra_pkg_dependencies]) | |
33 | + MOZILLA_COMPONENT_CFLAGS="$MOZILLA_COMPONENT_CFLAGS `$PKG_CONFIG --cflags ${gecko_cv_gecko}` `$PKG_CONFIG --define-variable=includetype=unstable --cflags ${gecko_cv_gecko}`" | |
34 | +else | |
35 | + PKG_CHECK_MODULES([MOZILLA_COMPONENT],[${gecko_cv_gecko}-xpcom >= $gecko_min_version $gecko_cv_extra_pkg_dependencies]) | |
36 | +fi | |
37 | ||
38 | dnl ==================================== | |
39 | dnl = zlib for help converters | |
40 | diff -urN yelp-2.22.1/m4/gecko.m4 yelp-2.22.1.new/m4/gecko.m4 | |
41 | --- yelp-2.22.1/m4/gecko.m4 2007-04-12 23:36:04.000000000 +0200 | |
42 | +++ yelp-2.22.1.new/m4/gecko.m4 2008-07-08 19:40:59.000000000 +0200 | |
43 | @@ -13,7 +13,7 @@ | |
44 | # | |
45 | # You should have received a copy of the GNU General Public License along | |
46 | # with this program; if not, write to the Free Software Foundation, Inc., | |
47 | -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
48 | +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
49 | ||
50 | # GECKO_INIT(VARIABLE,[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) | |
51 | # | |
52 | @@ -32,6 +32,7 @@ | |
53 | # VARIABLE: Which gecko was found (e.g. "xulrunnner", "seamonkey", ...) | |
54 | # VARIABLE_FLAVOUR: The flavour of the gecko that was found | |
55 | # VARIABLE_HOME: | |
56 | +# VARIABLE_NSPR: set if nspr is provided by gecko flags | |
57 | # VARIABLE_PREFIX: | |
58 | # VARIABLE_INCLUDE_ROOT: | |
59 | # VARIABLE_VERSION: The version of the gecko that was found | |
60 | @@ -51,7 +52,7 @@ | |
61 | AC_MSG_CHECKING([which gecko to use]) | |
62 | ||
63 | AC_ARG_WITH([gecko], | |
64 | - AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner@:>@], | |
65 | + AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner|libxul-embedding|libxul@:>@], | |
66 | [Which gecko engine to use (autodetected by default)])) | |
67 | ||
68 | # Backward compat | |
69 | @@ -60,12 +61,15 @@ | |
70 | gecko_cv_gecko=$with_gecko | |
71 | ||
72 | # Autodetect gecko | |
73 | -_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla" | |
74 | +_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla libxul-embedding libxul" | |
75 | if test -z "$gecko_cv_gecko"; then | |
76 | for lizard in $_geckos; do | |
77 | if $PKG_CONFIG --exists $lizard-xpcom; then | |
78 | gecko_cv_gecko=$lizard | |
79 | break; | |
80 | + elif $PKG_CONFIG --exists $lizard-unstable; then | |
81 | + gecko_cv_gecko=$lizard | |
82 | + break; | |
83 | fi | |
84 | done | |
85 | fi | |
86 | @@ -82,6 +86,14 @@ | |
87 | gecko_cv_have_gecko=yes | |
88 | fi | |
89 | ||
90 | +AC_MSG_CHECKING([manual gecko home set]) | |
91 | + | |
92 | +AC_ARG_WITH([gecko-home], | |
93 | + AS_HELP_STRING([--with-gecko-home@<:@=[path]@:>@], | |
94 | + [Manually set MOZILLA_FIVE_HOME])) | |
95 | + | |
96 | +gecko_cv_gecko_home=$with_gecko_home | |
97 | + | |
98 | # **************** | |
99 | # Define variables | |
100 | # **************** | |
101 | @@ -93,27 +105,38 @@ | |
102 | seamonkey) gecko_cv_gecko_flavour=mozilla ;; | |
103 | *firefox) gecko_cv_gecko_flavour=toolkit ;; | |
104 | xulrunner) gecko_cv_gecko_flavour=toolkit ;; | |
105 | +libxul*) gecko_cv_gecko_flavour=toolkit ;; | |
106 | esac | |
107 | ||
108 | -_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`" | |
109 | -_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" | |
110 | -_GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" | |
111 | -_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`" | |
112 | - | |
113 | +if $PKG_CONFIG --exists ${gecko_cv_gecko}-xpcom; then | |
114 | + _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`" | |
115 | + _GECKO_CFLAGS="-I$_GECKO_INCLUDE_ROOT" | |
116 | + _GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" | |
117 | + _GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" | |
118 | + _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`" | |
119 | + _GECKO_NSPR=no # XXX asac: this is currently a blind guess and should be a AC test | |
120 | +else | |
121 | + _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}`" | |
122 | + _GECKO_CFLAGS="`$PKG_CONFIG --cflags ${gecko_cv_gecko}` `$PKG_CONFIG --cflags ${gecko_cv_gecko}-unstable`" | |
123 | + _GECKO_LIBDIR="`$PKG_CONFIG --variable=sdkdir ${gecko_cv_gecko}`/bin" | |
124 | + _GECKO_HOME=$with_gecko_home | |
125 | + _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}`" | |
126 | + _GECKO_NSPR=no # XXX asac: this is currently a blind guess and should be a AC test | |
127 | +fi | |
128 | fi # if gecko_cv_have_gecko | |
129 | ||
130 | if test "$gecko_cv_gecko_flavour" = "toolkit"; then | |
131 | AC_DEFINE([HAVE_MOZILLA_TOOLKIT],[1],[Define if mozilla is of the toolkit flavour]) | |
132 | fi | |
133 | ||
134 | -AM_CONDITIONAL([HAVE_MOZILLA_TOOLKIT],[test "$gecko_cv_gecko_flavour" = "toolkit"]) | |
135 | - | |
136 | $1[]=$gecko_cv_gecko | |
137 | $1[]_FLAVOUR=$gecko_cv_gecko_flavour | |
138 | $1[]_INCLUDE_ROOT=$_GECKO_INCLUDE_ROOT | |
139 | +$1[]_CFLAGS=$_GECKO_CFLAGS | |
140 | $1[]_LIBDIR=$_GECKO_LIBDIR | |
141 | $1[]_HOME=$_GECKO_HOME | |
142 | $1[]_PREFIX=$_GECKO_PREFIX | |
143 | +$1[]_NSPR=$_GECKO_NSPR | |
144 | ||
145 | # ************************************************************** | |
146 | # This is really gcc-only | |
147 | @@ -184,7 +207,7 @@ | |
148 | AC_LANG_PUSH([C++]) | |
149 | ||
150 | _SAVE_CPPFLAGS="$CPPFLAGS" | |
151 | -CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT" | |
152 | +CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS" | |
153 | ||
154 | AC_MSG_CHECKING([[whether we have a gtk 2 gecko build]]) | |
155 | AC_RUN_IFELSE( | |
156 | @@ -217,6 +240,18 @@ | |
157 | [gecko_cv_have_debug=no]) | |
158 | AC_MSG_RESULT([$gecko_cv_have_debug]) | |
159 | ||
160 | +AC_MSG_CHECKING([[whether we have a xpcom glue]]) | |
161 | +AC_COMPILE_IFELSE( | |
162 | + [AC_LANG_SOURCE( | |
163 | + [[ | |
164 | + #ifndef XPCOM_GLUE | |
165 | + #error "no xpcom glue found" | |
166 | + #endif]] | |
167 | + )], | |
168 | + [gecko_cv_have_xpcom_glue=yes], | |
169 | + [gecko_cv_have_xpcom_glue=no]) | |
170 | +AC_MSG_RESULT([$gecko_cv_have_xpcom_glue]) | |
171 | + | |
172 | CPPFLAGS="$_SAVE_CPPFLAGS" | |
173 | ||
174 | AC_LANG_POP([C++]) | |
175 | @@ -228,9 +263,11 @@ | |
176 | AC_DEFINE([HAVE_GECKO_DEBUG],[1],[Define if gecko is a debug build]) | |
177 | fi | |
178 | ||
179 | -fi # if gecko_cv_have_gecko | |
180 | +if test "$gecko_cv_have_xpcom_glue" = "yes"; then | |
181 | + AC_DEFINE([HAVE_GECKO_XPCOM_GLUE],[1],[Define if xpcom glue is used]) | |
182 | +fi | |
183 | ||
184 | -AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_debug" = "yes"]) | |
185 | +fi # if gecko_cv_have_gecko | |
186 | ||
187 | # *********************** | |
188 | # Check for gecko version | |
189 | @@ -241,7 +278,7 @@ | |
190 | AC_LANG_PUSH([C++]) | |
191 | ||
192 | _SAVE_CPPFLAGS="$CPPFLAGS" | |
193 | -CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT" | |
194 | +CPPFLAGS="$CPPFLAGS $_GECKO_CFLAGS" | |
195 | ||
196 | AC_CACHE_CHECK([for gecko version], | |
197 | [gecko_cv_gecko_version], | |
198 | @@ -311,11 +348,6 @@ | |
199 | ||
200 | fi # if gecko_cv_have_gecko | |
201 | ||
202 | -AM_CONDITIONAL([HAVE_GECKO_1_7],[test "$gecko_cv_gecko_version_int" -ge "1007000"]) | |
203 | -AM_CONDITIONAL([HAVE_GECKO_1_8],[test "$gecko_cv_gecko_version_int" -ge "1008000"]) | |
204 | -AM_CONDITIONAL([HAVE_GECKO_1_8_1],[test "$gecko_cv_gecko_version_int" -ge "1008001"]) | |
205 | -AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$gecko_cv_gecko_version_int" -ge "1009000"]) | |
206 | - | |
207 | $1[]_VERSION=$gecko_cv_gecko_version | |
208 | $1[]_VERSION_INT=$gecko_cv_gecko_version_int | |
209 | ||
210 | @@ -328,8 +360,11 @@ | |
211 | gecko_cv_extra_pkg_dependencies= | |
212 | ||
213 | if test "$gecko_cv_gecko_version_int" -ge "1009000"; then | |
214 | - gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul" | |
215 | - gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue_s" | |
216 | + if ! test "$gecko_cv_have_xpcom_glue" = "yes"; then | |
217 | + gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul" | |
218 | + else | |
219 | + gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue" | |
220 | + fi | |
221 | else | |
222 | gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed" | |
223 | fi | |
224 | @@ -340,6 +375,29 @@ | |
225 | ||
226 | ]) | |
227 | ||
228 | +# GECKO_DEFINES | |
229 | +# | |
230 | +# Defines the AM_CONDITIONALS for GECKO_INIT. This is a separate call | |
231 | +# so that you may call GECKO_INIT conditionally; but note that you must | |
232 | +# call GECKO_DEFINES _unconditionally_ ! | |
233 | + | |
234 | +AC_DEFUN([GECKO_DEFINES], | |
235 | +[ | |
236 | +# Ensure we have an integer variable to compare with | |
237 | +if test -z "$gecko_cv_gecko_version_int"; then | |
238 | + gecko_cv_gecko_version_int=0 | |
239 | +fi | |
240 | +AM_CONDITIONAL([HAVE_MOZILLA_TOOLKIT],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_flavour" = "toolkit"]) | |
241 | +AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_have_debug" = "yes"]) | |
242 | +AM_CONDITIONAL([HAVE_GECKO_1_7],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1007000"]) | |
243 | +AM_CONDITIONAL([HAVE_GECKO_1_8],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1008000"]) | |
244 | +AM_CONDITIONAL([HAVE_GECKO_1_8_1],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1008001"]) | |
245 | +AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1009000"]) | |
246 | +AM_CONDITIONAL([HAVE_GECKO_HOME],[test "x$_GECKO_HOME" != "x"]) | |
247 | +AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_debug" = "yes"]) | |
248 | +AM_CONDITIONAL([HAVE_GECKO_XPCOM_GLUE],[test "$gecko_cv_have_xpcom_glue" = "yes"]) | |
249 | +]) | |
250 | + | |
251 | # *************************************************************************** | |
252 | # *************************************************************************** | |
253 | # *************************************************************************** | |
254 | @@ -359,10 +417,20 @@ | |
255 | _SAVE_CXXFLAGS="$CXXFLAGS" | |
256 | _SAVE_LDFLAGS="$LDFLAGS" | |
257 | _SAVE_LIBS="$LIBS" | |
258 | -CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)" | |
259 | -CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)" | |
260 | -LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME" | |
261 | -LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)" | |
262 | +if test "${gecko_cv_gecko}" = "libxul-embedding" -o "${gecko_cv_gecko}" = "libxul"; then | |
263 | + CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-unstable)" | |
264 | + CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-unstable)" | |
265 | + LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}) -ldl" | |
266 | +else | |
267 | + CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)" | |
268 | + CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)" | |
269 | + LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)" | |
270 | +fi | |
271 | +if test -n "$_GECKO_HOME"; then | |
272 | + LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME" | |
273 | +else | |
274 | + LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS" | |
275 | +fi | |
276 | ||
277 | _GECKO_DISPATCH_INCLUDEDIRS="$2" | |
278 | ||
279 | @@ -371,9 +439,11 @@ | |
280 | # Mind you, it's useful to be able to test against uninstalled mozilla builds... | |
281 | _GECKO_DISPATCH_INCLUDEDIRS="$_GECKO_DISPATCH_INCLUDEDIRS dom necko pref" | |
282 | ||
283 | -# Now add them to CPPFLAGS | |
284 | +# Now add them to CPPFLAGS - asac: well ... not anymore since 1.9 -> test whether they exist before adding. | |
285 | for i in $_GECKO_DISPATCH_INCLUDEDIRS; do | |
286 | - CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i" | |
287 | + if test -d "$_GECKO_INCLUDE_ROOT/$i"; then | |
288 | + CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i" | |
289 | + fi | |
290 | done | |
291 | ||
292 | m4_indir([$1],m4_shiftn(2,$@)) | |
293 | @@ -426,11 +496,17 @@ | |
294 | #include <mozilla-config.h> | |
295 | #include <stdlib.h> | |
296 | #include <stdio.h> | |
297 | + | |
298 | +#ifdef XPCOM_GLUE | |
299 | +#include <nsXPCOMGlue.h> | |
300 | +#else | |
301 | #include <nsXPCOM.h> | |
302 | +#endif // XPCOM_GLUE | |
303 | + | |
304 | #include <nsCOMPtr.h> | |
305 | #include <nsILocalFile.h> | |
306 | #include <nsIServiceManager.h> | |
307 | -#ifdef HAVE_GECKO_1_8 | |
308 | +#if defined(HAVE_GECKO_1_8) || defined(HAVE_GECKO_1_9) | |
309 | #include <nsStringAPI.h> | |
310 | #else | |
311 | #include <nsString.h> | |
312 | @@ -438,16 +514,37 @@ | |
313 | ]] | |
314 | [$1], | |
315 | [[ | |
316 | + | |
317 | +nsresult rv; | |
318 | +#ifdef XPCOM_GLUE | |
319 | + static const GREVersionRange greVersion = { | |
320 | + "1.8", PR_TRUE, | |
321 | + "1.9.*", PR_TRUE | |
322 | + }; | |
323 | + char xpcomLocation[4096]; | |
324 | + rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096); | |
325 | + if (NS_FAILED(rv)) { | |
326 | + exit(123); | |
327 | + } | |
328 | + | |
329 | + // Startup the XPCOM Glue that links us up with XPCOM. | |
330 | + XPCOMGlueStartup(xpcomLocation); | |
331 | + if (NS_FAILED(rv)) { | |
332 | + exit(124); | |
333 | + } | |
334 | +#endif // XPCOM_GLUE | |
335 | + | |
336 | // redirect unwanted mozilla debug output to the bit bucket | |
337 | freopen ("/dev/null", "w", stdout); | |
338 | ||
339 | -nsresult rv; | |
340 | -nsCOMPtr<nsILocalFile> directory; | |
341 | +nsCOMPtr<nsILocalFile> directory = nsnull; | |
342 | +#ifndef XPCOM_GLUE | |
343 | rv = NS_NewNativeLocalFile (NS_LITERAL_CSTRING("$_GECKO_HOME"), PR_FALSE, | |
344 | getter_AddRefs (directory)); | |
345 | if (NS_FAILED (rv) || !directory) { | |
346 | exit (126); | |
347 | } | |
348 | +#endif | |
349 | ||
350 | rv = NS_InitXPCOM2 (nsnull, directory, nsnull); | |
351 | if (NS_FAILED (rv)) { | |
352 | @@ -595,21 +692,22 @@ | |
353 | AC_DEFUN([GECKO_XPIDL], | |
354 | [AC_REQUIRE([GECKO_INIT])dnl | |
355 | ||
356 | -_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" | |
357 | +if test ${gecko_cv_gecko} = "libxul-embedding" -o ${gecko_cv_gecko} = "libxul"; then | |
358 | + _GECKO_LIBDIR="`$PKG_CONFIG pkg-config --variable=sdkdir ${gecko_cv_gecko}`/bin" | |
359 | +else | |
360 | + _GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" | |
361 | +fi | |
362 | ||
363 | AC_PATH_PROG([XPIDL],[xpidl],[no],[$_GECKO_LIBDIR:$PATH]) | |
364 | ||
365 | +if test ${gecko_cv_gecko} = "libxul-embedding" -o ${gecko_cv_gecko} = "libxul"; then | |
366 | +XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}`" | |
367 | +else | |
368 | XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}-xpcom`" | |
369 | - | |
370 | -# Older geckos don't have this variable, see | |
371 | -# https://bugzilla.mozilla.org/show_bug.cgi?id=240473 | |
372 | - | |
373 | if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then | |
374 | XPIDL_IDLDIR="`echo $_GECKO_LIBDIR | sed -e s!lib!share/idl!`" | |
375 | fi | |
376 | - | |
377 | # Some distributions (Gentoo) have it in unusual places | |
378 | - | |
379 | if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then | |
380 | XPIDL_IDLDIR="$_GECKO_INCLUDE_ROOT/idl" | |
381 | fi | |
382 | diff -urN yelp-2.22.1/src/Makefile.am yelp-2.22.1.new/src/Makefile.am | |
383 | --- yelp-2.22.1/src/Makefile.am 2008-04-07 20:02:52.000000000 +0200 | |
384 | +++ yelp-2.22.1.new/src/Makefile.am 2008-07-08 19:41:29.000000000 +0200 | |
385 | @@ -60,15 +60,18 @@ | |
386 | uriloader \ | |
387 | webbrwsr \ | |
388 | webshell \ | |
389 | - widget | |
390 | + widget \ | |
391 | + xpcom | |
392 | ||
393 | yelp_CPPFLAGS = \ | |
394 | -I$(top_srcdir) \ | |
395 | -I$(top_builddir)/src \ | |
396 | - $(addprefix -I$(MOZILLA_INCLUDE_ROOT)/,$(mozilla_include_subdirs)) \ | |
397 | $(YELP_DEFINES) \ | |
398 | $(AM_CPPFLAGS) | |
399 | ||
400 | +yelp_CPPFLAGS += $(MOZILLA_COMPONENT_CFLAGS) | |
401 | +yelp_CPPFLAGS += $(addprefix -I$(MOZILLA_INCLUDE_ROOT)/,$(mozilla_include_subdirs)) | |
402 | + | |
403 | yelp_CFLAGS = \ | |
404 | $(YELP_CFLAGS) \ | |
405 | $(YELP_SEARCH_CFLAGS) \ | |
406 | @@ -92,7 +95,11 @@ | |
407 | $(MOZILLA_EXTRA_LIBS) \ | |
408 | $(MOZILLA_GLUE_LIBS) | |
409 | ||
410 | -yelp_LDFLAGS = -R$(MOZILLA_HOME) $(AM_LDFLAGS) | |
411 | +yelp_LDFLAGS = $(AM_LDFLAGS) | |
412 | + | |
413 | +if !HAVE_GECKO_XPCOM_GLUE | |
414 | +yelp_LDFLAGS += -R$(MOZILLA_HOME) | |
415 | +endif | |
416 | ||
417 | #check_PROGRAMS = \ | |
418 | # test-document \ | |
419 | diff -urN yelp-2.22.1/src/yelp-gecko-services.cpp yelp-2.22.1.new/src/yelp-gecko-services.cpp | |
420 | --- yelp-2.22.1/src/yelp-gecko-services.cpp 2008-04-07 20:02:52.000000000 +0200 | |
421 | +++ yelp-2.22.1.new/src/yelp-gecko-services.cpp 2008-07-08 19:40:59.000000000 +0200 | |
422 | @@ -21,7 +21,7 @@ | |
423 | */ | |
424 | ||
425 | #include <mozilla-config.h> | |
426 | -#include "config.h" | |
427 | +#include <config.h> | |
428 | ||
429 | #include <stdlib.h> | |
430 | #include <unistd.h> | |
431 | @@ -30,12 +30,18 @@ | |
432 | ||
433 | #include <nsCOMPtr.h> | |
434 | #include <nsIComponentManager.h> | |
435 | +#include <nsComponentManagerUtils.h> | |
436 | #include <nsIComponentRegistrar.h> | |
437 | #include <nsIGenericFactory.h> | |
438 | #include <nsILocalFile.h> | |
439 | #include <nsIPrintSettings.h> | |
440 | #include <nsServiceManagerUtils.h> | |
441 | + | |
442 | +#ifdef XPCOM_GLUE | |
443 | +#include <nsXPCOMGlue.h> | |
444 | +#else | |
445 | #include <nsXPCOM.h> | |
446 | +#endif | |
447 | ||
448 | #include "yelp-gecko-services.h" | |
449 | ||
450 | @@ -298,7 +304,6 @@ | |
451 | target->SetPrintInColor (gtk_print_settings_get_use_color (settings->config)); | |
452 | ||
453 | target->SetPaperSizeUnit(nsIPrintSettings::kPaperSizeMillimeters); | |
454 | - target->SetPaperSize (nsIPrintSettings::kPaperSizeDefined); | |
455 | ||
456 | GtkPaperSize *paperSize = gtk_page_setup_get_paper_size (settings->setup); | |
457 | if (!paperSize) { | |
458 | @@ -437,15 +442,16 @@ | |
459 | NS_ENSURE_SUCCESS (rv, ); | |
460 | ||
461 | nsCOMPtr<nsIGenericFactory> componentFactory; | |
462 | - rv = NS_NewGenericFactory(getter_AddRefs(componentFactory), | |
463 | - &(sAppComps[0])); | |
464 | - | |
465 | + componentFactory = do_CreateInstance ("@mozilla.org/generic-factory;1", &rv); | |
466 | + | |
467 | if (NS_FAILED(rv) || !componentFactory) | |
468 | { | |
469 | g_warning ("Failed to make a factory for %s\n", sAppComps[0].mDescription); | |
470 | return; | |
471 | } | |
472 | ||
473 | + componentFactory->SetComponentInfo(&(sAppComps[0])); | |
474 | + | |
475 | rv = cr->RegisterFactory(sAppComps[0].mCID, | |
476 | sAppComps[0].mDescription, | |
477 | sAppComps[0].mContractID, | |
478 | diff -urN yelp-2.22.1/src/yelp-gecko-utils.cpp yelp-2.22.1.new/src/yelp-gecko-utils.cpp | |
479 | --- yelp-2.22.1/src/yelp-gecko-utils.cpp 2007-04-12 23:36:05.000000000 +0200 | |
480 | +++ yelp-2.22.1.new/src/yelp-gecko-utils.cpp 2008-07-08 19:40:59.000000000 +0200 | |
481 | @@ -27,6 +27,10 @@ | |
482 | ||
483 | #include <nsStringAPI.h> | |
484 | ||
485 | +#ifdef HAVE_GECKO_1_9 | |
486 | +#include <gtkmozembed_glue.cpp> | |
487 | +#endif | |
488 | + | |
489 | #include <gtkmozembed.h> | |
490 | #include <gtkmozembed_internal.h> | |
491 | #include <nsCOMPtr.h> | |
492 | @@ -205,18 +209,45 @@ | |
493 | #ifdef HAVE_GECKO_1_9 | |
494 | NS_LogInit (); | |
495 | #endif | |
496 | - | |
497 | + | |
498 | + nsresult rv; | |
499 | +#ifdef XPCOM_GLUE | |
500 | + static const GREVersionRange greVersion = { | |
501 | + "1.9a", PR_TRUE, | |
502 | + "2", PR_TRUE | |
503 | + }; | |
504 | + char xpcomLocation[PATH_MAX]; | |
505 | + rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, sizeof (xpcomLocation)); | |
506 | + NS_ENSURE_SUCCESS (rv, FALSE); | |
507 | + | |
508 | + // Startup the XPCOM Glue that links us up with XPCOM. | |
509 | + rv = XPCOMGlueStartup(xpcomLocation); | |
510 | + NS_ENSURE_SUCCESS (rv, FALSE); | |
511 | + | |
512 | + rv = GTKEmbedGlueStartup(); | |
513 | + NS_ENSURE_SUCCESS (rv, FALSE); | |
514 | + | |
515 | + rv = GTKEmbedGlueStartupInternal(); | |
516 | + NS_ENSURE_SUCCESS (rv, FALSE); | |
517 | + | |
518 | + char *lastSlash = strrchr(xpcomLocation, '/'); | |
519 | + if (lastSlash) | |
520 | + *lastSlash = '\0'; | |
521 | + | |
522 | + gtk_moz_embed_set_path(xpcomLocation); | |
523 | + | |
524 | +#else | |
525 | #ifdef HAVE_GECKO_1_9 | |
526 | gtk_moz_embed_set_path (MOZILLA_HOME); | |
527 | #else | |
528 | gtk_moz_embed_set_comp_path (MOZILLA_HOME); | |
529 | #endif | |
530 | +#endif // XPCOM_GLUE | |
531 | ||
532 | gtk_moz_embed_push_startup (); | |
533 | ||
534 | yelp_register_printing (); | |
535 | ||
536 | - nsresult rv; | |
537 | nsCOMPtr<nsIPrefService> prefService (do_GetService (NS_PREFSERVICE_CONTRACTID, &rv)); | |
538 | NS_ENSURE_SUCCESS (rv, FALSE); | |
539 | ||
540 | diff -urN yelp-2.22.1/src/yelp-main.c yelp-2.22.1.new/src/yelp-main.c | |
541 | --- yelp-2.22.1/src/yelp-main.c 2007-08-16 21:57:38.000000000 +0200 | |
542 | +++ yelp-2.22.1.new/src/yelp-main.c 2008-07-08 19:40:59.000000000 +0200 | |
543 | @@ -389,7 +389,8 @@ | |
544 | } | |
545 | ||
546 | if (!yelp_html_initialize ()) { | |
547 | - g_error ("Could not initialize gecko!"); | |
548 | + g_printerr ("Could not initialize gecko!\n"); | |
549 | + exit (1); | |
550 | } | |
551 | ||
552 | if (files != NULL && files[0] != NULL) { |