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