diff --git a/src/Makefile b/src/Makefile index 2283d1cd7..a0ccaa4d7 100644 --- a/src/Makefile +++ b/src/Makefile @@ -28,7 +28,13 @@ GF_DOC_EXE=gfdoc$(EXEEXT) temp install-gfdoc install-editor \ today help clean -all: unix gfdoc jar +ifeq ($(ENABLE_JAVA), "yes") + BUILD_JAR=jar +else + BUILD_JAR= +endif + +all: unix gfdoc $(BUILD_JAR) unix: today touch-files opt diff --git a/src/config.mk.in b/src/config.mk.in index e75c8e98f..860e5bf0f 100644 --- a/src/config.mk.in +++ b/src/config.mk.in @@ -21,6 +21,8 @@ INSTALL = @INSTALL@ GHC = @GHC@ GHCI = @GHCI@ +ENABLE_JAVA = @ENABLE_JAVA@ + JAVAC = @JAVAC@ JAR = @JAR@ diff --git a/src/configure.ac b/src/configure.ac index db855dda4..8991543ba 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -4,7 +4,7 @@ AC_INIT([GF],[2.2],[aarne@cs.chalmers.se],[GF]) AC_PREREQ(2.53) -AC_REVISION($Revision: 1.12 $) +AC_REVISION($Revision: 1.13 $) AC_CONFIG_FILES([config.mk jgf]) @@ -41,44 +41,56 @@ GHCI=$(dirname $GHC)/ghci AC_SUBST(GHC) AC_SUBST(GHCI) -dnl *********************************************** -dnl javac -dnl *********************************************** - -AC_ARG_WITH(javac, - AC_HELP_STRING([--with-javac=], - [Use a different command instead of - 'javac' for the Java compiler.]), - [AC_CHECK_FILE("$withval",JAVAC="$withval",[AC_PATH_PROG(JAVAC,"$withval")])], - [AC_PATH_PROG(JAVAC,javac)]) - -AC_SUBST(JAVAC) dnl *********************************************** -dnl jar +dnl java stuff dnl *********************************************** -AC_ARG_WITH(jar, - AC_HELP_STRING([--with-jar=], - [Use a different command instead of - 'jar' for the Java archive tool.]), - [AC_CHECK_FILE("$withval",JAR="$withval",[AC_PATH_PROG(JAR,"$withval")])], - [AC_PATH_PROG(JAR,jar)]) +AC_ARG_ENABLE(java, +AC_HELP_STRING([--enable-java], + [Build Java components. (default = yes)]), +[ENABLE_JAVA="$enableval"], +[ENABLE_JAVA=yes] +) -AC_SUBST(JAR) +if test "$ENABLE_JAVA" = "yes"; then -dnl *********************************************** -dnl java -dnl *********************************************** + AC_ARG_WITH(javac, + AC_HELP_STRING([--with-javac=], + [Use a different command instead of + 'javac' for the Java compiler.]), + [AC_CHECK_FILE("$withval",JAVAC="$withval",[AC_PATH_PROG(JAVAC,"$withval")])], + [AC_PATH_PROG(JAVAC,javac)]) + AC_SUBST(JAVAC) -AC_ARG_WITH(java, - AC_HELP_STRING([--with-java=], - [Use a different command instead of - 'java' for the Java Virtual Machine.]), - [AC_CHECK_FILE("$withval",JAVA="$withval",[AC_PATH_PROG(JAVA,"$withval")])], - [AC_PATH_PROG(JAVA,java)]) + AC_ARG_WITH(java, + AC_HELP_STRING([--with-java=], + [Use a different command instead of + 'java' for the Java Virtual Machine.]), + [AC_CHECK_FILE("$withval",JAVA="$withval",[AC_PATH_PROG(JAVA,"$withval")])], + [AC_PATH_PROG(JAVA,java)]) + AC_SUBST(JAVA) + + AC_ARG_WITH(jar, + AC_HELP_STRING([--with-jar=], + [Use a different command instead of + 'jar' for the Java archive tool.]), + [AC_CHECK_FILE("$withval",JAR="$withval",[AC_PATH_PROG(JAR,"$withval")])], + [AC_PATH_PROG(JAR,jar)]) + AC_SUBST(JAR) + + if test "$JAVAC" = "" || test ! -x "$JAVAC" \ + || test "$JAVA" = "" || test ! -x "$JAVA" \ + || test "$JAR" = "" || test ! -x "$JAR"; then + + AC_MSG_WARN([Not building Java components.]) + ENABLE_JAVA=no + fi + +fi + +AC_SUBST(ENABLE_JAVA) -AC_SUBST(JAVA) dnl *********************************************** dnl Other programs diff --git a/src/jgf.in b/src/jgf.in index 621daeb74..4a3085192 100644 --- a/src/jgf.in +++ b/src/jgf.in @@ -7,15 +7,32 @@ GF_DATA_DIR=@datadir@/GF-@PACKAGE_VERSION@ JAVA=@JAVA@ +GF=$GF_BIN_DIR/gf +JARFILE=$GF_DATA_DIR/gf-java.jar + if [ ! -x "$JAVA" ]; then JAVA=`which java` fi if [ ! -x "$JAVA" ]; then echo "No Java VM found" + exit 1 fi -GF=$GF_BIN_DIR/gf -JARFILE=$GF_DATA_DIR/gf-java.jar +if [ ! -f "$JARFILE" ]; then + echo "JAR file $JARFILE not found" + exit 1 +fi -exec $JAVA -jar $JARFILE "$GF -java $*" +if [ ! -x "$GF" ]; then + GF=`which gf` +fi + +if [ ! -x "$GF" ]; then + echo "gf not found" + exit 1 +fi + +COMMAND=$JAVA -jar $JARFILE "$GF -java $*" + +exec $COMMAND