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