File: Makefile

package info (click to toggle)
emile 0.10-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,716 kB
  • ctags: 2,737
  • sloc: ansic: 18,908; makefile: 726; asm: 622; sh: 2
file content (393 lines) | stat: -rw-r--r-- 11,373 bytes parent folder | download
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
#
#  (c) 2004,2005 Laurent Vivier <LaurentVivier@wanadoo.fr>
#
#

MAKEFLAGS += --no-print-directory

PACKAGE	= emile
VERSION	= 0.10

PREFIX=/

# kernel boot arguments

FLOPPY=/dev/floppy/0
#CONSOLE=console=ttyS0,9600n8 console=tty0

NETBOOT_ARGS="root=/dev/nfs ip=dhcp rw $(CONSOLE)"
RESCUE_ARGS="root=/dev/ramdisk ramdisk_size=2048 $(CONSOLE)"
CDBOOT_ARGS="root=/dev/ramdisk ramdisk_size=13000 $(CONSOLE)"
INSTALLER_ARGS="prompt_ramdisk=1 load_ramdisk=1 ramdisk_start=0 root=/dev/fd0 ramdisk_size=4096 $(CONSOLE)"
BOOT_ARGS="root=/dev/sda4 $(CONSOLE)"

# build info

WHO	= $(shell whoami)
WHERE	= $(shell hostname)
WHEN	= $(shell LANG=C date)
ARCH	= $(shell uname -m)
OS	= $(shell uname -o)

SIGNATURE = $(PACKAGE)-$(VERSION) $(WHO)@$(WHERE)($(ARCH) $(OS)) $(WHEN)

# tools to use

AS=$(CROSS_COMPILE)as
CC=$(CROSS_COMPILE)gcc
LD=$(CROSS_COMPILE)ld
OBJCOPY=$(CROSS_COMPILE)objcopy
STRIP=$(CROSS_COMPILE)strip

ifneq ($(ARCH),m68k)
M68K_CROSS_COMPILE	= m68k-linux-
endif

M68K_AS=$(M68K_CROSS_COMPILE)as
M68K_CC=$(M68K_CROSS_COMPILE)gcc
M68K_LD=$(M68K_CROSS_COMPILE)ld
M68K_OBJCOPY=$(M68K_CROSS_COMPILE)objcopy
M68K_STRIP=$(M68K_CROSS_COMPILE)strip

ifneq ($(ARCH),ppc)
PPC_CROSS_COMPILE	= ppc-linux-
endif

PPC_AS=$(PPC_CROSS_COMPILE)as
PPC_CC=$(PPC_CROSS_COMPILE)gcc
PPC_LD=$(PPC_CROSS_COMPILE)ld
PPC_OBJCOPY=$(PPC_CROSS_COMPILE)objcopy

# Kernel architecture

LINUXRAMDISK=ramdisk.gz
LINUXPATH=vmlinux

LINUX=$(shell ls $(LINUXPATH) 2> /dev/null)

ifeq ($(LINUX),$(LINUXPATH))
	FILEARCH=$(shell file -bknL $(LINUX) | cut -d, -f 2)
	ifeq ($(findstring PowerPC, $(FILEARCH)), PowerPC)

		KARCH=ppc

	else
	ifeq ($(findstring Motorola 68000, $(FILEARCH)), Motorola 68000)

		KARCH=classic

	else
	ifeq ($(findstring Motorola 68, $(FILEARCH)), Motorola 68)

		KARCH=m68k
	else
		KARCH=unknown
	endif
	endif
	endif
else
	KARCH=m68k
endif

# Target

.PHONY: first libemile libblock libiso9660 libiso9660-m68k libgzip-m68k tools \
       libcontainer clean all_bin all install tools-install first-install docs-install \
       uninstall tools-uninstall first-uninstall docs-uninstall \
       clean libemile-clean libmacos-clean libunix-clean tools-clean \
       first-clean second-clean docs-clean libiso9660-clean libgzip-clean \
       libfloppy-clean libscsi-clean libstream-clean libblock-clean dist docs

all: docs libemile libblock libiso9660 libiso9660-m68k libgzip-m68k \
     tools first libstream libcontainer \
     second/$(KARCH)-linux-floppy/second \
     second/$(KARCH)-linux-scsi/second second/m68k-netbsd-floppy/second

# We can build floppy image only if a kernel is provided

ifeq ($(LINUX),$(LINUXPATH))
all_bin: netboot.bin rescue.bin debian-installer.bin boot.bin \
	 cdboot-sarge.bin cdboot-woody.bin second/$(KARCH)-linux-scsi/second
	rm -f last.bin

cdboot-woody.bin: tools first second/$(KARCH)-linux-scsi/second
	tools/emile-install -f first/first_floppy \
			    -s second/$(KARCH)-linux-scsi/second \
			    -k "iso9660:(sd3)/install/mac/linux.bin" \
			    -r "iso9660:(sd3)/install/mac/root.bin" \
			    cdboot-woody.bin.X
	tools/emile-set-cmdline cdboot-woody.bin.X $(CDBOOT_ARGS)
	mv cdboot-woody.bin.X cdboot-woody.bin
	rm -f last.bin
	ln -s cdboot-woody.bin last.bin

cdboot-sarge.bin: tools first second/$(KARCH)-linux-scsi/second
	tools/emile-install -f first/first_floppy \
			-s second/$(KARCH)-linux-scsi/second \
			-k "iso9660:(sd3)/install/kernels/vmlinuz-2.2.25-mac" \
			-r "iso9660:(sd3)/install/cdrom/initrd22.gz" \
			    cdboot-sarge.bin.X
	tools/emile-set-cmdline cdboot-sarge.bin.X $(CDBOOT_ARGS)
	mv cdboot-sarge.bin.X cdboot-sarge.bin
	rm -f last.bin
	ln -s cdboot-sarge.bin last.bin

floppy.bin: tools first vmlinuz \
	    second/$(KARCH)-linux-floppy/second
	tools/emile-install -f first/first_floppy \
			    -s second/$(KARCH)-linux-floppy/second \
			    -k vmlinuz floppy.bin.X
ifdef CONSOLE
	tools/emile-set-output floppy.bin.X --printer --modem
endif
	mv floppy.bin.X floppy.bin

floppy_ramdisk.bin: tools first vmlinuz \
		    second/$(KARCH)-linux-floppy/second $(LINUXRAMDISK)
	tools/emile-install -f first/first_floppy  \
			    -s second/$(KARCH)-linux-floppy/second \
			    -k vmlinuz -r $(LINUXRAMDISK) floppy_ramdisk.bin.X
ifdef CONSOLE
	tools/emile-set-output floppy_ramdisk.bin.X --printer --modem
endif
	mv floppy_ramdisk.bin.X floppy_ramdisk.bin

debian-installer.bin: floppy.bin
	rm -f last.bin
	cp floppy.bin debian-installer.bin.X
	tools/emile-set-cmdline debian-installer.bin.X $(INSTALLER_ARGS)
	mv debian-installer.bin.X debian-installer.bin
	ln -s debian-installer.bin last.bin

netboot.bin: floppy.bin
	rm -f last.bin
	cp floppy.bin netboot.bin.X
	tools/emile-set-cmdline netboot.bin.X $(NETBOOT_ARGS)
	mv netboot.bin.X netboot.bin
	ln -s netboot.bin last.bin

rescue.bin: floppy_ramdisk.bin
	rm -f last.bin
	cp floppy_ramdisk.bin rescue.bin.X
	tools/emile-set-cmdline rescue.bin.X $(RESCUE_ARGS)
	mv rescue.bin.X rescue.bin
	ln -s rescue.bin last.bin

boot.bin: floppy.bin
	rm -f last.bin
	cp floppy.bin boot.bin.X
	tools/emile-set-cmdline boot.bin.X $(BOOT_ARGS)
	mv boot.bin.X boot.bin
	ln -s boot.bin last.bin

vmlinuz: $(LINUX)
	$(M68K_STRIP) -s $(LINUX) -o $(LINUX).stripped
	gzip -9 $(LINUX).stripped
	mv $(LINUX).stripped.gz vmlinuz
endif

NETBSDPATH=netbsd

NETBSD=$(shell ls $(NETBSDPATH) 2> /dev/null)

ifeq ($(NETBSD),$(NETBSDPATH))
netbsd-floppy.bin: tools first netbsd.gz \
	    second/m68k-netbsd-floppy/second
	tools/emile-install -f first/first_floppy \
			    -s second/$(KARCH)-netbsd-floppy/second \
			    -k netbsd.gz netbsd-floppy.bin.X
ifdef CONSOLE
	tools/emile-set-output netbsd-floppy.bin.X --printer --modem
endif
	mv netbsd-floppy.bin.X netbsd-floppy.bin

netbsd-boot.bin: netbsd-floppy.bin
	rm -f last.bin
	cp netbsd-floppy.bin netbsd-boot.bin.X
	tools/emile-set-cmdline netbsd-boot.bin.X $(BOOT_ARGS)
	mv netbsd-boot.bin.X netbsd-boot.bin
	ln -s netbsd-boot.bin last.bin

netbsd.gz: $(NETBSD)
	$(M68K_STRIP) -s $(NETBSD) -o $(NETBSD).stripped
	gzip -9 $(NETBSD).stripped
	mv $(NETBSD).stripped.gz netbsd.gz
endif

export SIGNATURE VERSION DESTDIR PREFIX KARCH CROSS_COMPILE

first::
	$(MAKE) -C first OBJCOPY=$(M68K_OBJCOPY) AS=$(M68K_AS)

second/$(KARCH)-linux-floppy/second:: libmacos libunix libiso9660-m68k libgzip-m68k libfloppy libscsi libstream libblock libcontainer
	$(MAKE) -C second OBJCOPY=$(M68K_OBJCOPY) LD=$(M68K_LD) CC=$(M68K_CC) \
		AS=$(M68K_AS) MEDIA=floppy TARGET=$(KARCH)-linux

second/$(KARCH)-linux-scsi/second:: libmacos libunix libiso9660-m68k libgzip-m68k libscsi libstream libblock libcontainer
	$(MAKE) -C second OBJCOPY=$(M68K_OBJCOPY) LD=$(M68K_LD) CC=$(M68K_CC) \
		AS=$(M68K_AS) TARGET=$(KARCH)-linux MEDIA=scsi

second/m68k-netbsd-floppy/second:: libmacos libunix libiso9660-m68k libgzip-m68k libfloppy libstream libblock libcontainer
	$(MAKE) -C second OBJCOPY=$(M68K_OBJCOPY) LD=$(M68K_LD) CC=$(M68K_CC) \
		AS=$(M68K_AS) TARGET=m68k-netbsd MEDIA=floppy

first-install::
	$(MAKE) -C first install

first-uninstall::
	$(MAKE) -C first uninstall

second-install::
	$(MAKE) -C second install 

second-uninstall::
	$(MAKE) -C second uninstall

libmacos::
	$(MAKE) -C libmacos all CC=$(M68K_CC) AS=$(M68K_AS)

libunix::
	$(MAKE) -C libunix all CC=$(M68K_CC) AS=$(M68K_AS)

libiso9660-m68k::
	$(MAKE) -C libiso9660 all LD=$(M68K_LD) CC=$(M68K_CC) AS=$(M68K_AS) \
		TARGET=m68k-linux

libiso9660::
	$(MAKE) -C libiso9660 all TARGET=native CROSS_COMPILE=$(CROSS_COMPILE)

libcontainer::
	$(MAKE) -C libcontainer all LD=$(M68K_LD) CC=$(M68K_CC) AS=$(M68K_AS)

libblock::
	$(MAKE) -C libblock all LD=$(M68K_LD) CC=$(M68K_CC) AS=$(M68K_AS)

libgzip-m68k::
	$(MAKE) -C libgzip all TARGET=$(KARCH)-linux LD=$(M68K_LD) CC=$(M68K_CC) AS=$(M68K_AS) TARGET=m68k-linux

libgzip::
	$(MAKE) -C libgzip all TARGET=native CROSS_COMPILE=$(CROSS_COMPILE)

libemile::
	$(MAKE) -C libemile all CROSS_COMPILE=$(CROSS_COMPILE)

libfloppy::
	$(MAKE) -C libfloppy all CC=$(M68K_CC) AS=$(M68K_AS)

libscsi::
	$(MAKE) -C libscsi all CC=$(M68K_CC) AS=$(M68K_AS)

libstream::
	$(MAKE) -C libstream all CC=$(M68K_CC) AS=$(M68K_AS)

tools::  libemile libiso9660 libgzip
	$(MAKE) -C tools all CROSS_COMPILE=$(CROSS_COMPILE)

tools-install:: tools
	$(MAKE) -C tools install

tools-uninstall::
	$(MAKE) -C tools uninstall

docs-install:: docs
	$(MAKE) -C docs install

docs-uninstall::
	$(MAKE) -C docs uninstall

docs::
	$(MAKE) -C docs all

dump: last.bin
	dd if=last.bin of=$(FLOPPY) bs=512

install: tools-install first-install second-install docs-install

uninstall: tools-uninstall first-uninstall second-uninstall docs-uninstall

libemile-clean:
	$(MAKE) -C libemile clean

libmacos-clean:
	$(MAKE) -C libmacos clean

libunix-clean:
	$(MAKE) -C libunix clean

libscsi-clean:
	$(MAKE) -C libscsi clean

libstream-clean:
	$(MAKE) -C libstream clean

libiso9660-clean::
	$(MAKE) -C libiso9660 clean TARGET=native
	$(MAKE) -C libiso9660 clean TARGET=$(KARCH)-linux

libcontainer-clean::
	$(MAKE) -C libcontainer clean

libblock-clean::
	$(MAKE) -C libblock clean

libgzip-clean::
	$(MAKE) -C libgzip clean TARGET=native
	$(MAKE) -C libgzip clean TARGET=$(KARCH)-linux

tools-clean:
	$(MAKE) -C tools clean

first-clean:
	$(MAKE) -C first clean

second-clean:
	$(MAKE) -C second clean

docs-clean:
	$(MAKE) -C docs clean

libfloppy-clean:
	$(MAKE) -C libfloppy clean

clean:: libemile-clean libmacos-clean libunix-clean tools-clean first-clean \
	second-clean docs-clean libiso9660-clean libgzip-clean libfloppy-clean \
	libscsi-clean libstream-clean libblock-clean libcontainer-clean
	rm -f floppy.bin floppy.bin.X floppy_ramdisk.bin \
	      floppy_ramdisk.bin.X rescue.bin rescue.bin.X \
	      debian-installer.bin debian-installer.bin.X \
	      netboot.bin netboot.bin.X boot.bin boot.bin.X \
	      vmlinuz last.bin cdboot-sarge.bin cdboot-woody.bin

DISTFILES = AUTHORS ChangeLog COPYING Makefile README README.floppy \
	    README.scsi Rules.mk

dist:
	rm -fr $(PACKAGE)-$(VERSION)
	mkdir $(PACKAGE)-$(VERSION)
	@$(MAKE) -C tools dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C libemile dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C second dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C first dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C docs dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C libmacos dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C libunix dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C libstream dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C libscsi dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C libfloppy dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C libblock dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C libiso9660 dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C libcontainer dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C libgzip dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@$(MAKE) -C tools dist DISTDIR=$(shell pwd)/$(PACKAGE)-$(VERSION)
	@echo TAR emile
	@for file in $(DISTFILES); do \
		dir=$$(dirname $$file); \
		if [ "$$dir" != "" ] ; then \
			mkdir -p $(PACKAGE)-$(VERSION)/$$dir; \
		fi; \
		cp -p $$file $(PACKAGE)-$(VERSION)/$$file; \
	done
	@rm -f $(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION).tar.bz2
	@tar cf $(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION)
	@bzip2 -9 $(PACKAGE)-$(VERSION).tar
	@rm -fr $(PACKAGE)-$(VERSION)