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