62de8bcd451b4dea95a64f0150abcb29e08dc1cf
[people/mcb30/mkbootfs.git] / Makefile
1 BOOTPACK = ./tools/bootpack
2
3 CFLAGS = -W -Wall -Wextra -O3
4
5 BOOTPACKS :=
6
7 all : tools bootpacks
8
9 # Build tools for bootfs manipulation
10
11 $(BOOTPACK) : $(BOOTPACK).c
12         $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -lz $< -o $@
13
14 clean ::
15         rm -f $(BOOTPACK)
16
17 tools :: $(BOOTPACK)
18
19 # Skeleton boot pack
20
21 SKEL_DEVS :=
22 SKEL_DEVS += /dev/null
23 SKEL_DEVS += /dev/console
24 SKEL_DEVS += /dev/tty
25 SKEL_DEVS += /dev/tty1
26 SKEL_DEVS += /dev/tty2
27 SKEL_DEVS += /dev/tty3
28 SKEL_DEVS += /dev/tty4
29 SKEL_DEVS += /dev/tty5
30 SKEL_DEVS += /dev/tty6
31 SKEL_DEVS += /dev/mem
32 SKEL_DEVS += /dev/urandom
33
34 skeleton.bp : $(BOOTPACK)
35         rm -rf skeleton
36         mkdir -p skeleton/{bin,dev,etc,lib/modules,mnt,proc,sbin,sys}
37         mkdir -p skeleton/{usr/{bin,sbin,share}}
38         mkdir -p skeleton/{var/{lock,log,run}}
39         $(BOOTPACK) -o $@ skeleton=/ $(SKEL_DEVS)
40
41 BOOTPACKS += skeleton.bp
42
43 # Busybox boot pack
44
45 busybox/busybox : busybox/.config
46         $(MAKE) -C busybox oldconfig
47         uclibc $(MAKE) -C busybox
48
49 busybox.bp : busybox/busybox $(BOOTPACK)
50         $(MAKE) -C busybox install
51         $(BOOTPACK) -o $@ busybox/_install=/
52
53 BOOTPACKS += busybox.bp
54
55 clean ::
56         $(MAKE) -C busybox clean
57
58 # Policy boot pack
59
60 POL_FILES :=
61 POL_FILES += policy/etc/passwd
62 POL_FILES += policy/etc/group
63 POL_FILES += policy/etc/protocols
64 POL_FILES += policy/etc/inittab
65 POL_FILES += policy/etc/init.d/rcS
66 POL_FILES += policy/usr/share/udhcpc/default.script
67 POL_FILES += policy/bin/welcome.sh
68
69 policy.bp : $(POL_FILES) $(BOOTPACK)
70         $(BOOTPACK) -o $@ \
71                 `echo $(POL_FILES) | sed 's/policy\(\S*\)/policy\1=\1/g'`
72
73 BOOTPACKS += policy.bp
74
75 # Boot pack common instructions
76
77 bootpacks : $(BOOTPACKS)
78
79 clean ::
80         rm -f $(BOOTPACKS)