Hi,
Right now, the build fails if the user does:
$ ../classpath/configure --disable-gtk-peer
$ make
[snip]
make[2]: Leaving directory
`/home/keiths/work/classpath/master/linux/native/jni'
Making all in plugin
make[2]: Entering directory
`/home/keiths/work/classpath/master/linux/native/plugin'
if /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H
-I. -I../../../classpath/native/plugin -I../../include -Wall
-DAPPLETVIEWER_EXECUTABLE="\"/usr/local/classpath/bin/appletviewer\""
-I/usr/include/mozilla-1.7.13/java -I/usr/include/mozilla-1.7.13/plugin
-I/usr/include/mozilla-1.7.13 -I/usr/include/mozilla-1.7.13/xpcom
-I/usr/include/mozilla-1.7.13/string -I/usr/include/mozilla-1.7.13/nspr
-I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -g
-O2 -MT libgcjwebplugin_la-gcjwebplugin.lo -MD -MP -MF
".deps/libgcjwebplugin_la-gcjwebplugin.Tpo" -c -o
libgcjwebplugin_la-gcjwebplugin.lo `test -f 'gcjwebplugin.cc' || echo
'../../../classpath/native/plugin/'`gcjwebplugin.cc; \
then mv -f ".deps/libgcjwebplugin_la-gcjwebplugin.Tpo"
".deps/libgcjwebplugin_la-gcjwebplugin.Plo"; else rm -f
".deps/libgcjwebplugin_la-gcjwebplugin.Tpo"; exit 1; fi
mkdir .libs
g++ -DHAVE_CONFIG_H -I. -I../../../classpath/native/plugin
-I../../include -Wall
-DAPPLETVIEWER_EXECUTABLE=\"/usr/local/classpath/bin/appletviewer\"
-I/usr/include/mozilla-1.7.13/java -I/usr/include/mozilla-1.7.13/plugin
-I/usr/include/mozilla-1.7.13 -I/usr/include/mozilla-1.7.13/xpcom
-I/usr/include/mozilla-1.7.13/string -I/usr/include/mozilla-1.7.13/nspr
-I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -g -O2
-MT libgcjwebplugin_la-gcjwebplugin.lo -MD -MP -MF
.deps/libgcjwebplugin_la-gcjwebplugin.Tpo -c
../../../classpath/native/plugin/gcjwebplugin.cc -fPIC -DPIC -o
.libs/libgcjwebplugin_la-gcjwebplugin.o
../../../classpath/native/plugin/gcjwebplugin.cc:55:21: error:
gtk/gtk.h: No such file or directory
../../../classpath/native/plugin/gcjwebplugin.cc: In function 'bool
plugin_failed()':
../../../classpath/native/plugin/gcjwebplugin.cc:933: error: 'GtkWidget'
was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:933: error: 'dialog'
was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:934: error: 'ok_button'
was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:937: error:
'GTK_DIALOG_MODAL' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:938: error:
'GTK_MESSAGE_WARNING' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:939: error:
'GTK_BUTTONS_NONE' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:940: error:
'gtk_message_dialog_new' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:941: error:
'GTK_DIALOG' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:942: error:
'GTK_STOCK_OK' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:943: error:
'GTK_RESPONSE_OK' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:943: error:
'gtk_dialog_add_button' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:944: error:
'gtk_widget_show_all' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:945: error:
'gtk_dialog_run' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:947: error:
'gtk_widget_destroy' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc: In function 'bool
plugin_ask_user_about_documentbase(char*)':
../../../classpath/native/plugin/gcjwebplugin.cc:1078: error:
'GtkWidget' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1078: error: 'dialog'
was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1079: error:
'ok_button' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1080: error:
'cancel_button' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1081: error:
'whitelist_button' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1082: error:
'GTK_RESPONSE_NONE' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1085: error:
'GTK_DIALOG_MODAL' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1086: error:
'GTK_MESSAGE_WARNING' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1087: error:
'GTK_BUTTONS_NONE' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1089: error:
'gtk_message_dialog_new' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1090: error:
'GTK_MESSAGE_DIALOG' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1091: error:
'gtk_message_dialog_format_secondary_text' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1093: error:
'GTK_DIALOG' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1094: error:
'GTK_STOCK_CANCEL' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1095: error:
'GTK_RESPONSE_CANCEL' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1095: error:
'gtk_dialog_add_button' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1098: error:
'GTK_RESPONSE_OK' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1101: error:
'GTK_RESPONSE_APPLY' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1102: error:
'gtk_widget_grab_focus' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1104: error:
'gtk_widget_show_all' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1105: error:
'gtk_dialog_run' was not declared in this scope
../../../classpath/native/plugin/gcjwebplugin.cc:1106: error:
'gtk_widget_destroy' was not declared in this scope
make[2]: *** [libgcjwebplugin_la-gcjwebplugin.lo] Error 1
make[2]: Leaving directory
`/home/keiths/work/classpath/master/linux/native/plugin'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/keiths/work/classpath/master/linux/native'
make: *** [all-recursive] Error 1
Here's a simple patch for configure to fail if the user does this. While
I would really like for the build to just issue a warning and disable
the plugin, I don't think that's particularly user friendly, but it
would be easy enough to change.
Keith
ChangeLog
2006-06-16 Keith Seitz <[EMAIL PROTECTED]>
* configure.ac: Fail if attempting to build gcjwebplugin without
GTK peers.
Index: configure.ac
===================================================================
RCS file: /sources/classpath/classpath/configure.ac,v
retrieving revision 1.162
diff -u -p -r1.162 configure.ac
--- configure.ac 15 Jun 2006 23:08:48 -0000 1.162
+++ configure.ac 16 Jun 2006 21:25:28 -0000
@@ -189,6 +189,9 @@ AC_ARG_ENABLE([plugin],
*) COMPILE_PLUGIN=yes ;;
esac],
[COMPILE_PLUGIN=yes])
+if test "x${COMPILE_PLUGIN}" = xyes -a "x${COMPILE_GTK_PEER}" = xno; then
+ AC_MSG_ERROR([gcjwebplugin requires --enable-gtk-peer])
+fi
AM_CONDITIONAL(CREATE_PLUGIN, test "x${COMPILE_PLUGIN}" = xyes)
dnl -----------------------------------------------------------