Skip to content

Commit a8b613f

Browse files
committed
features: Run shell code only once
After the introduction of packimage.mk, the execution of shell halpers started to happen twice, since genimage.mk still calls make and reimports rule.mk. Therefore, the previous design no longer works: FINAL_VAR := $(shell ...) PUT_FEATURE_FILES += $(FINAL_VAR) When make is restarted, the := operation will be executed again. The new feature takes this into account and avoids having to execute shell code for every make sub-run. Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com>
1 parent 3e5694a commit a8b613f

File tree

11 files changed

+35
-21
lines changed

11 files changed

+35
-21
lines changed

features/fsck/rules.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
2-
FSCK_RUNTIME_FILES := $(shell $(call shell-export-vars) $(FEATURESDIR)/fsck/bin/find-files)
2+
3+
$(call assgin-shell-once,FSCK_RUNTIME_FILES,$(FEATURESDIR)/fsck/bin/find-files)
34

45
PUT_FEATURE_DIRS += $(FSCK_DATADIR)
56
PUT_FEATURE_FILES += $(FSCK_FILES) $(FSCK_RUNTIME_FILES)

features/gpu-drm/rules.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
2-
GPUDRM_MODULES := $(shell $(call shell-export-vars) $(FEATURESDIR)/gpu-drm/bin/get-modules)
2+
3+
$(call assgin-shell-once,GPUDRM_MODULES,$(FEATURESDIR)/gpu-drm/bin/get-modules)
34

45
MODULES_ADD += $(GPUDRM_MODULES)

features/kickstart/rules.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
2-
KICKSTART_DIRS := $(shell $(call shell-export-vars) $(FEATURESDIR)/kickstart/bin/get-ks-configs)
2+
3+
$(call assgin-shell-once,KICKSTART_DIRS,$(FEATURESDIR)/kickstart/bin/get-ks-configs)
34

45
FAT_MODULES = fs-vfat /fs/nls/
56
ZFS_MODULES = zfs

features/luks/rules.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
LUKS_CRYPTTAB_DATA =
33

44
ifneq ($(LUKS_CRYPTTAB),)
5-
LUKS_CRYPTTAB_DATA := $(shell $(call shell-export-vars) $(FEATURESDIR)/luks/bin/get-data)
5+
$(call assgin-shell-once,LUKS_CRYPTTAB_DATA,$(FEATURESDIR)/luks/bin/get-data)
66
endif
77

88
MODULES_LOAD += $(LUKS_MODULES)

features/mdadm/rules.mk

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
2-
MDADM_UDEV_RULES := $(shell $(call shell-export-vars) $(FEATURESDIR)/mdadm/bin/generate-udev-rules)
3-
MDADM_DIRS := $(shell $(call shell-export-vars) $(FEATURESDIR)/mdadm/bin/generate-udev-rules dirs)
2+
3+
$(call assgin-shell-once,MDADM_UDEV_RULES,$(FEATURESDIR)/mdadm/bin/generate-udev-rules)
4+
$(call assgin-shell-once,MDADM_DIRS, $(FEATURESDIR)/mdadm/bin/generate-udev-rules dirs)
45

56
PUT_UDEV_RULES += $(MDAMD_RULES_OLD) $(MDAMD_RULES) $(MDADM_UDEV_RULES)
67
PUT_FEATURE_DIRS += $(MDADM_DATADIR) $(MDADM_DIRS)

features/plymouth/rules.mk

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
22
PLYMOUTH_DIRS := $(foreach d,$(LIB_DIRS),$(wildcard $(d)/plymouth))
33

4-
PLYMOUTH_PACK_MODULES := $(shell $(call shell-export-vars) $(FEATURESDIR)/plymouth/bin/get-modules)
5-
PLYMOUTH_PACK_FONT := $(or $(PLYMOUTH_FONT),$(shell fc-match -f '%{file}\n' 'DejaVuSans' ||:))
6-
PLYMOUTH_PACK_THEME := $(shell $(call shell-export-vars) $(FEATURESDIR)/plymouth/bin/get-theme-files "$(PLYMOUTH_THEME)")
4+
$(call assgin-shell-once,PLYMOUTH_PACK_MODULES, $(FEATURESDIR)/plymouth/bin/get-modules)
5+
$(call assgin-shell-once,PLYMOUTH_PACK_THEME, $(FEATURESDIR)/plymouth/bin/get-theme-files "$(PLYMOUTH_THEME)
6+
$(call assgin-shell-once,PLYMOUTH_PACK_DEFFONT, fc-match -f '%{file}\n' 'DejaVuSans' ||:)
7+
8+
PLYMOUTH_PACK_FONT := $(or $(PLYMOUTH_FONT),$(PLYMOUTH_PACK_DEFFONT))
79

810
PLYMOUTH_EXCLUDE_MODULES ?=
911
PLYMOUTH_EXCLUDE_RENDERERS ?= %/x11.so

features/rdshell/rules.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ endif
55

66
ifneq ($(RDSHELL_PASSWORD)$(RDSHELL_COPY_PASSWORD_FROM_USER),)
77
RDSHELL = login
8-
RHSHELL_DIRS := $(shell $(call shell-export-vars) $(FEATURESDIR)/rdshell/bin/add-login dirs)
8+
$(call assign-shell-once,RHSHELL_DIRS,$(FEATURESDIR)/rdshell/bin/add-login dirs)
99
PUT_FEATURE_DIRS += $(RHSHELL_DIRS)
1010
endif
1111

features/rootfs/rules.mk

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
2-
ROOTFS_DIRS := $(shell $(call shell-export-vars) $(FEATURESDIR)/rootfs/bin/create-fstab dirs)
2+
3+
$(call assgin-shell-once,ROOTFS_DIRS,$(FEATURESDIR)/rootfs/bin/create-fstab dirs)
4+
35
PUT_FEATURE_DIR += $(ROOTFS_DIRS)
46

57
$(call set-sysconfig,init,QUIET,$(RUNTIME_QUIET))

features/sshfsroot/rules.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
2-
SSHFS_DIRS := $(shell $(call shell-export-vars) $(FEATURESDIR)/sshfsroot/bin/get-dirs)
2+
3+
$(call assgin-shell-once,SSHFS_DIRS,$(FEATURESDIR)/sshfsroot/bin/get-dirs)
34

45
MODULES_PRELOAD += $(SSHFS_PRELOAD)
56

features/system-glibc/rules.mk

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,39 @@
22

33
ifeq ($(INITRD_NO_LIBNSS),)
44
SYSTEM_GLIBC_LIBNSS_BIN := $(FEATURESDIR)/system-glibc/bin/system-glibc-libnss
5-
SYSTEM_GLIBC_LIBNSS_FILES := $(shell $(call shell-export-vars) $(SYSTEM_GLIBC_LIBNSS_BIN) files)
6-
SYSTEM_GLIBC_LIBNSS_DIRS := $(shell $(call shell-export-vars) $(SYSTEM_GLIBC_LIBNSS_BIN) dirs)
5+
6+
$(call assign-shell-once,SYSTEM_GLIBC_LIBNSS_FILES,$(SYSTEM_GLIBC_LIBNSS_BIN) files)
7+
$(call assign-shell-once,SYSTEM_GLIBC_LIBNSS_DIRS, $(SYSTEM_GLIBC_LIBNSS_BIN) dirs)
78

89
PUT_FEATURE_FILES += $(SYSTEM_GLIBC_LIBNSS_FILES)
910
PUT_FEATURE_DIRS += $(SYSTEM_GLIBC_LIBNSS_DIRS)
1011
endif
1112

1213
ifeq ($(INITRD_NO_LIBGCC_S),)
1314
SYSTEM_GLIBC_LIBGCC_S_BIN := $(FEATURESDIR)/system-glibc/bin/system-glibc-libgcc_s
14-
SYSTEM_GLIBC_LIBGCC_S_FILES := $(shell $(call shell-export-vars) $(SYSTEM_GLIBC_LIBGCC_S_BIN) files)
15-
SYSTEM_GLIBC_LIBGCC_S_DIRS := $(shell $(call shell-export-vars) $(SYSTEM_GLIBC_LIBGCC_S_BIN) dirs)
15+
16+
$(call assign-shell-once,SYSTEM_GLIBC_LIBGCC_S_FILES,$(SYSTEM_GLIBC_LIBGCC_S_BIN) files)
17+
$(call assign-shell-once,SYSTEM_GLIBC_LIBGCC_S_DIRS, $(SYSTEM_GLIBC_LIBGCC_S_BIN) dirs)
1618

1719
PUT_FEATURE_FILES += $(SYSTEM_GLIBC_LIBGCC_S_FILES)
1820
PUT_FEATURE_DIRS += $(SYSTEM_GLIBC_LIBGCC_S_DIRS)
1921
endif
2022

2123
ifeq ($(INITRD_NO_PWGR),)
2224
SYSTEM_GLIBC_PWGR_BIN := $(FEATURESDIR)/system-glibc/bin/system-glibc-pwgr
23-
SYSTEM_GLIBC_PWGR_FILES := $(shell $(call shell-export-vars) $(SYSTEM_GLIBC_PWGR_BIN) files)
24-
SYSTEM_GLIBC_PWGR_DIRS := $(shell $(call shell-export-vars) $(SYSTEM_GLIBC_PWGR_BIN) dirs)
25+
26+
$(call assign-shell-once,SYSTEM_GLIBC_PWGR_FILES,$(SYSTEM_GLIBC_PWGR_BIN) files)
27+
$(call assign-shell-once,SYSTEM_GLIBC_PWGR_DIRS, $(SYSTEM_GLIBC_PWGR_BIN) dirs)
2528

2629
PUT_FEATURE_FILES += $(SYSTEM_GLIBC_PWGR_FILES)
2730
PUT_FEATURE_DIRS += $(SYSTEM_GLIBC_PWGR_DIRS)
2831
endif
2932

3033
ifeq ($(INITRD_NO_NETWORK),)
3134
SYSTEM_GLIBC_NETWORK_BIN := $(FEATURESDIR)/system-glibc/bin/system-glibc-network
32-
SYSTEM_GLIBC_NETWORK_FILES := $(shell $(call shell-export-vars) $(SYSTEM_GLIBC_NETWORK_BIN) files)
33-
SYSTEM_GLIBC_NETWORK_DIRS := $(shell $(call shell-export-vars) $(SYSTEM_GLIBC_NETWORK_BIN) dirs)
35+
36+
$(call assign-shell-once,SYSTEM_GLIBC_NETWORK_FILES,$(SYSTEM_GLIBC_NETWORK_BIN) files)
37+
$(call assign-shell-once,SYSTEM_GLIBC_NETWORK_DIRS, $(SYSTEM_GLIBC_NETWORK_BIN) dirs)
3438

3539
PUT_FEATURE_FILES += $(SYSTEM_GLIBC_NETWORK_FILES)
3640
PUT_FEATURE_DIRS += $(SYSTEM_GLIBC_NETWORK_DIRS)

0 commit comments

Comments
 (0)