| 1 | # SPDX-License-Identifier: LGPL-2.1-only |
| 2 | |
| 3 | JAVAROOT = .build |
| 4 | jarfile = liblttng-ust-java.jar |
| 5 | jardir = $(datadir)/java |
| 6 | pkgpath = org/lttng/ust |
| 7 | |
| 8 | dist_noinst_JAVA = $(pkgpath)/LTTngUst.java |
| 9 | jar_DATA = $(jarfile) |
| 10 | |
| 11 | AM_CPPFLAGS += -I$(builddir) -I$(srcdir) $(JNI_CPPFLAGS) |
| 12 | |
| 13 | lib_LTLIBRARIES = liblttng-ust-java.la |
| 14 | liblttng_ust_java_la_SOURCES = LTTngUst.c lttng_ust_java.h |
| 15 | |
| 16 | # Generated by javac / javah |
| 17 | nodist_liblttng_ust_java_la_SOURCES = org_lttng_ust_LTTngUst.h |
| 18 | |
| 19 | # Explicit dependency to ensure the header is generated before the |
| 20 | # C file is built. |
| 21 | LTTngUst.lo: org_lttng_ust_LTTngUst.h |
| 22 | |
| 23 | liblttng_ust_java_la_LIBADD = -lc \ |
| 24 | $(top_builddir)/src/lib/lttng-ust/liblttng-ust.la |
| 25 | |
| 26 | $(jarfile): classnoinst.stamp |
| 27 | $(JAR) cf $(JARFLAGS) $@ -C $(JAVAROOT) $(pkgpath)/LTTngUst.class |
| 28 | |
| 29 | # Ensure the javaroot directory is created before the Java class files are built. |
| 30 | $(pkgpath)/LTTngUst.java: $(JAVAROOT) |
| 31 | $(JAVAROOT): |
| 32 | -test -d $(JAVAROOT) || mkdir $(JAVAROOT) |
| 33 | |
| 34 | if !HAVE_JAVAH |
| 35 | # If we don't have javah, assume we are running openjdk >= 10 and use javac |
| 36 | # to generate the jni header file. |
| 37 | AM_JAVACFLAGS = -h . |
| 38 | |
| 39 | # The header file will be generated by javac when building the Java class |
| 40 | # files, add a dependency on the stamp file to ensure proper ordering. |
| 41 | org_lttng_ust_LTTngUst.h: classnoinst.stamp |
| 42 | else |
| 43 | org_lttng_ust_LTTngUst.h: |
| 44 | $(JAVAH) -classpath $(srcdir) $(JAVAHFLAGS) org.lttng.ust.LTTngUst |
| 45 | endif |
| 46 | |
| 47 | EXTRA_DIST = README |
| 48 | |
| 49 | CLEANFILES = $(jarfile) org_lttng_ust_LTTngUst.h |
| 50 | |
| 51 | clean-local: |
| 52 | -rm -rf $(JAVAROOT) |