1 --- devhelp-0.19/configure.in.old 2008-02-07 17:18:55.000000000 +0800 2 +++ devhelp-0.19/configure.in 2008-05-07 15:19:04.827005000 +0800 3 @@ -72,22 +72,30 @@ AC_SUBST([GECKO_FLAVOUR]) 4 AC_SUBST([GECKO_INCLUDE_ROOT]) 5 AC_SUBST([GECKO_HOME]) 6 AC_SUBST([GECKO_PREFIX]) 7 AC_SUBST([GECKO_EXTRA_LIBS]) 8 9 case "$GECKO" in 10 mozilla) gecko_min_version=1.7 ;; 11 seamonkey) gecko_min_version=1.0 ;; 12 +libxul-embedding) gecko_min_version=1.9 ;; 13 +firefox3) gecko_min_version=1.9 ;; 14 *firefox) gecko_min_version=1.0 ;; 15 *thunderbird) gecko_min_version=1.0 ;; 16 xulrunner) gecko_min_version=1.8 ;; 17 +*) AC_MSG_ERROR([$gecko_cv_gecko is not supported]) 18 esac 19 20 -PKG_CHECK_MODULES([GECKO],[$GECKO_EXTRA_PKG_DEPENDENCIES $GECKO-xpcom >= $gecko_min_version]) 21 +if test $GECKO = libxul-embedding; then 22 + PKG_CHECK_MODULES([GECKO],[libxul-embedding $gecko_cv_extra_pkg_dependencies >= $gecko_min_version]) 23 +else 24 + PKG_CHECK_MODULES([GECKO],[$GECKO_EXTRA_PKG_DEPENDENCIES $GECKO-xpcom >= $gecko_min_version]) 25 +fi 26 + 27 AC_SUBST([GECKO_CFLAGS]) 28 AC_SUBST([GECKO_LIBS]) 29 30 # ********************************** 31 # now tests for mozilla API variance 32 # ********************************** 33 34 # Firefox doesn't have this API 35 --- devhelp-0.19/m4/gecko.m4.old 2007-02-13 16:34:26.000000000 +0800 36 +++ devhelp-0.19/m4/gecko.m4 2008-05-13 20:15:05.421715000 +0800 37 @@ -46,31 +46,34 @@ AC_PROG_AWK 38 39 # ************************ 40 # Check which gecko to use 41 # ************************ 42 43 AC_MSG_CHECKING([which gecko to use]) 44 45 AC_ARG_WITH([gecko], 46 - AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner@:>@], 47 + AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox3|firefox|seamonkey|xulrunner|libxul-embedding@:>@], 48 [Which gecko engine to use (autodetected by default)])) 49 50 # Backward compat 51 AC_ARG_WITH([mozilla],[],[with_gecko=$withval],[]) 52 53 gecko_cv_gecko=$with_gecko 54 55 # Autodetect gecko 56 -_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla" 57 +_geckos="xulrunner firefox3 firefox mozilla-firefox seamonkey mozilla libxul-embedding" 58 if test -z "$gecko_cv_gecko"; then 59 for lizard in $_geckos; do 60 if $PKG_CONFIG --exists $lizard-xpcom; then 61 gecko_cv_gecko=$lizard 62 break; 63 + elif $PKG_CONFIG --exists $lizard; then 64 + gecko_cv_gecko=$lizard 65 + break; 66 fi 67 done 68 fi 69 70 AC_MSG_RESULT([$gecko_cv_gecko]) 71 72 if test "x$gecko_cv_gecko" = "x"; then 73 ifelse([$3],,[AC_MSG_ERROR([No gecko found; you may need to adjust PKG_CONFIG_PATH or install a mozilla/firefox/xulrunner -devel package])],[$3]) 74 @@ -86,36 +89,47 @@ fi 75 # Define variables 76 # **************** 77 78 if test "$gecko_cv_have_gecko" = "yes"; then 79 80 case "$gecko_cv_gecko" in 81 mozilla) gecko_cv_gecko_flavour=mozilla ;; 82 seamonkey) gecko_cv_gecko_flavour=mozilla ;; 83 +firefox3) gecko_cv_gecko_flavour=gecko-1-9 ;; 84 *firefox) gecko_cv_gecko_flavour=toolkit ;; 85 xulrunner) gecko_cv_gecko_flavour=toolkit ;; 86 +libxul-embedding) gecko_cv_gecko_flavour=toolkit ;; 87 esac 88 89 -_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`" 90 -_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" 91 -_GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" 92 -_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`" 93 - 94 +if $PKG_CONFIG --exists ${gecko_cv_gecko}-xpcom; then 95 + _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`" 96 + _GECKO_CFLAGS="-I$_GECKO_INCLUDE_ROOT" 97 + _GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" 98 + _GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" 99 + _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`" 100 +else 101 + _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}`/unstable" 102 + _GECKO_CFLAGS="`$PKG_CONFIG --cflags ${gecko_cv_gecko}` `$PKG_CONFIG --define-variable=includetype=unstable --cflags ${gecko_cv_gecko}`" 103 + _GECKO_LIBDIR="`$PKG_CONFIG --variable=sdkdir ${gecko_cv_gecko}`/bin" 104 + _GECKO_HOME=# NO HOME 105 + _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}`" 106 +fi 107 fi # if gecko_cv_have_gecko 108 109 if test "$gecko_cv_gecko_flavour" = "toolkit"; then 110 AC_DEFINE([HAVE_MOZILLA_TOOLKIT],[1],[Define if mozilla is of the toolkit flavour]) 111 fi 112 113 AM_CONDITIONAL([HAVE_MOZILLA_TOOLKIT],[test "$gecko_cv_gecko_flavour" = "toolkit"]) 114 115 $1[]=$gecko_cv_gecko 116 $1[]_FLAVOUR=$gecko_cv_gecko_flavour 117 $1[]_INCLUDE_ROOT=$_GECKO_INCLUDE_ROOT 118 +$1[]_CFLAGS=$_GECKO_CFLAGS 119 $1[]_LIBDIR=$_GECKO_LIBDIR 120 $1[]_HOME=$_GECKO_HOME 121 $1[]_PREFIX=$_GECKO_PREFIX 122 123 # ************************************************************** 124 # This is really gcc-only 125 # Do this test using CXX only since some versions of gcc 126 # 2.95-2.97 have a signed wchar_t in c++ only and some versions 127 @@ -179,17 +193,17 @@ fi # if gecko_cv_have_gecko 128 # Various tests 129 # ************* 130 131 if test "$gecko_cv_have_gecko" = "yes"; then 132 133 AC_LANG_PUSH([C++]) 134 135 _SAVE_CPPFLAGS="$CPPFLAGS" 136 -CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT" 137 +CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS" 138 139 AC_MSG_CHECKING([[whether we have a gtk 2 gecko build]]) 140 AC_RUN_IFELSE( 141 [AC_LANG_SOURCE( 142 [[#include <mozilla-config.h> 143 #include <string.h> 144 #include <stdlib.h> 145 int main(void) { 146 @@ -204,18 +218,20 @@ AC_RUN_IFELSE( 147 [AC_MSG_ERROR([[This program needs a gtk 2 gecko build]])], 148 [result=maybe]) 149 AC_MSG_RESULT([$result]) 150 151 AC_MSG_CHECKING([[whether we have a gecko debug build]]) 152 AC_COMPILE_IFELSE( 153 [AC_LANG_SOURCE( 154 [[#include <mozilla-config.h> 155 + #if !defined(MOZ_STORAGE) 156 #if !defined(MOZ_REFLOW_PERF) || !defined(MOZ_REFLOW_PERF_DSP) 157 #error No 158 + #endif 159 #endif]] 160 )], 161 [gecko_cv_have_debug=yes], 162 [gecko_cv_have_debug=no]) 163 AC_MSG_RESULT([$gecko_cv_have_debug]) 164 165 CPPFLAGS="$_SAVE_CPPFLAGS" 166 167 @@ -236,17 +252,17 @@ AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test 168 # Check for gecko version 169 # *********************** 170 171 if test "$gecko_cv_have_gecko" = "yes"; then 172 173 AC_LANG_PUSH([C++]) 174 175 _SAVE_CPPFLAGS="$CPPFLAGS" 176 -CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT" 177 +CPPFLAGS="$CPPFLAGS $_GECKO_CFLAGS" 178 179 AC_CACHE_CHECK([for gecko version], 180 [gecko_cv_gecko_version], 181 [AC_RUN_IFELSE( 182 [AC_LANG_PROGRAM([[ 183 #include <mozilla-config.h> 184 #include <string.h> 185 #include <stdlib.h> 186 @@ -323,20 +339,19 @@ $1[]_VERSION_INT=$gecko_cv_gecko_version 187 # Packages that we need to check for with pkg-config 188 # ************************************************** 189 190 gecko_cv_extra_libs= 191 gecko_cv_glue_libs= 192 gecko_cv_extra_pkg_dependencies= 193 194 if test "$gecko_cv_gecko_version_int" -ge "1009000"; then 195 - gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul" 196 - gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue_s" 197 + gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul" 198 else 199 - gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed" 200 + gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed" 201 fi 202 203 $1[]_EXTRA_PKG_DEPENDENCIES="$gecko_cv_extra_pkg_dependencies" 204 $1[]_EXTRA_LIBS="$gecko_cv_extra_libs" 205 $1[]_GLUE_LIBS="$gecko_cv_glue_libs" 206 207 ]) 208 209 @@ -354,31 +369,43 @@ if test "$gecko_cv_have_gecko" != "yes"; 210 fi 211 212 AC_LANG_PUSH([C++]) 213 214 _SAVE_CPPFLAGS="$CPPFLAGS" 215 _SAVE_CXXFLAGS="$CXXFLAGS" 216 _SAVE_LDFLAGS="$LDFLAGS" 217 _SAVE_LIBS="$LIBS" 218 -CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)" 219 -CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)" 220 -LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME" 221 -LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)" 222 +if test "${gecko_cv_gecko}" = "libxul-embedding"; then 223 + CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --define-variable=includetype=unstable --cflags-only-I ${gecko_cv_gecko})" 224 + CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --define-variable=includetype=unstable --cflags-only-other ${gecko_cv_gecko})" 225 + LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}) -ldl" 226 +else 227 + CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)" 228 + CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)" 229 + LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)" 230 +fi 231 +if test -n "$_GECKO_HOME"; then 232 + LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME" 233 +else 234 + LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS" 235 +fi 236 237 _GECKO_DISPATCH_INCLUDEDIRS="$2" 238 239 # Sigh Gentoo has a rubbish header layout 240 # http://bugs.gentoo.org/show_bug.cgi?id=100804 241 # Mind you, it's useful to be able to test against uninstalled mozilla builds... 242 _GECKO_DISPATCH_INCLUDEDIRS="$_GECKO_DISPATCH_INCLUDEDIRS dom necko pref" 243 244 -# Now add them to CPPFLAGS 245 +# Now add them to CPPFLAGS - asac: well ... not anymore since 1.9 -> test whether they exist before adding. 246 for i in $_GECKO_DISPATCH_INCLUDEDIRS; do 247 - CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i" 248 + if test -d "$_GECKO_INCLUDE_ROOT/$i"; then 249 + CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i" 250 + fi 251 done 252 253 m4_indir([$1],m4_shiftn(2,$@)) 254 255 CPPFLAGS="$_SAVE_CPPFLAGS" 256 CXXFLAGS="$_SAVE_CXXFLAGS" 257 LDFLAGS="$_SAVE_LDFLAGS" 258 LIBS="$_SAVE_LIBS" 259 @@ -421,38 +448,65 @@ AC_DEFUN([GECKO_RUN_IFELSE],[_GECKO_DISP 260 # 261 # To jump out of the BODY and exit the test program, you can use |break|. 262 263 AC_DEFUN([GECKO_XPCOM_PROGRAM], 264 [AC_LANG_PROGRAM([[ 265 #include <mozilla-config.h> 266 #include <stdlib.h> 267 #include <stdio.h> 268 + 269 +#ifdef XPCOM_GLUE 270 +#include <nsXPCOMGlue.h> 271 +#else 272 #include <nsXPCOM.h> 273 +#endif // XPCOM_GLUE 274 + 275 #include <nsCOMPtr.h> 276 #include <nsILocalFile.h> 277 #include <nsIServiceManager.h> 278 -#ifdef HAVE_GECKO_1_8 279 +#if defined(HAVE_GECKO_1_8) || defined(HAVE_GECKO_1_9) 280 #include <nsStringAPI.h> 281 #else 282 #include <nsString.h> 283 #endif 284 ]] 285 [$1], 286 [[ 287 + 288 +nsresult rv; 289 +#ifdef XPCOM_GLUE 290 + static const GREVersionRange greVersion = { 291 + "1.8", PR_TRUE, 292 + "2", PR_TRUE 293 + }; 294 + char xpcomLocation[4096]; 295 + rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096); 296 + if (NS_FAILED(rv)) { 297 + exit(123); 298 + } 299 + 300 + // Startup the XPCOM Glue that links us up with XPCOM. 301 + XPCOMGlueStartup(xpcomLocation); 302 + if (NS_FAILED(rv)) { 303 + exit(124); 304 + } 305 +#endif // XPCOM_GLUE 306 + 307 // redirect unwanted mozilla debug output to the bit bucket 308 freopen ("/dev/null", "w", stdout); 309 310 -nsresult rv; 311 -nsCOMPtr<nsILocalFile> directory; 312 +nsCOMPtr<nsILocalFile> directory = nsnull; 313 +#ifndef XPCOM_GLUE 314 rv = NS_NewNativeLocalFile (NS_LITERAL_CSTRING("$_GECKO_HOME"), PR_FALSE, 315 getter_AddRefs (directory)); 316 if (NS_FAILED (rv) || !directory) { 317 exit (126); 318 } 319 +#endif 320 321 rv = NS_InitXPCOM2 (nsnull, directory, nsnull); 322 if (NS_FAILED (rv)) { 323 exit (125); 324 } 325 326 int status = EXIT_FAILURE; 327 328 @@ -590,33 +644,40 @@ fi 329 # 330 # Variables set: 331 # XPIDL: the xpidl program 332 # XPIDL_IDLDIR: the xpidl include directory 333 334 AC_DEFUN([GECKO_XPIDL], 335 [AC_REQUIRE([GECKO_INIT])dnl 336 337 -_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" 338 +if test ${gecko_cv_gecko} = "libxul-embedding"; then 339 + _GECKO_LIBDIR="`$PKG_CONFIG pkg-config --variable=sdkdir ${gecko_cv_gecko}`/bin" 340 +else 341 + _GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" 342 +fi 343 344 AC_PATH_PROG([XPIDL],[xpidl],[no],[$_GECKO_LIBDIR:$PATH]) 345 346 +if test ${gecko_cv_gecko} = "libxul-embedding"; then 347 +XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}`" 348 +else 349 XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}-xpcom`" 350 351 # Older geckos don't have this variable, see 352 # https://bugzilla.mozilla.org/show_bug.cgi?id=240473 353 354 -if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then 355 - XPIDL_IDLDIR="`echo $_GECKO_LIBDIR | sed -e s!lib!share/idl!`" 356 -fi 357 - 358 -# Some distributions (Gentoo) have it in unusual places 359 - 360 -if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then 361 - XPIDL_IDLDIR="$_GECKO_INCLUDE_ROOT/idl" 362 +if test ${gecko_cv_gecko} != "libxul-embedding"; then 363 + if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then 364 + XPIDL_IDLDIR="`echo $_GECKO_LIBDIR | sed -e s!lib!share/idl!`" 365 + fi 366 + # Some distributions (Gentoo) have it in unusual places 367 + if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then 368 + XPIDL_IDLDIR="$_GECKO_INCLUDE_ROOT/idl" 369 + fi 370 fi 371 372 if test "$XPIDL" != "no" -a -n "$XPIDL_IDLDIR" -a -f "$XPIDL_IDLDIR/nsISupports.idl"; then 373 ifelse([$1],,[:],[$1]) 374 else 375 ifelse([$2],,[AC_MSG_FAILURE([XPIDL program or include directory not found])],[$2]) 376 fi 377 378 --- devhelp-0.19/src/Makefile.am.old 2008-05-13 20:12:07.109433000 +0800 379 +++ devhelp-0.19/src/Makefile.am 2008-05-13 20:12:16.234096000 +0800 380 @@ -46,16 +46,17 @@ gecko_include_subdirs = \ 381 fastfind \ 382 docshell \ 383 gfx \ 384 gtkembedmoz \ 385 locale \ 386 pref \ 387 webbrwsr \ 388 string \ 389 + nspr \ 390 xpcom 391 392 libcppwrapper_la_CPPFLAGS = \ 393 $(DEFINES) \ 394 -DALLOW_PRIVATE_API \ 395 -DGECKO_HOME=\""$(GECKO_HOME)\"" \ 396 -include $(GECKO_INCLUDE_ROOT)/mozilla-config.h \ 397 $(addprefix -I$(GECKO_INCLUDE_ROOT)/,$(gecko_include_subdirs)) \ 398