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