# # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # Copyright (c) 2013 by Saso Kiselkov. All rights reserved. # Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved. # Copyright 2016 Nexenta Systems, Inc. # Copyright 2019 OmniOS Community Edition (OmniOSce) Association. # include ../../Makefile.grub include ../Makefile.solaris.defs .SUFFIXES: .SUFFIXES: .exec $(SUFFIXES) .exec: $(OBJCOPY) -O binary $< $@ INCLUDES = -I. -I.. -I../stage1 -I../netboot LIBS = FSYS_CFLAGS = -DFSYS_UFS=1 -DFSYS_FAT=1 \ -DFSYS_ZFS=1 -DFSYS_ISO9660=1 \ -DUSE_MD5_PASSWORDS=1 $(STAGE2_NETBOOT)TFTP_CFLAGS = -DFSYS_TFTP=1 $(OPTION_FS)FSYS_CFLAGS += -DFSYS_MINIX=1 -DFSYS_JFS=1 -DFSYS_XFS=1 \ -DSYS_VSTAFS=1 -DFSYS_FFS=1 -DFSYS_REISERFS=1 \ -DFSYS_EXT2FS=1 -DFSYS_UFS2=1 GRAPHICS_CFLAGS = -DSUPPORT_GRAPHICS=1 # HERCULES_CFLAGS = -DSUPPORT_HERCULES=1 NETBOOT_CFLAGS = -DSUPPORT_NETBOOT=1 SERIAL_CFLAGS = -DSUPPORT_SERIAL=1 GRUB_CFLAGS = -O2 -I../lib -DGRUB_UTIL=1 \ -DFSYS_ISO9660=1 -DFSYS_ZFS=1 -DFSYS_FAT=1 \ -DFSYS_UFS=1 \ -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 $(OPTION_FS)GRUB_CFLAGS += -DFSYS_MINIX=1 -DFSYS_JFS=1 -DFSYS_XFS=1 \ -DSYS_VSTAFS=1 -DFSYS_FFS=1 -DFSYS_REISERFS=1 \ -DFSYS_EXT2FS=1 -DFSYS_UFS2=1 # GRUB_CFLAGS += -DSUPPORT_HERCULES=1 STAGE1_5_CFLAGS = $(STAGE2_CFLAGS) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 STAGE2_CFLAGS = -Os -fno-builtin -nostdinc \ $(SERIAL_CFLAGS) $(GRAPHICS_CFLAGS) $(STAGE2_NETBOOT)STAGE2_CFLAGS += $(NETBOOT_CFLAGS) #STAGE2_CFLAGS += $(HERCULES_CFLAGS) NBLOADER_LINK = -nostdlib -N -Ttext 0 $(GLDTARGET) PRE_STAGE2_LINK = -nostdlib -N -Ttext 8200 $(GLDTARGET) PXELOADER_LINK = -nostdlib -N -Ttext 7C00 $(GLDTARGET) STAGE1_5_LINK = -nostdlib -N -Ttext 2000 $(GLDTARGET) START_ELTORITO_LINK = -nostdlib -N -Ttext 7C00 $(GLDTARGET) START_LINK = -nostdlib -N -Ttext 8000 $(GLDTARGET) LIBDRIVERS = ../netboot/libdrivers.a BUILT_SOURCES = stage2_size.h BUILT_SOURCES += diskless_size.h LIBRARIES = $(LIBGRUB) LIBGRUB = libgrub.a LIBGRUB_OBJS = libgrub_a-boot.o \ libgrub_a-builtins.o \ libgrub_a-char_io.o \ libgrub_a-cmdline.o \ libgrub_a-common.o \ libgrub_a-disk_io.o \ libgrub_a-expand.o \ libgrub_a-fsys_ext2fs.o \ libgrub_a-fsys_fat.o \ libgrub_a-fsys_ffs.o \ libgrub_a-fsys_iso9660.o \ libgrub_a-fsys_jfs.o \ libgrub_a-fsys_minix.o \ libgrub_a-fsys_reiserfs.o \ libgrub_a-zfs_sha256.o \ libgrub_a-zfs_lzjb.o \ libgrub_a-zfs_lz4.o \ libgrub_a-zfs_fletcher.o \ libgrub_a-fsys_zfs.o \ libgrub_a-fsys_ufs.o \ libgrub_a-fsys_ufs2.o \ libgrub_a-fsys_vstafs.o \ libgrub_a-fsys_xfs.o \ libgrub_a-graphics.o \ libgrub_a-gunzip.o \ libgrub_a-md5.o \ libgrub_a-moddiv.o \ libgrub_a-serial.o \ libgrub_a-stage2.o \ libgrub_a-terminfo.o \ libgrub_a-tparm.o $(LIBGRUB_OBJS) := CFLAGS = $(BASE_CFLAGS) $(GRUB_CFLAGS) # Will be installed in $(ROOT_BOOT_GRUB). INSTALL_DATA = $(E2FS_STAGE1_5_DATA) \ $(FAT_STAGE1_5_DATA) \ $(FFS_STAGE1_5_DATA) \ $(ISO9660_STAGE1_5_DATA) \ $(JFS_STAGE1_5_DATA) \ $(MINIX_STAGE1_5_DATA) \ $(NBGRUB_DATA) \ $(PXEGRUB_DATA) \ $(REISERFS_STAGE1_5_DATA) \ $(STAGE2_DATA) \ $(STAGE2_ELTORITO_DATA) \ $(UFS2_STAGE1_5_DATA) \ $(UFS_STAGE1_5_DATA) \ $(ZFS_STAGE1_5_DATA) \ $(VSTAFS_STAGE1_5_DATA) \ $(XFS_STAGE1_5_DATA) # Won't be installed. NOINSTALL_DATA = $(DISKLESS_DATA) \ $(NBLOADER_DATA) \ $(PRE_STAGE2_DATA) \ $(PXELOADER_DATA) \ $(START_DATA) \ $(START_ELTORITO_DATA) DATA = $(INSTALL_DATA) $(NOINSTALL_DATA) PROGRAMS = $(DISKLESS_EXEC) \ $(E2FS_STAGE1_5_EXEC) \ $(FAT_STAGE1_5_EXEC) \ $(FFS_STAGE1_5_EXEC) \ $(ISO9660_STAGE1_5_EXEC) \ $(JFS_STAGE1_5_EXEC) \ $(MINIX_STAGE1_5_EXEC) \ $(NBLOADER_EXEC) \ $(PRE_STAGE2_EXEC) \ $(PXELOADER_EXEC) \ $(REISERFS_STAGE1_5_EXEC) \ $(START_EXEC) \ $(START_ELTORITO_EXEC) \ $(UFS2_STAGE1_5_EXEC) \ $(UFS_STAGE1_5_EXEC) \ $(ZFS_STAGE1_5_EXEC) \ $(VSTAFS_STAGE1_5_EXEC) \ $(XFS_STAGE1_5_EXEC) # # diskless # DISKLESS_DATA = diskless DISKLESS_EXEC = diskless.exec DISKLESS_ASMOBJS = diskless_exec-asm.o DISKLESS_OBJS = diskless_exec-bios.o \ diskless_exec-boot.o \ diskless_exec-builtins.o \ diskless_exec-char_io.o \ diskless_exec-cmdline.o \ diskless_exec-common.o \ diskless_exec-console.o \ diskless_exec-disk_io.o \ diskless_exec-expand.o \ diskless_exec-fsys_ext2fs.o \ diskless_exec-fsys_fat.o \ diskless_exec-fsys_ffs.o \ diskless_exec-fsys_iso9660.o \ diskless_exec-fsys_jfs.o \ diskless_exec-fsys_minix.o \ diskless_exec-fsys_reiserfs.o \ diskless_exec-zfs_sha256.o \ diskless_exec-zfs_lzjb.o \ diskless_exec-zfs_lz4.o \ diskless_exec-zfs_fletcher.o \ diskless_exec-fsys_zfs.o \ diskless_exec-fsys_ufs.o \ diskless_exec-fsys_ufs2.o \ diskless_exec-fsys_vstafs.o \ diskless_exec-fsys_xfs.o \ diskless_exec-graphics.o \ diskless_exec-gunzip.o \ diskless_exec-hercules.o \ diskless_exec-md5.o \ diskless_exec-moddiv.o \ diskless_exec-serial.o \ diskless_exec-smp-imps.o \ diskless_exec-stage2.o \ diskless_exec-terminfo.o \ diskless_exec-tparm.o $(DISKLESS_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(PRE_STAGE2_LINK) $(DISKLESS_EXEC) := LIBS = $(LIBDRIVERS) $(DISKLESS_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS) \ $(FSYS_CFLAGS) -DFSYS_TFTP=1 \ -DSUPPORT_DISKLESS=1 $(DISKLESS_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE2_CFLAGS) \ $(FSYS_CFLAGS) -DFSYS_TFTP=1 \ -DSUPPORT_DISKLESS=1 # # ext2fs stage 1.5 # E2FS_STAGE1_5_DATA = e2fs_stage1_5 E2FS_STAGE1_5_EXEC = e2fs_stage1_5.exec E2FS_STAGE1_5_ASMOBJS = e2fs_stage1_5_exec-start.o \ e2fs_stage1_5_exec-asm.o E2FS_STAGE1_5_OBJS = e2fs_stage1_5_exec-bios.o \ e2fs_stage1_5_exec-char_io.o \ e2fs_stage1_5_exec-common.o \ e2fs_stage1_5_exec-disk_io.o \ e2fs_stage1_5_exec-fsys_ext2fs.o \ e2fs_stage1_5_exec-moddiv.o \ e2fs_stage1_5_exec-stage1_5.o $(E2FS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(E2FS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_EXT2FS=1 -DNO_BLOCK_FILES=1 $(E2FS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_EXT2FS=1 -DNO_BLOCK_FILES=1 # # FAT stage 1.5 # FAT_STAGE1_5_DATA = fat_stage1_5 FAT_STAGE1_5_EXEC = fat_stage1_5.exec FAT_STAGE1_5_ASMOBJS = fat_stage1_5_exec-start.o \ fat_stage1_5_exec-asm.o FAT_STAGE1_5_OBJS = fat_stage1_5_exec-bios.o \ fat_stage1_5_exec-char_io.o \ fat_stage1_5_exec-common.o \ fat_stage1_5_exec-disk_io.o \ fat_stage1_5_exec-fsys_fat.o \ fat_stage1_5_exec-moddiv.o \ fat_stage1_5_exec-stage1_5.o $(FAT_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(FAT_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_FAT=1 -DNO_BLOCK_FILES=1 $(FAT_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_FAT=1 -DNO_BLOCK_FILES=1 # # FFS stage 1.5 # FFS_STAGE1_5_DATA = ffs_stage1_5 FFS_STAGE1_5_EXEC = ffs_stage1_5.exec FFS_STAGE1_5_ASMOBJS = ffs_stage1_5_exec-start.o \ ffs_stage1_5_exec-asm.o FFS_STAGE1_5_OBJS = ffs_stage1_5_exec-bios.o \ ffs_stage1_5_exec-char_io.o \ ffs_stage1_5_exec-common.o \ ffs_stage1_5_exec-disk_io.o \ ffs_stage1_5_exec-fsys_ffs.o \ ffs_stage1_5_exec-moddiv.o \ ffs_stage1_5_exec-stage1_5.o $(FFS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(FFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_FFS=1 -DNO_BLOCK_FILES=1 $(FFS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_FFS=1 -DNO_BLOCK_FILES=1 # # ISO9660 stage 1.5 # ISO9660_STAGE1_5_DATA = iso9660_stage1_5 ISO9660_STAGE1_5_EXEC = iso9660_stage1_5.exec ISO9660_STAGE1_5_ASMOBJS = iso9660_stage1_5_exec-start_eltorito.o \ iso9660_stage1_5_exec-asm.o ISO9660_STAGE1_5_OBJS = iso9660_stage1_5_exec-bios.o \ iso9660_stage1_5_exec-char_io.o \ iso9660_stage1_5_exec-common.o \ iso9660_stage1_5_exec-disk_io.o \ iso9660_stage1_5_exec-fsys_iso9660.o \ iso9660_stage1_5_exec-moddiv.o \ iso9660_stage1_5_exec-stage1_5.o $(ISO9660_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(ISO9660_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) \ $(STAGE1_5_CFLAGS) \ -DFSYS_ISO9660=1 -DNO_BLOCK_FILES=1 $(ISO9660_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_ISO9660=1 -DNO_BLOCK_FILES=1 # # IBM JFS stage 1.5 # JFS_STAGE1_5_DATA = jfs_stage1_5 JFS_STAGE1_5_EXEC = jfs_stage1_5.exec JFS_STAGE1_5_ASMOBJS = jfs_stage1_5_exec-start.o \ jfs_stage1_5_exec-asm.o JFS_STAGE1_5_OBJS = jfs_stage1_5_exec-bios.o \ jfs_stage1_5_exec-char_io.o \ jfs_stage1_5_exec-common.o \ jfs_stage1_5_exec-disk_io.o \ jfs_stage1_5_exec-fsys_jfs.o \ jfs_stage1_5_exec-moddiv.o \ jfs_stage1_5_exec-stage1_5.o $(JFS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(JFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_JFS=1 -DNO_BLOCK_FILES=1 $(JFS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_JFS=1 -DNO_BLOCK_FILES=1 # # Minix fs stage 1.5 # MINIX_STAGE1_5_DATA = minix_stage1_5 MINIX_STAGE1_5_EXEC = minix_stage1_5.exec MINIX_STAGE1_5_ASMOBJS = minix_stage1_5_exec-start.o \ minix_stage1_5_exec-asm.o MINIX_STAGE1_5_OBJS = minix_stage1_5_exec-bios.o \ minix_stage1_5_exec-char_io.o \ minix_stage1_5_exec-common.o \ minix_stage1_5_exec-disk_io.o \ minix_stage1_5_exec-fsys_minix.o \ minix_stage1_5_exec-moddiv.o \ minix_stage1_5_exec-stage1_5.o $(MINIX_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(MINIX_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_MINIX=1 -DNO_BLOCK_FILES=1 $(MINIX_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_MINIX=1 -DNO_BLOCK_FILES=1 # # nbgrub # NBGRUB_DATA = nbgrub # # nbloader # NBLOADER_DATA = nbloader NBLOADER_EXEC = nbloader.exec NBLOADER_ASMOBJS = nbloader_exec-nbloader.o NBLOADER_OBJS = $(NBLOADER_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(NBLOADER_LINK) $(NBLOADER_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS) # # Pre-stage2 # PRE_STAGE2_DATA = pre_stage2 PRE_STAGE2_EXEC = pre_stage2.exec PRE_STAGE2_ASMOBJS = pre_stage2_exec-asm.o PRE_STAGE2_OBJS = pre_stage2_exec-bios.o \ pre_stage2_exec-boot.o \ pre_stage2_exec-builtins.o \ pre_stage2_exec-char_io.o \ pre_stage2_exec-cmdline.o \ pre_stage2_exec-common.o \ pre_stage2_exec-console.o \ pre_stage2_exec-disk_io.o \ pre_stage2_exec-expand.o \ pre_stage2_exec-fsys_ext2fs.o \ pre_stage2_exec-fsys_fat.o \ pre_stage2_exec-fsys_ffs.o \ pre_stage2_exec-fsys_iso9660.o \ pre_stage2_exec-fsys_jfs.o \ pre_stage2_exec-fsys_minix.o \ pre_stage2_exec-fsys_reiserfs.o \ pre_stage2_exec-zfs_sha256.o \ pre_stage2_exec-zfs_lzjb.o \ pre_stage2_exec-zfs_lz4.o \ pre_stage2_exec-zfs_fletcher.o \ pre_stage2_exec-fsys_zfs.o \ pre_stage2_exec-fsys_ufs.o \ pre_stage2_exec-fsys_ufs2.o \ pre_stage2_exec-fsys_vstafs.o \ pre_stage2_exec-fsys_xfs.o \ pre_stage2_exec-graphics.o \ pre_stage2_exec-gunzip.o \ pre_stage2_exec-hercules.o \ pre_stage2_exec-md5.o \ pre_stage2_exec-moddiv.o \ pre_stage2_exec-serial.o \ pre_stage2_exec-smp-imps.o \ pre_stage2_exec-stage2.o \ pre_stage2_exec-terminfo.o \ pre_stage2_exec-tparm.o $(PRE_STAGE2_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(PRE_STAGE2_LINK) $(STAGE2_NETBOOT)$(PRE_STAGE2_EXEC) := LIBS = $(LIBDRIVERS) $(PRE_STAGE2_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS) \ $(FSYS_CFLAGS) $(TFTP_CFLAGS) $(PRE_STAGE2_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE2_CFLAGS) \ $(FSYS_CFLAGS) $(TFTP_CFLAGS) # # pxegrub # PXEGRUB_DATA = pxegrub # # pxeloader # PXELOADER_DATA = pxeloader PXELOADER_EXEC = pxeloader.exec PXELOADER_ASMOBJS = pxeloader_exec-pxeloader.o PXELOADER_OBJS = $(PXELOADER_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(PXELOADER_LINK) $(PXELOADER_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS) # # ReiserFS stage 1.5 # REISERFS_STAGE1_5_DATA = reiserfs_stage1_5 REISERFS_STAGE1_5_EXEC = reiserfs_stage1_5.exec REISERFS_STAGE1_5_ASMOBJS = reiserfs_stage1_5_exec-start.o \ reiserfs_stage1_5_exec-asm.o REISERFS_STAGE1_5_OBJS = reiserfs_stage1_5_exec-bios.o \ reiserfs_stage1_5_exec-char_io.o \ reiserfs_stage1_5_exec-common.o \ reiserfs_stage1_5_exec-disk_io.o \ reiserfs_stage1_5_exec-fsys_reiserfs.o \ reiserfs_stage1_5_exec-moddiv.o \ reiserfs_stage1_5_exec-stage1_5.o $(REISERFS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(REISERFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) \ $(STAGE1_5_CFLAGS) \ -DFSYS_REISERFS=1 -DNO_BLOCK_FILES=1 $(REISERFS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_REISERFS=1 -DNO_BLOCK_FILES=1 # # stage2 # STAGE2_DATA = stage2 # # Eltorito stage2 # STAGE2_ELTORITO_DATA = stage2_eltorito # # start # START_DATA = start START_EXEC = start.exec START_ASMOBJS = start_exec-start.o START_OBJS = $(START_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(START_LINK) $(START_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS) # # Eltorito start # START_ELTORITO_DATA = start_eltorito START_ELTORITO_EXEC = start_eltorito.exec START_ELTORITO_ASMOBJS = start_eltorito_exec-start_eltorito.o START_ELTORITO_OBJS = $(START_ELTORITO_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(START_ELTORITO_LINK) $(START_ELTORITO_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE2_CFLAGS) # # UFS2 stage 1.5 # UFS2_STAGE1_5_DATA = ufs2_stage1_5 UFS2_STAGE1_5_EXEC = ufs2_stage1_5.exec UFS2_STAGE1_5_ASMOBJS = ufs2_stage1_5_exec-start.o \ ufs2_stage1_5_exec-asm.o UFS2_STAGE1_5_OBJS = ufs2_stage1_5_exec-bios.o \ ufs2_stage1_5_exec-char_io.o \ ufs2_stage1_5_exec-common.o \ ufs2_stage1_5_exec-disk_io.o \ ufs2_stage1_5_exec-fsys_ufs2.o \ ufs2_stage1_5_exec-moddiv.o \ ufs2_stage1_5_exec-stage1_5.o $(UFS2_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(UFS2_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_UFS2=1 -DNO_BLOCK_FILES=1 $(UFS2_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_UFS2=1 -DNO_BLOCK_FILES=1 # # UFS stage 1.5 # UFS_STAGE1_5_DATA = ufs_stage1_5 UFS_STAGE1_5_EXEC = ufs_stage1_5.exec UFS_STAGE1_5_ASMOBJS = ufs_stage1_5_exec-start.o \ ufs_stage1_5_exec-asm.o UFS_STAGE1_5_OBJS = ufs_stage1_5_exec-bios.o \ ufs_stage1_5_exec-char_io.o \ ufs_stage1_5_exec-common.o \ ufs_stage1_5_exec-disk_io.o \ ufs_stage1_5_exec-fsys_ufs.o \ ufs_stage1_5_exec-moddiv.o \ ufs_stage1_5_exec-stage1_5.o $(UFS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(UFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_UFS=1 -DNO_BLOCK_FILES=1 $(UFS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_UFS=1 -DNO_BLOCK_FILES=1 # # ZFS stage 1.5 # ZFS_STAGE1_5_DATA = zfs_stage1_5 ZFS_STAGE1_5_EXEC = zfs_stage1_5.exec ZFS_STAGE1_5_ASMOBJS = zfs_stage1_5_exec-start.o \ zfs_stage1_5_exec-asm.o ZFS_STAGE1_5_OBJS = zfs_stage1_5_exec-bios.o \ zfs_stage1_5_exec-char_io.o \ zfs_stage1_5_exec-common.o \ zfs_stage1_5_exec-disk_io.o \ zfs_stage1_5_exec-zfs_sha256.o \ zfs_stage1_5_exec-zfs_lzjb.o \ zfs_stage1_5_exec-zfs_lz4.o \ zfs_stage1_5_exec-zfs_fletcher.o \ zfs_stage1_5_exec-fsys_zfs.o \ zfs_stage1_5_exec-moddiv.o \ zfs_stage1_5_exec-stage1_5.o $(ZFS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(ZFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_ZFS=1 -DNO_BLOCK_FILES=1 $(ZFS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_ZFS=1 -DNO_BLOCK_FILES=1 # # VSTa FS # VSTAFS_STAGE1_5_DATA = vstafs_stage1_5 VSTAFS_STAGE1_5_EXEC = vstafs_stage1_5.exec VSTAFS_STAGE1_5_ASMOBJS = vstafs_stage1_5_exec-start.o \ vstafs_stage1_5_exec-asm.o VSTAFS_STAGE1_5_OBJS = vstafs_stage1_5_exec-bios.o \ vstafs_stage1_5_exec-char_io.o \ vstafs_stage1_5_exec-common.o \ vstafs_stage1_5_exec-disk_io.o \ vstafs_stage1_5_exec-fsys_vstafs.o \ vstafs_stage1_5_exec-moddiv.o \ vstafs_stage1_5_exec-stage1_5.o $(VSTAFS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(VSTAFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_VSTAFS=1 -DNO_BLOCK_FILES=1 $(VSTAFS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_VSTAFS=1 -DNO_BLOCK_FILES=1 # # SGI XFS stage 1.5 # XFS_STAGE1_5_DATA = xfs_stage1_5 XFS_STAGE1_5_EXEC = xfs_stage1_5.exec XFS_STAGE1_5_ASMOBJS = xfs_stage1_5_exec-start.o \ xfs_stage1_5_exec-asm.o XFS_STAGE1_5_OBJS = xfs_stage1_5_exec-bios.o \ xfs_stage1_5_exec-char_io.o \ xfs_stage1_5_exec-common.o \ xfs_stage1_5_exec-disk_io.o \ xfs_stage1_5_exec-fsys_xfs.o \ xfs_stage1_5_exec-moddiv.o \ xfs_stage1_5_exec-stage1_5.o $(XFS_STAGE1_5_EXEC) := LDFLAGS = $(BASE_LDFLAGS) $(STAGE1_5_LINK) $(XFS_STAGE1_5_ASMOBJS) := CCASFLAGS = $(BASE_CCASFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_XFS=1 -DNO_BLOCK_FILES=1 $(XFS_STAGE1_5_OBJS) := CFLAGS = $(BASE_CFLAGS) $(STAGE1_5_CFLAGS) \ -DFSYS_XFS=1 -DNO_BLOCK_FILES=1 INSTALL_TARGETS = $(INSTALL_DATA:%=$(ROOT_BOOT_GRUB)/%) \ $(SRC_ZFSINC_DIR) # # Source files to be installed in $(ROOT_SRC). # SRC_DIR = $(ROOT_SRC)/stage2 SRC_ZFSINC_DIR = $(SRC_DIR)/zfs-include SRC_FILES = Makefile.am Makefile.in apic.h apm.S asm.S bios.c boot.c \ builtins.c char_io.c cmdline.c common.c console.c defs.h \ dir.h disk_inode.h disk_inode_ffs.h disk_io.c expand.c \ expand.h fat.h \ filesys.h freebsd.h fs.h fsys_ext2fs.c fsys_fat.c \ fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ zfs_sha256.c zfs_lzjb.c zfs_lz4.c zfs_fletcher.c fsys_zfs.c \ fsys_reiserfs.c fsys_ufs.c fsys_ufs2.c fsys_vstafs.c \ fsys_xfs.c graphics.c graphics.h gunzip.c hercules.c \ hercules.h i386-elf.h imgact_aout.h iso9660.h jfs.h \ mb_header.h mb_info.h md5.c md5.h moddiv.c nbi.h nbloader.S \ pc_slice.h pxeloader.S serial.c serial.h setjmp.S shared.h \ size_test smp-imps.c smp-imps.h stage1_5.c stage2.c \ start.S start_eltorito.S term.h terminfo.c terminfo.h \ tparm.c tparm.h fsys_zfs.h ufs.h ufs2.h vstafs.h xfs.h SRC_ZFSINC_FILES = dmu.h dmu_objset.h dnode.h dsl_dataset.h dsl_dir.h spa.h \ uberblock_impl.h vdev_impl.h zap_impl.h zap_leaf.h zfs.h \ zfs_acl.h zfs_znode.h zil.h zio.h zio_checksum.h INSTALL_TARGETS += $(SRC_FILES:%=$(SRC_DIR)/%) \ $(SRC_ZFSINC_FILES:%=$(SRC_ZFSINC_DIR)/%) ############################################################################### all: $(BUILT_SOURCES) .WAIT $(LIBRARIES) $(PROGRAMS) $(DATA) # # BUILT_SOURCES # stage2_size.h: $(PRE_STAGE2_DATA) $(RM) $@ set dummy `ls -l $(PRE_STAGE2_DATA)`; \ echo "#define STAGE2_SIZE $$6" > $@ diskless_size.h: $(DISKLESS_DATA) $(RM) $@ set dummy `ls -l $(DISKLESS_DATA)`; \ echo "#define DISKLESS_SIZE $$6" > $@ # # LIBRARIES # $(LIBGRUB): $(LIBGRUB_OBJS) $(RM) $@ $(AR) cru $@ $(LIBGRUB_OBJS) $(RANLIB) $@ $(LIBGRUB_OBJS): $$(@:libgrub_a-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:libgrub_a-%.o=%.c) # # Diskless # $(DISKLESS_EXEC): $(DISKLESS_ASMOBJS) $(DISKLESS_OBJS) $(RM) $@ $(LINK) -o $@ $(DISKLESS_ASMOBJS) $(DISKLESS_OBJS) $(LIBS) $(DISKLESS_ASMOBJS): $$(@:diskless_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:diskless_exec-%.o=%.S) $(DISKLESS_OBJS): $$(@:diskless_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:diskless_exec-%.o=%.c) # # ext2fs stage 1.5 # $(E2FS_STAGE1_5_EXEC): $(E2FS_STAGE1_5_ASMOBJS) $(E2FS_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(E2FS_STAGE1_5_ASMOBJS) $(E2FS_STAGE1_5_OBJS) $(LIBS) $(E2FS_STAGE1_5_ASMOBJS): $$(@:e2fs_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:e2fs_stage1_5_exec-%.o=%.S) $(E2FS_STAGE1_5_OBJS): $$(@:e2fs_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:e2fs_stage1_5_exec-%.o=%.c) # # FAT stage 1.5 # $(FAT_STAGE1_5_EXEC): $(FAT_STAGE1_5_ASMOBJS) $(FAT_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(FAT_STAGE1_5_ASMOBJS) $(FAT_STAGE1_5_OBJS) $(LIBS) $(FAT_STAGE1_5_ASMOBJS): $$(@:fat_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:fat_stage1_5_exec-%.o=%.S) $(FAT_STAGE1_5_OBJS): $$(@:fat_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:fat_stage1_5_exec-%.o=%.c) # # FFS stage 1.5 # $(FFS_STAGE1_5_EXEC): $(FFS_STAGE1_5_ASMOBJS) $(FFS_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(FFS_STAGE1_5_ASMOBJS) $(FFS_STAGE1_5_OBJS) $(LIBS) $(FFS_STAGE1_5_ASMOBJS): $$(@:ffs_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:ffs_stage1_5_exec-%.o=%.S) $(FFS_STAGE1_5_OBJS): $$(@:ffs_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:ffs_stage1_5_exec-%.o=%.c) # # ISO9660 stage 1.5 # $(ISO9660_STAGE1_5_EXEC): $(ISO9660_STAGE1_5_ASMOBJS) $(ISO9660_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(ISO9660_STAGE1_5_ASMOBJS) $(ISO9660_STAGE1_5_OBJS) \ $(LIBS) $(ISO9660_STAGE1_5_ASMOBJS): $$(@:iso9660_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:iso9660_stage1_5_exec-%.o=%.S) $(ISO9660_STAGE1_5_OBJS): $$(@:iso9660_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:iso9660_stage1_5_exec-%.o=%.c) # # JFS stage 1.5 # $(JFS_STAGE1_5_EXEC): $(JFS_STAGE1_5_ASMOBJS) $(JFS_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(JFS_STAGE1_5_ASMOBJS) $(JFS_STAGE1_5_OBJS) $(LIBS) $(JFS_STAGE1_5_ASMOBJS): $$(@:jfs_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:jfs_stage1_5_exec-%.o=%.S) $(JFS_STAGE1_5_OBJS): $$(@:jfs_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:jfs_stage1_5_exec-%.o=%.c) # # Minix stage 1.5 # $(MINIX_STAGE1_5_EXEC): $(MINIX_STAGE1_5_ASMOBJS) $(MINIX_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(MINIX_STAGE1_5_ASMOBJS) $(MINIX_STAGE1_5_OBJS) $(LIBS) $(MINIX_STAGE1_5_ASMOBJS): $$(@:minix_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:minix_stage1_5_exec-%.o=%.S) $(MINIX_STAGE1_5_OBJS): $$(@:minix_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:minix_stage1_5_exec-%.o=%.c) # # nbgrub # $(NBGRUB_DATA): $(NBLOADER_DATA) $(DISKLESS_DATA) $(RM) $@ cat $(NBLOADER_DATA) $(DISKLESS_DATA) > $@ # # nbloader # $(NBLOADER_EXEC): $(NBLOADER_ASMOBJS) $(NBLOADER_OBJS) $(RM) $@ $(LINK) -o $@ $(NBLOADER_ASMOBJS) $(NBLOADER_OBJS) $(LIBS) $(NBLOADER_ASMOBJS): $$(@:nbloader_exec-%.o=%.S) diskless_size.h $(CCAS) $(CCASFLAGS) -c -o $@ $(@:nbloader_exec-%.o=%.S) $(NBLOADER_OBJS): $$(@:nbloader_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:nbloader_exec-%.o=%.c) # # Pre-stage2 # $(PRE_STAGE2_EXEC): $(PRE_STAGE2_ASMOBJS) $(PRE_STAGE2_OBJS) $(RM) $@ $(LINK) -o $@ $(PRE_STAGE2_ASMOBJS) $(PRE_STAGE2_OBJS) $(LIBS) $(PRE_STAGE2_ASMOBJS): $$(@:pre_stage2_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:pre_stage2_exec-%.o=%.S) $(PRE_STAGE2_OBJS): $$(@:pre_stage2_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:pre_stage2_exec-%.o=%.c) # # pxegrub # $(PXEGRUB_DATA): $(PXELOADER_DATA) $(DISKLESS_DATA) $(RM) $@ cat $(PXELOADER_DATA) $(DISKLESS_DATA) > $@ # # pxeloader # $(PXELOADER_EXEC): $(PXELOADER_ASMOBJS) $(PXELOADER_OBJS) $(RM) $@ $(LINK) -o $@ $(PXELOADER_ASMOBJS) $(PXELOADER_OBJS) $(LIBS) $(PXELOADER_ASMOBJS): $$(@:pxeloader_exec-%.o=%.S) diskless_size.h $(CCAS) $(CCASFLAGS) -c -o $@ $(@:pxeloader_exec-%.o=%.S) $(PXELOADER_OBJS): $$(@:pxeloader_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:pxeloader_exec-%.o=%.c) # # ReiserFS stage 1.5 # $(REISERFS_STAGE1_5_EXEC): $(REISERFS_STAGE1_5_ASMOBJS) \ $(REISERFS_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(REISERFS_STAGE1_5_ASMOBJS) $(REISERFS_STAGE1_5_OBJS) \ $(LIBS) $(REISERFS_STAGE1_5_ASMOBJS): $$(@:reiserfs_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:reiserfs_stage1_5_exec-%.o=%.S) $(REISERFS_STAGE1_5_OBJS): $$(@:reiserfs_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:reiserfs_stage1_5_exec-%.o=%.c) # # stage2 # $(STAGE2_DATA): $(START_DATA) $(PRE_STAGE2_DATA) $(RM) $@ cat $(START_DATA) $(PRE_STAGE2_DATA) > $@ # # Eltorito stage2 # $(STAGE2_ELTORITO_DATA): $(START_ELTORITO_DATA) $(PRE_STAGE2_DATA) $(RM) $@ cat $(START_ELTORITO_DATA) $(PRE_STAGE2_DATA) > $@ # # start # $(START_EXEC): $(START_ASMOBJS) $(START_OBJS) $(RM) $@ $(LINK) -o $@ $(START_ASMOBJS) $(START_OBJS) $(LIBS) $(START_ASMOBJS): $$(@:start_exec-%.o=%.S) stage2_size.h $(CCAS) $(CCASFLAGS) -c -o $@ $(@:start_exec-%.o=%.S) $(START_OBJS): $$(@:start_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:start_exec-%.o=%.c) # # Eltorito start # $(START_ELTORITO_EXEC): $(START_ELTORITO_ASMOBJS) $(START_ELTORITO_OBJS) $(RM) $@ $(LINK) -o $@ $(START_ELTORITO_ASMOBJS) $(START_ELTORITO_OBJS) $(LIBS) $(START_ELTORITO_ASMOBJS): $$(@:start_eltorito_exec-%.o=%.S) stage2_size.h $(CCAS) $(CCASFLAGS) -c -o $@ $(@:start_eltorito_exec-%.o=%.S) $(START_ELTORITO_OBJS): $$(@:start_eltorito_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:start_eltorito_exec-%.o=%.c) # # UFS2 stage 1.5 # $(UFS2_STAGE1_5_EXEC): $(UFS2_STAGE1_5_ASMOBJS) $(UFS2_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(UFS2_STAGE1_5_ASMOBJS) $(UFS2_STAGE1_5_OBJS) $(LIBS) $(UFS2_STAGE1_5_ASMOBJS): $$(@:ufs2_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:ufs2_stage1_5_exec-%.o=%.S) $(UFS2_STAGE1_5_OBJS): $$(@:ufs2_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:ufs2_stage1_5_exec-%.o=%.c) # # UFS stage 1.5 # $(UFS_STAGE1_5_EXEC): $(UFS_STAGE1_5_ASMOBJS) $(UFS_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(UFS_STAGE1_5_ASMOBJS) $(UFS_STAGE1_5_OBJS) $(LIBS) $(UFS_STAGE1_5_ASMOBJS): $$(@:ufs_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:ufs_stage1_5_exec-%.o=%.S) $(UFS_STAGE1_5_OBJS): $$(@:ufs_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:ufs_stage1_5_exec-%.o=%.c) # # ZFS stage 1.5 # $(ZFS_STAGE1_5_EXEC): $(ZFS_STAGE1_5_ASMOBJS) $(ZFS_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(ZFS_STAGE1_5_ASMOBJS) $(ZFS_STAGE1_5_OBJS) $(LIBS) $(ZFS_STAGE1_5_ASMOBJS): $$(@:zfs_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:zfs_stage1_5_exec-%.o=%.S) $(ZFS_STAGE1_5_OBJS): $$(@:zfs_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:zfs_stage1_5_exec-%.o=%.c) # # VSTa stage 1.5 # $(VSTAFS_STAGE1_5_EXEC): $(VSTAFS_STAGE1_5_ASMOBJS) $(VSTAFS_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(VSTAFS_STAGE1_5_ASMOBJS) $(VSTAFS_STAGE1_5_OBJS) $(LIBS) $(VSTAFS_STAGE1_5_ASMOBJS): $$(@:vstafs_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:vstafs_stage1_5_exec-%.o=%.S) $(VSTAFS_STAGE1_5_OBJS): $$(@:vstafs_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:vstafs_stage1_5_exec-%.o=%.c) # # SGI XFS stage 1.5 # $(XFS_STAGE1_5_EXEC): $(XFS_STAGE1_5_ASMOBJS) $(XFS_STAGE1_5_OBJS) $(RM) $@ $(LINK) -o $@ $(XFS_STAGE1_5_ASMOBJS) $(XFS_STAGE1_5_OBJS) $(LIBS) $(XFS_STAGE1_5_ASMOBJS): $$(@:xfs_stage1_5_exec-%.o=%.S) $(CCAS) $(CCASFLAGS) -c -o $@ $(@:xfs_stage1_5_exec-%.o=%.S) $(XFS_STAGE1_5_OBJS): $$(@:xfs_stage1_5_exec-%.o=%.c) $(CC) $(CFLAGS) -c -o $@ $(@:xfs_stage1_5_exec-%.o=%.c) install: all $(INSTALL_TARGETS) $(ROOT_BOOT_GRUB)/%: $(ROOT_BOOT_GRUB) % $(INS.file) $(SRC_DIR)/%: $(SRC_DIR) % $(INS.file) $(SRC_ZFSINC_DIR)/%: $(SRC_ZFSINC_DIR) % $(INS.file) $(ROOT_BOOT_GRUB) $(SRC_DIR) $(SRC_ZFSINC_DIR): $(INS.dir) clean: _FORCE $(RM) *.o $(BUILT_SOURCES) $(LIBRARIES) $(PROGRAMS) $(NOINSTALL_DATA) clobber: clean $(RM) $(INSTALL_DATA) _FORCE: