Changeset 35313 for main


Ignore:
Timestamp:
2021-08-19T18:54:04+12:00 (3 years ago)
Author:
davidb
Message:

Nightly builds setup looks to still be using a JDK 1.7, which does not support 'javac -h'. Needs to be at least a JDK1.8. SO, this commit returns things to the key JNI Makefiles testing for 'javah' and using it if found. While essentially a flip-flop back to how the code was before, as few additional things have been learnt along the way: 'command -v' is a better way to test for the existance of a script in comparison to 'which' where things can be meddled with and (for which) one cannot even assume the exit value gets set appropriately based on whether or not the program was found. Some refinement and tidy up of the JAVACOMPILEFLAGS has also been done; and the comment next to the JAVAH line has been rewritten to describe more precisely what is going on around javah and 'javac -h'

Location:
main/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/common-src/indexers/mg/java/org/greenstone/mg/Makefile.in

    r35309 r35313  
    1515CXX = @CXX@
    1616JAVAC = @JAVAC@
    17 # 'javah' has been deprecated since JDK1.6, Makefile rules below now use 'javac -h'
    18 #JAVAH = javah
     17# 'javah' existed until JDK 1.7, transitional in JDK 1.8, then removed by JDK 1.9 (use 'javac -h' instead)
     18# Makefile rules below test for 'javah' and use it if it found, otherwise runs with 'javac -h' version
     19JAVAH = javah
    1920JAR = jar
    2021CFLAGS = @CFLAGS@ -ansi -DSILENT -DSHORT_SUFFIX
     
    5051compile: setup
    5152    "$(JAVAC)" $(JAVACFLAGS) -d "$(JAVACLASSDIR)" -sourcepath "$(JAVASRCDIR)" $(JAVACOPTIONS) *.java
    52     "$(JAVAC)" -h "$(MGHOME)/jni" -classpath "$(JAVACLASSPATH)" MGWrapper.java
    53     "$(JAVAC)" -h "$(MGHOME)/jni" -classpath "$(JAVACLASSPATH)" MGPassesWrapper.java
     53#   "$(JAVAC)" -h "$(MGHOME)/jni" -classpath "$(JAVACLASSPATH)" MGWrapper.java
     54#   "$(JAVAC)" -h "$(MGHOME)/jni" -classpath "$(JAVACLASSPATH)" MGPassesWrapper.java
    5455#   $(eval found = $(shell which javah 2>/dev/null | wc -l))
    55 #   if test "$(found)" = "1" ; then \
    56 #     "$(JAVAH)" -classpath "$(JAVACLASSPATH)" -d "$(MGHOME)/jni" org.greenstone.mg.MGWrapper ; \
    57 #     "$(JAVAH)" -classpath "$(JAVACLASSPATH)" -d "$(MGHOME)/jni" org.greenstone.mg.MGPassesWrapper ; \
    58 #   else \
    59 #     "$(JAVAC)" -h "$(MGHOME)/jni" -classpath "$(JAVACLASSPATH)" MGWrapper.java ; \
    60 #     "$(JAVAC)" -h "$(MGHOME)/jni" -classpath "$(JAVACLASSPATH)" MGPassesWrapper.java ; \
    61 #   fi 
     56    $(eval found = $(shell command -v javah | wc -l))
     57    if test "$(found)" = "1" ; then \
     58      "$(JAVAH)" -classpath "$(JAVACLASSPATH)" -d "$(MGHOME)/jni" org.greenstone.mg.MGWrapper ; \
     59      "$(JAVAH)" -classpath "$(JAVACLASSPATH)" -d "$(MGHOME)/jni" org.greenstone.mg.MGPassesWrapper ; \
     60    else \
     61      "$(JAVAC)" -h "$(MGHOME)/jni" -classpath "$(JAVACLASSPATH)" MGWrapper.java ; \
     62      "$(JAVAC)" -h "$(MGHOME)/jni" -classpath "$(JAVACLASSPATH)" MGPassesWrapper.java ; \
     63    fi 
    6264    "$(JAR)" cf "$(MGHOME)/mg.jar" -C "$(JAVACLASSDIR)" org
    6365
  • main/trunk/greenstone2/common-src/indexers/mgpp/java/org/greenstone/mgpp/Makefile.in

    r35309 r35313  
    1515CXX = @CXX@
    1616JAVAC = @JAVAC@
    17 # 'javah' has been deprecated since JDK1.6, Makefile rules below now use 'javac -h'
    18 #JAVAH = javah
     17# 'javah' existed until JDK 1.7, transitional in JDK 1.8, then removed by JDK 1.9 (use 'javac -h' instead)
     18# Makefile rules below test for 'javah' and use it if it found, otherwise runs with 'javac -h' version
     19JAVAH = javah
    1920JAR = jar
    2021CFLAGS = @CFLAGS@ -ansi -DSILENT -DSHORT_SUFFIX
     
    5455compile: setup
    5556    "$(JAVAC)" $(JAVACFLAGS) -d "$(JAVACLASSDIR)" -sourcepath "$(JAVASRCDIR)" $(JAVACOPTIONS) *.java
    56     "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPPassesWrapper.java
    57     "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPSearchWrapper.java
    58     "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPRetrieveWrapper.java
     57#   "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPPassesWrapper.java
     58#   "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPSearchWrapper.java
     59#   "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPRetrieveWrapper.java
    5960#   $(eval found = $(shell which javah 2>/dev/null | wc -l))
    60 #   if test "$(found)" = "1" ; then \
    61 #     "$(JAVAH)" -classpath "$(JAVACLASSPATH)" -d "$(MGPPHOME)/jni" org.greenstone.mgpp.MGPPPassesWrapper ; \
    62 #     "$(JAVAH)" -classpath "$(JAVACLASSPATH)" -d "$(MGPPHOME)/jni" org.greenstone.mgpp.MGPPSearchWrapper ; \
    63 #     "$(JAVAH)" -classpath "$(JAVACLASSPATH)" -d "$(MGPPHOME)/jni" org.greenstone.mgpp.MGPPRetrieveWrapper ; \
    64 #   else \
    65 #     "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPPassesWrapper.java ; \
    66 #     "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPSearchWrapper.java ; \
    67 #     "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPRetrieveWrapper.java ; \
    68 #   fi
     61    $(eval found = $(shell command -v javah | wc -l))
     62    if test "$(found)" = "1" ; then \
     63      "$(JAVAH)" -classpath "$(JAVACLASSPATH)" -d "$(MGPPHOME)/jni" org.greenstone.mgpp.MGPPPassesWrapper ; \
     64      "$(JAVAH)" -classpath "$(JAVACLASSPATH)" -d "$(MGPPHOME)/jni" org.greenstone.mgpp.MGPPSearchWrapper ; \
     65      "$(JAVAH)" -classpath "$(JAVACLASSPATH)" -d "$(MGPPHOME)/jni" org.greenstone.mgpp.MGPPRetrieveWrapper ; \
     66    else \
     67      "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPPassesWrapper.java ; \
     68      "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPSearchWrapper.java ; \
     69      "$(JAVAC)" -classpath "$(JAVACLASSPATH)" -h "$(MGPPHOME)/jni" MGPPRetrieveWrapper.java ; \
     70    fi
    6971    "$(JAR)" cf "$(MGPPHOME)/mgpp.jar" -C "$(JAVACLASSDIR)" org
    7072clean:
  • main/trunk/greenstone3/src/packages/javagdbm/java/Makefile.in

    r35310 r35313  
    66#JAR = $(JAVA_HOME)/bin/jar
    77JAVAC = @JAVAC@
    8 # 'javah' has been deprecated since JDK1.6, Makefile rules below now use 'javac -h'
    9 #JAVAH = javah
     8# 'javah' existed until JDK 1.7, transitional in JDK 1.8, then removed by JDK 1.9 (use 'javac -h' instead)
     9# Makefile rules below test for 'javah' and use it if it found, otherwise runs with 'javac -h' version
     10JAVAH = javah
    1011JAR = jar
    1112
     
    2223
    2324compile: setup
    24     $(JAVAC) -d $(JAVACLASSDIR) -sourcepath $(JAVASRCDIR) $(JAVACOPTIONS) au/com/pharos/*/*.java
    25     $(JAVAC) -h $(JAVAGDBMHOME)/jni -classpath $(JAVACLASSPATH) -d java au/com/pharos/gdbm/GdbmFile.java
    26 #   @echo Checking for javah ...
     25    $(JAVAC) $(JAVACFLAGS) -d $(JAVACLASSDIR) -sourcepath $(JAVASRCDIR) $(JAVACOPTIONS) au/com/pharos/*/*.java
     26#   $(JAVAC) -h $(JAVAGDBMHOME)/jni -classpath $(JAVACLASSPATH) -d java au/com/pharos/gdbm/GdbmFile.java
     27    @echo Checking for javah ...
    2728#   $(eval found = $(shell which javah 2>/dev/null | wc -l))
    28 #   @if test "$(found)" = "1" ; then \
    29 #     echo ... found ; \
    30 #     echo javah -o $(JAVAGDBMHOME)/jni/GdbmFile.h -classpath $(JAVACLASSPATH) au.com.pharos.gdbm.GdbmFile ; \
    31 #     javah -o $(JAVAGDBMHOME)/jni/GdbmFile.h -classpath $(JAVACLASSPATH) au.com.pharos.gdbm.GdbmFile ; \
    32 #   else \
    33 #     echo ... not found => using 'javac -h' ; \
    34 #     echo $(JAVAC) -h $(JAVAGDBMHOME)/jni -classpath $(JAVACLASSPATH) -d java au/com/pharos/gdbm/GdbmFile.java ; \
    35 #     $(JAVAC) -h $(JAVAGDBMHOME)/jni -classpath $(JAVACLASSPATH) -d java au/com/pharos/gdbm/GdbmFile.java ; \
    36 #   fi
     29    $(eval found = $(shell command -v javah | wc -l))
     30    @if test "$(found)" = "1" ; then \
     31      echo ... found ; \
     32      echo $(JAVAH) -o $(JAVAGDBMHOME)/jni/GdbmFile.h -classpath $(JAVACLASSPATH) au.com.pharos.gdbm.GdbmFile ; \
     33      $(JAVAH) -o $(JAVAGDBMHOME)/jni/GdbmFile.h -classpath $(JAVACLASSPATH) au.com.pharos.gdbm.GdbmFile ; \
     34    else \
     35      echo ... not found => using 'javac -h' ; \
     36      echo $(JAVAC) -h $(JAVAGDBMHOME)/jni -classpath $(JAVACLASSPATH) -d java au/com/pharos/gdbm/GdbmFile.java ; \
     37      $(JAVAC) -h $(JAVAGDBMHOME)/jni -classpath $(JAVACLASSPATH) -d java au/com/pharos/gdbm/GdbmFile.java ; \
     38    fi
    3739    jar cf $(JAVAGDBMHOME)/javagdbm.jar -C $(JAVACLASSDIR) au
    3840
Note: See TracChangeset for help on using the changeset viewer.