summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 95000796ab0b37247b027557663bd0066e73cc23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
CC=gcc
CFLAGS=-Wall -W -O2

# avoid dpkg-dev dependency; fish out the version with sed
VERSION := $(shell sed 's/.*(\(.*\)).*/\1/; q' debian/changelog)

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 video \
        $(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) \
        $(call setarchdevs,ia64,ida fd0 fd1 ataraid cciss)

MAKEDEV := $(shell if [ -e /dev/MAKEDEV ]; then echo /dev/MAKEDEV; else echo /sbin/MAKEDEV; fi)

all: pkgdetails devices-std.tar.gz devices.tar.gz debootstrap-arch
clean:
	rm -f pkgdetails pkgdetails.o devices-std.tar.gz devices.tar.gz
	rm -f 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 scripts/debian/* $(DSDIR)/scripts/
	install -o root -g root -m 0644 scripts/ubuntu/* $(DSDIR)/scripts/
	install -o root -g root -m 0644 functions $(DSDIR)/

        # no special script for etch anymore
	ln -s sid $(DSDIR)/scripts/etch
	ln -s sid $(DSDIR)/scripts/lenny

	install -o root -g root -m 0755 debootstrap.8 $(DESTDIR)/usr/share/man/man8/
	sed 's/@VERSION@/$(VERSION)/g' debootstrap >$(DESTDIR)/usr/sbin/debootstrap
	chown root:root $(DESTDIR)/usr/sbin/debootstrap
	chmod 0755 $(DESTDIR)/usr/sbin/debootstrap

install-allarch: install
	install -o root -g root -m 0644 devices-std.tar.gz \
		$(DSDIR)/devices.tar.gz

install-arch: install
	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

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

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

devices-std.tar.gz:
	rm -rf dev
	mkdir -p dev
	chown 0:0 dev
	chmod 755 dev
	(cd dev && $(MAKEDEV) std ptmx fd)
	tar cf - dev | gzip -9 >devices-std.tar.gz
	rm -rf dev

devices.tar.gz:
	rm -rf dev

	mkdir -p dev
	chown 0:0 dev
	chmod 755 dev

	(cd 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