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
12 .SUFFIXES: .exec $(SUFFIXES)
15 $(OBJCOPY) -O binary $< $@
18 INCLUDES = -I. -I.. -I../stage1 -I../netboot
21 FSYS_CFLAGS = -DFSYS_UFS=1 -DFSYS_FAT=1 \
22 -DFSYS_ZFS=1 -DFSYS_ISO9660=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 \
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)
63 LIBGRUB_OBJS = libgrub_a-boot.o \
64 libgrub_a-builtins.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 \
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 \
92 libgrub_a-terminfo.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) \
106 $(REISERFS_STAGE1_5_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) \
115 # Won't be installed.
116 NOINSTALL_DATA = $(DISKLESS_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) \
136 $(REISERFS_STAGE1_5_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) \
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 \
196 $(DISKLESS_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE2_CFLAGS) \
197 $(FSYS_CFLAGS) -DFSYS_TFTP=1 \
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
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
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
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) \
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
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
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
359 NBLOADER_DATA = nbloader
360 NBLOADER_EXEC = nbloader.exec
361 NBLOADER_ASMOBJS = nbloader_exec-nbloader.o
363 $(NBLOADER_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(NBLOADER_LINK)
364 $(NBLOADER_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
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)
421 PXEGRUB_DATA = pxegrub
426 PXELOADER_DATA = pxeloader
427 PXELOADER_EXEC = pxeloader.exec
428 PXELOADER_ASMOBJS = pxeloader_exec-pxeloader.o
430 $(PXELOADER_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(PXELOADER_LINK)
431 $(PXELOADER_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
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) \
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
467 STAGE2_ELTORITO_DATA = stage2_eltorito
473 START_EXEC = start.exec
474 START_ASMOBJS = start_exec-start.o
476 $(START_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(START_LINK)
477 $(START_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS)
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)
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
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
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
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
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)/%) \
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 \
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)
656 stage2_size.h: $(PRE_STAGE2_DATA)
658 set dummy `ls -l $(PRE_STAGE2_DATA)`; \
659 echo "#define STAGE2_SIZE $$6" > $@
661 diskless_size.h: $(DISKLESS_DATA)
663 set dummy `ls -l $(DISKLESS_DATA)`; \
664 echo "#define DISKLESS_SIZE $$6" > $@
669 $(LIBGRUB): $(LIBGRUB_OBJS)
671 $(AR) cru $@ $(LIBGRUB_OBJS)
674 $(LIBGRUB_OBJS): $$(@:libgrub_a-%.o=%.c)
675 $(CC) $(CFLAGS) -c -o $@ $(@:libgrub_a-%.o=%.c)
681 $(DISKLESS_EXEC): $(DISKLESS_ASMOBJS) $(DISKLESS_OBJS)
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)
694 $(E2FS_STAGE1_5_EXEC): $(E2FS_STAGE1_5_ASMOBJS) $(E2FS_STAGE1_5_OBJS)
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)
707 $(FAT_STAGE1_5_EXEC): $(FAT_STAGE1_5_ASMOBJS) $(FAT_STAGE1_5_OBJS)
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)
720 $(FFS_STAGE1_5_EXEC): $(FFS_STAGE1_5_ASMOBJS) $(FFS_STAGE1_5_OBJS)
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)
733 $(ISO9660_STAGE1_5_EXEC): $(ISO9660_STAGE1_5_ASMOBJS) $(ISO9660_STAGE1_5_OBJS)
735 $(LINK) -o $@ $(ISO9660_STAGE1_5_ASMOBJS) $(ISO9660_STAGE1_5_OBJS) \
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)
747 $(JFS_STAGE1_5_EXEC): $(JFS_STAGE1_5_ASMOBJS) $(JFS_STAGE1_5_OBJS)
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)
760 $(MINIX_STAGE1_5_EXEC): $(MINIX_STAGE1_5_ASMOBJS) $(MINIX_STAGE1_5_OBJS)
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)
773 $(NBGRUB_DATA): $(NBLOADER_DATA) $(DISKLESS_DATA)
775 cat $(NBLOADER_DATA) $(DISKLESS_DATA) > $@
780 $(NBLOADER_EXEC): $(NBLOADER_ASMOBJS) $(NBLOADER_OBJS)
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)
793 $(PRE_STAGE2_EXEC): $(PRE_STAGE2_ASMOBJS) $(PRE_STAGE2_OBJS)
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)
806 $(PXEGRUB_DATA): $(PXELOADER_DATA) $(DISKLESS_DATA)
808 cat $(PXELOADER_DATA) $(DISKLESS_DATA) > $@
813 $(PXELOADER_EXEC): $(PXELOADER_ASMOBJS) $(PXELOADER_OBJS)
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)
826 $(REISERFS_STAGE1_5_EXEC): $(REISERFS_STAGE1_5_ASMOBJS) \
827 $(REISERFS_STAGE1_5_OBJS)
829 $(LINK) -o $@ $(REISERFS_STAGE1_5_ASMOBJS) $(REISERFS_STAGE1_5_OBJS) \
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)
841 $(STAGE2_DATA): $(START_DATA) $(PRE_STAGE2_DATA)
843 cat $(START_DATA) $(PRE_STAGE2_DATA) > $@
847 $(STAGE2_ELTORITO_DATA): $(START_ELTORITO_DATA) $(PRE_STAGE2_DATA)
849 cat $(START_ELTORITO_DATA) $(PRE_STAGE2_DATA) > $@
854 $(START_EXEC): $(START_ASMOBJS) $(START_OBJS)
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)
867 $(START_ELTORITO_EXEC): $(START_ELTORITO_ASMOBJS) $(START_ELTORITO_OBJS)
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)
880 $(UFS2_STAGE1_5_EXEC): $(UFS2_STAGE1_5_ASMOBJS) $(UFS2_STAGE1_5_OBJS)
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)
893 $(UFS_STAGE1_5_EXEC): $(UFS_STAGE1_5_ASMOBJS) $(UFS_STAGE1_5_OBJS)
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)
906 $(ZFS_STAGE1_5_EXEC): $(ZFS_STAGE1_5_ASMOBJS) $(ZFS_STAGE1_5_OBJS)
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)
919 $(VSTAFS_STAGE1_5_EXEC): $(VSTAFS_STAGE1_5_ASMOBJS) $(VSTAFS_STAGE1_5_OBJS)
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)
932 $(XFS_STAGE1_5_EXEC): $(XFS_STAGE1_5_ASMOBJS) $(XFS_STAGE1_5_OBJS)
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) %
949 $(SRC_DIR)/%: $(SRC_DIR) %
952 $(SRC_ZFSINC_DIR)/%: $(SRC_ZFSINC_DIR) %
955 $(ROOT_BOOT_GRUB) $(SRC_DIR) $(SRC_ZFSINC_DIR):
959 $(RM) *.o $(BUILT_SOURCES) $(LIBRARIES) $(PROGRAMS) $(NOINSTALL_DATA)
962 $(RM) $(INSTALL_DATA)