- adjust to package changes
[opensuse:installation-images.git] / Makefile
1 ARCH := $(shell uname -m)
2 ifneq ($(filter i386 i486 i586 i686, $(ARCH)),)
3 ARCH := i386
4 endif
5
6 GIT2LOG = $(shell [ -x ./git2log ] && echo ./git2log )
7
8 COMMON_TARGETS       := rescue root root+rescue root-themes bind gdb mini-iso-rmlist
9 COMMON_INSTSYS_PARTS := config rpmlist root common rescue bind gdb
10
11 ifneq ($(filter i386, $(ARCH)),)
12 ALL_TARGETS   := initrd-themes initrd biostest initrd+modules+gefrickel boot boot-themes $(COMMON_TARGETS)
13 INSTSYS_PARTS := $(COMMON_INSTSYS_PARTS)
14 BOOT_PARTS    := boot/* initrd biostest
15 endif
16
17 ifneq ($(filter x86_64, $(ARCH)),)
18 ALL_TARGETS   := initrd-themes initrd biostest initrd+modules+gefrickel boot-efi boot boot-themes $(COMMON_TARGETS)
19 INSTSYS_PARTS := $(COMMON_INSTSYS_PARTS)
20 BOOT_PARTS    := boot/* initrd biostest efi
21 endif
22
23 ifneq ($(filter ia64, $(ARCH)),)
24 ALL_TARGETS   := initrd-themes initrd initrd+modules boot-efi $(COMMON_TARGETS)
25 INSTSYS_PARTS := $(COMMON_INSTSYS_PARTS)
26 BOOT_PARTS    := initrd efi
27 endif
28
29 ifneq ($(filter s390 s390x, $(ARCH)),)
30 ALL_TARGETS   := initrd-themes initrd initrd+modules $(COMMON_TARGETS)
31 INSTSYS_PARTS := $(COMMON_INSTSYS_PARTS)
32 BOOT_PARTS    := initrd
33 endif
34
35 ifneq ($(filter ppc ppc64, $(ARCH)),)
36 ALL_TARGETS   := initrd-themes initrd initrd+modules+gefrickel $(COMMON_TARGETS)
37 INSTSYS_PARTS := $(COMMON_INSTSYS_PARTS)
38 BOOT_PARTS    :=
39 endif
40
41 THEMES        := openSUSE
42 DESTDIR       := images/instsys
43
44 ifneq ($(filter i386 x86_64, $(ARCH)),)
45 # needs SLES themes
46 # THEMES        += Zen
47 endif
48
49 export ARCH THEMES DESTDIR INSTSYS_PARTS BOOT_PARTS WITH_FLOPPY
50
51 .PHONY: all dirs base biostest initrd \
52         boot boot-efi root rescue root+rescue gdb bind clean \
53         boot-themes initrd-themes root-themes install \
54         install-initrd mini-iso-rmlist debuginfo cd1
55
56 all: $(ALL_TARGETS) VERSION changelog
57         @rm images/*.log
58
59 ifneq ($(GIT2LOG),)
60 changelog: .git/HEAD .git/refs/heads .git/refs/tags
61         $(GIT2LOG) --log >changelog
62
63 VERSION: .git/HEAD .git/refs/heads .git/refs/tags
64         $(GIT2LOG) --version >VERSION
65 endif
66
67 install:
68
69 dirs:
70         @[ -d images ] || ( mkdir images ; cd images ; mkdir $(THEMES) )
71         @[ -d tmp ] || mkdir tmp
72
73 base: dirs
74         @[ -d tmp/base ] || nostrip=1 libdeps=base image=base fs=none bin/mk_image
75
76 biostest: base
77         libdeps=initrd,biostest image=biostest src=initrd fs=cpio.gz disjunct=initrd bin/mk_image
78
79 initrd: base
80         libdeps=initrd image=initrd-base.gz tmpdir=initrd src=initrd filelist=initrd fs=cpio.gz bin/mk_image
81         [ -s tmp/initrd/bin/bash ]
82
83 modules: base
84         image=modules-config src=initrd fs=none bin/mk_image
85         bin/mlist1
86         bin/mlist2
87         image=modules src=initrd fs=none bin/mk_image
88         mkdir -p images/module-config/$${MOD_CFG:-default}
89         ls -I module.config tmp/modules/modules | sed -e 's#.*/##' >images/module-config/$${MOD_CFG:-default}/module.list
90         cp tmp/modules/modules/module.config images/module-config/$${MOD_CFG:-default}
91
92 initrd+modules: base
93         image=modules-config src=initrd fs=none bin/mk_image
94         bin/mlist1
95         bin/mlist2
96         rm -rf tmp/initrd/modules tmp/initrd/lib/modules
97         mode=keep,add image=$${image:-initrd} tmpdir=initrd filelist=modules src=initrd fs=cpio bin/mk_image
98         mkdir -p images/module-config/$${MOD_CFG:-default}
99         ls -I module.config tmp/initrd/modules | sed -e 's#.*/##' >images/module-config/$${MOD_CFG:-default}/module.list
100         cp tmp/initrd/modules/module.config images/module-config/$${MOD_CFG:-default}
101         # now theme it
102         for theme in $(THEMES) ; do \
103           cp images/$${image:-initrd} images/$$theme/$${image:-initrd} ; \
104           i=`pwd` ; ( cd tmp/initrd-$$theme ; find . | cpio --quiet -o -H newc -A -F $$i/images/$$theme/$${image:-initrd} ) ; \
105           gzip -9f images/$$theme/$${image:-initrd} ; mv images/$$theme/$${image:-initrd}.gz images/$$theme/$${image:-initrd} ; \
106         done
107         rm -f images/$${image:-initrd}
108         # still ok?
109         [ -s tmp/initrd/bin/bash ]
110
111 initrd+modules+gefrickel: base
112         image=modules-config src=initrd fs=none bin/mk_image
113         bin/mlist1
114         bin/mlist2
115         rm -rf tmp/initrd/modules tmp/initrd/lib/modules tmp/initrd_gefrickel
116         # work on a copy to not modify the origial tree
117         cp -a tmp/initrd tmp/initrd_gefrickel
118         mode=keep,add image=$${image:-initrd} tmpdir=initrd_gefrickel filelist=modules src=initrd fs=none bin/mk_image
119         mkdir -p images/module-config/$${MOD_CFG:-default}
120         ls -I module.config tmp/initrd_gefrickel/modules | sed -e 's#.*/##' >images/module-config/$${MOD_CFG:-default}/module.list
121         cp tmp/initrd_gefrickel/modules/module.config images/module-config/$${MOD_CFG:-default}
122         ./gefrickel tmp/initrd_gefrickel
123         mode=keep image=$${image:-initrd} tmpdir=initrd_gefrickel src=initrd filelist=initrd fs=cpio bin/mk_image
124         # now theme it
125         for theme in $(THEMES) ; do \
126           cp images/$${image:-initrd} images/$$theme/$${image:-initrd} ; \
127           i=`pwd` ; ( cd tmp/initrd-$$theme ; find . | cpio --quiet -o -H newc -A -F $$i/images/$$theme/$${image:-initrd} ) ; \
128           gzip -9f images/$$theme/$${image:-initrd} ; mv images/$$theme/$${image:-initrd}.gz images/$$theme/$${image:-initrd} ; \
129         done
130         rm -f images/$${image:-initrd}
131
132 kernel: base
133         image=vmlinuz-$${MOD_CFG:-default} src=initrd filelist=kernel kernel=kernel-$${MOD_CFG:-default} fs=dir bin/mk_image
134
135 boot-efi: base
136         image=boot-efi src=boot filelist=efi fs=none bin/mk_image
137         for theme in $(THEMES) ; do \
138           ln images/$$theme/initrd tmp/boot-efi/efi/boot/initrd ; \
139           bin/hdimage --size 500k --fit-size --chs 0 4 63 --part-ofs 0 --mkfs fat --add-files tmp/boot-efi/* tmp/boot-efi/.p* -- images/$$theme/efi ; \
140           rm -rf tmp/boot-efi/efi/boot/initrd ; \
141         done
142
143 boot: base
144         image=boot fs=dir bin/mk_image
145
146 root: base
147         libdeps=root image=root bin/mk_image
148
149 rescue: base
150         libdeps=rescue image=rescue bin/mk_image
151         # rescue ok? (bnc #457947)
152         @[ -s tmp/rescue/etc/init.d/boot.d/S*.udev ] || ( echo "build does not work on xxx" ; false )
153
154 root+rescue: base
155         image=root+rescue fs=none bin/mk_image
156         bin/common_tree --dst tmp/root+rescue tmp/rescue tmp/root
157         mode=keep tmpdir=root+rescue/c image=common fs=squashfs bin/mk_image
158         mode=keep tmpdir=root+rescue/1 image=rescue fs=squashfs bin/mk_image
159         mode=keep tmpdir=root+rescue/2 image=root fs=squashfs bin/mk_image
160         cp data/root/config images
161         cat data/root/rpmlist tmp/base/yast2-trans-rpm.list >images/rpmlist
162
163 sax2: base
164         libdeps=root,sax2 image=sax2 src=root fs=squashfs disjunct=root bin/mk_image
165
166 gdb: base
167         libdeps=root,gdb image=gdb src=root fs=squashfs disjunct=root bin/mk_image
168
169 bind: base
170         libdeps=root,bind image=bind src=root fs=squashfs disjunct=root bin/mk_image
171
172 boot-themes: base
173         for theme in $(THEMES) ; do \
174           theme=$$theme image=$$theme/boot tmpdir=boot-$$theme src=boot filelist=theme fs=dir bin/mk_image ; \
175         done
176
177 initrd-themes: base
178         for theme in $(THEMES) ; do \
179           theme=$$theme image=$$theme/install-initrd tmpdir=initrd-$$theme src=initrd filelist=theme fs=dir bin/mk_image ; \
180         done
181
182 root-themes: base
183         for theme in $(THEMES) ; do \
184           theme=$$theme image=$$theme/$$theme tmpdir=root-$$theme src=root filelist=theme fs=squashfs disjunct=root bin/mk_image ; \
185         done
186 ifneq ($(filter Zen, $(THEMES)),)
187         libdeps=zenroot image=Zen/root tmpdir=zenroot src=root filelist=zenroot fs=squashfs bin/mk_image
188 endif
189
190 cd1: base
191         mkdir -p data/cd1/gen
192         rm -f data/cd1/gen/rpm.file_list
193         for i in `cat images/rpmlist` ; do \
194           echo -e "$$i:\n  X <rpm_file> CD1/boot/<arch>\n" >> data/cd1/gen/rpm.file_list; \
195         done
196         nostrip=1 image=cd1 fs=none sw 0 bin/mk_image
197         cp -a images/instsys/CD1 tmp/cd1
198         rm -f tmp/cd1/CD1/boot/*/rpmlist
199         cp -a images/instsys/branding/openSUSE/CD1 tmp/cd1
200
201 mini-iso-rmlist: base
202         rm -f images/$@
203         for i in \
204           common rescue root rpmlist branding initrd-xen vmlinuz-xen initrd-xenpae vmlinuz-xenpae efi \
205           $(THEMES) $(INSTSYS_PARTS) \
206         ; do echo boot/$(ARCH)/$$i >>images/$@ ; done
207
208 mboot:
209         make -C src/mboot
210
211 add-xxx-key:
212         gpg --homedir=gpg --no-default-keyring --keyring=./tmp/initrd/installkey.gpg --import ./gpg/pubring.gpg
213         rm -f tmp/initrd/installkey.gpg~
214
215 debuginfo:
216         ./install.debuginfo
217
218 clean:
219         -@make -C src/mboot clean
220         -@make -C src/eltorito clean
221         -@rm -rf images tmp
222         -@rm -f `find -name '*~'`
223         -@rm -rf /tmp/mk_initrd_* /tmp/mk_image_* 
224         -@rm -rf data/initrd/gen data/boot/gen data/base/gen data/cd1/gen
225         -@rm -f gpg/trustdb.gpg gpg/random_seed
226
227 install:
228         -@rm -rf $(DESTDIR)
229         @mkdir -p $(DESTDIR)
230         ./install.$(ARCH)
231
232 install-initrd:
233         -@rm -rf $(DESTDIR)
234         @mkdir -p $(DESTDIR)/default
235         cp images/initrd-base.gz $(DESTDIR)
236         cp -a images/module-config/* $(DESTDIR)
237         for theme in $(THEMES) ; do \
238           cp -a images/$$theme/install-initrd $(DESTDIR)/$$theme ; \
239         done
240