Commit a52b7476 authored by Michael Shigorin's avatar Michael Shigorin

initial "+shortcut" support and refactoring

It looks like the intermediate targets aren't all equal: some define a finished feature while some create a common lower level piece of configuration. Let's do shortcuts for the former so that a distro line can be more terse and descriptive; help targets in features.in/ tweaked accordingly.
parent deb63e0d
...@@ -9,16 +9,15 @@ distro/.desktop-mini: distro/.desktop-base \ ...@@ -9,16 +9,15 @@ distro/.desktop-mini: distro/.desktop-base \
use/lowmem use/x11/xdm use/power/acpi/button \ use/lowmem use/x11/xdm use/power/acpi/button \
use/cleanup/alterator use/cleanup/alterator
distro/icewm: distro/.desktop-mini distro/icewm: distro/.desktop-mini +icewm
@$(call add,BASE_LISTS,$(call tags,icewm desktop))
distro/tde: distro/.desktop-mini use/x11/kdm distro/tde: distro/.desktop-mini use/x11/kdm
@$(call add,BASE_LISTS, \ @$(call add,BASE_LISTS, \
$(call tags,(base || desktop) && (network || tde))) $(call tags,(base || desktop) && (network || tde)))
distro/ltsp-icewm: distro/icewm use/ltsp/base distro/ltsp-icewm: distro/icewm +ltsp
distro/ltsp-tde: distro/tde use/ltsp/base distro/ltsp-tde: distro/tde +ltsp
distro/desktop-systemd: distro/icewm use/systemd distro/desktop-systemd: distro/icewm use/systemd
......
...@@ -7,47 +7,35 @@ distro/syslinux: distro/.init \ ...@@ -7,47 +7,35 @@ distro/syslinux: distro/.init \
distro/dos: distro/.init use/dos use/syslinux/ui-menu distro/dos: distro/.init use/dos use/syslinux/ui-menu
distro/rescue: distro/.base use/rescue use/syslinux/ui-menu distro/rescue: distro/.base use/rescue use/syslinux/ui-menu
distro/live: distro/.base use/live/base use/power/acpi/cpufreq
distro/live-systemd: distro/.base use/live/base use/systemd distro/live-systemd: distro/.base use/live/base use/systemd
distro/.live-x11: distro/live use/firmware use/power/acpi/button distro/.live-base: distro/.base use/live/base use/power/acpi/button
distro/.live-desktop: distro/.base use/syslinux/ui-vesamenu +live
distro/live-isomd5sum: distro/.base use/live/base use/isomd5sum distro/live-isomd5sum: distro/.base use/live/base use/isomd5sum
@$(call add,LIVE_PACKAGES,livecd-isomd5sum) @$(call add,LIVE_PACKAGES,livecd-isomd5sum)
distro/live-builder: pkgs := livecd-tmpfs livecd-online-repo mkimage-profiles distro/live-builder: pkgs := livecd-tmpfs livecd-online-repo mkimage-profiles
distro/live-builder: distro/.base use/repo/main \ distro/live-builder: distro/.live-base use/dev/mkimage use/dev/repo
use/live/base use/dev/mkimage use/power/acpi/button
@$(call add,LIVE_LISTS,$(call tags,base && (server || builder))) @$(call add,LIVE_LISTS,$(call tags,base && (server || builder)))
@$(call add,LIVE_PACKAGES,zsh sudo)
@$(call add,LIVE_PACKAGES,$(pkgs)) @$(call add,LIVE_PACKAGES,$(pkgs))
@$(call add,LIVE_PACKAGES,zsh sudo apt-repo)
@$(call add,MAIN_PACKAGES,rpm-build basesystem)
@$(call add,MAIN_PACKAGES,fakeroot sisyphus_check)
@$(call add,MAIN_PACKAGES,syslinux pciids memtest86+ mkisofs)
@$(call add,MAIN_PACKAGES,file make-initrd make-initrd-propagator)
@$(call add,MAIN_PACKAGES,$(pkgs)) @$(call add,MAIN_PACKAGES,$(pkgs))
@$(call add,MAIN_PACKAGES,syslinux pciids memtest86+ mkisofs)
distro/live-install: distro/.base use/live/base use/syslinux/localboot.cfg distro/live-install: distro/.live-base use/syslinux/localboot.cfg
@$(call add,LIVE_PACKAGES,live-install) @$(call add,LIVE_PACKAGES,live-install)
distro/live-icewm: distro/.live-x11 use/live/autologin distro/live-icewm: distro/.live-desktop use/live/autologin +icewm
@$(call add,LIVE_LISTS, \ distro/live-razorqt: distro/.live-desktop +razorqt
$(call tags,(base || desktop) && (live || network || icewm))) distro/live-tde: distro/.live-desktop +tde
distro/live-razorqt: distro/.live-x11 use/x11/lightdm use/syslinux/ui-vesamenu
@$(call add,LIVE_LISTS, \
$(call tags,(base || desktop) && (live || network || razorqt)))
distro/live-tde: distro/.live-x11 use/x11/kdm use/syslinux/ui-vesamenu
@$(call add,LIVE_LISTS, \
$(call tags,(base || desktop) && (live || network || tde)))
distro/live-rescue: distro/live-icewm distro/live-rescue: distro/live-icewm
@$(call add,LIVE_LISTS,$(call tags,rescue && (fs || live || x11))) @$(call add,LIVE_LISTS,$(call tags,rescue && (fs || live || x11)))
@$(call add,LIVE_LISTS, \ @$(call add,LIVE_LISTS, \
$(call tags,(base || extra) && (archive || rescue || network))) $(call tags,(base || extra) && (archive || rescue || network)))
distro/live-webkiosk: distro/.live-x11 use/live/autologin use/live/hooks distro/live-webkiosk: distro/.live-desktop use/live/autologin use/live/hooks
@$(call add,LIVE_PACKAGES,livecd-webkiosk) @$(call add,LIVE_PACKAGES,livecd-webkiosk)
@$(call add,LIVE_PACKAGES,fonts-ttf-dejavu fonts-ttf-droid) @$(call add,LIVE_PACKAGES,fonts-ttf-dejavu fonts-ttf-droid)
......
...@@ -2,15 +2,29 @@ ...@@ -2,15 +2,29 @@
# (only regarding the needed subprofiles) # (only regarding the needed subprofiles)
ifndef BUILDDIR ifndef BUILDDIR
help all:
help/plus all: banner
@$(call grepper,'^+')
help/features: banner
@$(call grepper,'^use/')
banner:
@echo "** BUILDDIR not defined; available features:" @echo "** BUILDDIR not defined; available features:"
grepper = $(and $(1),$(grepper_body))
define grepper_body
@for dir in */; do \ @for dir in */; do \
echo -n "$$dir: "; \ out="`grep -h $(1) $$dir/config.mk \
grep -h '^use/' $$dir/config.mk \
| cut -f1 -d: \ | cut -f1 -d: \
| tr ' ' '\n\n' \
| grep $(1) \
| tr '\n' ' ' \ | tr '\n' ' ' \
| sort -u; \ | sort -u`"; \
[ -z "$$out" ] || echo "$$dir: $$out"; \
done done
endef
else else
include $(BUILDDIR)/distcfg.mk include $(BUILDDIR)/distcfg.mk
......
...@@ -22,6 +22,10 @@ ...@@ -22,6 +22,10 @@
построенных на одном базовом, можно воспользоваться подкаталогом построенных на одном базовом, можно воспользоваться подкаталогом
с именем исходного базового субпрофиля (см. $src, $dst в Makefile). с именем исходного базового субпрофиля (см. $src, $dst в Makefile).
Наиболее употребительные цели можно снабжать "ярлычками" вроде
"+icewm" с тем, чтобы сделать более краткими и выразительными
использующие их правила. Просьба не злоупотреблять количеством.
Каталог lib/ является специфическим для фич, определяющих Каталог lib/ является специфическим для фич, определяющих
построение конкретного вида образа -- см. build-*/. построение конкретного вида образа -- см. build-*/.
......
use/dev: use/dev:
@$(call add_feature) @$(call add_feature)
@$(call add,COMMON_PACKAGES,git-core hasher gear) @$(call add,THE_PACKAGES,git-core hasher gear)
use/dev/mkimage: use/dev use/dev/mkimage: use/dev
@$(call add,COMMON_PACKAGES,mkimage) @$(call add,THE_PACKAGES,mkimage shadow-change)
@$(call add,LIVE_PACKAGES,shadow-change)
use/dev/repo: use/dev use/repo/main
@$(call add,THE_PACKAGES,apt-repo)
@$(call add,MAIN_PACKAGES,rpm-build basesystem)
@$(call add,MAIN_PACKAGES,fakeroot sisyphus_check)
@$(call add,MAIN_PACKAGES,file make-initrd make-initrd-propagator)
+live: use/live/desktop
# copy stage2 as live # copy stage2 as live
use/live: use/stage2 sub/stage2/live use/live: use/stage2 sub/stage2/live
@$(call add_feature) @$(call add_feature)
...@@ -5,11 +7,15 @@ use/live: use/stage2 sub/stage2/live ...@@ -5,11 +7,15 @@ use/live: use/stage2 sub/stage2/live
use/live/base: use/live use/syslinux/ui-menu use/live/base: use/live use/syslinux/ui-menu
@$(call add,LIVE_LISTS,$(call tags,base && (live || network))) @$(call add,LIVE_LISTS,$(call tags,base && (live || network)))
use/live/x11: use/live/base use/x11/xorg use/x11/wacom use/virtualbox/guest use/live/desktop: use/live/base use/x11/xorg use/x11/wacom \
use/firmware use/virtualbox/guest \
use/power/acpi/button use/power/acpi/cpufreq
@$(call add,LIVE_LISTS,$(call tags,desktop && (live || network)))
# NB: there's an unconditional live/image-scripts.d/40-autologin script # NB: there's an unconditional live/image-scripts.d/40-autologin script
# *but* it only configures some of the *existing* means; let's add one # *but* it only configures some of the *existing* means; let's add one
use/live/autologin: use/live/x11 # for the cases when there should be no display manager
use/live/autologin: use/live/desktop
@$(call add,LIVE_PACKAGES,autologin xinit) @$(call add,LIVE_PACKAGES,autologin xinit)
use/live/hooks: use/live use/live/hooks: use/live
......
+ltsp: use/ltsp/base
use/ltsp: use/ltsp:
@$(call add,INSTALL2_PACKAGES,installer-feature-ltsp-stage2) @$(call add,INSTALL2_PACKAGES,installer-feature-ltsp-stage2)
@$(call add,MAIN_LISTS,ltsp-client ltsp-client.$(ARCH)) @$(call add,MAIN_LISTS,ltsp-client ltsp-client.$(ARCH))
......
+icewm: use/x11/icewm
+razorqt: use/x11/razorqt use/x11/lightdm
+tde: use/x11/tde use/x11/kdm
use/x11/xorg: use/x11/xorg:
@$(call add,THE_LISTS,xorg) @$(call add,THE_LISTS,xorg)
@$(call add,THE_KMODULES,drm) @$(call add,THE_KMODULES,drm)
...@@ -13,9 +17,18 @@ use/x11/runlevel5: use/x11/xorg ...@@ -13,9 +17,18 @@ use/x11/runlevel5: use/x11/xorg
use/x11/xdm: use/x11/runlevel5 use/x11/xdm: use/x11/runlevel5
@$(call add,THE_PACKAGES,xdm installer-feature-no-xconsole) @$(call add,THE_PACKAGES,xdm installer-feature-no-xconsole)
use/x11/kdm: use/x11/runlevel5
@$(call add,THE_PACKAGES,kdebase-kdm)
### : some set()-like thing might be better? ### : some set()-like thing might be better?
use/x11/lightdm: use/x11/runlevel5 use/x11/lightdm: use/x11/runlevel5
@$(call add,THE_PACKAGES,lightdm) @$(call add,THE_PACKAGES,lightdm)
use/x11/kdm: use/x11/runlevel5
@$(call add,THE_PACKAGES,kdebase-kdm)
use/x11/icewm: use/x11/xorg
@$(call add,THE_LISTS,$(call tags,icewm desktop))
use/x11/razorqt: use/x11/xorg
@$(call add,THE_LISTS,$(call tags,razorqt desktop))
use/x11/tde: use/x11/xorg
@$(call add,THE_LISTS,$(call tags,tde desktop))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment