1N/A# For test target.
1N/ATESTS = size_test
1N/Anoinst_SCRIPTS = $(TESTS)
1N/A
1N/A# For dist target.
1N/Anoinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
1N/A fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
1N/A imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
1N/A nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
1N/A terminfo.h tparm.h nbi.h ufs.h ufs2.h vstafs.h xfs.h graphics.h \
1N/A fsys_zfs.h
1N/AEXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
1N/A
1N/A# For <stage1.h>.
1N/AINCLUDES = -I$(top_srcdir)/stage1
1N/A
1N/A# The library for /sbin/grub.
1N/Anoinst_LIBRARIES = libgrub.a
1N/Alibgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
1N/A disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
1N/A fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs.c fsys_ufs2.c \
1N/A fsys_zfs.c zfs_fletcher.c zfs_lzjb.c zfs_sha256.c \
1N/A fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
1N/A terminfo.c tparm.c graphics.c
1N/Alibgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
1N/A -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
1N/A -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
1N/A -DFSYS_UFS=1 -DFSYS_UFS2=1 -DFSYS_ZFS=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
1N/A -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
1N/A
1N/A# Stage 2 and Stage 1.5's.
1N/Apkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
1N/A
1N/AEXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
1N/A
1N/Aif DISKLESS_SUPPORT
1N/Apkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
1N/A ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
1N/A reiserfs_stage1_5 ufs_stage1_5 ufs2_stage1_5 zfs_stage1_5 vstafs_stage1_5 \
1N/A xfs_stage1_5 nbgrub pxegrub
1N/Anoinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
1N/Anoinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
1N/A e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
1N/A iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
1N/A reiserfs_stage1_5.exec ufs_stage1_5.exec ufs2_stage1_5.exec \
1N/A zfs_stage1_5.exec \
1N/A vstafs_stage1_5.exec xfs_stage1_5.exec \
1N/A nbloader.exec pxeloader.exec diskless.exec
1N/Aelse
1N/Apkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
1N/A ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
1N/A reiserfs_stage1_5 ufs_stage1_5 ufs2_stage1_5 zfs_stage1_5 vstafs_stage1_5 \
1N/A xfs_stage1_5
1N/Anoinst_DATA = pre_stage2 start start_eltorito
1N/Anoinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
1N/A e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
1N/A iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
1N/A reiserfs_stage1_5.exec ufs_stage1_5.exec ufs2_stage1_5.exec \
1N/A zfs_stage1_5.exec vstafs_stage1_5.exec xfs_stage1_5.exec
1N/Aendif
1N/AMOSTLYCLEANFILES = $(noinst_PROGRAMS)
1N/A
1N/APRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
1N/ASTART_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
1N/ANBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
1N/APXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
1N/ASTART_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
1N/A
1N/Aif NETBOOT_SUPPORT
1N/ANETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
1N/Aelse
1N/ANETBOOT_FLAGS =
1N/Aendif
1N/A
1N/Aif SERIAL_SUPPORT
1N/ASERIAL_FLAGS = -DSUPPORT_SERIAL=1
1N/Aelse
1N/ASERIAL_FLAGS =
1N/Aendif
1N/A
1N/Aif HERCULES_SUPPORT
1N/AHERCULES_FLAGS = -DSUPPORT_HERCULES=1
1N/Aelse
1N/AHERCULES_FLAGS =
1N/Aendif
1N/A
1N/Aif GRAPHICS_SUPPORT
1N/AGRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
1N/Aelse
1N/AGRAPHICS_FLAGS =
1N/Aendif
1N/A
1N/ASTAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
1N/A $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
1N/A
1N/ASTAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
1N/ASTAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
1N/A
1N/A# For stage2 target.
1N/Apre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
1N/A cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
1N/A fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
1N/A fsys_reiserfs.c fsys_ufs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c \
1N/A fsys_zfs.c zfs_fletcher.c zfs_lzjb.c zfs_sha256.c \
1N/A gunzip.c hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c \
1N/A tparm.c graphics.c
1N/Apre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
1N/Apre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
1N/Apre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
1N/A
1N/Aif NETBOOT_SUPPORT
1N/Apre_stage2_exec_LDADD = ../netboot/libdrivers.a
1N/Aendif
1N/A
1N/Aif DISKLESS_SUPPORT
1N/ABUILT_SOURCES = stage2_size.h diskless_size.h
1N/Aelse
1N/ABUILT_SOURCES = stage2_size.h
1N/Aendif
1N/A
1N/ACLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
1N/A
1N/Astage2_size.h: pre_stage2
1N/A -rm -f stage2_size.h
1N/A set dummy `ls -l pre_stage2`; \
1N/A echo "#define STAGE2_SIZE $$6" > stage2_size.h
1N/A
1N/Astart_exec_SOURCES = start.S
1N/Astart_exec_CCASFLAGS = $(STAGE2_COMPILE)
1N/Astart_exec_LDFLAGS = $(START_LINK)
1N/A
1N/A# XXX: automake doesn't provide a way to specify dependencies for object
1N/A# files explicitly, so we must write this by a general Makefile scheme.
1N/A# If automake change the naming scheme for per-executable objects, this
1N/A# will be broken.
1N/Astart_exec-start.$(OBJEXT): stage2_size.h
1N/A
1N/Astage2: pre_stage2 start
1N/A -rm -f stage2
1N/A cat start pre_stage2 > stage2
1N/A
1N/Astart_eltorito_exec_SOURCES = start_eltorito.S
1N/Astart_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE)
1N/Astart_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK)
1N/A
1N/Astart_eltorito_exec-start.$(OBJEXT): stage2_size.h
1N/A
1N/Astage2_eltorito: pre_stage2 start_eltorito
1N/A -rm -f stage2_eltorito
1N/A cat start_eltorito pre_stage2 > stage2_eltorito
1N/A
1N/A# For e2fs_stage1_5 target.
1N/Ae2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
1N/A stage1_5.c fsys_ext2fs.c bios.c
1N/Ae2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Ae2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Ae2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For fat_stage1_5 target.
1N/Afat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
1N/A stage1_5.c fsys_fat.c bios.c
1N/Afat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Afat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Afat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For ffs_stage1_5 target.
1N/Affs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
1N/A stage1_5.c fsys_ffs.c bios.c
1N/Affs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Affs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Affs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For ufs_stage1_5 target.
1N/Aufs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
1N/A stage1_5.c fsys_ufs.c bios.c
1N/Aufs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Aufs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Aufs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For ufs2_stage1_5 target.
1N/Aufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
1N/A stage1_5.c fsys_ufs2.c bios.c
1N/Aufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Aufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Aufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For zfs_stage1_5 target.
1N/Azfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
1N/A stage1_5.c fsys_zfs.c zfs_fletcher.c zfs_lzjb.c zfs_sha256.c bios.c
1N/Azfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ZFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Azfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ZFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Azfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For minix_stage1_5 target.
1N/Aminix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
1N/A stage1_5.c fsys_minix.c bios.c
1N/Aminix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Aminix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Aminix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For reiserfs_stage1_5 target.
1N/Areiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
1N/A disk_io.c stage1_5.c fsys_reiserfs.c bios.c
1N/Areiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Areiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Areiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For vstafs_stage1_5 target.
1N/Avstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
1N/A disk_io.c stage1_5.c fsys_vstafs.c bios.c
1N/Avstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Avstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Avstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For jfs_stage1_5 target.
1N/Ajfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
1N/A disk_io.c stage1_5.c fsys_jfs.c bios.c
1N/Ajfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Ajfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Ajfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For xfs_stage1_5 target.
1N/Axfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
1N/A disk_io.c stage1_5.c fsys_xfs.c bios.c
1N/Axfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Axfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Axfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For iso9660_stage1_5 target.
1N/Aiso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \
1N/A disk_io.c stage1_5.c fsys_iso9660.c bios.c
1N/Aiso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Aiso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
1N/A -DNO_BLOCK_FILES=1
1N/Aiso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
1N/A
1N/A# For diskless target.
1N/Adiskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
1N/Adiskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
1N/A -DSUPPORT_DISKLESS=1
1N/Adiskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
1N/A -DSUPPORT_DISKLESS=1
1N/Adiskless_exec_LDFLAGS = $(PRE_STAGE2_LINK)
1N/Adiskless_exec_LDADD = ../netboot/libdrivers.a
1N/A
1N/Adiskless_size.h: diskless
1N/A -rm -f $@
1N/A set dummy `ls -l $^`; \
1N/A echo "#define DISKLESS_SIZE $$6" > $@
1N/A
1N/A# For nbloader target.
1N/Anbloader_exec_SOURCES = nbloader.S
1N/Anbloader_exec_CCASFLAGS = $(STAGE2_COMPILE)
1N/Anbloader_exec_LDFLAGS = $(NBLOADER_LINK)
1N/A
1N/A# XXX: See the comment for start_exec-start.o.
1N/Anbloader_exec-nbloader.$(OBJEXT): diskless_size.h
1N/A
1N/A# For nbgrub target.
1N/Anbgrub: nbloader diskless
1N/A -rm -f $@
1N/A cat $^ > $@
1N/A
1N/A# For pxeloader target.
1N/Apxeloader_exec_SOURCES = pxeloader.S
1N/Apxeloader_exec_CCASFLAGS = $(STAGE2_COMPILE)
1N/Apxeloader_exec_LDFLAGS = $(PXELOADER_LINK)
1N/A
1N/A# XXX: See the comment for start_exec-start.o.
1N/Apxeloader_exec-pxeloader.$(OBJEXT): diskless_size.h
1N/A
1N/A# For pxegrub target.
1N/Apxegrub: pxeloader diskless
1N/A -rm -f $@
1N/A cat $^ > $@
1N/A
1N/A# General rule for making a raw binary.
1N/ASUFFIXES = .exec
1N/A.exec:
1N/A $(OBJCOPY) -O binary $< $@