-#
-# Makefile for the LTT objects.
-#
+# SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
ifneq ($(KERNELRELEASE),)
-ifneq ($(CONFIG_MARKERS),)
-obj-m += ltt-core.o
-obj-m += ltt-tracer.o
-obj-m += ltt-marker-control.o
+# This part of the Makefile is used when called by the kernel build system
+# and defines the modules to be built.
-obj-m += ltt-relay.o
-ltt-relay-objs := ltt-event-header.o ltt-serialize.o ltt-type-serializer.o
-#ltt-ascii.o
+obj-$(CONFIG_LTTNG) += src/
-obj-m += ltt-statedump.o
-obj-m += ltt-trace-control.o
-obj-m += ltt-userspace-event.o
-obj-m += ltt-filter.o
-obj-m += ltt-kprobes.o
-obj-m += probes/
+else # KERNELRELEASE
-endif
+# This part of the Makefile is used when the 'make' command is runned in the
+# base directory of the lttng-modules sources. It sets some environment and
+# calls the kernel build system to build the actual modules.
-else
- KERNELDIR ?= /lib/modules/$(shell uname -r)/build
- PWD := $(shell pwd)
- CFLAGS = $(EXTCFLAGS)
+KERNELDIR ?= /lib/modules/$(shell uname -r)/build
+PWD := $(shell pwd)
-default:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
+default: modules
+
+modules:
+ $(MAKE) -C $(KERNELDIR) M=$(PWD)/src CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m modules
modules_install:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
- /sbin/depmod -a
+ $(MAKE) -C $(KERNELDIR) M=$(PWD)/src CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m modules_install
clean:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) clean
+ $(MAKE) -C $(KERNELDIR) M=$(PWD)/src clean
+
+# The following targets are used for development and debugging. They are not
+# part of the build system.
+%.i: %.c
+ $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m $@
+
+%.o: %.c
+ $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_LTTNG=m CONFIG_LTTNG_CLOCK_PLUGIN_TEST=m $@
-endif
+endif # KERNELRELEASE