xref: /illumos-gate/usr/src/grub/grub-0.97/stage2/Makefile.solaris (revision 621be8d08fd45483b5ca1cb8e2e88239f1502b4d)
1#
2# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
3# Use is subject to license terms.
4# Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
5# Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved.
6#
7include ../../Makefile.grub
8include ../Makefile.solaris.defs
9
10.SUFFIXES:
11.SUFFIXES: .exec $(SUFFIXES)
12
13.exec:
14	$(OBJCOPY) -O binary $< $@
15
16
17INCLUDES	= -I. -I.. -I../stage1 -I../netboot
18LIBS		=
19
20FSYS_CFLAGS	= -DFSYS_UFS=1 -DFSYS_FAT=1 \
21		  -DFSYS_ZFS=1 -DFSYS_ISO9660=1 \
22		  -DUSE_MD5_PASSWORDS=1
23$(STAGE2_NETBOOT)TFTP_CFLAGS	= -DFSYS_TFTP=1
24$(OPTION_FS)FSYS_CFLAGS	+= -DFSYS_MINIX=1 -DFSYS_JFS=1 -DFSYS_XFS=1 \
25		  -DSYS_VSTAFS=1 -DFSYS_FFS=1 -DFSYS_REISERFS=1 \
26		  -DFSYS_EXT2FS=1 -DFSYS_UFS2=1
27GRAPHICS_CFLAGS	= -DSUPPORT_GRAPHICS=1
28# HERCULES_CFLAGS	= -DSUPPORT_HERCULES=1
29NETBOOT_CFLAGS	= -DSUPPORT_NETBOOT=1
30SERIAL_CFLAGS	= -DSUPPORT_SERIAL=1
31GRUB_CFLAGS	= -O2 -I../lib -DGRUB_UTIL=1 \
32		  -DFSYS_ISO9660=1 -DFSYS_ZFS=1 -DFSYS_FAT=1 \
33		  -DFSYS_UFS=1 \
34		  -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1
35$(OPTION_FS)GRUB_CFLAGS	+= -DFSYS_MINIX=1 -DFSYS_JFS=1 -DFSYS_XFS=1 \
36		  -DSYS_VSTAFS=1 -DFSYS_FFS=1 -DFSYS_REISERFS=1 \
37		  -DFSYS_EXT2FS=1 -DFSYS_UFS2=1
38# GRUB_CFLAGS	+= -DSUPPORT_HERCULES=1
39STAGE1_5_CFLAGS	= $(STAGE2_CFLAGS) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
40STAGE2_CFLAGS	= -Os -fno-builtin -nostdinc \
41		  $(SERIAL_CFLAGS) $(GRAPHICS_CFLAGS)
42$(STAGE2_NETBOOT)STAGE2_CFLAGS	+= $(NETBOOT_CFLAGS)
43#STAGE2_CFLAGS	+= $(HERCULES_CFLAGS)
44
45NBLOADER_LINK	= -nostdlib -N -Ttext 0
46PRE_STAGE2_LINK	= -nostdlib -N -Ttext 8200
47PXELOADER_LINK	= -nostdlib -N -Ttext 7C00
48STAGE1_5_LINK	= -nostdlib -N -Ttext 2000
49START_ELTORITO_LINK = -nostdlib -N -Ttext 7C00
50START_LINK	= -nostdlib -N -Ttext 8000
51
52LIBDRIVERS	= ../netboot/libdrivers.a
53
54
55BUILT_SOURCES	= stage2_size.h
56BUILT_SOURCES	+= diskless_size.h
57
58
59LIBRARIES	= $(LIBGRUB)
60
61LIBGRUB		= libgrub.a
62LIBGRUB_OBJS	= libgrub_a-boot.o		\
63		  libgrub_a-builtins.o		\
64		  libgrub_a-char_io.o		\
65		  libgrub_a-cmdline.o		\
66		  libgrub_a-common.o		\
67		  libgrub_a-disk_io.o		\
68		  libgrub_a-expand.o		\
69		  libgrub_a-fsys_ext2fs.o	\
70		  libgrub_a-fsys_fat.o		\
71		  libgrub_a-fsys_ffs.o		\
72		  libgrub_a-fsys_iso9660.o	\
73		  libgrub_a-fsys_jfs.o		\
74		  libgrub_a-fsys_minix.o	\
75		  libgrub_a-fsys_reiserfs.o	\
76		  libgrub_a-zfs_sha256.o	\
77		  libgrub_a-zfs_lzjb.o		\
78		  libgrub_a-zfs_lz4.o		\
79		  libgrub_a-zfs_fletcher.o	\
80		  libgrub_a-fsys_zfs.o		\
81		  libgrub_a-fsys_ufs.o		\
82		  libgrub_a-fsys_ufs2.o		\
83		  libgrub_a-fsys_vstafs.o	\
84		  libgrub_a-fsys_xfs.o		\
85		  libgrub_a-graphics.o		\
86		  libgrub_a-gunzip.o		\
87		  libgrub_a-md5.o		\
88		  libgrub_a-serial.o		\
89		  libgrub_a-stage2.o		\
90		  libgrub_a-terminfo.o		\
91		  libgrub_a-tparm.o
92$(LIBGRUB_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(GRUB_CFLAGS)
93
94
95# Will be installed in $(ROOT_BOOT_GRUB).
96INSTALL_DATA	= $(E2FS_STAGE1_5_DATA)		\
97		  $(FAT_STAGE1_5_DATA)		\
98		  $(FFS_STAGE1_5_DATA)		\
99		  $(ISO9660_STAGE1_5_DATA)	\
100		  $(JFS_STAGE1_5_DATA)		\
101		  $(MINIX_STAGE1_5_DATA)	\
102		  $(NBGRUB_DATA)		\
103		  $(PXEGRUB_DATA)		\
104		  $(REISERFS_STAGE1_5_DATA)	\
105		  $(STAGE2_DATA)		\
106		  $(STAGE2_ELTORITO_DATA)	\
107		  $(UFS2_STAGE1_5_DATA)		\
108		  $(UFS_STAGE1_5_DATA)		\
109		  $(ZFS_STAGE1_5_DATA)		\
110		  $(VSTAFS_STAGE1_5_DATA)	\
111		  $(XFS_STAGE1_5_DATA)
112
113# Won't be installed.
114NOINSTALL_DATA	= $(DISKLESS_DATA)		\
115		  $(NBLOADER_DATA)		\
116		  $(PRE_STAGE2_DATA)		\
117		  $(PXELOADER_DATA)		\
118		  $(START_DATA)			\
119		  $(START_ELTORITO_DATA)
120
121DATA		= $(INSTALL_DATA) $(NOINSTALL_DATA)
122
123
124PROGRAMS	= $(DISKLESS_EXEC)		\
125		  $(E2FS_STAGE1_5_EXEC)		\
126		  $(FAT_STAGE1_5_EXEC)		\
127		  $(FFS_STAGE1_5_EXEC)		\
128		  $(ISO9660_STAGE1_5_EXEC)	\
129		  $(JFS_STAGE1_5_EXEC)		\
130		  $(MINIX_STAGE1_5_EXEC)	\
131		  $(NBLOADER_EXEC)		\
132		  $(PRE_STAGE2_EXEC)		\
133		  $(PXELOADER_EXEC)		\
134 		  $(REISERFS_STAGE1_5_EXEC)	\
135		  $(START_EXEC)			\
136		  $(START_ELTORITO_EXEC)	\
137		  $(UFS2_STAGE1_5_EXEC)		\
138		  $(UFS_STAGE1_5_EXEC)		\
139		  $(ZFS_STAGE1_5_EXEC)		\
140		  $(VSTAFS_STAGE1_5_EXEC)	\
141		  $(XFS_STAGE1_5_EXEC)
142
143
144#
145# diskless
146#
147DISKLESS_DATA		= diskless
148DISKLESS_EXEC		= diskless.exec
149DISKLESS_ASMOBJS	= diskless_exec-asm.o
150
151DISKLESS_OBJS		= diskless_exec-bios.o		\
152			  diskless_exec-boot.o		\
153			  diskless_exec-builtins.o	\
154			  diskless_exec-char_io.o	\
155			  diskless_exec-cmdline.o	\
156			  diskless_exec-common.o	\
157			  diskless_exec-console.o	\
158			  diskless_exec-disk_io.o	\
159			  diskless_exec-expand.o	\
160			  diskless_exec-fsys_ext2fs.o	\
161			  diskless_exec-fsys_fat.o	\
162			  diskless_exec-fsys_ffs.o	\
163			  diskless_exec-fsys_iso9660.o	\
164			  diskless_exec-fsys_jfs.o	\
165			  diskless_exec-fsys_minix.o	\
166			  diskless_exec-fsys_reiserfs.o	\
167			  diskless_exec-zfs_sha256.o	\
168			  diskless_exec-zfs_lzjb.o	\
169			  diskless_exec-zfs_lz4.o	\
170			  diskless_exec-zfs_fletcher.o	\
171			  diskless_exec-fsys_zfs.o	\
172			  diskless_exec-fsys_ufs.o	\
173			  diskless_exec-fsys_ufs2.o	\
174			  diskless_exec-fsys_vstafs.o	\
175			  diskless_exec-fsys_xfs.o	\
176			  diskless_exec-graphics.o	\
177			  diskless_exec-gunzip.o	\
178			  diskless_exec-hercules.o	\
179			  diskless_exec-md5.o		\
180			  diskless_exec-serial.o	\
181			  diskless_exec-smp-imps.o	\
182			  diskless_exec-stage2.o	\
183			  diskless_exec-terminfo.o	\
184			  diskless_exec-tparm.o
185
186$(DISKLESS_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(PRE_STAGE2_LINK)
187$(DISKLESS_EXEC)	:= LIBS = $(LIBDRIVERS)
188
189$(DISKLESS_ASMOBJS)	:= CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS) \
190				$(FSYS_CFLAGS) -DFSYS_TFTP=1 \
191				-DSUPPORT_DISKLESS=1
192
193$(DISKLESS_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE2_CFLAGS) \
194				$(FSYS_CFLAGS) -DFSYS_TFTP=1 \
195				-DSUPPORT_DISKLESS=1
196
197#
198# ext2fs stage 1.5
199#
200E2FS_STAGE1_5_DATA	= e2fs_stage1_5
201E2FS_STAGE1_5_EXEC	= e2fs_stage1_5.exec
202
203E2FS_STAGE1_5_ASMOBJS	= e2fs_stage1_5_exec-start.o \
204			  e2fs_stage1_5_exec-asm.o
205
206E2FS_STAGE1_5_OBJS	= e2fs_stage1_5_exec-bios.o \
207			  e2fs_stage1_5_exec-char_io.o \
208			  e2fs_stage1_5_exec-common.o \
209			  e2fs_stage1_5_exec-disk_io.o \
210			  e2fs_stage1_5_exec-fsys_ext2fs.o \
211			  e2fs_stage1_5_exec-stage1_5.o
212
213$(E2FS_STAGE1_5_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
214
215$(E2FS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
216				-DFSYS_EXT2FS=1 -DNO_BLOCK_FILES=1
217
218$(E2FS_STAGE1_5_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
219				-DFSYS_EXT2FS=1 -DNO_BLOCK_FILES=1
220
221#
222# FAT stage 1.5
223#
224FAT_STAGE1_5_DATA	= fat_stage1_5
225FAT_STAGE1_5_EXEC	= fat_stage1_5.exec
226
227FAT_STAGE1_5_ASMOBJS	= fat_stage1_5_exec-start.o \
228			  fat_stage1_5_exec-asm.o
229
230FAT_STAGE1_5_OBJS	= fat_stage1_5_exec-bios.o \
231			  fat_stage1_5_exec-char_io.o \
232			  fat_stage1_5_exec-common.o \
233			  fat_stage1_5_exec-disk_io.o \
234			  fat_stage1_5_exec-fsys_fat.o \
235			  fat_stage1_5_exec-stage1_5.o
236
237$(FAT_STAGE1_5_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
238
239$(FAT_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
240				-DFSYS_FAT=1 -DNO_BLOCK_FILES=1
241
242$(FAT_STAGE1_5_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
243				-DFSYS_FAT=1 -DNO_BLOCK_FILES=1
244
245#
246# FFS stage 1.5
247#
248FFS_STAGE1_5_DATA	= ffs_stage1_5
249FFS_STAGE1_5_EXEC	= ffs_stage1_5.exec
250
251FFS_STAGE1_5_ASMOBJS	= ffs_stage1_5_exec-start.o \
252			  ffs_stage1_5_exec-asm.o
253
254FFS_STAGE1_5_OBJS	= ffs_stage1_5_exec-bios.o \
255			  ffs_stage1_5_exec-char_io.o \
256			  ffs_stage1_5_exec-common.o \
257			  ffs_stage1_5_exec-disk_io.o \
258			  ffs_stage1_5_exec-fsys_ffs.o \
259			  ffs_stage1_5_exec-stage1_5.o
260
261$(FFS_STAGE1_5_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
262
263$(FFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
264				-DFSYS_FFS=1 -DNO_BLOCK_FILES=1
265
266$(FFS_STAGE1_5_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
267				-DFSYS_FFS=1 -DNO_BLOCK_FILES=1
268
269#
270# ISO9660 stage 1.5
271#
272ISO9660_STAGE1_5_DATA	= iso9660_stage1_5
273ISO9660_STAGE1_5_EXEC	= iso9660_stage1_5.exec
274
275ISO9660_STAGE1_5_ASMOBJS = iso9660_stage1_5_exec-start_eltorito.o \
276			   iso9660_stage1_5_exec-asm.o
277
278ISO9660_STAGE1_5_OBJS	= iso9660_stage1_5_exec-bios.o \
279			  iso9660_stage1_5_exec-char_io.o \
280			  iso9660_stage1_5_exec-common.o \
281			  iso9660_stage1_5_exec-disk_io.o \
282			  iso9660_stage1_5_exec-fsys_iso9660.o \
283			  iso9660_stage1_5_exec-stage1_5.o
284
285$(ISO9660_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
286
287$(ISO9660_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) \
288				$(STAGE1_5_CFLAGS) \
289				-DFSYS_ISO9660=1 -DNO_BLOCK_FILES=1
290
291$(ISO9660_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
292				-DFSYS_ISO9660=1 -DNO_BLOCK_FILES=1
293
294#
295# IBM JFS stage 1.5
296#
297JFS_STAGE1_5_DATA	= jfs_stage1_5
298JFS_STAGE1_5_EXEC	= jfs_stage1_5.exec
299
300JFS_STAGE1_5_ASMOBJS	= jfs_stage1_5_exec-start.o \
301			  jfs_stage1_5_exec-asm.o
302
303JFS_STAGE1_5_OBJS	= jfs_stage1_5_exec-bios.o \
304			  jfs_stage1_5_exec-char_io.o \
305			  jfs_stage1_5_exec-common.o \
306			  jfs_stage1_5_exec-disk_io.o \
307			  jfs_stage1_5_exec-fsys_jfs.o \
308			  jfs_stage1_5_exec-stage1_5.o
309
310$(JFS_STAGE1_5_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
311
312$(JFS_STAGE1_5_ASMOBJS)	:= CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
313				-DFSYS_JFS=1 -DNO_BLOCK_FILES=1
314
315$(JFS_STAGE1_5_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
316				-DFSYS_JFS=1 -DNO_BLOCK_FILES=1
317
318#
319# Minix fs stage 1.5
320#
321MINIX_STAGE1_5_DATA	= minix_stage1_5
322MINIX_STAGE1_5_EXEC	= minix_stage1_5.exec
323
324MINIX_STAGE1_5_ASMOBJS	= minix_stage1_5_exec-start.o \
325			  minix_stage1_5_exec-asm.o
326
327MINIX_STAGE1_5_OBJS	= minix_stage1_5_exec-bios.o \
328			  minix_stage1_5_exec-char_io.o \
329			  minix_stage1_5_exec-common.o \
330			  minix_stage1_5_exec-disk_io.o \
331			  minix_stage1_5_exec-fsys_minix.o \
332			  minix_stage1_5_exec-stage1_5.o
333
334$(MINIX_STAGE1_5_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
335
336$(MINIX_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
337				-DFSYS_MINIX=1 -DNO_BLOCK_FILES=1
338
339$(MINIX_STAGE1_5_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
340				-DFSYS_MINIX=1 -DNO_BLOCK_FILES=1
341
342#
343# nbgrub
344#
345NBGRUB_DATA		= nbgrub
346
347#
348# nbloader
349#
350NBLOADER_DATA		= nbloader
351NBLOADER_EXEC		= nbloader.exec
352NBLOADER_ASMOBJS	= nbloader_exec-nbloader.o
353NBLOADER_OBJS		=
354$(NBLOADER_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(NBLOADER_LINK)
355$(NBLOADER_ASMOBJS)	:= CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
356
357#
358# Pre-stage2
359#
360PRE_STAGE2_DATA		= pre_stage2
361PRE_STAGE2_EXEC		= pre_stage2.exec
362PRE_STAGE2_ASMOBJS	= pre_stage2_exec-asm.o
363
364PRE_STAGE2_OBJS		= pre_stage2_exec-bios.o \
365			  pre_stage2_exec-boot.o \
366			  pre_stage2_exec-builtins.o \
367			  pre_stage2_exec-char_io.o \
368			  pre_stage2_exec-cmdline.o \
369			  pre_stage2_exec-common.o \
370			  pre_stage2_exec-console.o \
371			  pre_stage2_exec-disk_io.o \
372			  pre_stage2_exec-expand.o \
373			  pre_stage2_exec-fsys_ext2fs.o \
374			  pre_stage2_exec-fsys_fat.o \
375			  pre_stage2_exec-fsys_ffs.o \
376			  pre_stage2_exec-fsys_iso9660.o \
377			  pre_stage2_exec-fsys_jfs.o \
378			  pre_stage2_exec-fsys_minix.o \
379			  pre_stage2_exec-fsys_reiserfs.o \
380			  pre_stage2_exec-zfs_sha256.o \
381			  pre_stage2_exec-zfs_lzjb.o \
382			  pre_stage2_exec-zfs_lz4.o \
383			  pre_stage2_exec-zfs_fletcher.o \
384			  pre_stage2_exec-fsys_zfs.o \
385			  pre_stage2_exec-fsys_ufs.o \
386			  pre_stage2_exec-fsys_ufs2.o \
387			  pre_stage2_exec-fsys_vstafs.o \
388			  pre_stage2_exec-fsys_xfs.o \
389			  pre_stage2_exec-graphics.o \
390			  pre_stage2_exec-gunzip.o \
391			  pre_stage2_exec-hercules.o \
392			  pre_stage2_exec-md5.o \
393			  pre_stage2_exec-serial.o \
394			  pre_stage2_exec-smp-imps.o \
395			  pre_stage2_exec-stage2.o \
396			  pre_stage2_exec-terminfo.o \
397			  pre_stage2_exec-tparm.o
398
399$(PRE_STAGE2_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(PRE_STAGE2_LINK)
400$(STAGE2_NETBOOT)$(PRE_STAGE2_EXEC)	:= LIBS = $(LIBDRIVERS)
401
402$(PRE_STAGE2_ASMOBJS)	:= CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS) \
403				$(FSYS_CFLAGS) $(TFTP_CFLAGS)
404
405$(PRE_STAGE2_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE2_CFLAGS) \
406				$(FSYS_CFLAGS) $(TFTP_CFLAGS)
407
408#
409# pxegrub
410#
411PXEGRUB_DATA		= pxegrub
412
413#
414# pxeloader
415#
416PXELOADER_DATA		= pxeloader
417PXELOADER_EXEC		= pxeloader.exec
418PXELOADER_ASMOBJS	= pxeloader_exec-pxeloader.o
419PXELOADER_OBJS		=
420$(PXELOADER_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(PXELOADER_LINK)
421$(PXELOADER_ASMOBJS)	:= CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
422
423#
424# ReiserFS stage 1.5
425#
426REISERFS_STAGE1_5_DATA  = reiserfs_stage1_5
427REISERFS_STAGE1_5_EXEC  = reiserfs_stage1_5.exec
428
429REISERFS_STAGE1_5_ASMOBJS = reiserfs_stage1_5_exec-start.o \
430			    reiserfs_stage1_5_exec-asm.o
431
432REISERFS_STAGE1_5_OBJS  = reiserfs_stage1_5_exec-bios.o \
433			  reiserfs_stage1_5_exec-char_io.o \
434			  reiserfs_stage1_5_exec-common.o \
435			  reiserfs_stage1_5_exec-disk_io.o \
436			  reiserfs_stage1_5_exec-fsys_reiserfs.o \
437			  reiserfs_stage1_5_exec-stage1_5.o
438
439$(REISERFS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
440
441$(REISERFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) \
442				$(STAGE1_5_CFLAGS) \
443				-DFSYS_REISERFS=1 -DNO_BLOCK_FILES=1
444
445$(REISERFS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS)	\
446				-DFSYS_REISERFS=1 -DNO_BLOCK_FILES=1
447
448#
449# stage2
450#
451STAGE2_DATA		= stage2
452
453#
454# Eltorito stage2
455#
456STAGE2_ELTORITO_DATA	= stage2_eltorito
457
458#
459# start
460#
461START_DATA		= start
462START_EXEC		= start.exec
463START_ASMOBJS		= start_exec-start.o
464START_OBJS		=
465$(START_EXEC)		:= LDFLAGS = $(BASE_LDFLAGS) $(START_LINK)
466$(START_ASMOBJS)	:= CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
467
468#
469# Eltorito start
470#
471START_ELTORITO_DATA	= start_eltorito
472START_ELTORITO_EXEC	= start_eltorito.exec
473START_ELTORITO_ASMOBJS	= start_eltorito_exec-start_eltorito.o
474START_ELTORITO_OBJS	=
475$(START_ELTORITO_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(START_ELTORITO_LINK)
476$(START_ELTORITO_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
477
478#
479# UFS2 stage 1.5
480#
481UFS2_STAGE1_5_DATA	= ufs2_stage1_5
482UFS2_STAGE1_5_EXEC	= ufs2_stage1_5.exec
483
484UFS2_STAGE1_5_ASMOBJS	= ufs2_stage1_5_exec-start.o \
485			  ufs2_stage1_5_exec-asm.o
486
487UFS2_STAGE1_5_OBJS	= ufs2_stage1_5_exec-bios.o \
488			  ufs2_stage1_5_exec-char_io.o \
489			  ufs2_stage1_5_exec-common.o \
490			  ufs2_stage1_5_exec-disk_io.o \
491			  ufs2_stage1_5_exec-fsys_ufs2.o \
492			  ufs2_stage1_5_exec-stage1_5.o
493
494$(UFS2_STAGE1_5_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
495
496$(UFS2_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
497				-DFSYS_UFS2=1 -DNO_BLOCK_FILES=1
498
499$(UFS2_STAGE1_5_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
500				-DFSYS_UFS2=1 -DNO_BLOCK_FILES=1
501
502#
503# UFS stage 1.5
504#
505UFS_STAGE1_5_DATA	= ufs_stage1_5
506UFS_STAGE1_5_EXEC	= ufs_stage1_5.exec
507
508UFS_STAGE1_5_ASMOBJS	= ufs_stage1_5_exec-start.o \
509			  ufs_stage1_5_exec-asm.o
510
511UFS_STAGE1_5_OBJS	= ufs_stage1_5_exec-bios.o \
512			  ufs_stage1_5_exec-char_io.o \
513			  ufs_stage1_5_exec-common.o \
514			  ufs_stage1_5_exec-disk_io.o \
515			  ufs_stage1_5_exec-fsys_ufs.o \
516			  ufs_stage1_5_exec-stage1_5.o
517
518$(UFS_STAGE1_5_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
519
520$(UFS_STAGE1_5_ASMOBJS)	:= CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
521				-DFSYS_UFS=1 -DNO_BLOCK_FILES=1
522
523$(UFS_STAGE1_5_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
524				-DFSYS_UFS=1 -DNO_BLOCK_FILES=1
525
526#
527# ZFS stage 1.5
528#
529ZFS_STAGE1_5_DATA	= zfs_stage1_5
530ZFS_STAGE1_5_EXEC	= zfs_stage1_5.exec
531
532ZFS_STAGE1_5_ASMOBJS	= zfs_stage1_5_exec-start.o \
533			  zfs_stage1_5_exec-asm.o
534
535ZFS_STAGE1_5_OBJS	= zfs_stage1_5_exec-bios.o \
536			  zfs_stage1_5_exec-char_io.o \
537			  zfs_stage1_5_exec-common.o \
538			  zfs_stage1_5_exec-disk_io.o \
539			  zfs_stage1_5_exec-zfs_sha256.o \
540			  zfs_stage1_5_exec-zfs_lzjb.o \
541			  zfs_stage1_5_exec-zfs_lz4.o \
542			  zfs_stage1_5_exec-zfs_fletcher.o \
543			  zfs_stage1_5_exec-fsys_zfs.o \
544			  zfs_stage1_5_exec-stage1_5.o
545
546$(ZFS_STAGE1_5_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
547
548$(ZFS_STAGE1_5_ASMOBJS)	:= CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
549				-DFSYS_ZFS=1 -DNO_BLOCK_FILES=1
550
551$(ZFS_STAGE1_5_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
552				-DFSYS_ZFS=1 -DNO_BLOCK_FILES=1
553
554#
555# VSTa FS
556#
557VSTAFS_STAGE1_5_DATA	= vstafs_stage1_5
558VSTAFS_STAGE1_5_EXEC	= vstafs_stage1_5.exec
559
560VSTAFS_STAGE1_5_ASMOBJS	= vstafs_stage1_5_exec-start.o \
561			  vstafs_stage1_5_exec-asm.o
562
563VSTAFS_STAGE1_5_OBJS	= vstafs_stage1_5_exec-bios.o \
564			  vstafs_stage1_5_exec-char_io.o \
565			  vstafs_stage1_5_exec-common.o \
566			  vstafs_stage1_5_exec-disk_io.o \
567			  vstafs_stage1_5_exec-fsys_vstafs.o \
568			  vstafs_stage1_5_exec-stage1_5.o
569
570$(VSTAFS_STAGE1_5_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
571
572$(VSTAFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
573				-DFSYS_VSTAFS=1 -DNO_BLOCK_FILES=1
574
575$(VSTAFS_STAGE1_5_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
576				-DFSYS_VSTAFS=1 -DNO_BLOCK_FILES=1
577
578#
579# SGI XFS stage 1.5
580#
581XFS_STAGE1_5_DATA	= xfs_stage1_5
582XFS_STAGE1_5_EXEC	= xfs_stage1_5.exec
583
584XFS_STAGE1_5_ASMOBJS	= xfs_stage1_5_exec-start.o \
585			  xfs_stage1_5_exec-asm.o
586
587XFS_STAGE1_5_OBJS	= xfs_stage1_5_exec-bios.o \
588			  xfs_stage1_5_exec-char_io.o \
589			  xfs_stage1_5_exec-common.o \
590			  xfs_stage1_5_exec-disk_io.o \
591			  xfs_stage1_5_exec-fsys_xfs.o \
592			  xfs_stage1_5_exec-stage1_5.o
593
594$(XFS_STAGE1_5_EXEC)	:= LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
595
596$(XFS_STAGE1_5_ASMOBJS)	:= CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
597				-DFSYS_XFS=1 -DNO_BLOCK_FILES=1
598
599$(XFS_STAGE1_5_OBJS)	:= CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
600				-DFSYS_XFS=1 -DNO_BLOCK_FILES=1
601
602
603INSTALL_TARGETS	= $(INSTALL_DATA:%=$(ROOT_BOOT_GRUB)/%) \
604		$(SRC_ZFSINC_DIR)
605
606#
607# Source files to be installed in $(ROOT_SRC).
608#
609SRC_DIR		= $(ROOT_SRC)/stage2
610SRC_ZFSINC_DIR	= $(SRC_DIR)/zfs-include
611SRC_FILES	= Makefile.am Makefile.in apic.h apm.S asm.S bios.c boot.c \
612		  builtins.c char_io.c cmdline.c common.c console.c defs.h \
613		  dir.h disk_inode.h disk_inode_ffs.h disk_io.c expand.c \
614		  expand.h fat.h \
615		  filesys.h freebsd.h fs.h fsys_ext2fs.c fsys_fat.c \
616		  fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
617		  zfs_sha256.c zfs_lzjb.c zfs_lz4.c zfs_fletcher.c fsys_zfs.c \
618		  fsys_reiserfs.c fsys_ufs.c fsys_ufs2.c fsys_vstafs.c \
619		  fsys_xfs.c graphics.c graphics.h gunzip.c hercules.c \
620		  hercules.h i386-elf.h imgact_aout.h iso9660.h jfs.h \
621		  mb_header.h mb_info.h md5.c md5.h nbi.h nbloader.S \
622		  pc_slice.h pxeloader.S serial.c serial.h setjmp.S shared.h \
623		  size_test smp-imps.c smp-imps.h stage1_5.c stage2.c \
624		  start.S start_eltorito.S term.h terminfo.c terminfo.h \
625		  tparm.c tparm.h fsys_zfs.h ufs.h ufs2.h vstafs.h xfs.h
626SRC_ZFSINC_FILES = dmu.h dmu_objset.h dnode.h dsl_dataset.h dsl_dir.h spa.h \
627		uberblock_impl.h vdev_impl.h zap_impl.h zap_leaf.h zfs.h \
628		zfs_acl.h zfs_znode.h zil.h zio.h zio_checksum.h
629
630INSTALL_TARGETS	+= $(SRC_FILES:%=$(SRC_DIR)/%) \
631		$(SRC_ZFSINC_FILES:%=$(SRC_ZFSINC_DIR)/%)
632
633
634###############################################################################
635all: $(BUILT_SOURCES) .WAIT $(LIBRARIES) $(PROGRAMS) $(DATA)
636
637#
638# BUILT_SOURCES
639#
640stage2_size.h: $(PRE_STAGE2_DATA)
641	$(RM) $@
642	set dummy `ls -l $(PRE_STAGE2_DATA)`; \
643	echo "#define STAGE2_SIZE $$6" > $@
644
645diskless_size.h: $(DISKLESS_DATA)
646	$(RM) $@
647	set dummy `ls -l $(DISKLESS_DATA)`; \
648	echo "#define DISKLESS_SIZE $$6" > $@
649
650#
651# LIBRARIES
652#
653$(LIBGRUB): $(LIBGRUB_OBJS)
654	$(RM) $@
655	$(AR) cru $@ $(LIBGRUB_OBJS)
656	$(RANLIB) $@
657
658$(LIBGRUB_OBJS): $$(@:libgrub_a-%.o=%.c)
659	$(CC) $(CFLAGS) -c -o $@ $(@:libgrub_a-%.o=%.c)
660
661
662#
663# Diskless
664#
665$(DISKLESS_EXEC): $(DISKLESS_ASMOBJS) $(DISKLESS_OBJS)
666	$(RM) $@
667	$(LINK) -o $@ $(DISKLESS_ASMOBJS) $(DISKLESS_OBJS) $(LIBS)
668
669$(DISKLESS_ASMOBJS): $$(@:diskless_exec-%.o=%.S)
670	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:diskless_exec-%.o=%.S)
671
672$(DISKLESS_OBJS): $$(@:diskless_exec-%.o=%.c)
673	$(CC) $(CFLAGS) -c -o $@ $(@:diskless_exec-%.o=%.c)
674
675#
676# ext2fs stage 1.5
677#
678$(E2FS_STAGE1_5_EXEC): $(E2FS_STAGE1_5_ASMOBJS) $(E2FS_STAGE1_5_OBJS)
679	$(RM) $@
680	$(LINK) -o $@ $(E2FS_STAGE1_5_ASMOBJS) $(E2FS_STAGE1_5_OBJS) $(LIBS)
681
682$(E2FS_STAGE1_5_ASMOBJS): $$(@:e2fs_stage1_5_exec-%.o=%.S)
683	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:e2fs_stage1_5_exec-%.o=%.S)
684
685$(E2FS_STAGE1_5_OBJS): $$(@:e2fs_stage1_5_exec-%.o=%.c)
686	$(CC) $(CFLAGS) -c -o $@ $(@:e2fs_stage1_5_exec-%.o=%.c)
687
688#
689# FAT stage 1.5
690#
691$(FAT_STAGE1_5_EXEC): $(FAT_STAGE1_5_ASMOBJS) $(FAT_STAGE1_5_OBJS)
692	$(RM) $@
693	$(LINK) -o $@ $(FAT_STAGE1_5_ASMOBJS) $(FAT_STAGE1_5_OBJS) $(LIBS)
694
695$(FAT_STAGE1_5_ASMOBJS): $$(@:fat_stage1_5_exec-%.o=%.S)
696	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:fat_stage1_5_exec-%.o=%.S)
697
698$(FAT_STAGE1_5_OBJS): $$(@:fat_stage1_5_exec-%.o=%.c)
699	$(CC) $(CFLAGS) -c -o $@ $(@:fat_stage1_5_exec-%.o=%.c)
700
701#
702# FFS stage 1.5
703#
704$(FFS_STAGE1_5_EXEC): $(FFS_STAGE1_5_ASMOBJS) $(FFS_STAGE1_5_OBJS)
705	$(RM) $@
706	$(LINK) -o $@ $(FFS_STAGE1_5_ASMOBJS) $(FFS_STAGE1_5_OBJS) $(LIBS)
707
708$(FFS_STAGE1_5_ASMOBJS): $$(@:ffs_stage1_5_exec-%.o=%.S)
709	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:ffs_stage1_5_exec-%.o=%.S)
710
711$(FFS_STAGE1_5_OBJS): $$(@:ffs_stage1_5_exec-%.o=%.c)
712	$(CC) $(CFLAGS) -c -o $@ $(@:ffs_stage1_5_exec-%.o=%.c)
713
714#
715# ISO9660 stage 1.5
716#
717$(ISO9660_STAGE1_5_EXEC): $(ISO9660_STAGE1_5_ASMOBJS) $(ISO9660_STAGE1_5_OBJS)
718	$(RM) $@
719	$(LINK) -o $@ $(ISO9660_STAGE1_5_ASMOBJS) $(ISO9660_STAGE1_5_OBJS) \
720	    $(LIBS)
721
722$(ISO9660_STAGE1_5_ASMOBJS): $$(@:iso9660_stage1_5_exec-%.o=%.S)
723	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:iso9660_stage1_5_exec-%.o=%.S)
724
725$(ISO9660_STAGE1_5_OBJS): $$(@:iso9660_stage1_5_exec-%.o=%.c)
726	$(CC) $(CFLAGS) -c -o $@ $(@:iso9660_stage1_5_exec-%.o=%.c)
727
728#
729# JFS stage 1.5
730#
731$(JFS_STAGE1_5_EXEC): $(JFS_STAGE1_5_ASMOBJS) $(JFS_STAGE1_5_OBJS)
732	$(RM) $@
733	$(LINK) -o $@ $(JFS_STAGE1_5_ASMOBJS) $(JFS_STAGE1_5_OBJS) $(LIBS)
734
735$(JFS_STAGE1_5_ASMOBJS): $$(@:jfs_stage1_5_exec-%.o=%.S)
736	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:jfs_stage1_5_exec-%.o=%.S)
737
738$(JFS_STAGE1_5_OBJS): $$(@:jfs_stage1_5_exec-%.o=%.c)
739	$(CC) $(CFLAGS) -c -o $@ $(@:jfs_stage1_5_exec-%.o=%.c)
740
741#
742# Minix stage 1.5
743#
744$(MINIX_STAGE1_5_EXEC): $(MINIX_STAGE1_5_ASMOBJS) $(MINIX_STAGE1_5_OBJS)
745	$(RM) $@
746	$(LINK) -o $@ $(MINIX_STAGE1_5_ASMOBJS) $(MINIX_STAGE1_5_OBJS) $(LIBS)
747
748$(MINIX_STAGE1_5_ASMOBJS): $$(@:minix_stage1_5_exec-%.o=%.S)
749	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:minix_stage1_5_exec-%.o=%.S)
750
751$(MINIX_STAGE1_5_OBJS): $$(@:minix_stage1_5_exec-%.o=%.c)
752	$(CC) $(CFLAGS) -c -o $@ $(@:minix_stage1_5_exec-%.o=%.c)
753
754#
755# nbgrub
756#
757$(NBGRUB_DATA): $(NBLOADER_DATA) $(DISKLESS_DATA)
758	$(RM) $@
759	cat $(NBLOADER_DATA) $(DISKLESS_DATA) > $@
760
761#
762# nbloader
763#
764$(NBLOADER_EXEC): $(NBLOADER_ASMOBJS) $(NBLOADER_OBJS)
765	$(RM) $@
766	$(LINK) -o $@ $(NBLOADER_ASMOBJS) $(NBLOADER_OBJS) $(LIBS)
767
768$(NBLOADER_ASMOBJS): $$(@:nbloader_exec-%.o=%.S) diskless_size.h
769	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:nbloader_exec-%.o=%.S)
770
771$(NBLOADER_OBJS): $$(@:nbloader_exec-%.o=%.c)
772	$(CC) $(CFLAGS) -c -o $@ $(@:nbloader_exec-%.o=%.c)
773
774#
775# Pre-stage2
776#
777$(PRE_STAGE2_EXEC): $(PRE_STAGE2_ASMOBJS) $(PRE_STAGE2_OBJS)
778	$(RM) $@
779	$(LINK) -o $@ $(PRE_STAGE2_ASMOBJS) $(PRE_STAGE2_OBJS) $(LIBS)
780
781$(PRE_STAGE2_ASMOBJS): $$(@:pre_stage2_exec-%.o=%.S)
782	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:pre_stage2_exec-%.o=%.S)
783
784$(PRE_STAGE2_OBJS): $$(@:pre_stage2_exec-%.o=%.c)
785	$(CC) $(CFLAGS) -c -o $@ $(@:pre_stage2_exec-%.o=%.c)
786
787#
788# pxegrub
789#
790$(PXEGRUB_DATA): $(PXELOADER_DATA) $(DISKLESS_DATA)
791	$(RM) $@
792	cat $(PXELOADER_DATA) $(DISKLESS_DATA) > $@
793
794#
795# pxeloader
796#
797$(PXELOADER_EXEC): $(PXELOADER_ASMOBJS) $(PXELOADER_OBJS)
798	$(RM) $@
799	$(LINK) -o $@ $(PXELOADER_ASMOBJS) $(PXELOADER_OBJS) $(LIBS)
800
801$(PXELOADER_ASMOBJS): $$(@:pxeloader_exec-%.o=%.S) diskless_size.h
802	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:pxeloader_exec-%.o=%.S)
803
804$(PXELOADER_OBJS): $$(@:pxeloader_exec-%.o=%.c)
805	$(CC) $(CFLAGS) -c -o $@ $(@:pxeloader_exec-%.o=%.c)
806
807#
808# ReiserFS stage 1.5
809#
810$(REISERFS_STAGE1_5_EXEC): $(REISERFS_STAGE1_5_ASMOBJS)	\
811	$(REISERFS_STAGE1_5_OBJS)
812	$(RM) $@
813	$(LINK) -o $@ $(REISERFS_STAGE1_5_ASMOBJS) $(REISERFS_STAGE1_5_OBJS) \
814	    $(LIBS)
815
816$(REISERFS_STAGE1_5_ASMOBJS): $$(@:reiserfs_stage1_5_exec-%.o=%.S)
817	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:reiserfs_stage1_5_exec-%.o=%.S)
818
819$(REISERFS_STAGE1_5_OBJS): $$(@:reiserfs_stage1_5_exec-%.o=%.c)
820	$(CC) $(CFLAGS) -c -o $@ $(@:reiserfs_stage1_5_exec-%.o=%.c)
821
822#
823# stage2
824#
825$(STAGE2_DATA): $(START_DATA) $(PRE_STAGE2_DATA)
826	$(RM) $@
827	cat $(START_DATA) $(PRE_STAGE2_DATA) > $@
828#
829# Eltorito stage2
830#
831$(STAGE2_ELTORITO_DATA): $(START_ELTORITO_DATA) $(PRE_STAGE2_DATA)
832	$(RM) $@
833	cat $(START_ELTORITO_DATA) $(PRE_STAGE2_DATA) > $@
834
835#
836# start
837#
838$(START_EXEC): $(START_ASMOBJS) $(START_OBJS)
839	$(RM) $@
840	$(LINK) -o $@ $(START_ASMOBJS) $(START_OBJS) $(LIBS)
841
842$(START_ASMOBJS): $$(@:start_exec-%.o=%.S) stage2_size.h
843	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:start_exec-%.o=%.S)
844
845$(START_OBJS): $$(@:start_exec-%.o=%.c)
846	$(CC) $(CFLAGS) -c -o $@ $(@:start_exec-%.o=%.c)
847
848#
849# Eltorito start
850#
851$(START_ELTORITO_EXEC): $(START_ELTORITO_ASMOBJS) $(START_ELTORITO_OBJS)
852	$(RM) $@
853	$(LINK) -o $@ $(START_ELTORITO_ASMOBJS) $(START_ELTORITO_OBJS) $(LIBS)
854
855$(START_ELTORITO_ASMOBJS): $$(@:start_eltorito_exec-%.o=%.S) stage2_size.h
856	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:start_eltorito_exec-%.o=%.S)
857
858$(START_ELTORITO_OBJS): $$(@:start_eltorito_exec-%.o=%.c)
859	$(CC) $(CFLAGS) -c -o $@ $(@:start_eltorito_exec-%.o=%.c)
860
861#
862# UFS2 stage 1.5
863#
864$(UFS2_STAGE1_5_EXEC): $(UFS2_STAGE1_5_ASMOBJS) $(UFS2_STAGE1_5_OBJS)
865	$(RM) $@
866	$(LINK) -o $@ $(UFS2_STAGE1_5_ASMOBJS) $(UFS2_STAGE1_5_OBJS) $(LIBS)
867
868$(UFS2_STAGE1_5_ASMOBJS): $$(@:ufs2_stage1_5_exec-%.o=%.S)
869	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:ufs2_stage1_5_exec-%.o=%.S)
870
871$(UFS2_STAGE1_5_OBJS): $$(@:ufs2_stage1_5_exec-%.o=%.c)
872	$(CC) $(CFLAGS) -c -o $@ $(@:ufs2_stage1_5_exec-%.o=%.c)
873
874#
875# UFS stage 1.5
876#
877$(UFS_STAGE1_5_EXEC): $(UFS_STAGE1_5_ASMOBJS) $(UFS_STAGE1_5_OBJS)
878	$(RM) $@
879	$(LINK) -o $@ $(UFS_STAGE1_5_ASMOBJS) $(UFS_STAGE1_5_OBJS) $(LIBS)
880
881$(UFS_STAGE1_5_ASMOBJS): $$(@:ufs_stage1_5_exec-%.o=%.S)
882	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:ufs_stage1_5_exec-%.o=%.S)
883
884$(UFS_STAGE1_5_OBJS): $$(@:ufs_stage1_5_exec-%.o=%.c)
885	$(CC) $(CFLAGS) -c -o $@ $(@:ufs_stage1_5_exec-%.o=%.c)
886
887#
888# ZFS stage 1.5
889#
890$(ZFS_STAGE1_5_EXEC): $(ZFS_STAGE1_5_ASMOBJS) $(ZFS_STAGE1_5_OBJS)
891	$(RM) $@
892	$(LINK) -o $@ $(ZFS_STAGE1_5_ASMOBJS) $(ZFS_STAGE1_5_OBJS) $(LIBS)
893
894$(ZFS_STAGE1_5_ASMOBJS): $$(@:zfs_stage1_5_exec-%.o=%.S)
895	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:zfs_stage1_5_exec-%.o=%.S)
896
897$(ZFS_STAGE1_5_OBJS): $$(@:zfs_stage1_5_exec-%.o=%.c)
898	$(CC) $(CFLAGS) -c -o $@ $(@:zfs_stage1_5_exec-%.o=%.c)
899
900#
901# VSTa stage 1.5
902#
903$(VSTAFS_STAGE1_5_EXEC): $(VSTAFS_STAGE1_5_ASMOBJS) $(VSTAFS_STAGE1_5_OBJS)
904	$(RM) $@
905	$(LINK) -o $@ $(VSTAFS_STAGE1_5_ASMOBJS) $(VSTAFS_STAGE1_5_OBJS) $(LIBS)
906
907$(VSTAFS_STAGE1_5_ASMOBJS): $$(@:vstafs_stage1_5_exec-%.o=%.S)
908	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:vstafs_stage1_5_exec-%.o=%.S)
909
910$(VSTAFS_STAGE1_5_OBJS): $$(@:vstafs_stage1_5_exec-%.o=%.c)
911	$(CC) $(CFLAGS) -c -o $@ $(@:vstafs_stage1_5_exec-%.o=%.c)
912
913#
914# SGI XFS stage 1.5
915#
916$(XFS_STAGE1_5_EXEC): $(XFS_STAGE1_5_ASMOBJS) $(XFS_STAGE1_5_OBJS)
917	$(RM) $@
918	$(LINK) -o $@ $(XFS_STAGE1_5_ASMOBJS) $(XFS_STAGE1_5_OBJS) $(LIBS)
919
920$(XFS_STAGE1_5_ASMOBJS): $$(@:xfs_stage1_5_exec-%.o=%.S)
921	$(CCAS) $(CCASFLAGS) -c -o $@ $(@:xfs_stage1_5_exec-%.o=%.S)
922
923$(XFS_STAGE1_5_OBJS): $$(@:xfs_stage1_5_exec-%.o=%.c)
924	$(CC) $(CFLAGS) -c -o $@ $(@:xfs_stage1_5_exec-%.o=%.c)
925
926
927
928install: all $(INSTALL_TARGETS)
929
930$(ROOT_BOOT_GRUB)/%: $(ROOT_BOOT_GRUB) %
931	$(INS.file)
932
933$(SRC_DIR)/%: $(SRC_DIR) %
934	$(INS.file)
935
936$(SRC_ZFSINC_DIR)/%: $(SRC_ZFSINC_DIR) %
937	$(INS.file)
938
939$(ROOT_BOOT_GRUB) $(SRC_DIR) $(SRC_ZFSINC_DIR):
940	$(INS.dir)
941
942clean: _FORCE
943	$(RM) *.o $(BUILT_SOURCES) $(LIBRARIES) $(PROGRAMS) $(NOINSTALL_DATA)
944
945clobber: clean
946	$(RM) $(INSTALL_DATA)
947
948_FORCE:
949