fix: tie compaction probe build to CONFIG_COMPACTION
[lttng-modules.git] / probes / Kbuild
index c53718814d4646839bad46ac8812d0955cb81ec6..7f88c9f507f6dd12308273f10d9c03bcd0d50ab0 100644 (file)
@@ -30,19 +30,37 @@ ifneq ($(CONFIG_KVM),)
   obj-$(CONFIG_LTTNG) += lttng-probe-kvm.o
   ifneq ($(CONFIG_X86),)
     kvm_dep_lapic = $(srctree)/arch/x86/kvm/lapic.h
-    ifneq ($(wildcard $(kvm_dep_lapic)),)
-      kvm_dep = $(srctree)/virt/kvm/iodev.h $(srctree)/include/kvm/iodev.h
-      ifneq ($(wildcard $(kvm_dep)),)
-        CFLAGS_lttng-probe-kvm-x86.o += -I$(srctree)/virt/kvm
-        CFLAGS_lttng-probe-kvm-x86-mmu.o += -I$(srctree)/virt/kvm
-        obj-$(CONFIG_LTTNG) += lttng-probe-kvm-x86.o
-        obj-$(CONFIG_LTTNG) += lttng-probe-kvm-x86-mmu.o
-      else
-        $(warning File $(kvm_dep) not found. Probe "kvm" x86-specific is disabled. Use full kernel source tree to enable it.)
-      endif # $(wildcard $(kvm_dep))
-    else
+    kvm_dep_lapic_check = $(wildcard $(kvm_dep_lapic))
+    ifneq ($(kvm_dep_lapic_check),)
+      # search for iodev.h in any of its known locations
+      kvm_dep_iodev = $(srctree)/virt/kvm/iodev.h $(srctree)/include/kvm/iodev.h
+      kvm_dep_iodev_check = $(wildcard $(kvm_dep_iodev))
+      ifneq ($(kvm_dep_iodev_check),)
+        kvm_dep_emulate = $(srctree)/arch/x86/kvm/kvm_emulate.h
+        kvm_dep_emulate_wildcard = $(wildcard $(kvm_dep_emulate))
+        kvm_dep_emulate_check = $(shell \
+        if [ \( $(VERSION) -ge 6 \
+           -o \( $(VERSION) -eq 5 -a $(PATCHLEVEL) -eq 7 \) \) -a \
+           -z "$(kvm_dep_emulate_wildcard)" ] ; then \
+          echo "warn" ; \
+        else \
+          echo "ok" ; \
+        fi ;)
+        ifeq ($(kvm_dep_emulate_check),ok)
+          CFLAGS_lttng-probe-kvm-x86.o += -I$(srctree)/virt/kvm \
+                     -I$(srctree)/arch/x86/kvm
+          CFLAGS_lttng-probe-kvm-x86-mmu.o += -I$(srctree)/virt/kvm
+          obj-$(CONFIG_LTTNG) += lttng-probe-kvm-x86.o
+          obj-$(CONFIG_LTTNG) += lttng-probe-kvm-x86-mmu.o
+        else # ($(kvm_dep_emulate_check),ok)
+          $(warning File $(kvm_dep_emulate) not found. Probe "kvm" x86-specific is disabled. Use full kernel source tree to enable it.)
+        endif # ($(kvm_dep_emulate_check),ok)
+      else # $(kvm_dep_iodev_check)
+        $(warning File $(kvm_dep_iodev) not found. Probe "kvm" x86-specific is disabled. Use full kernel source tree to enable it.)
+      endif # $(kvm_dep_iodev_check)
+    else # $(kvm_dep_lapic_check)
       $(warning File $(kvm_dep_lapic) not found. Probe "kvm" x86-specific is disabled. Use full kernel source tree to enable it.)
-    endif # $(wildcard $(kvm_dep_lapic))
+    endif # $(kvm_dep_lapic_check)
   endif # CONFIG_X86
 endif # CONFIG_KVM
 
@@ -149,7 +167,9 @@ ifneq ($(CONFIG_BTRFS_FS),)
   endif # $(wildcard $(btrfs_dep))
 endif # CONFIG_BTRFS_FS
 
-obj-$(CONFIG_LTTNG) += lttng-probe-compaction.o
+ifneq ($(CONFIG_COMPACTION),)
+  obj-$(CONFIG_LTTNG) += lttng-probe-compaction.o
+endif # CONFIG_COMPACTION
 
 ifneq ($(CONFIG_EXT4_FS),)
   ext4_dep = $(srctree)/fs/ext4/*.h
@@ -169,13 +189,11 @@ ifneq ($(CONFIG_FRAME_WARN),0)
   CFLAGS_lttng-probe-printk.o += -Wframe-larger-than=2200
 endif
 
-obj-$(CONFIG_LTTNG) +=  $(shell \
-    if [ $(VERSION) -ge 4 \
-      -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -ge 6 \) \
-      -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -eq 5 -a $(SUBLEVEL) -ge 2 \) \
-      -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -eq 4 -a $(SUBLEVEL) -ge 9 \) \
-      -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -eq 0 -a $(SUBLEVEL) -ge 41 \) ] ; then \
-      echo "lttng-probe-random.o" ; fi;)
+# Introduced in v3.6, remove in v5.18
+random_dep = $(srctree)/include/trace/events/random.h
+ifneq ($(wildcard $(random_dep)),)
+  obj-$(CONFIG_LTTNG) += lttng-probe-random.o
+endif
 
 obj-$(CONFIG_LTTNG) +=  $(shell \
   if [ $(VERSION) -ge 4 \
This page took 0.025608 seconds and 4 git commands to generate.