-
-#
-# kernel
-#
-
-#kernel-x86_64-MODULE := linux-2.6
-#kernel-x86_64-RPMFLAGS:= --target x86_64
-#kernel-x86_64-SPEC := linux-2.6/scripts/kernel-2.6-$(PLDISTRO).spec
-##ALL += kernel-x86_64
-
-kernel-i686-MODULE := linux-2.6
-kernel-i686-RPMFLAGS:= --target i686
-kernel-i686-SPEC := linux-2.6/scripts/kernel-2.6-$(PLDISTRO).spec
-ALL += kernel-i686
-
-#kernel-i586-MODULE := linux-2.6
-#kernel-i586-RPMFLAGS:= --target i586
-#kernel-i586-SPEC := linux-2.6/scripts/kernel-2.6-planetlab.spec
-#ALL += kernel-i586
-
-#kernel: kernel-i586 kernel-i686
-#kernel-clean: kernel-i586-clean kernel-i686-clean
-kernel: kernel-i686
-kernel-clean: kernel-i686-clean
-
-#
-# vnet
-#
-
-vnet-MODULE := vnet
-vnet-SPEC := vnet/vnet.spec
-ALL += vnet
-
-# Build kernel first so we can bootstrap off of its build
-vnet: kernel
-
+# this is useful for 2.6.22 but will not be needed anymore with 2.6.27
+kernel-SPECVARS := iwlwifi=1
+KERNELS += kernel
+
+kernels: $(KERNELS)
+kernels-clean: $(foreach package,$(KERNELS),$(package)-clean)
+
+ALL += $(KERNELS)
+# this is to mark on which image a given rpm is supposed to go
+IN_BOOTCD += $(KERNELS)
+IN_VSERVER += $(KERNELS)
+IN_BOOTSTRAPFS += $(KERNELS)
+# turns out myplc installs kernel-vserver
+IN_MYPLC += $(KERNELS)
+
+#
+# ipfw: root context module, and slice companion
+#
+ipfwroot-MODULES := ipfwsrc
+ipfwroot-SPEC := planetlab/ipfwroot.spec
+ipfwroot-DEPEND-DEVEL-RPMS := kernel-devel
+ipfwroot-SPECVARS = kernel_version=$(kernel.rpm-version) \
+ kernel_release=$(kernel.rpm-release) \
+ kernel_arch=$(kernel.rpm-arch)
+ALL += ipfwroot
+
+ipfwslice-MODULES := ipfwsrc
+ipfwslice-SPEC := planetlab/ipfwslice.spec
+ipfwslice-SPECVARS = kernel_version=$(kernel.rpm-version) \
+ kernel_release=$(kernel.rpm-release) \
+ kernel_arch=$(kernel.rpm-arch)
+ALL += ipfwslice
+
+# this doesn't build on f12 - weird all right - I suspect gcc to be smarter but that needs investigation
+# is madwifi still current anyway ? should we move to ath5k instead ?
+ifneq "$(DISTRONAME)" "f12"