X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ust-java%2FMakefile.am;h=5b6be7bd4a7eaedfdae5a8492afc2bc18fe0b1c5;hb=2d2d38713aea27077b690f2756a901c2a0c06f8c;hp=f51206917412d7395a327b5a8de0f7943d3e8b4c;hpb=6f09d4ea6f7e38b16dcf92474d3f7a23583d4992;p=lttng-ust.git diff --git a/src/lib/lttng-ust-java/Makefile.am b/src/lib/lttng-ust-java/Makefile.am index f5120691..5b6be7bd 100644 --- a/src/lib/lttng-ust-java/Makefile.am +++ b/src/lib/lttng-ust-java/Makefile.am @@ -1,41 +1,52 @@ # SPDX-License-Identifier: LGPL-2.1-only -JAVAROOT = . +JAVAROOT = .build jarfile = liblttng-ust-java.jar jardir = $(datadir)/java pkgpath = org/lttng/ust dist_noinst_JAVA = $(pkgpath)/LTTngUst.java jar_DATA = $(jarfile) -BUILT_SOURCES = org_lttng_ust_LTTngUst.h AM_CPPFLAGS += -I$(builddir) -I$(srcdir) $(JNI_CPPFLAGS) + lib_LTLIBRARIES = liblttng-ust-java.la liblttng_ust_java_la_SOURCES = LTTngUst.c lttng_ust_java.h + +# Generated by javac / javah nodist_liblttng_ust_java_la_SOURCES = org_lttng_ust_LTTngUst.h +# Explicit dependency to ensure the header is generated before the +# C file is built. +LTTngUst.lo: org_lttng_ust_LTTngUst.h + liblttng_ust_java_la_LIBADD = -lc \ $(top_builddir)/src/lib/lttng-ust/liblttng-ust.la $(jarfile): classnoinst.stamp - $(JAR) cf $(JARFLAGS) $@ $(pkgpath)/*.class + $(JAR) cf $(JARFLAGS) $@ -C $(JAVAROOT) $(pkgpath)/LTTngUst.class + +# Ensure the javaroot directory is created before the Java class files are built. +$(pkgpath)/LTTngUst.java: $(JAVAROOT) +$(JAVAROOT): + -test -d $(JAVAROOT) || mkdir $(JAVAROOT) if !HAVE_JAVAH # If we don't have javah, assume we are running openjdk >= 10 and use javac # to generate the jni header file. AM_JAVACFLAGS = -h . -org_lttng_ust_LTTngUst.h: $(jarfile) +# The header file will be generated by javac when building the Java class +# files, add a dependency on the stamp file to ensure proper ordering. +org_lttng_ust_LTTngUst.h: classnoinst.stamp else -org_lttng_ust_LTTngUst.h: jni-header.stamp - -jni-header.stamp: $(dist_noinst_JAVA) - $(JAVAH) -classpath $(srcdir) $(JAVAHFLAGS) org.lttng.ust.LTTngUst && \ - echo "JNI header generated" > jni-header.stamp +org_lttng_ust_LTTngUst.h: + $(JAVAH) -classpath $(srcdir) $(JAVAHFLAGS) org.lttng.ust.LTTngUst endif -all-local: org_lttng_ust_LTTngUst.h - EXTRA_DIST = README -CLEANFILES = $(jarfile) $(pkgpath)/*.class jni-header.stamp org_lttng_ust_LTTngUst.h +CLEANFILES = $(jarfile) org_lttng_ust_LTTngUst.h + +clean-local: + -rm -rf $(JAVAROOT)