| 1 | # SPDX-FileCopyrightText: 2023 EfficiOS, Inc |
| 2 | # |
| 3 | # SPDX-License-Identifier: LGPL-2.1-only |
| 4 | |
| 5 | JAVAROOT = . |
| 6 | AM_JAVACFLAGS = -classpath $(CLASSPATH):$(builddir)/../lttng-ust-agent-common/lttng-ust-agent-common.jar |
| 7 | |
| 8 | pkgpath = org/lttng/ust/agent/log4j |
| 9 | |
| 10 | jarfile_version = 1.0.0 |
| 11 | jarfile_manifest = $(srcdir)/Manifest.txt |
| 12 | jarfile_symlink = lttng-ust-agent-log4j.jar |
| 13 | jarfile = lttng-ust-agent-log4j-$(jarfile_version).jar |
| 14 | |
| 15 | jardir = $(datadir)/java |
| 16 | |
| 17 | log4jjniout = ../../jni/log4j |
| 18 | |
| 19 | dist_noinst_JAVA = $(pkgpath)/LttngLog4jAgent.java \ |
| 20 | $(pkgpath)/LttngLog4jApi.java \ |
| 21 | $(pkgpath)/LttngLogAppender.java |
| 22 | |
| 23 | dist_noinst_DATA = $(jarfile_manifest) |
| 24 | |
| 25 | jar_DATA = $(jarfile) |
| 26 | |
| 27 | stamp = log4j-jni-header.stamp |
| 28 | classes = $(pkgpath)/*.class |
| 29 | |
| 30 | $(jarfile): classnoinst.stamp |
| 31 | $(JAR) cfm $(JARFLAGS) $@ $(jarfile_manifest) $(classes) && rm -f $(jarfile_symlink) && $(LN_S) $@ $(jarfile_symlink) |
| 32 | |
| 33 | if !HAVE_JAVAH |
| 34 | # If we don't have javah, assume we are running openjdk >= 10 and use javac |
| 35 | # to generate the jni header file. |
| 36 | AM_JAVACFLAGS += -h $(log4jjniout) |
| 37 | else |
| 38 | log4j-jni-header.stamp: $(dist_noinst_JAVA) |
| 39 | $(JAVAH) -classpath $(CLASSPATH):$(srcdir) -d $(log4jjniout) $(JAVAHFLAGS) org.lttng.ust.agent.log4j.LttngLog4jApi && \ |
| 40 | echo "Log4j JNI header generated" > log4j-jni-header.stamp |
| 41 | |
| 42 | all-local: $(stamp) |
| 43 | endif |
| 44 | |
| 45 | install-data-hook: |
| 46 | cd $(DESTDIR)/$(jardir) && rm -f $(jarfile_symlink) && $(LN_S) $(jarfile) $(jarfile_symlink) |
| 47 | |
| 48 | uninstall-hook: |
| 49 | cd $(DESTDIR)/$(jardir) && rm -f $(jarfile_symlink) |
| 50 | |
| 51 | CLEANFILES = *.jar \ |
| 52 | $(pkgpath)/*.class \ |
| 53 | log4j-jni-header.stamp \ |
| 54 | $(log4jjniout)/org_lttng_ust_agent_log4j_LttngLog4jApi.h |