CC=gcc
CFLAGS=-Wall -W -O2

ARCH := $(shell dpkg --print-architecture)
setarchdevs = $(if $(findstring $(ARCH),$(1)),$(2))

DEVS := generic hde hdf hdg hdh sde sdf sdg sdh scd-all initrd input usb md lp rtc \
        $(call setarchdevs,i386,isdn-io eda edb sonycd mcd mcdx cdu535 \
                                optcd sjcd cm206cd gscd lmscd sbpcd \
                                aztcd bpcd dac960 ida fd0 fd1 ataraid cciss) \
        $(call setarchdevs,sparc,hdc hdd busmice) \
        $(call setarchdevs,m68k,fd0 fd1 adc add ade adf hdc hdd) \
        $(call setarchdevs,powerpc,hdc hdd fd0 fd1 isdn-io m68k-mice)

all: pkgdetails devices.tar.gz debootstrap-arch
clean:
	rm -f pkgdetails pkgdetails.o devices.tar.gz debootstrap-arch
	rm -rf dev

DSDIR=$(DESTDIR)/usr/lib/debootstrap
install:
	mkdir -p $(DSDIR)/scripts
	mkdir -p $(DESTDIR)/usr/sbin
	mkdir -p $(DESTDIR)/usr/share/man/man8
	install -o root -g root -m 0644 slink $(DSDIR)/scripts/
	install -o root -g root -m 0644 potato $(DSDIR)/scripts/
	install -o root -g root -m 0644 woody $(DSDIR)/scripts/
	install -o root -g root -m 0644 sarge $(DSDIR)/scripts/
	install -o root -g root -m 0644 sid $(DSDIR)/scripts/
	install -o root -g root -m 0644 warty $(DSDIR)/scripts/
	install -o root -g root -m 0644 woody.buildd $(DSDIR)/scripts/
	install -o root -g root -m 0644 sarge.buildd $(DSDIR)/scripts/
	install -o root -g root -m 0644 sid.buildd $(DSDIR)/scripts/
	install -o root -g root -m 0644 warty.buildd $(DSDIR)/scripts/
	install -o root -g root -m 0644 functions $(DSDIR)/
	install -o root -g root -m 0755 pkgdetails $(DSDIR)/
	install -o root -g root -m 0644 devices.tar.gz $(DSDIR)/
	install -o root -g root -m 0644 debootstrap-arch $(DSDIR)/arch
	install -o root -g root -m 0755 debootstrap.8 $(DESTDIR)/usr/share/man/man8/
	install -o root -g root -m 0755 debootstrap $(DESTDIR)/usr/sbin/

pkgdetails: pkgdetails.o
	$(CC) -o $@ $^

debootstrap-arch:
	echo $(ARCH) >debootstrap-arch

devices.tar.gz:
	rm -rf dev

	mkdir -p dev
	chown 0.0 dev
	chmod 755 dev

	(cd dev && /dev/MAKEDEV $(DEVS))

ifeq ($(ARCH),powerpc)
#	Maybe remove amiga/atari mice also? What about usbmouse?
	rm -f dev/adbmouse
	ln -sf input/mice dev/mouse
	ln -sf input/js0 dev/js0
	ln -sf input/js1 dev/js1
endif

	@if ! find dev -maxdepth 0 -perm 755 -uid 0 -gid 0 | \
	        grep -q "^dev$$"; \
	then \
	   echo "======================================================="; \
	   echo "ERROR"; echo; \
	   echo "./dev has bad permissions! should be 755 root.root. Was:"; \
	   ls -ld ./dev; \
	   echo "======================================================="; \
	   false; \
	fi

	tar cf - dev | gzip -9 >devices.tar.gz
	rm -rf dev
