debian, dev_handlers: Allow conditional compilation of modules

Add the ability to turn off compilation of scst_local, srpt and
several dev_handler. Default to compiling (i.e. no change).
This commit is contained in:
Brian M
2026-02-12 10:58:41 -08:00
committed by Gleb Chesnokov
parent 8d1673b2ac
commit 7ba376819c
2 changed files with 39 additions and 5 deletions

22
debian/rules vendored
View File

@@ -22,7 +22,23 @@ export QLA_DIR=$(DEB_QLA_DIR_SET)
export QLA_INI_DIR=$(DEB_QLA_INI_DIR_SET)
export PKG_BUILD_MODE=$(DEB_PKG_BUILD_MODE)
SUBDIRS=scst $(shell grep -qw '^CONFIG_LIBFC' /boot/config-$(KVER) && echo fcst) iscsi-scst $(QLA_DIR) scst_local scstadmin srpt
# Default to building optional modules (override by changing specific ?=m to =n)
CONFIG_SCST_LOCAL?=m
CONFIG_SCST_SRPT?=m
CONFIG_SCST_TAPE?=m
CONFIG_SCST_CDROM?=m
CONFIG_SCST_MODISK?=m
CONFIG_SCST_CHANGER?=m
CONFIG_SCST_RAID?=m
CONFIG_SCST_PROCESSOR?=m
CONFIG_SCST_USER?=m
export CONFIG_SCST_LOCAL CONFIG_SCST_SRPT CONFIG_SCST_TAPE CONFIG_SCST_CDROM CONFIG_SCST_MODISK CONFIG_SCST_CHANGER CONFIG_SCST_RAID CONFIG_SCST_PROCESSOR CONFIG_SCST_USER
FCST=$(shell grep -qw '^CONFIG_LIBFC' /boot/config-$(KVER) && echo fcst)
ISCSI_SCST=iscsi-scst
SCST_LOCAL=$(shell [ "${CONFIG_SCST_LOCAL}" != "n" ] && echo scst_local)
SCST_SRPT=$(shell [ "${CONFIG_SCST_SRPT}" != "n" ] && echo srpt)
SUBDIRS=scst $(FCST) $(ISCSI_SCST) $(QLA_DIR) $(SCST_LOCAL) scstadmin $(SCST_SRPT)
DESTDIR=$(CURDIR)/debian/tmp
VERSION:=$(shell head -n1 debian/changelog | sed 's/.*(\([0-9.]*\).*).*/\1/')
@@ -70,7 +86,7 @@ install:
{ \
echo dkms.conf && \
echo Makefile && \
for d in fcst iscsi-scst $(QLA_INI_DIR) scst scst_local srpt; do\
for d in fcst iscsi-scst $(QLA_INI_DIR) scst $(SCST_LOCAL) $(SCST_SRPT); do\
echo $$d; \
done; \
} | sed "s,^,usr/src/scst-$(VERSION)/," >debian/scst-dkms.install &&\
@@ -82,7 +98,7 @@ install:
cp debian/scst.dkms \
$(DESTDIR)/usr/src/scst-$(VERSION)/dkms.conf && \
scripts/list-source-files | \
grep -E '^Makefile$$|^(fcst|iscsi-scst|$(QLA_INI_DIR)|scst|scst_local|srpt)/'|\
grep -E '^Makefile$$|^(fcst|iscsi-scst|$(QLA_INI_DIR)|scst|$(SCST_LOCAL)|$(SCST_SRPT))/'|\
tar -T- -cf- | \
tar -C $(DESTDIR)/usr/src/scst-$(VERSION) -xf- && \
find $(DESTDIR) -type f -print0 | xargs -0 -r chmod 0644 && \

View File

@@ -17,5 +17,23 @@ ccflags-y := -I$(src)/../../include \
#ccflags-y += -DCONFIG_DEBUG_EXT_COPY_REMAP
obj-m := scst_cdrom.o scst_changer.o scst_disk.o scst_modisk.o scst_tape.o \
scst_vdisk.o scst_raid.o scst_processor.o scst_user.o
# Default to building optional modules unless explicitly disabled via environment
CONFIG_SCST_CDROM ?= m
CONFIG_SCST_CHANGER ?= m
CONFIG_SCST_MODISK ?= m
CONFIG_SCST_TAPE ?= m
CONFIG_SCST_RAID ?= m
CONFIG_SCST_PROCESSOR ?= m
CONFIG_SCST_USER ?= m
# Core handlers (always built)
obj-m := scst_disk.o scst_vdisk.o
# Optional handlers (controlled by CONFIG variables)
obj-$(CONFIG_SCST_CDROM) += scst_cdrom.o
obj-$(CONFIG_SCST_CHANGER) += scst_changer.o
obj-$(CONFIG_SCST_MODISK) += scst_modisk.o
obj-$(CONFIG_SCST_TAPE) += scst_tape.o
obj-$(CONFIG_SCST_RAID) += scst_raid.o
obj-$(CONFIG_SCST_PROCESSOR) += scst_processor.o
obj-$(CONFIG_SCST_USER) += scst_user.o