Merge branch 'master' of git://github.com/illumos/illumos-gate
[unleashed.git] / usr / src / grub / grub-0.97 / stage2 / Makefile.solaris
blob925092fd4dd803919cce5dbc6b8079b37de92774
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.
8 include ../../Makefile.grub
9 include ../Makefile.solaris.defs
11 .SUFFIXES:
12 .SUFFIXES: .exec $(SUFFIXES)
14 .exec:
15         $(OBJCOPY) -O binary $< $@
18 INCLUDES        = -I. -I.. -I../stage1 -I../netboot
19 LIBS            =
21 FSYS_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
28 GRAPHICS_CFLAGS = -DSUPPORT_GRAPHICS=1
29 # HERCULES_CFLAGS       = -DSUPPORT_HERCULES=1
30 NETBOOT_CFLAGS  = -DSUPPORT_NETBOOT=1
31 SERIAL_CFLAGS   = -DSUPPORT_SERIAL=1
32 GRUB_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
40 STAGE1_5_CFLAGS = $(STAGE2_CFLAGS) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
41 STAGE2_CFLAGS   = -Os -fno-builtin -nostdinc \
42                   $(SERIAL_CFLAGS) $(GRAPHICS_CFLAGS)
43 $(STAGE2_NETBOOT)STAGE2_CFLAGS  += $(NETBOOT_CFLAGS)
44 #STAGE2_CFLAGS  += $(HERCULES_CFLAGS)
46 NBLOADER_LINK   = -nostdlib -N -Ttext 0
47 PRE_STAGE2_LINK = -nostdlib -N -Ttext 8200
48 PXELOADER_LINK  = -nostdlib -N -Ttext 7C00
49 STAGE1_5_LINK   = -nostdlib -N -Ttext 2000
50 START_ELTORITO_LINK = -nostdlib -N -Ttext 7C00
51 START_LINK      = -nostdlib -N -Ttext 8000
53 LIBDRIVERS      = ../netboot/libdrivers.a
56 BUILT_SOURCES   = stage2_size.h
57 BUILT_SOURCES   += diskless_size.h
60 LIBRARIES       = $(LIBGRUB)
62 LIBGRUB         = libgrub.a
63 LIBGRUB_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)
97 # Will be installed in $(ROOT_BOOT_GRUB).
98 INSTALL_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)
115 # Won't be installed.
116 NOINSTALL_DATA  = $(DISKLESS_DATA)              \
117                   $(NBLOADER_DATA)              \
118                   $(PRE_STAGE2_DATA)            \
119                   $(PXELOADER_DATA)             \
120                   $(START_DATA)                 \
121                   $(START_ELTORITO_DATA)
123 DATA            = $(INSTALL_DATA) $(NOINSTALL_DATA)
126 PROGRAMS        = $(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)
147 # diskless
149 DISKLESS_DATA           = diskless
150 DISKLESS_EXEC           = diskless.exec
151 DISKLESS_ASMOBJS        = diskless_exec-asm.o
153 DISKLESS_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
189 $(DISKLESS_EXEC)        := LDFLAGS = $(BASE_LDFLAGS) $(PRE_STAGE2_LINK)
190 $(DISKLESS_EXEC)        := LIBS = $(LIBDRIVERS)
192 $(DISKLESS_ASMOBJS)     := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS) \
193                                 $(FSYS_CFLAGS) -DFSYS_TFTP=1 \
194                                 -DSUPPORT_DISKLESS=1
196 $(DISKLESS_OBJS)        := CFLAGS = $(BASE_CFLAGS) $(STAGE2_CFLAGS) \
197                                 $(FSYS_CFLAGS) -DFSYS_TFTP=1 \
198                                 -DSUPPORT_DISKLESS=1
201 # ext2fs stage 1.5
203 E2FS_STAGE1_5_DATA      = e2fs_stage1_5
204 E2FS_STAGE1_5_EXEC      = e2fs_stage1_5.exec
206 E2FS_STAGE1_5_ASMOBJS   = e2fs_stage1_5_exec-start.o \
207                           e2fs_stage1_5_exec-asm.o
209 E2FS_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
217 $(E2FS_STAGE1_5_EXEC)   := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
219 $(E2FS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
220                                 -DFSYS_EXT2FS=1 -DNO_BLOCK_FILES=1
222 $(E2FS_STAGE1_5_OBJS)   := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
223                                 -DFSYS_EXT2FS=1 -DNO_BLOCK_FILES=1
226 # FAT stage 1.5
228 FAT_STAGE1_5_DATA       = fat_stage1_5
229 FAT_STAGE1_5_EXEC       = fat_stage1_5.exec
231 FAT_STAGE1_5_ASMOBJS    = fat_stage1_5_exec-start.o \
232                           fat_stage1_5_exec-asm.o
234 FAT_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
242 $(FAT_STAGE1_5_EXEC)    := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
244 $(FAT_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
245                                 -DFSYS_FAT=1 -DNO_BLOCK_FILES=1
247 $(FAT_STAGE1_5_OBJS)    := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
248                                 -DFSYS_FAT=1 -DNO_BLOCK_FILES=1
251 # FFS stage 1.5
253 FFS_STAGE1_5_DATA       = ffs_stage1_5
254 FFS_STAGE1_5_EXEC       = ffs_stage1_5.exec
256 FFS_STAGE1_5_ASMOBJS    = ffs_stage1_5_exec-start.o \
257                           ffs_stage1_5_exec-asm.o
259 FFS_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
267 $(FFS_STAGE1_5_EXEC)    := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
269 $(FFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
270                                 -DFSYS_FFS=1 -DNO_BLOCK_FILES=1
272 $(FFS_STAGE1_5_OBJS)    := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
273                                 -DFSYS_FFS=1 -DNO_BLOCK_FILES=1
276 # ISO9660 stage 1.5
278 ISO9660_STAGE1_5_DATA   = iso9660_stage1_5
279 ISO9660_STAGE1_5_EXEC   = iso9660_stage1_5.exec
281 ISO9660_STAGE1_5_ASMOBJS = iso9660_stage1_5_exec-start_eltorito.o \
282                            iso9660_stage1_5_exec-asm.o
284 ISO9660_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
292 $(ISO9660_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
294 $(ISO9660_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) \
295                                 $(STAGE1_5_CFLAGS) \
296                                 -DFSYS_ISO9660=1 -DNO_BLOCK_FILES=1
298 $(ISO9660_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
299                                 -DFSYS_ISO9660=1 -DNO_BLOCK_FILES=1
302 # IBM JFS stage 1.5
304 JFS_STAGE1_5_DATA       = jfs_stage1_5
305 JFS_STAGE1_5_EXEC       = jfs_stage1_5.exec
307 JFS_STAGE1_5_ASMOBJS    = jfs_stage1_5_exec-start.o \
308                           jfs_stage1_5_exec-asm.o
310 JFS_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
318 $(JFS_STAGE1_5_EXEC)    := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
320 $(JFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
321                                 -DFSYS_JFS=1 -DNO_BLOCK_FILES=1
323 $(JFS_STAGE1_5_OBJS)    := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
324                                 -DFSYS_JFS=1 -DNO_BLOCK_FILES=1
327 # Minix fs stage 1.5
329 MINIX_STAGE1_5_DATA     = minix_stage1_5
330 MINIX_STAGE1_5_EXEC     = minix_stage1_5.exec
332 MINIX_STAGE1_5_ASMOBJS  = minix_stage1_5_exec-start.o \
333                           minix_stage1_5_exec-asm.o
335 MINIX_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
343 $(MINIX_STAGE1_5_EXEC)  := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
345 $(MINIX_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
346                                 -DFSYS_MINIX=1 -DNO_BLOCK_FILES=1
348 $(MINIX_STAGE1_5_OBJS)  := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
349                                 -DFSYS_MINIX=1 -DNO_BLOCK_FILES=1
352 # nbgrub
354 NBGRUB_DATA             = nbgrub
357 # nbloader
359 NBLOADER_DATA           = nbloader
360 NBLOADER_EXEC           = nbloader.exec
361 NBLOADER_ASMOBJS        = nbloader_exec-nbloader.o
362 NBLOADER_OBJS           =
363 $(NBLOADER_EXEC)        := LDFLAGS = $(BASE_LDFLAGS) $(NBLOADER_LINK)
364 $(NBLOADER_ASMOBJS)     := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
367 # Pre-stage2
369 PRE_STAGE2_DATA         = pre_stage2
370 PRE_STAGE2_EXEC         = pre_stage2.exec
371 PRE_STAGE2_ASMOBJS      = pre_stage2_exec-asm.o
373 PRE_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
409 $(PRE_STAGE2_EXEC)      := LDFLAGS = $(BASE_LDFLAGS) $(PRE_STAGE2_LINK)
410 $(STAGE2_NETBOOT)$(PRE_STAGE2_EXEC)     := LIBS = $(LIBDRIVERS)
412 $(PRE_STAGE2_ASMOBJS)   := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS) \
413                                 $(FSYS_CFLAGS) $(TFTP_CFLAGS)
415 $(PRE_STAGE2_OBJS)      := CFLAGS = $(BASE_CFLAGS) $(STAGE2_CFLAGS) \
416                                 $(FSYS_CFLAGS) $(TFTP_CFLAGS)
419 # pxegrub
421 PXEGRUB_DATA            = pxegrub
424 # pxeloader
426 PXELOADER_DATA          = pxeloader
427 PXELOADER_EXEC          = pxeloader.exec
428 PXELOADER_ASMOBJS       = pxeloader_exec-pxeloader.o
429 PXELOADER_OBJS          =
430 $(PXELOADER_EXEC)       := LDFLAGS = $(BASE_LDFLAGS) $(PXELOADER_LINK)
431 $(PXELOADER_ASMOBJS)    := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
434 # ReiserFS stage 1.5
436 REISERFS_STAGE1_5_DATA  = reiserfs_stage1_5
437 REISERFS_STAGE1_5_EXEC  = reiserfs_stage1_5.exec
439 REISERFS_STAGE1_5_ASMOBJS = reiserfs_stage1_5_exec-start.o \
440                             reiserfs_stage1_5_exec-asm.o
442 REISERFS_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
450 $(REISERFS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
452 $(REISERFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) \
453                                 $(STAGE1_5_CFLAGS) \
454                                 -DFSYS_REISERFS=1 -DNO_BLOCK_FILES=1
456 $(REISERFS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
457                                 -DFSYS_REISERFS=1 -DNO_BLOCK_FILES=1
460 # stage2
462 STAGE2_DATA             = stage2
465 # Eltorito stage2
467 STAGE2_ELTORITO_DATA    = stage2_eltorito
470 # start
472 START_DATA              = start
473 START_EXEC              = start.exec
474 START_ASMOBJS           = start_exec-start.o
475 START_OBJS              =
476 $(START_EXEC)           := LDFLAGS = $(BASE_LDFLAGS) $(START_LINK)
477 $(START_ASMOBJS)        := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
480 # Eltorito start
482 START_ELTORITO_DATA     = start_eltorito
483 START_ELTORITO_EXEC     = start_eltorito.exec
484 START_ELTORITO_ASMOBJS  = start_eltorito_exec-start_eltorito.o
485 START_ELTORITO_OBJS     =
486 $(START_ELTORITO_EXEC)  := LDFLAGS = $(BASE_LDFLAGS) $(START_ELTORITO_LINK)
487 $(START_ELTORITO_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
490 # UFS2 stage 1.5
492 UFS2_STAGE1_5_DATA      = ufs2_stage1_5
493 UFS2_STAGE1_5_EXEC      = ufs2_stage1_5.exec
495 UFS2_STAGE1_5_ASMOBJS   = ufs2_stage1_5_exec-start.o \
496                           ufs2_stage1_5_exec-asm.o
498 UFS2_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
506 $(UFS2_STAGE1_5_EXEC)   := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
508 $(UFS2_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
509                                 -DFSYS_UFS2=1 -DNO_BLOCK_FILES=1
511 $(UFS2_STAGE1_5_OBJS)   := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
512                                 -DFSYS_UFS2=1 -DNO_BLOCK_FILES=1
515 # UFS stage 1.5
517 UFS_STAGE1_5_DATA       = ufs_stage1_5
518 UFS_STAGE1_5_EXEC       = ufs_stage1_5.exec
520 UFS_STAGE1_5_ASMOBJS    = ufs_stage1_5_exec-start.o \
521                           ufs_stage1_5_exec-asm.o
523 UFS_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
531 $(UFS_STAGE1_5_EXEC)    := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
533 $(UFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
534                                 -DFSYS_UFS=1 -DNO_BLOCK_FILES=1
536 $(UFS_STAGE1_5_OBJS)    := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
537                                 -DFSYS_UFS=1 -DNO_BLOCK_FILES=1
540 # ZFS stage 1.5
542 ZFS_STAGE1_5_DATA       = zfs_stage1_5
543 ZFS_STAGE1_5_EXEC       = zfs_stage1_5.exec
545 ZFS_STAGE1_5_ASMOBJS    = zfs_stage1_5_exec-start.o \
546                           zfs_stage1_5_exec-asm.o
548 ZFS_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
560 $(ZFS_STAGE1_5_EXEC)    := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
562 $(ZFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
563                                 -DFSYS_ZFS=1 -DNO_BLOCK_FILES=1
565 $(ZFS_STAGE1_5_OBJS)    := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
566                                 -DFSYS_ZFS=1 -DNO_BLOCK_FILES=1
569 # VSTa FS
571 VSTAFS_STAGE1_5_DATA    = vstafs_stage1_5
572 VSTAFS_STAGE1_5_EXEC    = vstafs_stage1_5.exec
574 VSTAFS_STAGE1_5_ASMOBJS = vstafs_stage1_5_exec-start.o \
575                           vstafs_stage1_5_exec-asm.o
577 VSTAFS_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
585 $(VSTAFS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
587 $(VSTAFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
588                                 -DFSYS_VSTAFS=1 -DNO_BLOCK_FILES=1
590 $(VSTAFS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
591                                 -DFSYS_VSTAFS=1 -DNO_BLOCK_FILES=1
594 # SGI XFS stage 1.5
596 XFS_STAGE1_5_DATA       = xfs_stage1_5
597 XFS_STAGE1_5_EXEC       = xfs_stage1_5.exec
599 XFS_STAGE1_5_ASMOBJS    = xfs_stage1_5_exec-start.o \
600                           xfs_stage1_5_exec-asm.o
602 XFS_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
610 $(XFS_STAGE1_5_EXEC)    := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK)
612 $(XFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \
613                                 -DFSYS_XFS=1 -DNO_BLOCK_FILES=1
615 $(XFS_STAGE1_5_OBJS)    := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \
616                                 -DFSYS_XFS=1 -DNO_BLOCK_FILES=1
619 INSTALL_TARGETS = $(INSTALL_DATA:%=$(ROOT_BOOT_GRUB)/%) \
620                 $(SRC_ZFSINC_DIR)
623 # Source files to be installed in $(ROOT_SRC).
625 SRC_DIR         = $(ROOT_SRC)/stage2
626 SRC_ZFSINC_DIR  = $(SRC_DIR)/zfs-include
627 SRC_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
642 SRC_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
646 INSTALL_TARGETS += $(SRC_FILES:%=$(SRC_DIR)/%) \
647                 $(SRC_ZFSINC_FILES:%=$(SRC_ZFSINC_DIR)/%)
650 ###############################################################################
651 all: $(BUILT_SOURCES) .WAIT $(LIBRARIES) $(PROGRAMS) $(DATA)
654 # BUILT_SOURCES
656 stage2_size.h: $(PRE_STAGE2_DATA)
657         $(RM) $@
658         set dummy `ls -l $(PRE_STAGE2_DATA)`; \
659         echo "#define STAGE2_SIZE $$6" > $@
661 diskless_size.h: $(DISKLESS_DATA)
662         $(RM) $@
663         set dummy `ls -l $(DISKLESS_DATA)`; \
664         echo "#define DISKLESS_SIZE $$6" > $@
667 # LIBRARIES
669 $(LIBGRUB): $(LIBGRUB_OBJS)
670         $(RM) $@
671         $(AR) cru $@ $(LIBGRUB_OBJS)
672         $(RANLIB) $@
674 $(LIBGRUB_OBJS): $$(@:libgrub_a-%.o=%.c)
675         $(CC) $(CFLAGS) -c -o $@ $(@:libgrub_a-%.o=%.c)
679 # Diskless
681 $(DISKLESS_EXEC): $(DISKLESS_ASMOBJS) $(DISKLESS_OBJS) 
682         $(RM) $@
683         $(LINK) -o $@ $(DISKLESS_ASMOBJS) $(DISKLESS_OBJS) $(LIBS)
685 $(DISKLESS_ASMOBJS): $$(@:diskless_exec-%.o=%.S)
686         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:diskless_exec-%.o=%.S)
688 $(DISKLESS_OBJS): $$(@:diskless_exec-%.o=%.c)
689         $(CC) $(CFLAGS) -c -o $@ $(@:diskless_exec-%.o=%.c)
692 # ext2fs stage 1.5
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)
698 $(E2FS_STAGE1_5_ASMOBJS): $$(@:e2fs_stage1_5_exec-%.o=%.S)
699         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:e2fs_stage1_5_exec-%.o=%.S)
701 $(E2FS_STAGE1_5_OBJS): $$(@:e2fs_stage1_5_exec-%.o=%.c)
702         $(CC) $(CFLAGS) -c -o $@ $(@:e2fs_stage1_5_exec-%.o=%.c)
705 # FAT stage 1.5
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)
711 $(FAT_STAGE1_5_ASMOBJS): $$(@:fat_stage1_5_exec-%.o=%.S)
712         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:fat_stage1_5_exec-%.o=%.S)
714 $(FAT_STAGE1_5_OBJS): $$(@:fat_stage1_5_exec-%.o=%.c)
715         $(CC) $(CFLAGS) -c -o $@ $(@:fat_stage1_5_exec-%.o=%.c)
718 # FFS stage 1.5
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)
724 $(FFS_STAGE1_5_ASMOBJS): $$(@:ffs_stage1_5_exec-%.o=%.S)
725         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:ffs_stage1_5_exec-%.o=%.S)
727 $(FFS_STAGE1_5_OBJS): $$(@:ffs_stage1_5_exec-%.o=%.c)
728         $(CC) $(CFLAGS) -c -o $@ $(@:ffs_stage1_5_exec-%.o=%.c)
731 # ISO9660 stage 1.5
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)
738 $(ISO9660_STAGE1_5_ASMOBJS): $$(@:iso9660_stage1_5_exec-%.o=%.S)
739         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:iso9660_stage1_5_exec-%.o=%.S)
741 $(ISO9660_STAGE1_5_OBJS): $$(@:iso9660_stage1_5_exec-%.o=%.c)
742         $(CC) $(CFLAGS) -c -o $@ $(@:iso9660_stage1_5_exec-%.o=%.c)
745 # JFS stage 1.5
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)
751 $(JFS_STAGE1_5_ASMOBJS): $$(@:jfs_stage1_5_exec-%.o=%.S)
752         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:jfs_stage1_5_exec-%.o=%.S)
754 $(JFS_STAGE1_5_OBJS): $$(@:jfs_stage1_5_exec-%.o=%.c)
755         $(CC) $(CFLAGS) -c -o $@ $(@:jfs_stage1_5_exec-%.o=%.c)
758 # Minix stage 1.5
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)
764 $(MINIX_STAGE1_5_ASMOBJS): $$(@:minix_stage1_5_exec-%.o=%.S)
765         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:minix_stage1_5_exec-%.o=%.S)
767 $(MINIX_STAGE1_5_OBJS): $$(@:minix_stage1_5_exec-%.o=%.c)
768         $(CC) $(CFLAGS) -c -o $@ $(@:minix_stage1_5_exec-%.o=%.c)
771 # nbgrub
773 $(NBGRUB_DATA): $(NBLOADER_DATA) $(DISKLESS_DATA)
774         $(RM) $@
775         cat $(NBLOADER_DATA) $(DISKLESS_DATA) > $@
778 # nbloader
780 $(NBLOADER_EXEC): $(NBLOADER_ASMOBJS) $(NBLOADER_OBJS)
781         $(RM) $@
782         $(LINK) -o $@ $(NBLOADER_ASMOBJS) $(NBLOADER_OBJS) $(LIBS)
784 $(NBLOADER_ASMOBJS): $$(@:nbloader_exec-%.o=%.S) diskless_size.h
785         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:nbloader_exec-%.o=%.S)
787 $(NBLOADER_OBJS): $$(@:nbloader_exec-%.o=%.c)
788         $(CC) $(CFLAGS) -c -o $@ $(@:nbloader_exec-%.o=%.c)
791 # Pre-stage2
793 $(PRE_STAGE2_EXEC): $(PRE_STAGE2_ASMOBJS) $(PRE_STAGE2_OBJS)
794         $(RM) $@
795         $(LINK) -o $@ $(PRE_STAGE2_ASMOBJS) $(PRE_STAGE2_OBJS) $(LIBS)
797 $(PRE_STAGE2_ASMOBJS): $$(@:pre_stage2_exec-%.o=%.S)
798         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:pre_stage2_exec-%.o=%.S)
800 $(PRE_STAGE2_OBJS): $$(@:pre_stage2_exec-%.o=%.c)
801         $(CC) $(CFLAGS) -c -o $@ $(@:pre_stage2_exec-%.o=%.c)
804 # pxegrub
806 $(PXEGRUB_DATA): $(PXELOADER_DATA) $(DISKLESS_DATA)
807         $(RM) $@
808         cat $(PXELOADER_DATA) $(DISKLESS_DATA) > $@
811 # pxeloader
813 $(PXELOADER_EXEC): $(PXELOADER_ASMOBJS) $(PXELOADER_OBJS)
814         $(RM) $@
815         $(LINK) -o $@ $(PXELOADER_ASMOBJS) $(PXELOADER_OBJS) $(LIBS)
817 $(PXELOADER_ASMOBJS): $$(@:pxeloader_exec-%.o=%.S) diskless_size.h
818         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:pxeloader_exec-%.o=%.S)
820 $(PXELOADER_OBJS): $$(@:pxeloader_exec-%.o=%.c)
821         $(CC) $(CFLAGS) -c -o $@ $(@:pxeloader_exec-%.o=%.c)
824 # ReiserFS stage 1.5
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)
832 $(REISERFS_STAGE1_5_ASMOBJS): $$(@:reiserfs_stage1_5_exec-%.o=%.S)
833         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:reiserfs_stage1_5_exec-%.o=%.S)
835 $(REISERFS_STAGE1_5_OBJS): $$(@:reiserfs_stage1_5_exec-%.o=%.c)
836         $(CC) $(CFLAGS) -c -o $@ $(@:reiserfs_stage1_5_exec-%.o=%.c)
839 # stage2
841 $(STAGE2_DATA): $(START_DATA) $(PRE_STAGE2_DATA)
842         $(RM) $@
843         cat $(START_DATA) $(PRE_STAGE2_DATA) > $@
845 # Eltorito stage2
847 $(STAGE2_ELTORITO_DATA): $(START_ELTORITO_DATA) $(PRE_STAGE2_DATA)
848         $(RM) $@
849         cat $(START_ELTORITO_DATA) $(PRE_STAGE2_DATA) > $@
852 # start
854 $(START_EXEC): $(START_ASMOBJS) $(START_OBJS)
855         $(RM) $@
856         $(LINK) -o $@ $(START_ASMOBJS) $(START_OBJS) $(LIBS)
858 $(START_ASMOBJS): $$(@:start_exec-%.o=%.S) stage2_size.h
859         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:start_exec-%.o=%.S)
861 $(START_OBJS): $$(@:start_exec-%.o=%.c)
862         $(CC) $(CFLAGS) -c -o $@ $(@:start_exec-%.o=%.c)
865 # Eltorito start
867 $(START_ELTORITO_EXEC): $(START_ELTORITO_ASMOBJS) $(START_ELTORITO_OBJS)
868         $(RM) $@
869         $(LINK) -o $@ $(START_ELTORITO_ASMOBJS) $(START_ELTORITO_OBJS) $(LIBS)
871 $(START_ELTORITO_ASMOBJS): $$(@:start_eltorito_exec-%.o=%.S) stage2_size.h
872         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:start_eltorito_exec-%.o=%.S)
874 $(START_ELTORITO_OBJS): $$(@:start_eltorito_exec-%.o=%.c)
875         $(CC) $(CFLAGS) -c -o $@ $(@:start_eltorito_exec-%.o=%.c)
878 # UFS2 stage 1.5
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)
884 $(UFS2_STAGE1_5_ASMOBJS): $$(@:ufs2_stage1_5_exec-%.o=%.S)
885         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:ufs2_stage1_5_exec-%.o=%.S)
887 $(UFS2_STAGE1_5_OBJS): $$(@:ufs2_stage1_5_exec-%.o=%.c)
888         $(CC) $(CFLAGS) -c -o $@ $(@:ufs2_stage1_5_exec-%.o=%.c)
891 # UFS stage 1.5
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)
897 $(UFS_STAGE1_5_ASMOBJS): $$(@:ufs_stage1_5_exec-%.o=%.S)
898         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:ufs_stage1_5_exec-%.o=%.S)
900 $(UFS_STAGE1_5_OBJS): $$(@:ufs_stage1_5_exec-%.o=%.c)
901         $(CC) $(CFLAGS) -c -o $@ $(@:ufs_stage1_5_exec-%.o=%.c)
904 # ZFS stage 1.5
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)
910 $(ZFS_STAGE1_5_ASMOBJS): $$(@:zfs_stage1_5_exec-%.o=%.S)
911         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:zfs_stage1_5_exec-%.o=%.S)
913 $(ZFS_STAGE1_5_OBJS): $$(@:zfs_stage1_5_exec-%.o=%.c)
914         $(CC) $(CFLAGS) -c -o $@ $(@:zfs_stage1_5_exec-%.o=%.c)
917 # VSTa stage 1.5
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)
923 $(VSTAFS_STAGE1_5_ASMOBJS): $$(@:vstafs_stage1_5_exec-%.o=%.S)
924         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:vstafs_stage1_5_exec-%.o=%.S)
926 $(VSTAFS_STAGE1_5_OBJS): $$(@:vstafs_stage1_5_exec-%.o=%.c)
927         $(CC) $(CFLAGS) -c -o $@ $(@:vstafs_stage1_5_exec-%.o=%.c)
930 # SGI XFS stage 1.5
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)
936 $(XFS_STAGE1_5_ASMOBJS): $$(@:xfs_stage1_5_exec-%.o=%.S)
937         $(CCAS) $(CCASFLAGS) -c -o $@ $(@:xfs_stage1_5_exec-%.o=%.S)
939 $(XFS_STAGE1_5_OBJS): $$(@:xfs_stage1_5_exec-%.o=%.c)
940         $(CC) $(CFLAGS) -c -o $@ $(@:xfs_stage1_5_exec-%.o=%.c)
944 install: all $(INSTALL_TARGETS)
946 $(ROOT_BOOT_GRUB)/%: $(ROOT_BOOT_GRUB) %
947         $(INS.file)
949 $(SRC_DIR)/%: $(SRC_DIR) %
950         $(INS.file)
952 $(SRC_ZFSINC_DIR)/%: $(SRC_ZFSINC_DIR) %
953         $(INS.file)
955 $(ROOT_BOOT_GRUB) $(SRC_DIR) $(SRC_ZFSINC_DIR):
956         $(INS.dir)
958 clean: _FORCE
959         $(RM) *.o $(BUILT_SOURCES) $(LIBRARIES) $(PROGRAMS) $(NOINSTALL_DATA)
961 clobber: clean
962         $(RM) $(INSTALL_DATA)
964 _FORCE: