default: all

include globals.mk
include functions.mk
include use.mk
include images.mk
include clean.mk

PRODUCTS = kde.cd lite.cd slinux.cd gnome.cd minimal.cd icemaker.cd fvwm.cd \
	test.dvd runa.dvd etersoft.dvd buildsystem.cd \
	ltsp-kde3.cd ltsp-kde3.dvd ltsp-kde.cd ltsp-gnome.cd ltsp-slinux.cd \
	live.cd live-gnome.cd live-lite.cd live-xlite.cd live-homeros.cd \
	live-kde.dvd sugar.cd lxde.cd office-server.cd school-server.cd server-light.cd children.cd \
	rescue.cd custom.cd \
	master.dvd junior.dvd school-lite.cd1 school-lite.cd2 \
	centaurus.dvd centaurus-test.dvd \
	chainmail.cd school-terminal.dvd

.PHONY: $(PRODUCTS) rinse

# this should build something reasonable 
# after ./configure --with-distro={desktop,lite}
all: kde.dvd

# "|" in prerequisites means...
# Quick answer: "... the rules to be invoked without forcing the target to be updated
# if one of those rules is executed."
# Long answer: "http://www.gnu.org/software/make/manual/make.html#Prerequisite-Types"

# Mandatory actions for any product:
$(PRODUCTS): | rinse

# special
openscada.dvd: | use-oscada-desktop use-kde-live use-openscada use-live-restore $(EVERYTHING) install-dvd5.flash

# distro construction
children.cd: | use-kde3-live use-children live live-cd.flash
kde.cd: | use-kde-lite use-nm install2 main install-cd.flash
kde.dvd: | use-kde-desktop use-kde-live use-nm use-live-restore use-freenx $(EVERYTHING) install-dvd5.flash
gnome.dvd: |  use-gnome-live-dvd use-gnome-dvd use-nm use-live-restore use-compiz use-freenx install2 main live rescue install-dvd5.flash
gnome-test.dvd: |  use-gnome-dvd use-compiz use-nm use-freenx install2 main install-dvd5.flash
test.dvd: | use-kde-desktop use-nm use-freenx install2 main install-dvd5.flash
kde3.cd: | use-kde3-lite use-nm install2 main install-cd.flash
kde3.dvd: | use-kde3 use-nm use-freenx $(EVERYTHING)  install-dvd5.flash

gnome.cd: | use-gnome use-nm use-compiz use-freenx install2 main install-cd.flash
workbench.cd: | use-gnome-workbench use-desktop use-pkcs11 use-pkcs11-workbench install2 main install-cd.flash
lite.cd: | use-xfce use-xdm install2 main install-cd.flash
slinux.cd: | use-slinux use-gdm install2 main install-cd.flash

minimal.cd: | use-icewm use-xdm install2 main  install-cd.flash
icemaker.cd: | use-icewm use-wmaker use-xdm install2 main install-cd.flash
fvwm.cd: | use-fvwm use-xdm install2 main install-cd.flash
lxde.cd: | use-lxde use-xdm install2 main install-cd.flash
sugar.cd: | use-sugar use-xdm install2 main install-cd.flash

custom.cd: | use-custom install2 main install-cd.flash
rescue.cd: | rescue rescue-cd.flash
boot-debug.cd: | use-server boot-debug-cd.flash

slinux-live.cd: | use-slinux use-gdm live live-cd.flash
live.cd: | use-kde-live use-openscada use-nm live live-cd.flash
live-custom.cd: | use-custom live-cd.flash
live-gnome.cd: | use-gnome use-nm live live-cd.flash
live-gnome-light.cd: use-gnome-light use-nm live live-cd.flash
live-gnome-artist.cd: use-gnome-artist-live use-nm live live-cd.flash
live-gnome.dvd: | use-gnome-live-dvd use-nm live live-cd.flash
live-homeros.cd: | use-homeros live live-cd.flash
live-xlite.cd: | use-icewm live live-cd.flash
live-rdp.cd: | use-rdp live live-cd.flash
live-icemaker.cd: | use-icewm use-wmaker use-autologin live live-cd.flash
live-kde.dvd: | use-kde-live-dvd use-nm live live-cd.flash
live-lite.cd: | use-xfce use-xdm live live-cd.flash

# Experimental crypto
crypto-flash: use-gnome-light use-nm live use-encfs-homes live-cd.flash

# full contrib won't currently build from sisyphus
#runa.dvd: | use-kde use-runa $(EVERYTHING) dvd.flash
etersoft.cd: | use-kde-lite use-etersoft-network use-nm install2 main install-cd.flash
etersoft.dvd: | use-kde use-kde-live use-etersoft-network use-nm install2 main live rescue contrib  install-dvd5.flash
ltsp-kde3.cd: | use-kde3-lite use-ltsp install2 main ltsp install-cd.flash
ltsp-kde3.dvd: | use-kde3 use-ltsp $(EVERYTHING)  ltsp install-dvd5.flash
ltsp-gnome.cd: | use-gnome-light use-ltsp install2 main ltsp install-cd.flash
ltsp-kde.cd: | use-kde-lite use-ltsp install2 main ltsp install-cd.flash
ltsp-slinux.cd: | use-slinux use-ltsp install2 main ltsp install-cd.flash
runa.dvd: | use-kde use-runa use-nm install2 main live rescue  install-dvd5.flash

office-server.cd: | use-server use-office-server install2 main rescue install-cd.flash
school-server.cd: | use-server use-office-server use-school-server install2 main rescue install-cd.flash
backup-server.cd: | use-backup install2 main install-cd.flash
389-server.cd: | use-389 install2 main install-cd.flash
v12n-server.cd: | use-v12n install2 main install-cd.flash
pbx-office.cd: | use-pbx-office install2 main rescue install-cd.flash
pbx-huge.dvd: | use-pbx-huge install2 main rescue install-cd.flash

chainmail.cd: | use-chainmail install2 main rescue install-cd.flash

server-light.cd: | use-server-light install2 main rescue install-cd.flash

buildsystem.cd: | use-kde-lite use-buildsystem install2 main  install-cd.flash

centaurus.dvd:	|  use-server-light  use-centaurus use-live-restore use-gnome-live-dvd install2 main rescue live install-dvd5.flash
centaurus-test.dvd:	|  use-server-light  use-centaurus use-live-restore use-gnome-live-dvd install2 main install-dvd5.flash

# school suite
master.dvd: | use-pspo-kde use-school-master vm-profile-master install2 main live install-dvd5.flash
master-test.dvd: | use-pspo-kde vm-profile-master install2 main install-dvd5.flash
junior.dvd: | use-pspo-gnome vm-profile-master install2 main live install-dvd5.flash
school-lite.cd1: | use-school-lite use-xfce-docs use-docs use-xfce-graphics-lite use-desktop \
	install2 main install-cd.flash
school-lite.cd2: | use-school-lite addon-pspo-xfce addon main addon-cd.flash
school-terminal.dvd: | use-pspo-kde3 use-kde3 use-ltsp vm-profile-master install2 main rescue ltsp install-dvd5.flash