Skip to content

Commit 866ff8e

Browse files
committed
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).
1 parent 8d1673b commit 866ff8e

2 files changed

Lines changed: 39 additions & 5 deletions

File tree

debian/rules

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,23 @@ export QLA_DIR=$(DEB_QLA_DIR_SET)
2222
export QLA_INI_DIR=$(DEB_QLA_INI_DIR_SET)
2323
export PKG_BUILD_MODE=$(DEB_PKG_BUILD_MODE)
2424

25-
SUBDIRS=scst $(shell grep -qw '^CONFIG_LIBFC' /boot/config-$(KVER) && echo fcst) iscsi-scst $(QLA_DIR) scst_local scstadmin srpt
25+
# Default to building optional modules (override by changing specific ?=m to =n)
26+
CONFIG_SCST_LOCAL?=m
27+
CONFIG_SCST_SRPT?=m
28+
CONFIG_SCST_TAPE?=m
29+
CONFIG_SCST_CDROM?=m
30+
CONFIG_SCST_MODISK?=m
31+
CONFIG_SCST_CHANGER?=m
32+
CONFIG_SCST_RAID?=m
33+
CONFIG_SCST_PROCESSOR?=m
34+
CONFIG_SCST_USER?=m
35+
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
36+
37+
FCST=$(shell grep -qw '^CONFIG_LIBFC' /boot/config-$(KVER) && echo fcst)
38+
ISCSI_SCST=iscsi-scst
39+
SCST_LOCAL=$(shell [ "${CONFIG_SCST_LOCAL}" != "n" ] && echo scst_local)
40+
SCST_SRPT=$(shell [ "${CONFIG_SCST_SRPT}" != "n" ] && echo srpt)
41+
SUBDIRS=scst $(FCST) $(ISCSI_SCST) $(QLA_DIR) $(SCST_LOCAL) scstadmin $(SCST_SRPT)
2642
DESTDIR=$(CURDIR)/debian/tmp
2743
VERSION:=$(shell head -n1 debian/changelog | sed 's/.*(\([0-9.]*\).*).*/\1/')
2844

@@ -70,7 +86,7 @@ install:
7086
{ \
7187
echo dkms.conf && \
7288
echo Makefile && \
73-
for d in fcst iscsi-scst $(QLA_INI_DIR) scst scst_local srpt; do\
89+
for d in fcst iscsi-scst $(QLA_INI_DIR) scst $(SCST_LOCAL) $(SCST_SRPT); do\
7490
echo $$d; \
7591
done; \
7692
} | sed "s,^,usr/src/scst-$(VERSION)/," >debian/scst-dkms.install &&\
@@ -82,7 +98,7 @@ install:
8298
cp debian/scst.dkms \
8399
$(DESTDIR)/usr/src/scst-$(VERSION)/dkms.conf && \
84100
scripts/list-source-files | \
85-
grep -E '^Makefile$$|^(fcst|iscsi-scst|$(QLA_INI_DIR)|scst|scst_local|srpt)/'|\
101+
grep -E '^Makefile$$|^(fcst|iscsi-scst|$(QLA_INI_DIR)|scst|$(SCST_LOCAL)|$(SCST_SRPT))/'|\
86102
tar -T- -cf- | \
87103
tar -C $(DESTDIR)/usr/src/scst-$(VERSION) -xf- && \
88104
find $(DESTDIR) -type f -print0 | xargs -0 -r chmod 0644 && \

scst/src/dev_handlers/Kbuild

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,23 @@ ccflags-y := -I$(src)/../../include \
1717

1818
#ccflags-y += -DCONFIG_DEBUG_EXT_COPY_REMAP
1919

20-
obj-m := scst_cdrom.o scst_changer.o scst_disk.o scst_modisk.o scst_tape.o \
21-
scst_vdisk.o scst_raid.o scst_processor.o scst_user.o
20+
# Default to building optional modules unless explicitly disabled via environment
21+
CONFIG_SCST_CDROM ?= m
22+
CONFIG_SCST_CHANGER ?= m
23+
CONFIG_SCST_MODISK ?= m
24+
CONFIG_SCST_TAPE ?= m
25+
CONFIG_SCST_RAID ?= m
26+
CONFIG_SCST_PROCESSOR ?= m
27+
CONFIG_SCST_USER ?= m
28+
29+
# Core handlers (always built)
30+
obj-m := scst_disk.o scst_vdisk.o
31+
32+
# Optional handlers (controlled by CONFIG variables)
33+
obj-$(CONFIG_SCST_CDROM) += scst_cdrom.o
34+
obj-$(CONFIG_SCST_CHANGER) += scst_changer.o
35+
obj-$(CONFIG_SCST_MODISK) += scst_modisk.o
36+
obj-$(CONFIG_SCST_TAPE) += scst_tape.o
37+
obj-$(CONFIG_SCST_RAID) += scst_raid.o
38+
obj-$(CONFIG_SCST_PROCESSOR) += scst_processor.o
39+
obj-$(CONFIG_SCST_USER) += scst_user.o

0 commit comments

Comments
 (0)