# Top-level Makefile for boot-floppies
#   see README* for information

# @@ Marcel FIXME: resc*.bin target for i386 make both resc*.bin and root*.bin:
#                  update scripts and clean make rules

# configurable variables reside in the config file
-include config

top_dir		:= $(CURDIR)

tmpdir		:= $(shell . ./common.sh; echo $$tmpdir)

# where to look for .deb files (local updates, archive base & admin dirs)
pathcmd		= ls -1ft $(CURDIR)/updates/P $(local_dir)/P $(archive)/base/P $(archive)/admin/P $(archive)/devel/P $(archive)/utils/P 2>/dev/null | head -1

kbd_package	:= $(shell $(pathcmd:P=console-data*.deb))

export GZIP	:= -9

# documentation rules live in documentation/Makefile*
-include documentation/Makefile.docs

#---------------------------------------------------------------------------

ifneq ($(strip $(findstring $(LINGUA),$(LATIN1))),)
	export FONT=lat1u-16.psf
endif
ifneq ($(strip $(findstring $(LINGUA),$(LATIN2))),)
	export FONT=iso02g.psf
endif
ifneq ($(strip $(findstring $(LINGUA),$(LATIN3))),)
	export FONT=iso03g.psf
endif
ifneq ($(strip $(findstring $(LINGUA),$(KOI8-R))),)
	export FONT=koi8-r.psf
endif

ifeq ($(FONT), iso02g.psf)
	export SFONT=iso02g.psf
endif
ifeq ($(FONT), iso03g.psf)
	export SFONT=iso03.f16
endif
ifeq ($(FONT), koi8-r.psf)
	export SFONT=koi8-r
endif

# shell needs to be set to base for the release target, at least
SHELL = bash

# [ED] avoid direct compilation of C programs from the utilities subdir
# (see the root.bin dependencies).  BTW utils target does the right job.
.SUFFIXES:

all::	build

null:
	: Null target for testing Makefile with "make -p null"

#---------------------------------------------------------------------------

ifneq ($(EXT),)
# if second call from build target (make EXT=...)
# build alternate rescue/drivers disks
    kver:=$(altkver)
    altkver:=
endif

# Only need major and minor numbers, not patchlevel.
KERNEL_VERSION_CODE := $(shell echo ${kver} | awk -FS=. '{v = ($$1 * 65536 + $$2 * 256); print v;}')

# find the newest kernel image of each type
kernel	:= $(shell $(pathcmd:P=kernel-image-$(kver)_*.deb))
# sanity fallback for kernel
ifeq ($(strip $(kernel)),)
kernel	:= kernel-image-$(kver)_$(kver)-1.deb
endif

ifndef pcmcia_kver
pcmcia_kver		:= $(kver)
endif

pcmcia_package		:= $(shell $(pathcmd:P=pcmcia-modules-$(pcmcia_kver)_*.deb))

#### i386 part
kerneli386_compact := $(shell $(pathcmd:P=kernel-image-$(kver)-compact_*.deb))
pcmciai386_compact := $(shell $(pathcmd:P=pcmcia-modules-$(kver)-compact_*.deb))
kerneli386_udma66 := $(shell $(pathcmd:P=kernel-image-$(kver)-ide_*.deb))
pcmciai386_udma66 := $(shell $(pathcmd:P=pcmcia-modules-$(kver)-ide_*.deb))
kerneli386_idepci := $(shell $(pathcmd:P=kernel-image-$(kver)-idepci_*.deb))
pcmciai386_idepci := $(shell $(pathcmd:P=pcmcia-modules-$(kver)-idepci_*.deb))

#### alpha part

# Please look in `config' and for instructions on where to get the
# various bits and bobs needed on Alpha, and how to set them up

# The list of subarchitectures to build for
alpha_arches		:= generic alcor avanti book1 cabriolet \
	eb164 eb64p eb66 eb66p jensen lx164 miata-s miata mikasa \
	noname noritake-p noritake p2k pc164 rawhide ruffian rx164 \
	sable-g sable sx164 xl xlt takara nautilus
alpha_milo_arches	:= alcor avanti book1 cabriolet eb164 eb64p \
	eb66 eb66p lx164 miata-s miata mikasa noname pc164 p2k \
	ruffian sx164 xl xlt takara
alpha_apb_arches	:= nautilus

# This gets the generic one
kernelalpha	        := $(shell $(pathcmd:P=kernel-image-$(kver)-generic*_alpha.deb))

ifeq ($(alpha_reduced_rescue_set),YES)
# We only build rescue disks for a subset of the available
# architectures (basically generic, and the ones where the generic
# kernel doesn't work)
alpha_rescue_arches     := generic jensen nautilus
else
alpha_rescue_arches	:= $(alpha_arches)
endif

# What we're actually going to build
alpha_rescue_targets	:= $(alpha_rescue_arches:%=resc1440_%.bin)
alpha_drivers_targets	:= $(alpha_rescue_arches:%=drv14alpha_%-1.bin)
ifeq ($(build_milo_disks),YES)
alpha_milo_targets	:= $(alpha_milo_arches:%=milo_%.bin)
endif

#### m68k part
# The list of subarchitectures to build for
kernelatari	:= $(shell $(pathcmd:P=kernel-image-$(kver)-atari*.deb))
kernelamiga	:= $(shell $(pathcmd:P=kernel-image-$(kver)-amiga*.deb))
kernelmac	:= $(shell $(pathcmd:P=kernel-image-$(kver)-mac*.deb))
kernelbvme6000	:= $(shell $(pathcmd:P=kernel-image-$(kver)-bvme6000*.deb))
kernelmvme16x	:= $(shell $(pathcmd:P=kernel-image-$(kver)-mvme16x*.deb))
kernelmvme147	:= $(shell $(pathcmd:P=kernel-image-$(kver)-mvme147*.deb))

#### powerpc part
kernelapus	:= $(shell $(pathcmd:P=kernel-image-$(apuskver)-apus*.deb))
kernelchrp	:= $(shell $(pathcmd:P=kernel-image-$(kver)-chrp*.deb))
kernelmbx	:= $(shell $(pathcmd:P=kernel-image-$(kver)-mbx*.deb))
kernelpmac	:= $(shell $(pathcmd:P=kernel-image-$(kver)-pmac*.deb))
kernelprep	:= $(shell $(pathcmd:P=kernel-image-$(kver)-prep*.deb))
kernelsource	:= $(shell $(pathcmd:P=kernel-source-$(kver)*.deb))
kernelpatch	:= $(shell $(pathcmd:P=kernel-patch-$(kver)-powerpc*.deb))

#### arm part
kernel-riscpc	:= $(shell $(pathcmd:P=kernel-image-$(kver)-riscpc*.deb))
kernel-netwinder := $(shell $(pathcmd:P=kernel-image-$(kver)-netwinder*.deb))
kernel-shark	:= $(shell $(pathcmd:P=kernel-image-$(kver)-shark*.deb))

#### sparc part
# Sparc dist contains 3 kernels:
#  -sun4cdm (for non-sun4u)
#  -sun4dm-pci
#  -sun4u (ultrasparc)
ifeq ($(architecture),sparc)
  kernel64	:= $(shell $(pathcmd:P=kernel-image-$(kver)-sun4u_*.deb))
  kernel	:= $(shell $(pathcmd:P=kernel-image-$(kver)-sun4cdm_*.deb))
  kernelPCI	:= $(shell $(pathcmd:P=kernel-image-$(kver)-sun4dm-pci_*.deb))
endif


#---------------------------------------------------------------------------
# Consistency checks
#---------------------------------------------------------------------------

# Additional dependancy checks:
ifeq ($(architecture), i386)
  depends_checks := dosfstools syslinux zlib-bin
  tools_checks := rawrite2.zip lodlin16.zip
endif
ifeq ($(architecture), sparc)
  depends_checks := sparc-utils
endif
ifeq ($(architecture), alpha)
  depends_checks := aboot
endif
ifeq ($(architecture), powerpc)
  depends_checks := snarf dosfstools hfsutils
  CHECKFS := check_msdos
endif
ifeq ($(architecture), m68k)
  depends_checks := dosfstools hfsutils pmac-fdisk-cross
endif
ifeq ($(USE_LANGUAGE_CHOOSER), true)
  depends_checks += python-xml libpng2-dev libpopt-dev slang1-dev gconv-modules python-dev
endif

# check_minux disabled
check: localfiles check_mirror check_loop check_kernel check_depends check_tools $(CHECKFS)
	@echo "check successful"

# Use this to check if your kernel has support for the minix filesystem
check_minix:
	@grep minix /proc/filesystems 2>&1 >/dev/null || \
		test -f /lib/modules/`uname -r`/fs/minix.o || \
		( echo minix filesystem support needed; exit 1 )

# Use this to check if your kernel has support for the msdos filesystem
check_msdos:
	@grep msdos /proc/filesystems 2>&1 >/dev/null || \
		test -f /lib/modules/`uname -r`/fs/msdos.o || \
		( echo msdos filesystem support needed; exit 1 )

# Use this to check if your kernel has support for the loop device
check_loop:
	@grep loop /proc/devices 2>&1 >/dev/null || \
		test -f /lib/modules/`uname -r`/block/loop.o || \
		( echo loop device support needed ; exit 1 )

# Use this to check if your local mirror has all the required packages
check_mirror: check_mirror.sh
	./check_mirror.sh $(archive)

# Are our depends satisfied?  (i.e., for people using CVS)
check_depends:
	@echo checking boot-floppies dependancies
	@perl -e \
	  '$$_=`sed -n s/^Depends://Ip debian/control`."$(depends_checks)"; \
	   $$/="\n\n"; y/,/ /; s/\(.*?\)//g; @M{split()}=""; while (<>) { \
	     /^Status: \S+ \S+ installed$$/ms or next; \
	     delete $$M{$$1} if /^Package: (\S+)/ms; \
	     delete @M{split(/ *, */,$$1)} if /^Provides: (.+?)$$/ms; \
	   } foreach my $$m (keys %M) { print "  didn'\''t find $$m\n" } \
	   exit 1 if %M' /var/lib/dpkg/status

check_tools:
ifneq ($(tools_checks), )
	@echo "checking stuff in $(tools_dir)"
	@for t in $(tools_checks); do \
	  [ -f $(tools_dir)/$$t ] || { echo "  didn't find $$t"; e=1; }; \
	done; exit $$e
endif

# Use this to see if you have the proper kernels available
MSG=standard

check_kernel:
	@echo checking packages needed for kernel images
ifeq ($(architecture), i386)
	@[ -f "$(kernel)" ] || \
		( echo $(MSG) kernel \($(kver)\) is not available ; exit 1 )
	@[ -f "$(pcmcia_package)" ] || \
		( echo $(MSG) PCMCIA modules \($(pcmcia_kver)\) are not available ; exit 1 )
	@[ -f "$(kerneli386_compact)" ] || \
		( echo compact kernel is not available ; exit 1 )
	@[ -f "$(pcmciai386_compact)" ] || \
		( echo compact flavor PCMCIA modules are not available ; exit 1 )
	@[ -f "$(kerneli386_udma66)" ] || \
		( echo udma66 kernel is not available ; exit 1 )
	@[ -f "$(pcmciai386_udma66)" ] || \
		( echo udma66 flavor PCMCIA modules are not available ; exit 1 )
	@[ -f "$(kerneli386_idepci)" ] || \
		( echo idepci kernel is not available ; exit 1 )
	@[ -f "$(pcmciai386_idepci)" ] || \
		( echo idepci flavor PCMCIA modules are not available ; exit 1 )
else
ifeq ($(architecture), m68k)
	@[ -f "$(kernelatari)" ] || \
		( echo atari kernel is not available ; exit 1 )
	@[ -f "$(kernelamiga)" ] || \
		( echo amiga kernel is not available ; exit 1 )
	@[ -f "$(kernelmac)" ] || \
		( echo mac kernel is not available ; exit 1 )
	@[ -f "$(kernelbvme6000)" ] || \
		( echo bvme6000 kernel is not available ; exit 1 )
	@[ -f "$(kernelmvme16x)" ] || \
		( echo mvme16x kernel is not available ; exit 1 )
	@[ -f "$(kernelmvme147)" ] || \
		( echo mvme147 kernel is not available ; exit 1 )
else
ifeq ($(architecture), powerpc)
	@[ -f "$(kernelapus)" ] || \
		( echo apus kernel is not available ; exit 1 )
	@[ -f "$(kernelchrp)" ] || \
		( echo chrp kernel is not available ; exit 1 )
	@[ -f "$(kernelpmac)" ] || \
		( echo pmac kernel is not available ; exit 1 )
	@[ -f "$(kernelprep)" ] || \
		( echo prep kernel is not available ; exit 1 )
	@[ -f "$(kernelsource)" ] || \
		( echo kernel source is not available ; exit 1 )
	@[ -f "$(kernelpatch)" ] || \
		( echo kernel patch is not available ; exit 1 )
	@[ -f "$(pcmcia_package)" ] || \
		( echo $(MSG) PCMCIA modules are not available ; exit 1 )
else
ifeq ($(architecture), sparc)
	@[ -f "$(kernel)" ] || \
		( echo $(MSG) sun4cdm kernel is not available ; exit 1 )
	@[ -f "$(kernel64)" ] || \
		( echo $(MSG) sun4u kernel is not available ; exit 1 )
	@[ -f "$(kernelPCI)" ] || \
		( echo $(MSG) sun4dm-pci kernel is not available ; exit 1 )
else
ifeq ($(architecture), alpha)
	@[ -f "$(kernelalpha)" ] || \
		( echo $(MSG) kernel is not available ; exit 1 )
else
ifeq ($(architecture), arm)
	@[ -f "$(kernel-riscpc)" ] || \
		( echo $(MSG) riscpc kernel is not available ; exit 1 )
	@[ -f "$(kernel-netwinder)" ] || \
		( echo $(MSG) netwinder kernel is not available ; exit 1 )
#	@[ -f "$(kernel-shark)" ] || \
#		( echo $(MSG) shark kernel is not available ; exit 1 )
else
	@echo unsupported architecture: $(architecture); false
endif
endif
endif
endif
endif
endif
ifneq ($(altkver),)
	$(MAKE) check_kernel EXT=-$(altkver) MSG=alternative
endif

#---------------------------------------------------------------------------
# Don't edit below this line

ifeq ($(architecture), sparc)
silo_pkg		:= $(shell $(pathcmd:P=silo_*.deb))
arch_rootdisk_deps	:= silo1440k-sun4cdm.gz silo1440k-sun4u.gz
arch_rescue_deps	:= silo1440k-sun4cdm.gz silo1440k-sun4u.gz
endif

localfiles:: updates
	cd $(incoming) && \
	  find . \( -name '*_all.deb' -o -name '*_$(architecture).deb' \) -exec cp {} $(CURDIR)/updates/ \;
	cd $(local_dir) && \
	  find . -name '*.deb' -exec cp {} $(CURDIR)/updates/ \;

# dependency for the files that have to be copied
updates::
	[ -d updates ] || mkdir -p updates

# helper target to mirror base locally
mirror:
	[ -d $(archive) ] || mkdir -p $(archive)
	cd $(archive) && $(top_dir)/mirror_base.sh $(architecture)	\
		$(mirror_user) $(mirror_site) $(mirror_dir) $(kver) 	\
		$(top_dir) $(anonymous_rsync)

base_archive	:= base$(subst .,_,$(debianversion)).tgz

build::	localfiles
	$(MAKE) utils
	find . -name \*~ | xargs rm -f
ifeq ($(architecture), i386)
	$(MAKE) resc1440.bin resc1440-s.bin
	$(MAKE) resc1440compact.bin
	$(MAKE) driverscompact.tgz
	$(MAKE) resc1440udma66.bin
	$(MAKE) driversudma66.tgz
	$(MAKE) resc1440idepci.bin
	$(MAKE) driversidepci.tgz
	$(MAKE) resc1200.bin resc1200-s.bin
	$(MAKE) resc2880.bin
	$(MAKE) resc2880compact.bin
	$(MAKE) resc2880udma66.bin
	$(MAKE) resc2880idepci.bin
	$(MAKE) drivers$(EXT).tgz
else 
ifeq ($(architecture), m68k)
	$(MAKE) resc1440atari.bin driversatari.tgz
	$(MAKE) resc1440amiga.bin driversamiga.tgz
	$(MAKE) resc1440mac.bin driversmac.tgz
	$(MAKE) resc2880bvme6000.bin resc1440bvme6000.bin driversbvme6000.tgz
	$(MAKE) resc1440mvme16x.bin driversmvme16x.tgz
	$(MAKE) resc1440mvme147.bin driversmvme147.tgz
else 
ifeq ($(architecture), powerpc)
	$(MAKE) resc1440apus.bin driversapus.tgz
	$(MAKE) resc1440chrp.bin driverschrp.tgz
#	$(MAKE) resc1440mbx.bin driversmbx.tgz
	$(MAKE) resc1440pmac.bin driverspmac.tgz
	$(MAKE) resc1440prep.bin driversprep.tgz bootprep.bin
#-----------------------------------------------------
#	$(MAKE) resc1440apus-fb.bin
#	$(MAKE) resc1440chrp-fb.bin
#	$(MAKE) resc1440mbx-fb.bin
#	$(MAKE) resc1440pmac-fb.bin
#	$(MAKE) resc1440prep-fb.bin
#-----------------------------------------------------
#	$(MAKE) tftpboot-apus.img root.tar.gz
#	$(MAKE) tftpboot-chrp.img root.tar.gz
#	$(MAKE) tftpboot-mbx.img root.tar.gz
#	$(MAKE) tftpboot-pmac.img root.tar.gz
#	$(MAKE) tftpboot-prep.img root.tar.gz
else
ifeq ($(architecture), sparc)
	$(MAKE) resc1440-sun4cdm.bin resc1440-sun4u.bin resc1440-sun4dm-pci.bin
	$(MAKE) drivers-sun4cdm.tgz drivers-sun4u.tgz drivers-sun4dm-pci.tgz
	$(MAKE) tftpboot root.tar.gz
else
ifeq ($(architecture), alpha)
	ln -sf $(alpha_tools_dir)/Alcor milo_alcor
	ln -sf $(alpha_tools_dir)/Alpha-XL milo_xl
	ln -sf $(alpha_tools_dir)/Alpha-XLT milo_xlt
	ln -sf $(alpha_tools_dir)/AlphaBook1 milo_book1
	ln -sf $(alpha_tools_dir)/Avanti milo_avanti
	ln -sf $(alpha_tools_dir)/Cabriolet  milo_cabriolet
	ln -sf $(alpha_tools_dir)/EB164 milo_eb164
	ln -sf $(alpha_tools_dir)/EB64+ milo_eb64p
	ln -sf $(alpha_tools_dir)/EB66 milo_eb66
	ln -sf $(alpha_tools_dir)/EB66+ milo_eb66p
	ln -sf $(alpha_tools_dir)/LX164 milo_lx164
	ln -sf $(alpha_tools_dir)/Miata milo_miata
	ln -sf $(alpha_tools_dir)/Mikasa milo_mikasa
		ln -sf $(alpha_tools_dir)/Noname milo_noname
	# ln -snf $(alpha_tools_dir)/ milo_noritake
	ln -sf $(alpha_tools_dir)/PC164 milo_pc164
	ln -sf $(alpha_tools_dir)/Platform2000 milo_p2k
	ln -sf $(alpha_tools_dir)/Ruffian milo_ruffian
	#ln -sf $(alpha_tools_dir)/ milo_sable-g
	#ln -sf $(alpha_tools_dir)/ milo_sable
	ln -sf $(alpha_tools_dir)/SX164 milo_sx164
	ln -sf $(alpha_tools_dir)/Takara milo_takara
	ln -sf $(alpha_tools_dir)/linload.exe
	ln -sf $(alpha_tools_dir)/ldmilo.exe
ifneq ($(alpha_apb_arches),)
	ln -sf $(alpha_apb_dir)/apb.exe .
	ln -sf $(alpha_apb_dir)/up1000.pal .
	for i in $(alpha_apb_dir)/*.txt; do \
		ln -sf $$i apb_$$(basename $$i); \
	done
endif
	$(MAKE) $(alpha_rescue_targets) $(alpha_drivers_targets) $(alpha_milo_targets)
	$(MAKE) tftpboot.img root.tar.gz
else
ifeq ($(architecture), arm) 
	$(MAKE) linux-netwinder root-netwinder.tar.gz
	$(MAKE) rescue-netwinder.bin drivers-netwinder.tgz
	$(MAKE) tftpboot-cats.img tftpboot-netwinder.img
	$(MAKE) linux-riscpc root-riscpc.bin 
	$(MAKE) rescue-riscpc.bin drivers-riscpc.tgz
else
	echo unsupported architecture: $(architecture); false
endif
endif
endif
endif
endif
endif
ifneq ($(altkver),)
	$(MAKE) build EXT=-$(altkver)
endif
	$(MAKE) $(base_archive)

##
## utilities subdir targets
##   -- don't use a phony rule in a dependency!  that is broken!
utils:
	$(MAKE) -C utilities KVER=$(kver) KERNEL_VERSION_CODE=${KERNEL_VERSION_CODE}

utilities/dbootstrap/dbootstrap:
	$(MAKE) -C utilities KVER=$(kver) KERNEL_VERSION_CODE=${KERNEL_VERSION_CODE} dbootstrap

utilities/writemaps/loadkeys:
	$(MAKE) -C utilities KVER=$(kver) KERNEL_VERSION_CODE=${KERNEL_VERSION_CODE} writemaps

release/README.txt: README-Users.m4
	: make the top-level README
	[ -d release ] || mkdir release
	m4 --define=ARCHITECTURE=$(architecture) \
		--define=BASE_TGZ=base`echo $(debianversion) | sed 's,\.,_,g'`.tgz \
		$< > $@

release/READ-%.txt: README-Users.%.m4
	: make the top-level README in any language
	[ -d release ] || mkdir release
	m4 --define=ARCHITECTURE=$(architecture) \
		--define=BASE_TGZ=base`echo $(debianversion) | sed 's,\.,_,g'`.tgz \
		$< > $@

.PHONY: release
release:	build docs
ifeq ($(architecture),i386)
	TOOLS_DIR=$(tools_dir) ./release.sh i386 $(debname) $(debianversion) $(kernel)
else
ifeq ($(architecture),alpha)
	./release.sh $(architecture) $(debname) $(debianversion) $(alpha_arches)	
else
ifeq ($(architecture),m68k)
	./release.sh $(architecture) $(debname) $(debianversion) $(archive)
else
	./release.sh $(architecture) $(debname) $(debianversion)
endif
endif
endif

.PHONY: umount clean distclean
umount:
	-for d in ${tmpdir}/boot-floppies/mnt.*; do umount $$d; done;
	# also need to unmount /dev/pts and /proc in base-tmp
	# directories if the build was interrupted
	-find ${tmpdir}/boot-floppies -path '*/dev/pts' -o -path '*/proc' \
		-a -type d | xargs -r umount

clean: umount distclean

distclean:
	$(MAKE) -C utilities distclean
	$(MAKE) -C scripts/rootdisk/messages clean
	$(MAKE) -C documentation distclean
	$(MAKE) -C powerpc-specials clean
	rm -f *.bin *.tgz sys_map*.gz config*.gz linux* modcont* core	\
		base-contents.txt $(SFONT)			\
		root*.tar.gz silo1440k* tftpboot*.img *.tmp *.o
	rm -f `find -name \*~` disks-$(architecture)
	rm -f `find -name '.#*'`
	rm -rf release updates check_basedeps ${tmpdir}/boot-floppies

$(base_archive):	basedisks.sh \
			$(shell find scripts/basedisks -type f ) \
			$(shell find $(archive) -type f )
	$(ROOTCMD) ./basedisks.sh $(archive) $(debianversion)

keymaps.tgz: utilities/writemaps/loadkeys keymaps.sh common.sh $(kbd_package)
	$(ROOTCMD) ./keymaps.sh $(kbd_package)


#-----------------------------------------------------------------------
# Modules
#-----------------------------------------------------------------------
packages_with_modules=$(pcmcia_package)

modules$(EXT).tgz sys_map$(EXT).gz config$(EXT).gz linux$(EXT) \
modcont$(EXT): $(packages_with_modules) kernel.sh $(kernel) Makefile
	$(ROOTCMD) ./kernel.sh "$(EXT)" $(kernel) $(packages_with_modules)

modulesudma66.tgz sys_mapudma66.gz configudma66.gz linuxudma66 \
modcontudma66: $(packages_with_modules) kernel.sh $(kernel) Makefile
	$(ROOTCMD) ./kernel.sh "udma66" $(kerneli386_udma66) $(pcmciai386_udma66)

modulesidepci.tgz sys_mapidepci.gz configidepci.gz linuxidepci \
modcontidepci: $(packages_with_modules) kernel.sh $(kernel) Makefile
	$(ROOTCMD) ./kernel.sh "idepci" $(kerneli386_idepci) $(pcmciai386_idepci)

modulescompact.tgz sys_mapcompact.gz configcompact.gz linuxcompact \
modcontcompact: $(packages_with_modules) kernel.sh $(kernel) Makefile
	$(ROOTCMD) ./kernel.sh "compact" $(kerneli386_compact) $(pcmciai386_compact)

modulesalpha_%.tgz sys_mapalpha_%.gz configalpha_%.gz linuxalpha_% \
modcontalpha_%: kernel.sh $(kernelalpha) Makefile
	$(ROOTCMD) ./kernel.sh alpha_$* \
		$(subst generic,$*,$(kernelalpha))

#### m68k part ####
modulesatari.tgz sys_mapatari.gz configatari.gz linuxatari \
modcontatari: kernel.sh $(kernelatari) Makefile
	$(ROOTCMD) ./kernel.sh atari $(kernelatari)

modulesamiga.tgz sys_mapamiga.gz configamiga.gz linuxamiga \
modcontamiga: kernel.sh $(kernelamiga) Makefile
	$(ROOTCMD) ./kernel.sh amiga $(kernelamiga)

modulesmac.tgz sys_mapmac.gz configmac.gz linuxmac \
modcontmac: kernel.sh $(kernelmac) Makefile
	$(ROOTCMD) ./kernel.sh mac $(kernelmac)

modulesbvme6000.tgz sys_mapbvme6000.gz configbvme6000.gz linuxbvme6000 \
modcontbvme6000: kernel.sh $(kernelbvme6000) Makefile
	$(ROOTCMD) ./kernel.sh bvme6000 $(kernelbvme6000)

modulesmvme16x.tgz sys_mapmvme16x.gz configmvme16x.gz linuxmvme16x \
modcontmvme16x: kernel.sh $(kernelmvme16x) Makefile
	$(ROOTCMD) ./kernel.sh mvme16x $(kernelmvme16x)

modulesmvme147.tgz sys_mapmvme147.gz configmvme147.gz linuxmvme147 \
modcontmvme147: kernel.sh $(kernelmvme147) Makefile
	$(ROOTCMD) ./kernel.sh mvme147 $(kernelmvme147)


#### powerpc part ####
modulesapus.tgz sys_mapapus.gz configapus.gz linuxapus \
modcontapus: kernel.sh $(kernelapus) Makefile
	$(ROOTCMD) ./kernel.sh apus $(kernelapus)

moduleschrp.tgz sys_mapchrp.gz configchrp.gz linuxchrp \
modcontchrp: kernel.sh $(kernelchrp) Makefile
	$(ROOTCMD) ./kernel.sh chrp $(kernelchrp)

modulesmbx.tgz sys_mapmbx.gz configmbx.gz linuxmbx \
modcontmbx: kernel.sh $(kernelmbx) Makefile
	$(ROOTCMD) ./kernel.sh mbx $(kernelmbx)

modulespmac.tgz sys_mappmac.gz configpmac.gz linuxpmac \
modcontpmac: kernel.sh $(kernelpmac) Makefile $(packages_with_modules)
	$(ROOTCMD) ./kernel.sh pmac $(kernelpmac) $(packages_with_modules)

modulesprep.tgz sys_mapprep.gz configprep.gz linuxprep \
modcontprep: kernel.sh $(kernelprep) Makefile
	$(ROOTCMD) ./kernel.sh prep $(kernelprep)

#### sparc part
ifeq ($(architecture),sparc)
modules-sun4u.tgz sys_map-sun4u.gz config-sun4u.gz linux-sun4u \
modcont-sun4u: kernel.sh $(kernel64) Makefile
	$(ROOTCMD) ./kernel.sh -sun4u $(kernel64)

modcont-sun4cdm.tgz sys_map-sun4cdm.gz config-sun4cdm.gz linux-sun4cdm \
modcont-sun4cdm: kernel.sh $(kernel) Makefile
	$(ROOTCMD) ./kernel.sh -sun4cdm $(kernel)

modcont-sun4dm-pci.tgz sys_map-sun4dm-pci.gz config-sun4dm-pci.gz linux-sun4dm-pci \
modcont-sun4dm-pci: kernel.sh $(kernelPCI) Makefile
	$(ROOTCMD) ./kernel.sh -sun4dm-pci $(kernelPCI)
endif

#### arm part
ifeq ($(architecture),arm)
modules-netwinder.tgz sys_map-netwinder.gz config-netwinder.gz linux-netwinder \
modcont-netwinder: kernel.sh $(kernel-netwinder) Makefile
	$(ROOTCMD) ./kernel.sh -netwinder $(kernel-netwinder)
modules-riscpc.tgz sys_map-riscpc.gz config-riscpc.gz linux-riscpc \
modcont-riscpc: kernel.sh $(kernel-riscpc) Makefile
	$(ROOTCMD) ./kernel.sh -riscpc $(kernel-riscpc)
modules-shark.tgz sys_map-shark.gz config-shark.gz linux-shark \
modcont-shark: kernel.sh $(kernel-shark) Makefile
	$(ROOTCMD) ./kernel.sh -shark $(kernel-shark)
endif

#------------------------------------------------------------------------
# Drivers
#   mail <marcel@debian.org> if you have questions regarding setup of 
#   driver*.tgz targets
#------------------------------------------------------------------------

#### alpha part
$(alpha_drivers_targets) : drv14alpha_%-1.bin: \
		modulesalpha_%.tgz driverdisks.sh Makefile \
		$(shell find scripts/drivers -type f )
	$(ROOTCMD) ./driverdisks.sh alpha_$* modulesalpha_$*.tgz modcontalpha_$* $(archive)


drivers.tgz: modules.tgz driverdisks.sh Makefile \
             $(shell find scripts/drivers -type f )
	$(ROOTCMD) ./driverdisks.sh "" modules.tgz modcont $(archive)

drivers%.tgz: modules%.tgz driverdisks.sh Makefile \
              $(shell find scripts/drivers -type f )
	$(ROOTCMD) ./driverdisks.sh $* $< modcont$* $(archive)

#-----------------------------------------------------------------------------
# Root - the ramdisk, mounted as / 
#-----------------------------------------------------------------------------

root.bin: $(shell find scripts/rootdisk -type f)            \
		utilities/dbootstrap/dbootstrap             \
		utilities/busybox/busybox                   \
		$(arch_rootdisk_deps)	                    \
		rootdisk.sh common.sh Makefile keymaps.tgz

	case $(architecture) in \
	alpha)	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3500 $(debianversion) \
				"" $(LINGUA) "$(FONT)" $(SFONT);; \
	*)	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3200 $(debianversion) \
				"" $(LINGUA) "$(FONT)" $(SFONT);; \
	esac

# FIXME: this is broken
root-graphical.bin: drivers.tgz 
		$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		$(arch_rootdisk_deps)

	$(ROOTCMD) rootdisk.sh common.sh Makefile keymaps.tgz
	BUSYBOX=busyboxg; export BUSYBOX; \
	GRAPHICAL=yes; export GRAPHICAL; \
	case $(architecture) in \
	alpha|sparc) \
		$(ROOTCMD) ./rootdisk.sh "-graphical" $(archive) 3400 $(debianversion) \
				"" $(LINGUA) "$(FONT)"\
		;; \
	*)	$(ROOTCMD) ./rootdisk.sh "-graphical" $(archive) 1800 $(debianversion) \
				"" $(LINGUA) "$(FONT)" $(SFONT)\
		;;\
	esac

#### arm part
root-netwinder.bin: $(shell find scripts/rootdisk -type f)            \
		utilities/dbootstrap/dbootstrap             \
		utilities/busybox/busybox                   \
		$(arch_rootdisk_deps)	                    \
		rootdisk.sh common.sh Makefile keymaps.tgz
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3200 $(debianversion) \
		-netwinder $(LINGUA) "$(FONT)" $(SFONT)

root-netwinder.tar.gz: root-netwinder.bin nfsroot.sh Makefile
	$(ROOTCMD) ./nfsroot.sh root-netwinder.bin $(debianversion) -netwinder $(LINGUA) $@

root-riscpc.bin: $(shell find scripts/rootdisk -type f)            \
		utilities/dbootstrap/dbootstrap             \
		utilities/busybox/busybox                   \
		$(arch_rootdisk_deps)	                    \
		rootdisk.sh common.sh Makefile keymaps.tgz
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3200 $(debianversion) \
		-riscpc $(LINGUA) "$(FONT)" $(SFONT)

root-shark.bin: $(shell find scripts/rootdisk -type f)            \
		utilities/dbootstrap/dbootstrap             \
		utilities/busybox/busybox                   \
		$(arch_rootdisk_deps)	                    \
		rootdisk.sh common.sh Makefile keymaps.tgz
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3200 $(debianversion) \
		-shark $(LINGUA) "$(FONT)" $(SFONT)

#### m68k part
rootatari.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile keymaps.tgz \
		utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3100 $(debianversion) atari $(LINGUA)

rootamiga.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile keymaps.tgz \
		utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3100 $(debianversion) amiga $(LINGUA)

rootmac.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile keymaps.tgz \
		utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3100 $(debianversion) mac $(LINGUA)

rootbvme6000.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile \
		utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3100 $(debianversion) bvme6000 $(LINGUA)

rootmvme16x.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile \
		utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3100 $(debianversion) mvme16x $(LINGUA)

rootmvme147.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile \
		utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3100 $(debianversion) mvme147 $(LINGUA)


#### powerpc part
rootapus.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile keymaps.tgz \
		utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3200 $(debianversion) apus $(LINGUA) "$(FONT)" $(SFONT)

rootchrp.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile keymaps.tgz \
		moduleschrp.tgz utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3600 $(debianversion) chrp $(LINGUA) "$(FONT)" $(SFONT)

rootmbx.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile keymaps.tgz \
		utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3200 $(debianversion) mbx $(LINGUA) "$(FONT)" $(SFONT)

rootpmac.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile keymaps.tgz \
		modulespmac.tgz utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3800 $(debianversion) pmac $(LINGUA) "$(FONT)" $(SFONT)

bootprep.bin:	bootprep.sh Makefile rootprep.bin
	./bootprep.sh $(archive) $(top_dir) $(kver)

rootprep.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile keymaps.tgz \
		modulesprep.tgz utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "" $(archive) 3600 $(debianversion) prep $(LINGUA) "$(FONT)" $(SFONT)

rootapus-fb.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile keymaps.tgz \
		utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "-graphical" $(archive) 3200 $(debianversion) apus $(LINGUA) "$(FONT)" $(SFONT)

rootchrp-fb.bin:	$(shell find scripts/rootdisk -type f ) \
		utilities/dbootstrap/dbootstrap         \
		utilities/busybox/busybox               \
		rootdisk.sh common.sh Makefile keymaps.tgz \
		utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "-graphical" $(archive) 3200 $(debianversion) chrp $(LINGUA) "$(FONT)" $(SFONT)

rootmbx-fb.bin:		$(shell find scripts/rootdisk -type f ) \
			utilities/dbootstrap/dbootstrap         \
			utilities/busybox/busybox               \
			rootdisk.sh common.sh Makefile keymaps.tgz \
			utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "-graphical" $(archive) 3200 $(debianversion) mbx $(LINGUA) "$(FONT)" $(SFONT)

rootpmac-fb.bin:	$(shell find scripts/rootdisk -type f ) \
			utilities/dbootstrap/dbootstrap         \
			utilities/busybox/busybox               \
			rootdisk.sh common.sh Makefile keymaps.tgz \
			utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "-graphical" $(archive) 3200 $(debianversion) pmac $(LINGUA) "$(FONT)" $(SFONT)

rootprep-fb.bin:	$(shell find scripts/rootdisk -type f ) \
			utilities/dbootstrap/dbootstrap         \
			utilities/busybox/busybox               \
			rootdisk.sh common.sh Makefile keymaps.tgz \
			utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "-graphical" $(archive) 3200 $(debianversion) prep $(LINGUA) "$(FONT)" $(SFONT)

# TODO make this generic
root1440udma66.bin: 	resc1440udma66.bin
rootudma66.bin:		rootdisk.sh common.sh Makefile keymaps.tgz \
			utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "udma66" $(archive) 3200 $(debianversion) "" $(LINGUA) "$(FONT)" $(SFONT)

root1440idepci.bin:	resc1440idepci.bin
rootidepci.bin:		rootdisk.sh common.sh Makefile keymaps.tgz \
			utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "idepci" $(archive) 3200 $(debianversion) "" $(LINGUA) "$(FONT)" $(SFONT)

root1440compact.bin:	resc1440compact.bin
rootcompact.bin:	rootdisk.sh common.sh Makefile keymaps.tgz \
			utilities/dbootstrap/dbootstrap
	$(ROOTCMD) ./rootdisk.sh "compact" $(archive) 3200 $(debianversion) "" $(LINGUA) "$(FONT)" $(SFONT)

#-----------------------------------------------------------------------------
# netboot & low memory (not enough space for ramdisk)
#-----------------------------------------------------------------------------

root.tar.gz:	root.bin nfsroot.sh Makefile
	$(ROOTCMD) ./nfsroot.sh root.bin $(debianversion) "" $(LINGUA) $@

root-graphical.tar.gz: root-graphical.bin nfsroot.sh Makefile
	$(ROOTCMD) ./nfsroot.sh root-graphical.bin $(debianversion) "" $(LINGUA) $@

lowmemrd.bin:	$(shell find utilities/lowmemrd -type f ) \
		lowmemrd.sh Makefile 
	./lowmemrd.sh

lowmem.bin:	linux sys_map.gz lowmem.sh Makefile \
		lowmemrd.bin
	./lowmem.sh "" $(kernel) lowmemrd.bin 1440 $(debianversion) ""

lowmematari.bin:	linuxatari sys_mapatari.gz lowmem.sh Makefile \
		lowmemrd.bin
	./lowmem.sh atari $(kernelatari) lowmemrd.bin 1440 $(debianversion) atari

lowmemamiga.bin:	linuxamiga sys_mapamiga.gz lowmem.sh Makefile \
		lowmemrd.bin
	./lowmem.sh amiga $(kernelamiga) lowmemrd.bin 1440 $(debianversion) amiga


#-----------------------------------------------------------------------------
# Rescue
#-----------------------------------------------------------------------------

#### alpha part
# milo targets
$(alpha_milo_targets) : milo_%.bin: milo_% linload.exe ldmilo.exe
	$(ROOTCMD) ./milodisk.sh milo_$* $@

# rescue targets
$(alpha_rescue_targets) : resc1440_%.bin: \
		linuxalpha_% sys_mapalpha_%.gz configalpha_%.gz rescue.sh Makefile \
		root.bin $(shell find scripts/rescue -type f )
	WRITE_MILO=$(write_milo) $(ROOTCMD) ./rescue.sh \
		alpha_$* $(subst generic,$*,$(kernelalpha)) \
		/dev/null 1440 $(debianversion) alpha $(LINGUA)
	mv resc1440alpha_$*.bin $@

#### arm part
rescue-riscpc.bin: linux-riscpc sys_map-riscpc.gz config-riscpc.gz rescue.sh Makefile $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "-riscpc" $(kernel-riscpc) root-riscpc.bin 1440 $(debianversion) -riscpc $(LINGUA) $(SFONT)

rescue-netwinder.bin: linux-netwinder sys_map-netwinder.gz config-netwinder.gz rescue.sh Makefile $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "-netwinder" $(kernel-netwinder) root-netwinder.bin 1440 $(debianversion) -netwinder $(LINGUA) $(SFONT)

rescue-shark.bin: linux-shark sys_map-shark.gz config-shark.gz rescue.sh Makefile $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "-shark" $(kernel-shark) root-shark.bin 1440 $(debianversion) -shark $(LINGUA) $(SFONT)

#### i386 part
resc1200$(EXT).bin:	linux$(EXT) sys_map$(EXT).gz config$(EXT).gz rescue.sh Makefile \
		$(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "$(EXT)" $(kernel) root.bin 1200 $(debianversion) "" $(LINGUA) $(SFONT)

resc1440$(EXT).bin:	linux$(EXT) sys_map$(EXT).gz config$(EXT).gz rescue.sh Makefile \
		$(arch_rescue_deps) \
		root.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "$(EXT)" $(kernel) root.bin 1440 $(debianversion) "" $(LINGUA) $(SFONT)

# @@ tausq TODO  make this generic
resc1440udma66.bin:	linuxudma66 sys_mapudma66.gz configudma66.gz rescue.sh \
		Makefile $(arch_rescue_deps) \
		rootudma66.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "udma66" $(kerneli386_udma66) rootudma66.bin 1440 $(debianversion) "" $(LINGUA) $(SFONT)

# @@ tausq TODO  make this generic
resc2880udma66.bin:	linuxudma66 sys_mapudma66.gz configudma66.gz rescue.sh \
		Makefile $(arch_rescue_deps) \
		rootudma66.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "udma66" $(kerneli386_udma66) rootudma66.bin 2880 $(debianversion) "" $(LINGUA) $(SFONT)

# @@ tausq TODO  make this generic
resc1440idepci.bin:	linuxidepci sys_mapidepci.gz configidepci.gz rescue.sh \
		Makefile $(arch_rescue_deps) \
		rootidepci.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "idepci" $(kerneli386_idepci) rootidepci.bin 1440 $(debianversion) "" $(LINGUA) $(SFONT)

# @@ tausq TODO  make this generic
resc2880idepci.bin:	linuxidepci sys_mapidepci.gz configidepci.gz rescue.sh \
		Makefile $(arch_rescue_deps) \
		rootidepci.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "idepci" $(kerneli386_idepci) rootidepci.bin 2880 $(debianversion) "" $(LINGUA) $(SFONT)

# @@ tausq TODO  make this generic
resc1440compact.bin:	linuxcompact sys_mapcompact.gz configcompact.gz rescue.sh \
		Makefile $(arch_rescue_deps) \
		rootcompact.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "compact" $(kerneli386_compact) rootcompact.bin 1440 $(debianversion) "" $(LINGUA) $(SFONT)

# @@ tausq TODO  make this generic
resc2880compact.bin:	linuxcompact sys_mapcompact.gz configcompact.gz rescue.sh \
		Makefile $(arch_rescue_deps) \
		rootcompact.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "compact" $(kerneli386_compact) rootcompact.bin 2880 $(debianversion) "" $(LINGUA) $(SFONT)

resc2880.bin:	linux sys_map.gz config.gz rescue.sh Makefile \
		$(arch_rescue_deps) \
		root.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh "" $(kernel) root.bin 2880 $(debianversion) "" $(LINGUA) $(SFONT)

resc1200-s.bin:	resc1200.bin safe.sh
	$(ROOTCMD) ./safe.sh $< $@

resc1440-s.bin:	resc1440.bin safe.sh
	$(ROOTCMD) ./safe.sh $< $@

resc1440-graphical.bin: linux sys_map.gz config.gz rescue.sh Makefile \
			$(arch_rescue_deps) \
			root-graphical.bin $(shell find scripts/rescue -type f)
	GRAPHICAL=yes $(ROOTCMD) ./rescue.sh "-graphical" $(kernel) root-graphical.bin 1440 $(debianversion) "" $(LINGUA) $(SFONT)


#### m68k part
resc1440atari.bin: linuxatari sys_mapatari.gz configatari.gz rescue.sh Makefile \
		rootatari.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh atari $(kernelatari) rootatari.bin 1440 $(debianversion) atari $(LINGUA)

resc1440amiga.bin: linuxamiga sys_mapamiga.gz configamiga.gz rescue.sh Makefile \
		rootamiga.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh amiga $(kernelamiga) rootamiga.bin 1440 $(debianversion) amiga $(LINGUA)

resc1440mac.bin: linuxmac sys_mapmac.gz configmac.gz rescue.sh Makefile \
		rootmac.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh mac $(kernelmac) rootmac.bin 1440 $(debianversion) mac $(LINGUA)

# resc2880bvme6000.bin is used as the El-Torito bootfile on the m68k CD-ROM
resc2880bvme6000.bin: linuxbvme6000 sys_mapbvme6000.gz configbvme6000.gz rescue.sh Makefile \
		rootbvme6000.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh bvme6000 $(kernelbvme6000) rootbvme6000.bin 2880 $(debianversion) bvme6000 $(LINGUA)

resc1440bvme6000.bin: linuxbvme6000 sys_mapbvme6000.gz configbvme6000.gz rescue.sh Makefile \
		rootbvme6000.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh bvme6000 $(kernelbvme6000) rootbvme6000.bin 1440 $(debianversion) bvme6000 $(LINGUA)

resc1440mvme16x.bin: linuxmvme16x sys_mapmvme16x.gz configmvme16x.gz rescue.sh Makefile \
		rootmvme16x.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh mvme16x $(kernelmvme16x) rootmvme16x.bin 1440 $(debianversion) mvme16x $(LINGUA)

resc1440mvme147.bin: linuxmvme147 sys_mapmvme147.gz configmvme147.gz rescue.sh Makefile \
		rootmvme147.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh mvme147 $(kernelmvme147) rootmvme147.bin 1440 $(debianversion) mvme147 $(LINGUA)

resc720atari.bin: linuxatari sys_mapatari.gz configatari.gz rescue.sh Makefile \
		$(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh atari $(kernelatari) rootatari.bin 720 $(debianversion) atari $(LINGUA)


#### powerpc part
resc1440apus.bin: linuxapus sys_mapapus.gz configapus.gz rescue.sh Makefile \
		rootapus.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh apus $(kernelapus) rootapus.bin 1440 $(debianversion) apus $(LINGUA) $(SFONT)

resc1440chrp.bin: linuxchrp sys_mapchrp.gz configchrp.gz rescue.sh Makefile \
		rootchrp.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh chrp $(kernelchrp) rootchrp.bin 1440 $(debianversion) chrp $(LINGUA) $(SFONT)

resc1440mbx.bin: linuxmbx sys_mapmbx.gz configmbx.gz rescue.sh Makefile \
		rootmbx.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh mbx $(kernelmbx) rootmbx.bin 1440 $(debianversion) mbx $(LINGUA) $(SFONT)

resc1440pmac.bin: linuxpmac sys_mappmac.gz configpmac.gz rescue.sh Makefile \
		rootpmac.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh pmac $(kernelpmac) rootpmac.bin 1440 $(debianversion) pmac $(LINGUA) $(SFONT)

resc1440prep.bin: linuxprep sys_mapprep.gz configprep.gz rescue.sh Makefile \
		rootprep.bin $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh prep $(kernelprep) rootprep.bin 1440 $(debianversion) prep $(LINGUA) $(SFONT)

resc1440chrp-fb.bin: linuxchrp sys_mapchrp.gz configchrp.gz rescue.sh Makefile \
	$(arch_rescue_deps) rootchrp-fb.bin $(shell find scripts/rescue -type f)
	GRAPHICAL=yes $(ROOTCMD) ./rescue.sh "-graphical" $(kernelchrp) rootchrp-fb.bin 1440 $(debianversion) "chrp" $(LINGUA) $(SFONT)

resc1440pmac-fb.bin: linuxpmac sys_mappmac.gz configpmac.gz rescue.sh Makefile \
	$(arch_rescue_deps) rootpmac-fb.bin $(shell find scripts/rescue -type f)
	GRAPHICAL=yes $(ROOTCMD) ./rescue.sh "-graphical" $(kernelpmac) rootpmac-fb.bin 1440 $(debianversion) "pmac" $(LINGUA) $(SFONT)


#### sparc part
ifeq ($(architecture),sparc)
resc1440-sun4u.bin: linux-sun4u sys_map-sun4u.gz config-sun4u.gz rescue.sh Makefile \
		root.bin silo1440k-sun4u.gz $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh -sun4u $(kernel64) root.bin 1440 $(debianversion) \
		"" $(LINGUA)

resc1440-sun4cdm.bin: linux-sun4cdm sys_map-sun4cdm.gz config-sun4cdm.gz rescue.sh Makefile \
		root.bin silo1440k-sun4cdm.gz $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh -sun4cdm $(kernel) root.bin 1440 $(debianversion) \
		"" $(LINGUA)

resc1440-sun4dm-pci.bin: linux-sun4dm-pci sys_map-sun4dm-pci.gz config-sun4dm-pci.gz rescue.sh Makefile \
		root.bin silo1440k-sun4cdm.gz $(shell find scripts/rescue -type f )
	$(ROOTCMD) ./rescue.sh -sun4dm-pci $(kernelPCI) root.bin 1440 $(debianversion) \
		"" $(LINGUA)
endif


#-----------------------------------------------------------------------------
# TFTP-Boot   - real good setup method, if the system is without an floppy
#-----------------------------------------------------------------------------
# netboot for Sparc architecture
ifeq ($(architecture),sparc)
tftpboot: tftpboot-sun4u.img tftpboot-sun4cdm.img tftpboot-sun4dm-pci.img

tftpboot-%.img: linux-% root.bin tftpboot.sh Makefile
	./tftpboot.sh linux-$* root.bin $@
else
ifeq ($(architecture), powerpc)
tftpboot-chrp.img: linuxchrp root.bin tftpboot.sh Makefile
	./tftpboot.sh linuxchrp root.bin $@

tftpboot-prep.img: linuxprep root.bin tftpboot.sh Makefile
	./tftpboot.sh linuxprep root.bin $@
else
ifeq ($(architecture), alpha)
TMPDIR := ${tmpdir}/boot-floppies
tftpboot.img:  linuxalpha_generic root.bin $(alpha_boot_dir)
	gzip -cd linuxalpha_generic > linuxalpha_generic.tmp
	$(MAKE) -C $(linux_source_dir) _dir_lib _dir_arch/alpha/lib
	$(ROOTCMD) rm -rf $(TMPDIR)/boot
	$(ROOTCMD) mkdir -p $(TMPDIR)/boot
	$(ROOTCMD) cp -r $(linux_source_dir)/arch/alpha/boot $(TMPDIR)
	$(ROOTCMD) make -C $(TMPDIR)/boot clean
	$(ROOTCMD) rm $(TMPDIR)/boot/bootp.c
	$(ROOTCMD) ln -s $(top_dir)/alphabootp.c $(TMPDIR)/boot/bootp.c
	$(ROOTCMD) make -C $(TMPDIR)/boot bootpfile \
		VMLINUX=$(top_dir)/linuxalpha_generic.tmp \
		INITRD=$(top_dir)/root.bin \
		CFLAGS='-O2 -pipe -ffixed-8 -I$(linux_source_dir)/include' \
		CC='gcc -D__KERNEL__ -mno-fp-regs' HOSTCC='gcc -O2 -pipe' \
		LIBS='$(linux_source_dir)/arch/alpha/lib/lib.a \
		      $(linux_source_dir)/lib/lib.a \
		      $(linux_source_dir)/arch/alpha/lib/lib.a'
	$(ROOTCMD) mv $(TMPDIR)/boot/bootpfile tftpboot.img
	rm linuxalpha_generic.tmp
else
ifeq ($(architecture), arm)
tftpboot-cats.img tftpboot-netwinder.img: linux-netwinder root-netwinder.bin tftpboot.sh Makefile
	./tftpboot.sh linux-netwinder root-netwinder.bin $@
endif
endif
endif
endif

ifeq ($(architecture), sparc)
# build SILO image used by rootdisk.sh & rescue.sh
silo1440k-sun4cdm.gz: $(silo_pkg) silo_proto.sh Makefile
	./silo_proto.sh $(archive) $(@:.gz=) "" 1440

silo1440k-sun4u.gz: $(silo_pkg) silo_proto.sh Makefile
	./silo_proto.sh $(archive) $(@:.gz=) sun4u 1440
endif

sign:
	pgp +clearsig=on -fast <release/md5sum.txt >release/md5sum.tmp
	mv release/md5sum.tmp release/md5sum.txt

