From: subdino Date: Sun, 23 Oct 2005 19:28:28 +0000 (+0000) Subject: 2005-10-23 Vincent Pelletier X-Git-Tag: 1.98~2051 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03e8661a563f86f1d37b027495c72f65d97e2b86;p=thirdparty%2Fgrub.git 2005-10-23 Vincent Pelletier * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF. * kern/sparc64/cache.S: New file. * kern/sparc64/cache.c: Removed. * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9. (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and -mtune=ultrasparc. (COMMON_LDFLAGS): Add -melf64_sparc. (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h. (grubof_SOURCES): Use cache.S instead of cache.c. (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc". (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod commented though. (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c. (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES) (linux_mod_CFLAGS): Commented out. (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented out because module isn't built. (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS) (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS) (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS) (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS) (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS) (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS) (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS) (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS) (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS) (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES) (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES) (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES) (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES) (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro. --- diff --git a/ChangeLog b/ChangeLog index 70f5a1a66..813caf48c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,38 @@ +2005-10-23 Vincent Pelletier + + * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF. + * kern/sparc64/cache.S: New file. + * kern/sparc64/cache.c: Removed. + * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9. + (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and + -mtune=ultrasparc. + (COMMON_LDFLAGS): Add -melf64_sparc. + (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h. + (grubof_SOURCES): Use cache.S instead of cache.c. + (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker + --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc". + (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod + commented though. + (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c. + (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES) + (linux_mod_CFLAGS): Commented out. + (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented + out because module isn't built. + (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS) + (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS) + (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS) + (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS) + (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS) + (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS) + (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS) + (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS) + (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS) + (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES) + (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES) + (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES) + (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES) + (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro. + 2005-10-20 Yoshinori K. Okuji * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and diff --git a/conf/sparc64-ieee1275.mk b/conf/sparc64-ieee1275.mk index 3a1a72c68..0510e6563 100644 --- a/conf/sparc64-ieee1275.mk +++ b/conf/sparc64-ieee1275.mk @@ -1,8 +1,9 @@ # -*- makefile -*- -COMMON_ASFLAGS = -nostdinc -COMMON_CFLAGS = -ggdb -ffreestanding -m64 -mcpu=v9 -mtune=ultrasparc +COMMON_ASFLAGS = -nostdinc -Av9 +COMMON_CFLAGS = -ggdb -ffreestanding -m64 -mno-app-regs +COMMON_LDFLAGS = -melf64_sparc # Images. @@ -11,8 +12,9 @@ DEFSYMFILES += kernel_syms.lst grubof_HEADERS = arg.h boot.h device.h disk.h dl.h elf.h env.h err.h \ file.h fs.h kernel.h misc.h mm.h net.h rescue.h symbol.h \ - term.h types.h loader.h \ - partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h + term.h types.h sparc64/libgcc.h loader.h \ + partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h \ + machine/kernel.h grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) gensymlist.sh sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@ @@ -59,7 +61,7 @@ grubof_SOURCES = kern/sparc64/ieee1275/init.c kern/ieee1275/ieee1275.c \ kern/rescue.c kern/term.c term/ieee1275/ofconsole.c \ kern/sparc64/ieee1275/openfw.c disk/ieee1275/ofdisk.c \ kern/partition.c kern/env.c kern/sparc64/dl.c grubof_symlist.c \ - kern/sparc64/cache.c + kern/sparc64/cache.S CLEANFILES += grubof grubof-kern_sparc64_ieee1275_init.o grubof-kern_ieee1275_ieee1275.o grubof-kern_main.o grubof-kern_device.o grubof-kern_disk.o grubof-kern_dl.o grubof-kern_file.o grubof-kern_fs.o grubof-kern_err.o grubof-kern_misc.o grubof-kern_mm.o grubof-kern_loader.o grubof-kern_rescue.o grubof-kern_term.o grubof-term_ieee1275_ofconsole.o grubof-kern_sparc64_ieee1275_openfw.o grubof-disk_ieee1275_ofdisk.o grubof-kern_partition.o grubof-kern_env.o grubof-kern_sparc64_dl.o grubof-grubof_symlist.o grubof-kern_sparc64_cache.o MOSTLYCLEANFILES += grubof-kern_sparc64_ieee1275_init.d grubof-kern_ieee1275_ieee1275.d grubof-kern_main.d grubof-kern_device.d grubof-kern_disk.d grubof-kern_dl.d grubof-kern_file.d grubof-kern_fs.d grubof-kern_err.d grubof-kern_misc.d grubof-kern_mm.d grubof-kern_loader.d grubof-kern_rescue.d grubof-kern_term.d grubof-term_ieee1275_ofconsole.d grubof-kern_sparc64_ieee1275_openfw.d grubof-disk_ieee1275_ofdisk.d grubof-kern_partition.d grubof-kern_env.d grubof-kern_sparc64_dl.d grubof-grubof_symlist.d grubof-kern_sparc64_cache.d @@ -234,10 +236,10 @@ grubof-grubof_symlist.d: grubof_symlist.c -include grubof-grubof_symlist.d -grubof-kern_sparc64_cache.o: kern/sparc64/cache.c +grubof-kern_sparc64_cache.o: kern/sparc64/cache.S $(CC) -Ikern/sparc64 -I$(srcdir)/kern/sparc64 $(CPPFLAGS) $(CFLAGS) $(grubof_CFLAGS) -c -o $@ $< -grubof-kern_sparc64_cache.d: kern/sparc64/cache.c +grubof-kern_sparc64_cache.d: kern/sparc64/cache.S set -e; $(CC) -Ikern/sparc64 -I$(srcdir)/kern/sparc64 $(CPPFLAGS) $(CFLAGS) $(grubof_CFLAGS) -M $< | sed 's,cache\.o[ :]*,grubof-kern_sparc64_cache.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ -include grubof-kern_sparc64_cache.d @@ -245,7 +247,7 @@ grubof-kern_sparc64_cache.d: kern/sparc64/cache.c grubof_HEADERS = grub/sparc64/ieee1275/ieee1275.h grubof_CFLAGS = $(COMMON_CFLAGS) grubof_ASFLAGS = $(COMMON_ASFLAGS) -grubof_LDFLAGS = -m64 -nostdlib -Wl,-N,-Ttext,0x200000,-Bstatic -Xlinker --oformat -Xlinker elf64-sparc +grubof_LDFLAGS = -mno-app-regs -nostdlib -Wl,-N,-Ttext,0x200000,-Bstatic,-melf64_sparc # For genmoddep. genmoddep_SOURCES = util/genmoddep.c @@ -265,139 +267,1835 @@ genmoddep-util_genmoddep.d: util/genmoddep.c # Modules. -#pkgdata_MODULES = _linux.mod linux.mod fat.mod ufs.mod ext2.mod minix.mod \ -# hfs.mod jfs.mod normal.mod hello.mod font.mod ls.mod \ -# boot.mod cmp.mod cat.mod terminal.mod fshelp.mod amiga.mod apple.mod \ -# pc.mod suspend.mod loopback.mod help.mod reboot.mod halt.mod sun.mod \ -# default.mod timeout.mod configfile.mod search.mod +#_linux.mod linux.mod +pkgdata_MODULES = fat.mod ufs.mod ext2.mod minix.mod \ + hfs.mod jfs.mod normal.mod hello.mod font.mod ls.mod \ + boot.mod cmp.mod cat.mod terminal.mod fshelp.mod amiga.mod apple.mod \ + pc.mod suspend.mod loopback.mod help.mod reboot.mod halt.mod sun.mod \ + default.mod timeout.mod configfile.mod search.mod gzio.mod xfs.mod \ + affs.mod sfs.mod # For fshelp.mod. fshelp_mod_SOURCES = fs/fshelp.c +CLEANFILES += fshelp.mod mod-fshelp.o mod-fshelp.c pre-fshelp.o fshelp_mod-fs_fshelp.o def-fshelp.lst und-fshelp.lst +MOSTLYCLEANFILES += fshelp_mod-fs_fshelp.d +DEFSYMFILES += def-fshelp.lst +UNDSYMFILES += und-fshelp.lst + +fshelp.mod: pre-fshelp.o mod-fshelp.o + -rm -f $@ + $(LD) $(fshelp_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-fshelp.o: fshelp_mod-fs_fshelp.o + -rm -f $@ + $(LD) $(fshelp_mod_LDFLAGS) -r -d -o $@ $^ + +mod-fshelp.o: mod-fshelp.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -c -o $@ $< + +mod-fshelp.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'fshelp' $< > $@ || (rm -f $@; exit 1) + +def-fshelp.lst: pre-fshelp.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 fshelp/' > $@ + +und-fshelp.lst: pre-fshelp.o + echo 'fshelp' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +fshelp_mod-fs_fshelp.o: fs/fshelp.c + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -c -o $@ $< + +fshelp_mod-fs_fshelp.d: fs/fshelp.c + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -M $< | sed 's,fshelp\.o[ :]*,fshelp_mod-fs_fshelp.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include fshelp_mod-fs_fshelp.d + +CLEANFILES += cmd-fshelp.lst fs-fshelp.lst +COMMANDFILES += cmd-fshelp.lst +FSFILES += fs-fshelp.lst + +cmd-fshelp.lst: fs/fshelp.c gencmdlist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh fshelp > $@ || (rm -f $@; exit 1) + +fs-fshelp.lst: fs/fshelp.c genfslist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh fshelp > $@ || (rm -f $@; exit 1) + + fshelp_mod_CFLAGS = $(COMMON_CFLAGS) +fshelp_mod_LDFLAGS = $(COMMON_LDFLAGS) # For fat.mod. fat_mod_SOURCES = fs/fat.c +CLEANFILES += fat.mod mod-fat.o mod-fat.c pre-fat.o fat_mod-fs_fat.o def-fat.lst und-fat.lst +MOSTLYCLEANFILES += fat_mod-fs_fat.d +DEFSYMFILES += def-fat.lst +UNDSYMFILES += und-fat.lst + +fat.mod: pre-fat.o mod-fat.o + -rm -f $@ + $(LD) $(fat_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-fat.o: fat_mod-fs_fat.o + -rm -f $@ + $(LD) $(fat_mod_LDFLAGS) -r -d -o $@ $^ + +mod-fat.o: mod-fat.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -c -o $@ $< + +mod-fat.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'fat' $< > $@ || (rm -f $@; exit 1) + +def-fat.lst: pre-fat.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 fat/' > $@ + +und-fat.lst: pre-fat.o + echo 'fat' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +fat_mod-fs_fat.o: fs/fat.c + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -c -o $@ $< + +fat_mod-fs_fat.d: fs/fat.c + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -M $< | sed 's,fat\.o[ :]*,fat_mod-fs_fat.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include fat_mod-fs_fat.d + +CLEANFILES += cmd-fat.lst fs-fat.lst +COMMANDFILES += cmd-fat.lst +FSFILES += fs-fat.lst + +cmd-fat.lst: fs/fat.c gencmdlist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh fat > $@ || (rm -f $@; exit 1) + +fs-fat.lst: fs/fat.c genfslist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh fat > $@ || (rm -f $@; exit 1) + + fat_mod_CFLAGS = $(COMMON_CFLAGS) +fat_mod_LDFLAGS = $(COMMON_LDFLAGS) # For ext2.mod. ext2_mod_SOURCES = fs/ext2.c +CLEANFILES += ext2.mod mod-ext2.o mod-ext2.c pre-ext2.o ext2_mod-fs_ext2.o def-ext2.lst und-ext2.lst +MOSTLYCLEANFILES += ext2_mod-fs_ext2.d +DEFSYMFILES += def-ext2.lst +UNDSYMFILES += und-ext2.lst + +ext2.mod: pre-ext2.o mod-ext2.o + -rm -f $@ + $(LD) $(ext2_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-ext2.o: ext2_mod-fs_ext2.o + -rm -f $@ + $(LD) $(ext2_mod_LDFLAGS) -r -d -o $@ $^ + +mod-ext2.o: mod-ext2.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -c -o $@ $< + +mod-ext2.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ext2' $< > $@ || (rm -f $@; exit 1) + +def-ext2.lst: pre-ext2.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ext2/' > $@ + +und-ext2.lst: pre-ext2.o + echo 'ext2' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ext2_mod-fs_ext2.o: fs/ext2.c + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -c -o $@ $< + +ext2_mod-fs_ext2.d: fs/ext2.c + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -M $< | sed 's,ext2\.o[ :]*,ext2_mod-fs_ext2.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include ext2_mod-fs_ext2.d + +CLEANFILES += cmd-ext2.lst fs-ext2.lst +COMMANDFILES += cmd-ext2.lst +FSFILES += fs-ext2.lst + +cmd-ext2.lst: fs/ext2.c gencmdlist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ext2 > $@ || (rm -f $@; exit 1) + +fs-ext2.lst: fs/ext2.c genfslist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ext2 > $@ || (rm -f $@; exit 1) + + ext2_mod_CFLAGS = $(COMMON_CFLAGS) +ext2_mod_LDFLAGS = $(COMMON_LDFLAGS) # For ufs.mod. ufs_mod_SOURCES = fs/ufs.c +CLEANFILES += ufs.mod mod-ufs.o mod-ufs.c pre-ufs.o ufs_mod-fs_ufs.o def-ufs.lst und-ufs.lst +MOSTLYCLEANFILES += ufs_mod-fs_ufs.d +DEFSYMFILES += def-ufs.lst +UNDSYMFILES += und-ufs.lst + +ufs.mod: pre-ufs.o mod-ufs.o + -rm -f $@ + $(LD) $(ufs_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-ufs.o: ufs_mod-fs_ufs.o + -rm -f $@ + $(LD) $(ufs_mod_LDFLAGS) -r -d -o $@ $^ + +mod-ufs.o: mod-ufs.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -c -o $@ $< + +mod-ufs.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ufs' $< > $@ || (rm -f $@; exit 1) + +def-ufs.lst: pre-ufs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ufs/' > $@ + +und-ufs.lst: pre-ufs.o + echo 'ufs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ufs_mod-fs_ufs.o: fs/ufs.c + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -c -o $@ $< + +ufs_mod-fs_ufs.d: fs/ufs.c + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -M $< | sed 's,ufs\.o[ :]*,ufs_mod-fs_ufs.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include ufs_mod-fs_ufs.d + +CLEANFILES += cmd-ufs.lst fs-ufs.lst +COMMANDFILES += cmd-ufs.lst +FSFILES += fs-ufs.lst + +cmd-ufs.lst: fs/ufs.c gencmdlist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ufs > $@ || (rm -f $@; exit 1) + +fs-ufs.lst: fs/ufs.c genfslist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(ufs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ufs > $@ || (rm -f $@; exit 1) + + ufs_mod_CFLAGS = $(COMMON_CFLAGS) +ufs_mod_LDFLAGS = $(COMMON_LDFLAGS) # For minix.mod. minix_mod_SOURCES = fs/minix.c +CLEANFILES += minix.mod mod-minix.o mod-minix.c pre-minix.o minix_mod-fs_minix.o def-minix.lst und-minix.lst +MOSTLYCLEANFILES += minix_mod-fs_minix.d +DEFSYMFILES += def-minix.lst +UNDSYMFILES += und-minix.lst + +minix.mod: pre-minix.o mod-minix.o + -rm -f $@ + $(LD) $(minix_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-minix.o: minix_mod-fs_minix.o + -rm -f $@ + $(LD) $(minix_mod_LDFLAGS) -r -d -o $@ $^ + +mod-minix.o: mod-minix.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -c -o $@ $< + +mod-minix.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'minix' $< > $@ || (rm -f $@; exit 1) + +def-minix.lst: pre-minix.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 minix/' > $@ + +und-minix.lst: pre-minix.o + echo 'minix' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +minix_mod-fs_minix.o: fs/minix.c + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -c -o $@ $< + +minix_mod-fs_minix.d: fs/minix.c + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -M $< | sed 's,minix\.o[ :]*,minix_mod-fs_minix.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include minix_mod-fs_minix.d + +CLEANFILES += cmd-minix.lst fs-minix.lst +COMMANDFILES += cmd-minix.lst +FSFILES += fs-minix.lst + +cmd-minix.lst: fs/minix.c gencmdlist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh minix > $@ || (rm -f $@; exit 1) + +fs-minix.lst: fs/minix.c genfslist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh minix > $@ || (rm -f $@; exit 1) + + minix_mod_CFLAGS = $(COMMON_CFLAGS) +minix_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For hfs.mod. +hfs_mod_SOURCES = fs/hfs.c +CLEANFILES += hfs.mod mod-hfs.o mod-hfs.c pre-hfs.o hfs_mod-fs_hfs.o def-hfs.lst und-hfs.lst +MOSTLYCLEANFILES += hfs_mod-fs_hfs.d +DEFSYMFILES += def-hfs.lst +UNDSYMFILES += und-hfs.lst + +hfs.mod: pre-hfs.o mod-hfs.o + -rm -f $@ + $(LD) $(hfs_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-hfs.o: hfs_mod-fs_hfs.o + -rm -f $@ + $(LD) $(hfs_mod_LDFLAGS) -r -d -o $@ $^ + +mod-hfs.o: mod-hfs.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -c -o $@ $< + +mod-hfs.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'hfs' $< > $@ || (rm -f $@; exit 1) + +def-hfs.lst: pre-hfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 hfs/' > $@ + +und-hfs.lst: pre-hfs.o + echo 'hfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +hfs_mod-fs_hfs.o: fs/hfs.c + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -c -o $@ $< + +hfs_mod-fs_hfs.d: fs/hfs.c + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -M $< | sed 's,hfs\.o[ :]*,hfs_mod-fs_hfs.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include hfs_mod-fs_hfs.d + +CLEANFILES += cmd-hfs.lst fs-hfs.lst +COMMANDFILES += cmd-hfs.lst +FSFILES += fs-hfs.lst + +cmd-hfs.lst: fs/hfs.c gencmdlist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hfs > $@ || (rm -f $@; exit 1) + +fs-hfs.lst: fs/hfs.c genfslist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh hfs > $@ || (rm -f $@; exit 1) + + +hfs_mod_CFLAGS = $(COMMON_CFLAGS) +hfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For jfs.mod. +jfs_mod_SOURCES = fs/jfs.c +CLEANFILES += jfs.mod mod-jfs.o mod-jfs.c pre-jfs.o jfs_mod-fs_jfs.o def-jfs.lst und-jfs.lst +MOSTLYCLEANFILES += jfs_mod-fs_jfs.d +DEFSYMFILES += def-jfs.lst +UNDSYMFILES += und-jfs.lst + +jfs.mod: pre-jfs.o mod-jfs.o + -rm -f $@ + $(LD) $(jfs_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-jfs.o: jfs_mod-fs_jfs.o + -rm -f $@ + $(LD) $(jfs_mod_LDFLAGS) -r -d -o $@ $^ + +mod-jfs.o: mod-jfs.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -c -o $@ $< + +mod-jfs.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'jfs' $< > $@ || (rm -f $@; exit 1) + +def-jfs.lst: pre-jfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 jfs/' > $@ + +und-jfs.lst: pre-jfs.o + echo 'jfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +jfs_mod-fs_jfs.o: fs/jfs.c + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -c -o $@ $< + +jfs_mod-fs_jfs.d: fs/jfs.c + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -M $< | sed 's,jfs\.o[ :]*,jfs_mod-fs_jfs.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include jfs_mod-fs_jfs.d + +CLEANFILES += cmd-jfs.lst fs-jfs.lst +COMMANDFILES += cmd-jfs.lst +FSFILES += fs-jfs.lst + +cmd-jfs.lst: fs/jfs.c gencmdlist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh jfs > $@ || (rm -f $@; exit 1) + +fs-jfs.lst: fs/jfs.c genfslist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh jfs > $@ || (rm -f $@; exit 1) + + +jfs_mod_CFLAGS = $(COMMON_CFLAGS) +jfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For iso9660.mod. +iso9660_mod_SOURCES = fs/iso9660.c +iso9660_mod_CFLAGS = $(COMMON_CFLAGS) +iso9660_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For xfs.mod. +xfs_mod_SOURCES = fs/xfs.c +CLEANFILES += xfs.mod mod-xfs.o mod-xfs.c pre-xfs.o xfs_mod-fs_xfs.o def-xfs.lst und-xfs.lst +MOSTLYCLEANFILES += xfs_mod-fs_xfs.d +DEFSYMFILES += def-xfs.lst +UNDSYMFILES += und-xfs.lst + +xfs.mod: pre-xfs.o mod-xfs.o + -rm -f $@ + $(LD) $(xfs_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-xfs.o: xfs_mod-fs_xfs.o + -rm -f $@ + $(LD) $(xfs_mod_LDFLAGS) -r -d -o $@ $^ + +mod-xfs.o: mod-xfs.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(xfs_mod_CFLAGS) -c -o $@ $< + +mod-xfs.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'xfs' $< > $@ || (rm -f $@; exit 1) + +def-xfs.lst: pre-xfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 xfs/' > $@ + +und-xfs.lst: pre-xfs.o + echo 'xfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +xfs_mod-fs_xfs.o: fs/xfs.c + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(xfs_mod_CFLAGS) -c -o $@ $< + +xfs_mod-fs_xfs.d: fs/xfs.c + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(xfs_mod_CFLAGS) -M $< | sed 's,xfs\.o[ :]*,xfs_mod-fs_xfs.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include xfs_mod-fs_xfs.d + +CLEANFILES += cmd-xfs.lst fs-xfs.lst +COMMANDFILES += cmd-xfs.lst +FSFILES += fs-xfs.lst + +cmd-xfs.lst: fs/xfs.c gencmdlist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(xfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xfs > $@ || (rm -f $@; exit 1) + +fs-xfs.lst: fs/xfs.c genfslist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(xfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xfs > $@ || (rm -f $@; exit 1) + + +xfs_mod_CFLAGS = $(COMMON_CFLAGS) +xfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For affs.mod. +affs_mod_SOURCES = fs/affs.c +CLEANFILES += affs.mod mod-affs.o mod-affs.c pre-affs.o affs_mod-fs_affs.o def-affs.lst und-affs.lst +MOSTLYCLEANFILES += affs_mod-fs_affs.d +DEFSYMFILES += def-affs.lst +UNDSYMFILES += und-affs.lst + +affs.mod: pre-affs.o mod-affs.o + -rm -f $@ + $(LD) $(affs_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-affs.o: affs_mod-fs_affs.o + -rm -f $@ + $(LD) $(affs_mod_LDFLAGS) -r -d -o $@ $^ + +mod-affs.o: mod-affs.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(affs_mod_CFLAGS) -c -o $@ $< + +mod-affs.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'affs' $< > $@ || (rm -f $@; exit 1) + +def-affs.lst: pre-affs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 affs/' > $@ + +und-affs.lst: pre-affs.o + echo 'affs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +affs_mod-fs_affs.o: fs/affs.c + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(affs_mod_CFLAGS) -c -o $@ $< + +affs_mod-fs_affs.d: fs/affs.c + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(affs_mod_CFLAGS) -M $< | sed 's,affs\.o[ :]*,affs_mod-fs_affs.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include affs_mod-fs_affs.d + +CLEANFILES += cmd-affs.lst fs-affs.lst +COMMANDFILES += cmd-affs.lst +FSFILES += fs-affs.lst + +cmd-affs.lst: fs/affs.c gencmdlist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(affs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh affs > $@ || (rm -f $@; exit 1) + +fs-affs.lst: fs/affs.c genfslist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(affs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh affs > $@ || (rm -f $@; exit 1) + + +affs_mod_CFLAGS = $(COMMON_CFLAGS) +affs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For sfs.mod. +sfs_mod_SOURCES = fs/sfs.c +CLEANFILES += sfs.mod mod-sfs.o mod-sfs.c pre-sfs.o sfs_mod-fs_sfs.o def-sfs.lst und-sfs.lst +MOSTLYCLEANFILES += sfs_mod-fs_sfs.d +DEFSYMFILES += def-sfs.lst +UNDSYMFILES += und-sfs.lst + +sfs.mod: pre-sfs.o mod-sfs.o + -rm -f $@ + $(LD) $(sfs_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-sfs.o: sfs_mod-fs_sfs.o + -rm -f $@ + $(LD) $(sfs_mod_LDFLAGS) -r -d -o $@ $^ + +mod-sfs.o: mod-sfs.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(sfs_mod_CFLAGS) -c -o $@ $< + +mod-sfs.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'sfs' $< > $@ || (rm -f $@; exit 1) + +def-sfs.lst: pre-sfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 sfs/' > $@ + +und-sfs.lst: pre-sfs.o + echo 'sfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +sfs_mod-fs_sfs.o: fs/sfs.c + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(sfs_mod_CFLAGS) -c -o $@ $< + +sfs_mod-fs_sfs.d: fs/sfs.c + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(sfs_mod_CFLAGS) -M $< | sed 's,sfs\.o[ :]*,sfs_mod-fs_sfs.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include sfs_mod-fs_sfs.d + +CLEANFILES += cmd-sfs.lst fs-sfs.lst +COMMANDFILES += cmd-sfs.lst +FSFILES += fs-sfs.lst + +cmd-sfs.lst: fs/sfs.c gencmdlist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(sfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh sfs > $@ || (rm -f $@; exit 1) + +fs-sfs.lst: fs/sfs.c genfslist.sh + set -e; $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) $(sfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh sfs > $@ || (rm -f $@; exit 1) + + +sfs_mod_CFLAGS = $(COMMON_CFLAGS) +sfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For _linux.mod. +#_linux_mod_SOURCES = loader/sparc64/ieee1275/linux.c +#_linux_mod_CFLAGS = $(COMMON_CFLAGS) +#_linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For linux.mod. +#linux_mod_SOURCES = loader/sparc64/ieee1275/linux_normal.c +#linux_mod_CFLAGS = $(COMMON_CFLAGS) +#linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For normal.mod. +normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \ + normal/completion.c normal/context.c normal/main.c \ + normal/menu.c normal/menu_entry.c normal/misc.c \ + normal/sparc64/setjmp.c +CLEANFILES += normal.mod mod-normal.o mod-normal.c pre-normal.o normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_completion.o normal_mod-normal_context.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_misc.o normal_mod-normal_sparc64_setjmp.o def-normal.lst und-normal.lst +MOSTLYCLEANFILES += normal_mod-normal_arg.d normal_mod-normal_cmdline.d normal_mod-normal_command.d normal_mod-normal_completion.d normal_mod-normal_context.d normal_mod-normal_main.d normal_mod-normal_menu.d normal_mod-normal_menu_entry.d normal_mod-normal_misc.d normal_mod-normal_sparc64_setjmp.d +DEFSYMFILES += def-normal.lst +UNDSYMFILES += und-normal.lst + +normal.mod: pre-normal.o mod-normal.o + -rm -f $@ + $(LD) $(normal_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-normal.o: normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_completion.o normal_mod-normal_context.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_misc.o normal_mod-normal_sparc64_setjmp.o + -rm -f $@ + $(LD) $(normal_mod_LDFLAGS) -r -d -o $@ $^ + +mod-normal.o: mod-normal.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +mod-normal.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'normal' $< > $@ || (rm -f $@; exit 1) + +def-normal.lst: pre-normal.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 normal/' > $@ + +und-normal.lst: pre-normal.o + echo 'normal' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +normal_mod-normal_arg.o: normal/arg.c + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +normal_mod-normal_arg.d: normal/arg.c + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,arg\.o[ :]*,normal_mod-normal_arg.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include normal_mod-normal_arg.d + +CLEANFILES += cmd-arg.lst fs-arg.lst +COMMANDFILES += cmd-arg.lst +FSFILES += fs-arg.lst + +cmd-arg.lst: normal/arg.c gencmdlist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-arg.lst: normal/arg.c genfslist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + + +normal_mod-normal_cmdline.o: normal/cmdline.c + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +normal_mod-normal_cmdline.d: normal/cmdline.c + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,cmdline\.o[ :]*,normal_mod-normal_cmdline.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include normal_mod-normal_cmdline.d + +CLEANFILES += cmd-cmdline.lst fs-cmdline.lst +COMMANDFILES += cmd-cmdline.lst +FSFILES += fs-cmdline.lst + +cmd-cmdline.lst: normal/cmdline.c gencmdlist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-cmdline.lst: normal/cmdline.c genfslist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + + +normal_mod-normal_command.o: normal/command.c + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +normal_mod-normal_command.d: normal/command.c + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,command\.o[ :]*,normal_mod-normal_command.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include normal_mod-normal_command.d + +CLEANFILES += cmd-command.lst fs-command.lst +COMMANDFILES += cmd-command.lst +FSFILES += fs-command.lst + +cmd-command.lst: normal/command.c gencmdlist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-command.lst: normal/command.c genfslist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + + +normal_mod-normal_completion.o: normal/completion.c + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +normal_mod-normal_completion.d: normal/completion.c + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,completion\.o[ :]*,normal_mod-normal_completion.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include normal_mod-normal_completion.d + +CLEANFILES += cmd-completion.lst fs-completion.lst +COMMANDFILES += cmd-completion.lst +FSFILES += fs-completion.lst + +cmd-completion.lst: normal/completion.c gencmdlist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-completion.lst: normal/completion.c genfslist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + + +normal_mod-normal_context.o: normal/context.c + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +normal_mod-normal_context.d: normal/context.c + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,context\.o[ :]*,normal_mod-normal_context.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include normal_mod-normal_context.d + +CLEANFILES += cmd-context.lst fs-context.lst +COMMANDFILES += cmd-context.lst +FSFILES += fs-context.lst + +cmd-context.lst: normal/context.c gencmdlist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-context.lst: normal/context.c genfslist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + + +normal_mod-normal_main.o: normal/main.c + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +normal_mod-normal_main.d: normal/main.c + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,main\.o[ :]*,normal_mod-normal_main.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include normal_mod-normal_main.d + +CLEANFILES += cmd-main.lst fs-main.lst +COMMANDFILES += cmd-main.lst +FSFILES += fs-main.lst + +cmd-main.lst: normal/main.c gencmdlist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-main.lst: normal/main.c genfslist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + + +normal_mod-normal_menu.o: normal/menu.c + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +normal_mod-normal_menu.d: normal/menu.c + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,menu\.o[ :]*,normal_mod-normal_menu.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include normal_mod-normal_menu.d + +CLEANFILES += cmd-menu.lst fs-menu.lst +COMMANDFILES += cmd-menu.lst +FSFILES += fs-menu.lst + +cmd-menu.lst: normal/menu.c gencmdlist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-menu.lst: normal/menu.c genfslist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + + +normal_mod-normal_menu_entry.o: normal/menu_entry.c + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +normal_mod-normal_menu_entry.d: normal/menu_entry.c + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,menu_entry\.o[ :]*,normal_mod-normal_menu_entry.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include normal_mod-normal_menu_entry.d + +CLEANFILES += cmd-menu_entry.lst fs-menu_entry.lst +COMMANDFILES += cmd-menu_entry.lst +FSFILES += fs-menu_entry.lst + +cmd-menu_entry.lst: normal/menu_entry.c gencmdlist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-menu_entry.lst: normal/menu_entry.c genfslist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + + +normal_mod-normal_misc.o: normal/misc.c + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +normal_mod-normal_misc.d: normal/misc.c + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,misc\.o[ :]*,normal_mod-normal_misc.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include normal_mod-normal_misc.d + +CLEANFILES += cmd-misc.lst fs-misc.lst +COMMANDFILES += cmd-misc.lst +FSFILES += fs-misc.lst + +cmd-misc.lst: normal/misc.c gencmdlist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-misc.lst: normal/misc.c genfslist.sh + set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + + +normal_mod-normal_sparc64_setjmp.o: normal/sparc64/setjmp.c + $(CC) -Inormal/sparc64 -I$(srcdir)/normal/sparc64 $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $< + +normal_mod-normal_sparc64_setjmp.d: normal/sparc64/setjmp.c + set -e; $(CC) -Inormal/sparc64 -I$(srcdir)/normal/sparc64 $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,setjmp\.o[ :]*,normal_mod-normal_sparc64_setjmp.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include normal_mod-normal_sparc64_setjmp.d + +CLEANFILES += cmd-setjmp.lst fs-setjmp.lst +COMMANDFILES += cmd-setjmp.lst +FSFILES += fs-setjmp.lst + +cmd-setjmp.lst: normal/sparc64/setjmp.c gencmdlist.sh + set -e; $(CC) -Inormal/sparc64 -I$(srcdir)/normal/sparc64 $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-setjmp.lst: normal/sparc64/setjmp.c genfslist.sh + set -e; $(CC) -Inormal/sparc64 -I$(srcdir)/normal/sparc64 $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + + +normal_mod_CFLAGS = $(COMMON_CFLAGS) +normal_mod_ASFLAGS = $(COMMON_ASFLAGS) +normal_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For hello.mod. +hello_mod_SOURCES = hello/hello.c +CLEANFILES += hello.mod mod-hello.o mod-hello.c pre-hello.o hello_mod-hello_hello.o def-hello.lst und-hello.lst +MOSTLYCLEANFILES += hello_mod-hello_hello.d +DEFSYMFILES += def-hello.lst +UNDSYMFILES += und-hello.lst + +hello.mod: pre-hello.o mod-hello.o + -rm -f $@ + $(LD) $(hello_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-hello.o: hello_mod-hello_hello.o + -rm -f $@ + $(LD) $(hello_mod_LDFLAGS) -r -d -o $@ $^ + +mod-hello.o: mod-hello.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -c -o $@ $< + +mod-hello.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'hello' $< > $@ || (rm -f $@; exit 1) + +def-hello.lst: pre-hello.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 hello/' > $@ + +und-hello.lst: pre-hello.o + echo 'hello' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +hello_mod-hello_hello.o: hello/hello.c + $(CC) -Ihello -I$(srcdir)/hello $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -c -o $@ $< + +hello_mod-hello_hello.d: hello/hello.c + set -e; $(CC) -Ihello -I$(srcdir)/hello $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -M $< | sed 's,hello\.o[ :]*,hello_mod-hello_hello.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include hello_mod-hello_hello.d + +CLEANFILES += cmd-hello.lst fs-hello.lst +COMMANDFILES += cmd-hello.lst +FSFILES += fs-hello.lst + +cmd-hello.lst: hello/hello.c gencmdlist.sh + set -e; $(CC) -Ihello -I$(srcdir)/hello $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hello > $@ || (rm -f $@; exit 1) + +fs-hello.lst: hello/hello.c genfslist.sh + set -e; $(CC) -Ihello -I$(srcdir)/hello $(CPPFLAGS) $(CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh hello > $@ || (rm -f $@; exit 1) + + +hello_mod_CFLAGS = $(COMMON_CFLAGS) +hello_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For boot.mod. +boot_mod_SOURCES = commands/boot.c +CLEANFILES += boot.mod mod-boot.o mod-boot.c pre-boot.o boot_mod-commands_boot.o def-boot.lst und-boot.lst +MOSTLYCLEANFILES += boot_mod-commands_boot.d +DEFSYMFILES += def-boot.lst +UNDSYMFILES += und-boot.lst + +boot.mod: pre-boot.o mod-boot.o + -rm -f $@ + $(LD) $(boot_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-boot.o: boot_mod-commands_boot.o + -rm -f $@ + $(LD) $(boot_mod_LDFLAGS) -r -d -o $@ $^ + +mod-boot.o: mod-boot.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -c -o $@ $< + +mod-boot.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'boot' $< > $@ || (rm -f $@; exit 1) + +def-boot.lst: pre-boot.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 boot/' > $@ + +und-boot.lst: pre-boot.o + echo 'boot' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +boot_mod-commands_boot.o: commands/boot.c + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -c -o $@ $< + +boot_mod-commands_boot.d: commands/boot.c + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -M $< | sed 's,boot\.o[ :]*,boot_mod-commands_boot.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include boot_mod-commands_boot.d + +CLEANFILES += cmd-boot.lst fs-boot.lst +COMMANDFILES += cmd-boot.lst +FSFILES += fs-boot.lst + +cmd-boot.lst: commands/boot.c gencmdlist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh boot > $@ || (rm -f $@; exit 1) + +fs-boot.lst: commands/boot.c genfslist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh boot > $@ || (rm -f $@; exit 1) + + +boot_mod_CFLAGS = $(COMMON_CFLAGS) +boot_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For terminal.mod. +terminal_mod_SOURCES = commands/terminal.c +CLEANFILES += terminal.mod mod-terminal.o mod-terminal.c pre-terminal.o terminal_mod-commands_terminal.o def-terminal.lst und-terminal.lst +MOSTLYCLEANFILES += terminal_mod-commands_terminal.d +DEFSYMFILES += def-terminal.lst +UNDSYMFILES += und-terminal.lst + +terminal.mod: pre-terminal.o mod-terminal.o + -rm -f $@ + $(LD) $(terminal_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-terminal.o: terminal_mod-commands_terminal.o + -rm -f $@ + $(LD) $(terminal_mod_LDFLAGS) -r -d -o $@ $^ + +mod-terminal.o: mod-terminal.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -c -o $@ $< + +mod-terminal.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'terminal' $< > $@ || (rm -f $@; exit 1) + +def-terminal.lst: pre-terminal.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 terminal/' > $@ + +und-terminal.lst: pre-terminal.o + echo 'terminal' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +terminal_mod-commands_terminal.o: commands/terminal.c + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -c -o $@ $< + +terminal_mod-commands_terminal.d: commands/terminal.c + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -M $< | sed 's,terminal\.o[ :]*,terminal_mod-commands_terminal.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include terminal_mod-commands_terminal.d + +CLEANFILES += cmd-terminal.lst fs-terminal.lst +COMMANDFILES += cmd-terminal.lst +FSFILES += fs-terminal.lst + +cmd-terminal.lst: commands/terminal.c gencmdlist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh terminal > $@ || (rm -f $@; exit 1) + +fs-terminal.lst: commands/terminal.c genfslist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh terminal > $@ || (rm -f $@; exit 1) + + +terminal_mod_CFLAGS = $(COMMON_CFLAGS) +terminal_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ls.mod. +ls_mod_SOURCES = commands/ls.c +CLEANFILES += ls.mod mod-ls.o mod-ls.c pre-ls.o ls_mod-commands_ls.o def-ls.lst und-ls.lst +MOSTLYCLEANFILES += ls_mod-commands_ls.d +DEFSYMFILES += def-ls.lst +UNDSYMFILES += und-ls.lst + +ls.mod: pre-ls.o mod-ls.o + -rm -f $@ + $(LD) $(ls_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-ls.o: ls_mod-commands_ls.o + -rm -f $@ + $(LD) $(ls_mod_LDFLAGS) -r -d -o $@ $^ + +mod-ls.o: mod-ls.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -c -o $@ $< + +mod-ls.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ls' $< > $@ || (rm -f $@; exit 1) + +def-ls.lst: pre-ls.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ls/' > $@ + +und-ls.lst: pre-ls.o + echo 'ls' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ls_mod-commands_ls.o: commands/ls.c + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -c -o $@ $< + +ls_mod-commands_ls.d: commands/ls.c + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -M $< | sed 's,ls\.o[ :]*,ls_mod-commands_ls.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include ls_mod-commands_ls.d + +CLEANFILES += cmd-ls.lst fs-ls.lst +COMMANDFILES += cmd-ls.lst +FSFILES += fs-ls.lst + +cmd-ls.lst: commands/ls.c gencmdlist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ls > $@ || (rm -f $@; exit 1) + +fs-ls.lst: commands/ls.c genfslist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ls > $@ || (rm -f $@; exit 1) + + +ls_mod_CFLAGS = $(COMMON_CFLAGS) +ls_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For cmp.mod. +cmp_mod_SOURCES = commands/cmp.c +CLEANFILES += cmp.mod mod-cmp.o mod-cmp.c pre-cmp.o cmp_mod-commands_cmp.o def-cmp.lst und-cmp.lst +MOSTLYCLEANFILES += cmp_mod-commands_cmp.d +DEFSYMFILES += def-cmp.lst +UNDSYMFILES += und-cmp.lst + +cmp.mod: pre-cmp.o mod-cmp.o + -rm -f $@ + $(LD) $(cmp_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-cmp.o: cmp_mod-commands_cmp.o + -rm -f $@ + $(LD) $(cmp_mod_LDFLAGS) -r -d -o $@ $^ + +mod-cmp.o: mod-cmp.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -c -o $@ $< + +mod-cmp.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'cmp' $< > $@ || (rm -f $@; exit 1) -# For hfs.mod. -hfs_mod_SOURCES = fs/hfs.c -hfs_mod_CFLAGS = $(COMMON_CFLAGS) +def-cmp.lst: pre-cmp.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 cmp/' > $@ -# For jfs.mod. -jfs_mod_SOURCES = fs/jfs.c -jfs_mod_CFLAGS = $(COMMON_CFLAGS) +und-cmp.lst: pre-cmp.o + echo 'cmp' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ -# For iso9660.mod. -iso9660_mod_SOURCES = fs/iso9660.c -iso9660_mod_CFLAGS = $(COMMON_CFLAGS) +cmp_mod-commands_cmp.o: commands/cmp.c + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -c -o $@ $< -# For _linux.mod. -_linux_mod_SOURCES = loader/sparc64/ieee1275/linux.c -_linux_mod_CFLAGS = $(COMMON_CFLAGS) - -# For linux.mod. -linux_mod_SOURCES = loader/sparc64/ieee1275/linux_normal.c -linux_mod_CFLAGS = $(COMMON_CFLAGS) +cmp_mod-commands_cmp.d: commands/cmp.c + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -M $< | sed 's,cmp\.o[ :]*,cmp_mod-commands_cmp.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ -# For normal.mod. -normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \ - normal/context.c normal/main.c normal/menu.c \ - normal/menu_entry.c \ - normal/sparc64/setjmp.c -normal_mod_CFLAGS = $(COMMON_CFLAGS) -normal_mod_ASFLAGS = $(COMMON_ASFLAGS) +-include cmp_mod-commands_cmp.d -# For hello.mod. -hello_mod_SOURCES = hello/hello.c -hello_mod_CFLAGS = $(COMMON_CFLAGS) +CLEANFILES += cmd-cmp.lst fs-cmp.lst +COMMANDFILES += cmd-cmp.lst +FSFILES += fs-cmp.lst -# For boot.mod. -boot_mod_SOURCES = commands/boot.c -boot_mod_CFLAGS = $(COMMON_CFLAGS) +cmd-cmp.lst: commands/cmp.c gencmdlist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cmp > $@ || (rm -f $@; exit 1) -# For terminal.mod. -terminal_mod_SOURCES = commands/terminal.c -terminal_mod_CFLAGS = $(COMMON_CFLAGS) +fs-cmp.lst: commands/cmp.c genfslist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh cmp > $@ || (rm -f $@; exit 1) -# For ls.mod. -ls_mod_SOURCES = commands/ls.c -ls_mod_CFLAGS = $(COMMON_CFLAGS) -# For cmp.mod. -cmp_mod_SOURCES = commands/cmp.c cmp_mod_CFLAGS = $(COMMON_CFLAGS) +cmp_mod_LDFLAGS = $(COMMON_LDFLAGS) # For cat.mod. cat_mod_SOURCES = commands/cat.c +CLEANFILES += cat.mod mod-cat.o mod-cat.c pre-cat.o cat_mod-commands_cat.o def-cat.lst und-cat.lst +MOSTLYCLEANFILES += cat_mod-commands_cat.d +DEFSYMFILES += def-cat.lst +UNDSYMFILES += und-cat.lst + +cat.mod: pre-cat.o mod-cat.o + -rm -f $@ + $(LD) $(cat_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-cat.o: cat_mod-commands_cat.o + -rm -f $@ + $(LD) $(cat_mod_LDFLAGS) -r -d -o $@ $^ + +mod-cat.o: mod-cat.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -c -o $@ $< + +mod-cat.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'cat' $< > $@ || (rm -f $@; exit 1) + +def-cat.lst: pre-cat.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 cat/' > $@ + +und-cat.lst: pre-cat.o + echo 'cat' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +cat_mod-commands_cat.o: commands/cat.c + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -c -o $@ $< + +cat_mod-commands_cat.d: commands/cat.c + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -M $< | sed 's,cat\.o[ :]*,cat_mod-commands_cat.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include cat_mod-commands_cat.d + +CLEANFILES += cmd-cat.lst fs-cat.lst +COMMANDFILES += cmd-cat.lst +FSFILES += fs-cat.lst + +cmd-cat.lst: commands/cat.c gencmdlist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cat > $@ || (rm -f $@; exit 1) + +fs-cat.lst: commands/cat.c genfslist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh cat > $@ || (rm -f $@; exit 1) + + cat_mod_CFLAGS = $(COMMON_CFLAGS) +cat_mod_LDFLAGS = $(COMMON_LDFLAGS) # For font.mod. font_mod_SOURCES = font/manager.c +CLEANFILES += font.mod mod-font.o mod-font.c pre-font.o font_mod-font_manager.o def-font.lst und-font.lst +MOSTLYCLEANFILES += font_mod-font_manager.d +DEFSYMFILES += def-font.lst +UNDSYMFILES += und-font.lst + +font.mod: pre-font.o mod-font.o + -rm -f $@ + $(LD) $(font_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-font.o: font_mod-font_manager.o + -rm -f $@ + $(LD) $(font_mod_LDFLAGS) -r -d -o $@ $^ + +mod-font.o: mod-font.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -c -o $@ $< + +mod-font.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'font' $< > $@ || (rm -f $@; exit 1) + +def-font.lst: pre-font.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 font/' > $@ + +und-font.lst: pre-font.o + echo 'font' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +font_mod-font_manager.o: font/manager.c + $(CC) -Ifont -I$(srcdir)/font $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -c -o $@ $< + +font_mod-font_manager.d: font/manager.c + set -e; $(CC) -Ifont -I$(srcdir)/font $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -M $< | sed 's,manager\.o[ :]*,font_mod-font_manager.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include font_mod-font_manager.d + +CLEANFILES += cmd-manager.lst fs-manager.lst +COMMANDFILES += cmd-manager.lst +FSFILES += fs-manager.lst + +cmd-manager.lst: font/manager.c gencmdlist.sh + set -e; $(CC) -Ifont -I$(srcdir)/font $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh font > $@ || (rm -f $@; exit 1) + +fs-manager.lst: font/manager.c genfslist.sh + set -e; $(CC) -Ifont -I$(srcdir)/font $(CPPFLAGS) $(CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh font > $@ || (rm -f $@; exit 1) + + font_mod_CFLAGS = $(COMMON_CFLAGS) +font_mod_LDFLAGS = $(COMMON_LDFLAGS) # For amiga.mod amiga_mod_SOURCES = partmap/amiga.c +CLEANFILES += amiga.mod mod-amiga.o mod-amiga.c pre-amiga.o amiga_mod-partmap_amiga.o def-amiga.lst und-amiga.lst +MOSTLYCLEANFILES += amiga_mod-partmap_amiga.d +DEFSYMFILES += def-amiga.lst +UNDSYMFILES += und-amiga.lst + +amiga.mod: pre-amiga.o mod-amiga.o + -rm -f $@ + $(LD) $(amiga_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-amiga.o: amiga_mod-partmap_amiga.o + -rm -f $@ + $(LD) $(amiga_mod_LDFLAGS) -r -d -o $@ $^ + +mod-amiga.o: mod-amiga.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -c -o $@ $< + +mod-amiga.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'amiga' $< > $@ || (rm -f $@; exit 1) + +def-amiga.lst: pre-amiga.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 amiga/' > $@ + +und-amiga.lst: pre-amiga.o + echo 'amiga' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +amiga_mod-partmap_amiga.o: partmap/amiga.c + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -c -o $@ $< + +amiga_mod-partmap_amiga.d: partmap/amiga.c + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -M $< | sed 's,amiga\.o[ :]*,amiga_mod-partmap_amiga.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include amiga_mod-partmap_amiga.d + +CLEANFILES += cmd-amiga.lst fs-amiga.lst +COMMANDFILES += cmd-amiga.lst +FSFILES += fs-amiga.lst + +cmd-amiga.lst: partmap/amiga.c gencmdlist.sh + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh amiga > $@ || (rm -f $@; exit 1) + +fs-amiga.lst: partmap/amiga.c genfslist.sh + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(amiga_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh amiga > $@ || (rm -f $@; exit 1) + + amiga_mod_CFLAGS = $(COMMON_CFLAGS) +amiga_mod_LDFLAGS = $(COMMON_LDFLAGS) # For apple.mod apple_mod_SOURCES = partmap/apple.c +CLEANFILES += apple.mod mod-apple.o mod-apple.c pre-apple.o apple_mod-partmap_apple.o def-apple.lst und-apple.lst +MOSTLYCLEANFILES += apple_mod-partmap_apple.d +DEFSYMFILES += def-apple.lst +UNDSYMFILES += und-apple.lst + +apple.mod: pre-apple.o mod-apple.o + -rm -f $@ + $(LD) $(apple_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-apple.o: apple_mod-partmap_apple.o + -rm -f $@ + $(LD) $(apple_mod_LDFLAGS) -r -d -o $@ $^ + +mod-apple.o: mod-apple.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -c -o $@ $< + +mod-apple.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'apple' $< > $@ || (rm -f $@; exit 1) + +def-apple.lst: pre-apple.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 apple/' > $@ + +und-apple.lst: pre-apple.o + echo 'apple' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +apple_mod-partmap_apple.o: partmap/apple.c + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -c -o $@ $< + +apple_mod-partmap_apple.d: partmap/apple.c + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -M $< | sed 's,apple\.o[ :]*,apple_mod-partmap_apple.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include apple_mod-partmap_apple.d + +CLEANFILES += cmd-apple.lst fs-apple.lst +COMMANDFILES += cmd-apple.lst +FSFILES += fs-apple.lst + +cmd-apple.lst: partmap/apple.c gencmdlist.sh + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh apple > $@ || (rm -f $@; exit 1) + +fs-apple.lst: partmap/apple.c genfslist.sh + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(apple_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh apple > $@ || (rm -f $@; exit 1) + + apple_mod_CFLAGS = $(COMMON_CFLAGS) +apple_mod_LDFLAGS = $(COMMON_LDFLAGS) # For pc.mod pc_mod_SOURCES = partmap/pc.c +CLEANFILES += pc.mod mod-pc.o mod-pc.c pre-pc.o pc_mod-partmap_pc.o def-pc.lst und-pc.lst +MOSTLYCLEANFILES += pc_mod-partmap_pc.d +DEFSYMFILES += def-pc.lst +UNDSYMFILES += und-pc.lst + +pc.mod: pre-pc.o mod-pc.o + -rm -f $@ + $(LD) $(pc_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-pc.o: pc_mod-partmap_pc.o + -rm -f $@ + $(LD) $(pc_mod_LDFLAGS) -r -d -o $@ $^ + +mod-pc.o: mod-pc.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -c -o $@ $< + +mod-pc.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'pc' $< > $@ || (rm -f $@; exit 1) + +def-pc.lst: pre-pc.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 pc/' > $@ + +und-pc.lst: pre-pc.o + echo 'pc' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +pc_mod-partmap_pc.o: partmap/pc.c + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -c -o $@ $< + +pc_mod-partmap_pc.d: partmap/pc.c + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -M $< | sed 's,pc\.o[ :]*,pc_mod-partmap_pc.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include pc_mod-partmap_pc.d + +CLEANFILES += cmd-pc.lst fs-pc.lst +COMMANDFILES += cmd-pc.lst +FSFILES += fs-pc.lst + +cmd-pc.lst: partmap/pc.c gencmdlist.sh + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh pc > $@ || (rm -f $@; exit 1) + +fs-pc.lst: partmap/pc.c genfslist.sh + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(pc_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh pc > $@ || (rm -f $@; exit 1) + + pc_mod_CFLAGS = $(COMMON_CFLAGS) +pc_mod_LDFLAGS = $(COMMON_LDFLAGS) # For sun.mod sun_mod_SOURCES = partmap/sun.c +CLEANFILES += sun.mod mod-sun.o mod-sun.c pre-sun.o sun_mod-partmap_sun.o def-sun.lst und-sun.lst +MOSTLYCLEANFILES += sun_mod-partmap_sun.d +DEFSYMFILES += def-sun.lst +UNDSYMFILES += und-sun.lst + +sun.mod: pre-sun.o mod-sun.o + -rm -f $@ + $(LD) $(sun_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-sun.o: sun_mod-partmap_sun.o + -rm -f $@ + $(LD) $(sun_mod_LDFLAGS) -r -d -o $@ $^ + +mod-sun.o: mod-sun.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -c -o $@ $< + +mod-sun.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'sun' $< > $@ || (rm -f $@; exit 1) + +def-sun.lst: pre-sun.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 sun/' > $@ + +und-sun.lst: pre-sun.o + echo 'sun' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +sun_mod-partmap_sun.o: partmap/sun.c + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -c -o $@ $< + +sun_mod-partmap_sun.d: partmap/sun.c + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -M $< | sed 's,sun\.o[ :]*,sun_mod-partmap_sun.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include sun_mod-partmap_sun.d + +CLEANFILES += cmd-sun.lst fs-sun.lst +COMMANDFILES += cmd-sun.lst +FSFILES += fs-sun.lst + +cmd-sun.lst: partmap/sun.c gencmdlist.sh + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh sun > $@ || (rm -f $@; exit 1) + +fs-sun.lst: partmap/sun.c genfslist.sh + set -e; $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) $(sun_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh sun > $@ || (rm -f $@; exit 1) + + sun_mod_CFLAGS = $(COMMON_CFLAGS) +sun_mod_LDFLAGS = $(COMMON_LDFLAGS) # For loopback.mod loopback_mod_SOURCES = disk/loopback.c +CLEANFILES += loopback.mod mod-loopback.o mod-loopback.c pre-loopback.o loopback_mod-disk_loopback.o def-loopback.lst und-loopback.lst +MOSTLYCLEANFILES += loopback_mod-disk_loopback.d +DEFSYMFILES += def-loopback.lst +UNDSYMFILES += und-loopback.lst + +loopback.mod: pre-loopback.o mod-loopback.o + -rm -f $@ + $(LD) $(loopback_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-loopback.o: loopback_mod-disk_loopback.o + -rm -f $@ + $(LD) $(loopback_mod_LDFLAGS) -r -d -o $@ $^ + +mod-loopback.o: mod-loopback.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -c -o $@ $< + +mod-loopback.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'loopback' $< > $@ || (rm -f $@; exit 1) + +def-loopback.lst: pre-loopback.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 loopback/' > $@ + +und-loopback.lst: pre-loopback.o + echo 'loopback' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +loopback_mod-disk_loopback.o: disk/loopback.c + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -c -o $@ $< + +loopback_mod-disk_loopback.d: disk/loopback.c + set -e; $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -M $< | sed 's,loopback\.o[ :]*,loopback_mod-disk_loopback.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include loopback_mod-disk_loopback.d + +CLEANFILES += cmd-loopback.lst fs-loopback.lst +COMMANDFILES += cmd-loopback.lst +FSFILES += fs-loopback.lst + +cmd-loopback.lst: disk/loopback.c gencmdlist.sh + set -e; $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh loopback > $@ || (rm -f $@; exit 1) + +fs-loopback.lst: disk/loopback.c genfslist.sh + set -e; $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh loopback > $@ || (rm -f $@; exit 1) + + loopback_mod_CFLAGS = $(COMMON_CFLAGS) +loopback_mod_LDFLAGS = $(COMMON_LDFLAGS) # For suspend.mod suspend_mod_SOURCES = commands/ieee1275/suspend.c +CLEANFILES += suspend.mod mod-suspend.o mod-suspend.c pre-suspend.o suspend_mod-commands_ieee1275_suspend.o def-suspend.lst und-suspend.lst +MOSTLYCLEANFILES += suspend_mod-commands_ieee1275_suspend.d +DEFSYMFILES += def-suspend.lst +UNDSYMFILES += und-suspend.lst + +suspend.mod: pre-suspend.o mod-suspend.o + -rm -f $@ + $(LD) $(suspend_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-suspend.o: suspend_mod-commands_ieee1275_suspend.o + -rm -f $@ + $(LD) $(suspend_mod_LDFLAGS) -r -d -o $@ $^ + +mod-suspend.o: mod-suspend.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(suspend_mod_CFLAGS) -c -o $@ $< + +mod-suspend.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'suspend' $< > $@ || (rm -f $@; exit 1) + +def-suspend.lst: pre-suspend.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 suspend/' > $@ + +und-suspend.lst: pre-suspend.o + echo 'suspend' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +suspend_mod-commands_ieee1275_suspend.o: commands/ieee1275/suspend.c + $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(suspend_mod_CFLAGS) -c -o $@ $< + +suspend_mod-commands_ieee1275_suspend.d: commands/ieee1275/suspend.c + set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(suspend_mod_CFLAGS) -M $< | sed 's,suspend\.o[ :]*,suspend_mod-commands_ieee1275_suspend.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include suspend_mod-commands_ieee1275_suspend.d + +CLEANFILES += cmd-suspend.lst fs-suspend.lst +COMMANDFILES += cmd-suspend.lst +FSFILES += fs-suspend.lst + +cmd-suspend.lst: commands/ieee1275/suspend.c gencmdlist.sh + set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh suspend > $@ || (rm -f $@; exit 1) + +fs-suspend.lst: commands/ieee1275/suspend.c genfslist.sh + set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh suspend > $@ || (rm -f $@; exit 1) + + suspend_mod_CFLAGS = $(COMMON_CFLAGS) +suspend_mod_LDFLAGS = $(COMMON_LDFLAGS) # For reboot.mod reboot_mod_SOURCES = commands/ieee1275/reboot.c +CLEANFILES += reboot.mod mod-reboot.o mod-reboot.c pre-reboot.o reboot_mod-commands_ieee1275_reboot.o def-reboot.lst und-reboot.lst +MOSTLYCLEANFILES += reboot_mod-commands_ieee1275_reboot.d +DEFSYMFILES += def-reboot.lst +UNDSYMFILES += und-reboot.lst + +reboot.mod: pre-reboot.o mod-reboot.o + -rm -f $@ + $(LD) $(reboot_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-reboot.o: reboot_mod-commands_ieee1275_reboot.o + -rm -f $@ + $(LD) $(reboot_mod_LDFLAGS) -r -d -o $@ $^ + +mod-reboot.o: mod-reboot.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(reboot_mod_CFLAGS) -c -o $@ $< + +mod-reboot.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'reboot' $< > $@ || (rm -f $@; exit 1) + +def-reboot.lst: pre-reboot.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 reboot/' > $@ + +und-reboot.lst: pre-reboot.o + echo 'reboot' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +reboot_mod-commands_ieee1275_reboot.o: commands/ieee1275/reboot.c + $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(reboot_mod_CFLAGS) -c -o $@ $< + +reboot_mod-commands_ieee1275_reboot.d: commands/ieee1275/reboot.c + set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(reboot_mod_CFLAGS) -M $< | sed 's,reboot\.o[ :]*,reboot_mod-commands_ieee1275_reboot.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include reboot_mod-commands_ieee1275_reboot.d + +CLEANFILES += cmd-reboot.lst fs-reboot.lst +COMMANDFILES += cmd-reboot.lst +FSFILES += fs-reboot.lst + +cmd-reboot.lst: commands/ieee1275/reboot.c gencmdlist.sh + set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(reboot_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh reboot > $@ || (rm -f $@; exit 1) + +fs-reboot.lst: commands/ieee1275/reboot.c genfslist.sh + set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(reboot_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh reboot > $@ || (rm -f $@; exit 1) + + reboot_mod_CFLAGS = $(COMMON_CFLAGS) +reboot_mod_LDFLAGS = $(COMMON_LDFLAGS) # For halt.mod halt_mod_SOURCES = commands/ieee1275/halt.c +CLEANFILES += halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_ieee1275_halt.o def-halt.lst und-halt.lst +MOSTLYCLEANFILES += halt_mod-commands_ieee1275_halt.d +DEFSYMFILES += def-halt.lst +UNDSYMFILES += und-halt.lst + +halt.mod: pre-halt.o mod-halt.o + -rm -f $@ + $(LD) $(halt_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-halt.o: halt_mod-commands_ieee1275_halt.o + -rm -f $@ + $(LD) $(halt_mod_LDFLAGS) -r -d -o $@ $^ + +mod-halt.o: mod-halt.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(halt_mod_CFLAGS) -c -o $@ $< + +mod-halt.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_ieee1275_halt.o: commands/ieee1275/halt.c + $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(halt_mod_CFLAGS) -c -o $@ $< + +halt_mod-commands_ieee1275_halt.d: commands/ieee1275/halt.c + set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(halt_mod_CFLAGS) -M $< | sed 's,halt\.o[ :]*,halt_mod-commands_ieee1275_halt.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include halt_mod-commands_ieee1275_halt.d + +CLEANFILES += cmd-halt.lst fs-halt.lst +COMMANDFILES += cmd-halt.lst +FSFILES += fs-halt.lst + +cmd-halt.lst: commands/ieee1275/halt.c gencmdlist.sh + set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt.lst: commands/ieee1275/halt.c genfslist.sh + set -e; $(CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(CPPFLAGS) $(CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + + halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) # For help.mod. help_mod_SOURCES = commands/help.c +CLEANFILES += help.mod mod-help.o mod-help.c pre-help.o help_mod-commands_help.o def-help.lst und-help.lst +MOSTLYCLEANFILES += help_mod-commands_help.d +DEFSYMFILES += def-help.lst +UNDSYMFILES += und-help.lst + +help.mod: pre-help.o mod-help.o + -rm -f $@ + $(LD) $(help_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-help.o: help_mod-commands_help.o + -rm -f $@ + $(LD) $(help_mod_LDFLAGS) -r -d -o $@ $^ + +mod-help.o: mod-help.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -c -o $@ $< + +mod-help.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'help' $< > $@ || (rm -f $@; exit 1) + +def-help.lst: pre-help.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 help/' > $@ + +und-help.lst: pre-help.o + echo 'help' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +help_mod-commands_help.o: commands/help.c + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -c -o $@ $< + +help_mod-commands_help.d: commands/help.c + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -M $< | sed 's,help\.o[ :]*,help_mod-commands_help.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include help_mod-commands_help.d + +CLEANFILES += cmd-help.lst fs-help.lst +COMMANDFILES += cmd-help.lst +FSFILES += fs-help.lst + +cmd-help.lst: commands/help.c gencmdlist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh help > $@ || (rm -f $@; exit 1) + +fs-help.lst: commands/help.c genfslist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh help > $@ || (rm -f $@; exit 1) + + help_mod_CFLAGS = $(COMMON_CFLAGS) +help_mod_LDFLAGS = $(COMMON_LDFLAGS) # For default.mod default_mod_SOURCES = commands/default.c +CLEANFILES += default.mod mod-default.o mod-default.c pre-default.o default_mod-commands_default.o def-default.lst und-default.lst +MOSTLYCLEANFILES += default_mod-commands_default.d +DEFSYMFILES += def-default.lst +UNDSYMFILES += und-default.lst + +default.mod: pre-default.o mod-default.o + -rm -f $@ + $(LD) $(default_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-default.o: default_mod-commands_default.o + -rm -f $@ + $(LD) $(default_mod_LDFLAGS) -r -d -o $@ $^ + +mod-default.o: mod-default.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -c -o $@ $< + +mod-default.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'default' $< > $@ || (rm -f $@; exit 1) + +def-default.lst: pre-default.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 default/' > $@ + +und-default.lst: pre-default.o + echo 'default' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +default_mod-commands_default.o: commands/default.c + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -c -o $@ $< + +default_mod-commands_default.d: commands/default.c + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -M $< | sed 's,default\.o[ :]*,default_mod-commands_default.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include default_mod-commands_default.d + +CLEANFILES += cmd-default.lst fs-default.lst +COMMANDFILES += cmd-default.lst +FSFILES += fs-default.lst + +cmd-default.lst: commands/default.c gencmdlist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh default > $@ || (rm -f $@; exit 1) + +fs-default.lst: commands/default.c genfslist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(default_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh default > $@ || (rm -f $@; exit 1) + + default_mod_CFLAGS = $(COMMON_CFLAGS) +default_mod_LDFLAGS = $(COMMON_LDFLAGS) # For timeout.mod timeout_mod_SOURCES = commands/timeout.c +CLEANFILES += timeout.mod mod-timeout.o mod-timeout.c pre-timeout.o timeout_mod-commands_timeout.o def-timeout.lst und-timeout.lst +MOSTLYCLEANFILES += timeout_mod-commands_timeout.d +DEFSYMFILES += def-timeout.lst +UNDSYMFILES += und-timeout.lst + +timeout.mod: pre-timeout.o mod-timeout.o + -rm -f $@ + $(LD) $(timeout_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-timeout.o: timeout_mod-commands_timeout.o + -rm -f $@ + $(LD) $(timeout_mod_LDFLAGS) -r -d -o $@ $^ + +mod-timeout.o: mod-timeout.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -c -o $@ $< + +mod-timeout.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'timeout' $< > $@ || (rm -f $@; exit 1) + +def-timeout.lst: pre-timeout.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 timeout/' > $@ + +und-timeout.lst: pre-timeout.o + echo 'timeout' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +timeout_mod-commands_timeout.o: commands/timeout.c + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -c -o $@ $< + +timeout_mod-commands_timeout.d: commands/timeout.c + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -M $< | sed 's,timeout\.o[ :]*,timeout_mod-commands_timeout.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include timeout_mod-commands_timeout.d + +CLEANFILES += cmd-timeout.lst fs-timeout.lst +COMMANDFILES += cmd-timeout.lst +FSFILES += fs-timeout.lst + +cmd-timeout.lst: commands/timeout.c gencmdlist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh timeout > $@ || (rm -f $@; exit 1) + +fs-timeout.lst: commands/timeout.c genfslist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(timeout_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh timeout > $@ || (rm -f $@; exit 1) + + timeout_mod_CFLAGS = $(COMMON_CFLAGS) +timeout_mod_LDFLAGS = $(COMMON_LDFLAGS) # For configfile.mod configfile_mod_SOURCES = commands/configfile.c +CLEANFILES += configfile.mod mod-configfile.o mod-configfile.c pre-configfile.o configfile_mod-commands_configfile.o def-configfile.lst und-configfile.lst +MOSTLYCLEANFILES += configfile_mod-commands_configfile.d +DEFSYMFILES += def-configfile.lst +UNDSYMFILES += und-configfile.lst + +configfile.mod: pre-configfile.o mod-configfile.o + -rm -f $@ + $(LD) $(configfile_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-configfile.o: configfile_mod-commands_configfile.o + -rm -f $@ + $(LD) $(configfile_mod_LDFLAGS) -r -d -o $@ $^ + +mod-configfile.o: mod-configfile.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -c -o $@ $< + +mod-configfile.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'configfile' $< > $@ || (rm -f $@; exit 1) + +def-configfile.lst: pre-configfile.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 configfile/' > $@ + +und-configfile.lst: pre-configfile.o + echo 'configfile' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +configfile_mod-commands_configfile.o: commands/configfile.c + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -c -o $@ $< + +configfile_mod-commands_configfile.d: commands/configfile.c + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -M $< | sed 's,configfile\.o[ :]*,configfile_mod-commands_configfile.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include configfile_mod-commands_configfile.d + +CLEANFILES += cmd-configfile.lst fs-configfile.lst +COMMANDFILES += cmd-configfile.lst +FSFILES += fs-configfile.lst + +cmd-configfile.lst: commands/configfile.c gencmdlist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh configfile > $@ || (rm -f $@; exit 1) + +fs-configfile.lst: commands/configfile.c genfslist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh configfile > $@ || (rm -f $@; exit 1) + + configfile_mod_CFLAGS = $(COMMON_CFLAGS) +configfile_mod_LDFLAGS = $(COMMON_LDFLAGS) # For search.mod. search_mod_SOURCES = commands/search.c +CLEANFILES += search.mod mod-search.o mod-search.c pre-search.o search_mod-commands_search.o def-search.lst und-search.lst +MOSTLYCLEANFILES += search_mod-commands_search.d +DEFSYMFILES += def-search.lst +UNDSYMFILES += und-search.lst + +search.mod: pre-search.o mod-search.o + -rm -f $@ + $(LD) $(search_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-search.o: search_mod-commands_search.o + -rm -f $@ + $(LD) $(search_mod_LDFLAGS) -r -d -o $@ $^ + +mod-search.o: mod-search.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(search_mod_CFLAGS) -c -o $@ $< + +mod-search.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'search' $< > $@ || (rm -f $@; exit 1) + +def-search.lst: pre-search.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 search/' > $@ + +und-search.lst: pre-search.o + echo 'search' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +search_mod-commands_search.o: commands/search.c + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(search_mod_CFLAGS) -c -o $@ $< + +search_mod-commands_search.d: commands/search.c + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(search_mod_CFLAGS) -M $< | sed 's,search\.o[ :]*,search_mod-commands_search.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include search_mod-commands_search.d + +CLEANFILES += cmd-search.lst fs-search.lst +COMMANDFILES += cmd-search.lst +FSFILES += fs-search.lst + +cmd-search.lst: commands/search.c gencmdlist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(search_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh search > $@ || (rm -f $@; exit 1) + +fs-search.lst: commands/search.c genfslist.sh + set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(search_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh search > $@ || (rm -f $@; exit 1) + + search_mod_CFLAGS = $(COMMON_CFLAGS) +search_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For gzio.mod. +gzio_mod_SOURCES = io/gzio.c +CLEANFILES += gzio.mod mod-gzio.o mod-gzio.c pre-gzio.o gzio_mod-io_gzio.o def-gzio.lst und-gzio.lst +MOSTLYCLEANFILES += gzio_mod-io_gzio.d +DEFSYMFILES += def-gzio.lst +UNDSYMFILES += und-gzio.lst + +gzio.mod: pre-gzio.o mod-gzio.o + -rm -f $@ + $(LD) $(gzio_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^ + $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@ + +pre-gzio.o: gzio_mod-io_gzio.o + -rm -f $@ + $(LD) $(gzio_mod_LDFLAGS) -r -d -o $@ $^ + +mod-gzio.o: mod-gzio.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(gzio_mod_CFLAGS) -c -o $@ $< + +mod-gzio.c: moddep.lst genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gzio' $< > $@ || (rm -f $@; exit 1) + +def-gzio.lst: pre-gzio.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gzio/' > $@ + +und-gzio.lst: pre-gzio.o + echo 'gzio' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gzio_mod-io_gzio.o: io/gzio.c + $(CC) -Iio -I$(srcdir)/io $(CPPFLAGS) $(CFLAGS) $(gzio_mod_CFLAGS) -c -o $@ $< + +gzio_mod-io_gzio.d: io/gzio.c + set -e; $(CC) -Iio -I$(srcdir)/io $(CPPFLAGS) $(CFLAGS) $(gzio_mod_CFLAGS) -M $< | sed 's,gzio\.o[ :]*,gzio_mod-io_gzio.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@ + +-include gzio_mod-io_gzio.d + +CLEANFILES += cmd-gzio.lst fs-gzio.lst +COMMANDFILES += cmd-gzio.lst +FSFILES += fs-gzio.lst + +cmd-gzio.lst: io/gzio.c gencmdlist.sh + set -e; $(CC) -Iio -I$(srcdir)/io $(CPPFLAGS) $(CFLAGS) $(gzio_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gzio > $@ || (rm -f $@; exit 1) + +fs-gzio.lst: io/gzio.c genfslist.sh + set -e; $(CC) -Iio -I$(srcdir)/io $(CPPFLAGS) $(CFLAGS) $(gzio_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gzio > $@ || (rm -f $@; exit 1) + + +gzio_mod_CFLAGS = $(COMMON_CFLAGS) +gzio_mod_LDFLAGS = $(COMMON_LDFLAGS) CLEANFILES += moddep.lst command.lst fs.lst pkgdata_DATA += moddep.lst command.lst fs.lst moddep.lst: $(DEFSYMFILES) $(UNDSYMFILES) genmoddep diff --git a/conf/sparc64-ieee1275.rmk b/conf/sparc64-ieee1275.rmk index 0d05e7c61..19e3fce27 100644 --- a/conf/sparc64-ieee1275.rmk +++ b/conf/sparc64-ieee1275.rmk @@ -1,8 +1,9 @@ # -*- makefile -*- -COMMON_ASFLAGS = -nostdinc -COMMON_CFLAGS = -ggdb -ffreestanding -m64 -mcpu=v9 -mtune=ultrasparc +COMMON_ASFLAGS = -nostdinc -Av9 +COMMON_CFLAGS = -ggdb -ffreestanding -m64 -mno-app-regs +COMMON_LDFLAGS = -melf64_sparc # Images. @@ -11,8 +12,9 @@ DEFSYMFILES += kernel_syms.lst grubof_HEADERS = arg.h boot.h device.h disk.h dl.h elf.h env.h err.h \ file.h fs.h kernel.h misc.h mm.h net.h rescue.h symbol.h \ - term.h types.h loader.h \ - partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h + term.h types.h sparc64/libgcc.h loader.h \ + partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h \ + machine/kernel.h grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) gensymlist.sh sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@ @@ -59,146 +61,199 @@ grubof_SOURCES = kern/sparc64/ieee1275/init.c kern/ieee1275/ieee1275.c \ kern/rescue.c kern/term.c term/ieee1275/ofconsole.c \ kern/sparc64/ieee1275/openfw.c disk/ieee1275/ofdisk.c \ kern/partition.c kern/env.c kern/sparc64/dl.c grubof_symlist.c \ - kern/sparc64/cache.c + kern/sparc64/cache.S grubof_HEADERS = grub/sparc64/ieee1275/ieee1275.h grubof_CFLAGS = $(COMMON_CFLAGS) grubof_ASFLAGS = $(COMMON_ASFLAGS) -grubof_LDFLAGS = -m64 -nostdlib -Wl,-N,-Ttext,0x200000,-Bstatic -Xlinker --oformat -Xlinker elf64-sparc +grubof_LDFLAGS = -mno-app-regs -nostdlib -Wl,-N,-Ttext,0x200000,-Bstatic,-melf64_sparc # For genmoddep. genmoddep_SOURCES = util/genmoddep.c # Modules. -#pkgdata_MODULES = _linux.mod linux.mod fat.mod ufs.mod ext2.mod minix.mod \ -# hfs.mod jfs.mod normal.mod hello.mod font.mod ls.mod \ -# boot.mod cmp.mod cat.mod terminal.mod fshelp.mod amiga.mod apple.mod \ -# pc.mod suspend.mod loopback.mod help.mod reboot.mod halt.mod sun.mod \ -# default.mod timeout.mod configfile.mod search.mod +#_linux.mod linux.mod +pkgdata_MODULES = fat.mod ufs.mod ext2.mod minix.mod \ + hfs.mod jfs.mod normal.mod hello.mod font.mod ls.mod \ + boot.mod cmp.mod cat.mod terminal.mod fshelp.mod amiga.mod apple.mod \ + pc.mod suspend.mod loopback.mod help.mod reboot.mod halt.mod sun.mod \ + default.mod timeout.mod configfile.mod search.mod gzio.mod xfs.mod \ + affs.mod sfs.mod # For fshelp.mod. fshelp_mod_SOURCES = fs/fshelp.c fshelp_mod_CFLAGS = $(COMMON_CFLAGS) +fshelp_mod_LDFLAGS = $(COMMON_LDFLAGS) # For fat.mod. fat_mod_SOURCES = fs/fat.c fat_mod_CFLAGS = $(COMMON_CFLAGS) +fat_mod_LDFLAGS = $(COMMON_LDFLAGS) # For ext2.mod. ext2_mod_SOURCES = fs/ext2.c ext2_mod_CFLAGS = $(COMMON_CFLAGS) +ext2_mod_LDFLAGS = $(COMMON_LDFLAGS) # For ufs.mod. ufs_mod_SOURCES = fs/ufs.c ufs_mod_CFLAGS = $(COMMON_CFLAGS) +ufs_mod_LDFLAGS = $(COMMON_LDFLAGS) # For minix.mod. minix_mod_SOURCES = fs/minix.c minix_mod_CFLAGS = $(COMMON_CFLAGS) +minix_mod_LDFLAGS = $(COMMON_LDFLAGS) # For hfs.mod. hfs_mod_SOURCES = fs/hfs.c hfs_mod_CFLAGS = $(COMMON_CFLAGS) +hfs_mod_LDFLAGS = $(COMMON_LDFLAGS) # For jfs.mod. jfs_mod_SOURCES = fs/jfs.c jfs_mod_CFLAGS = $(COMMON_CFLAGS) +jfs_mod_LDFLAGS = $(COMMON_LDFLAGS) # For iso9660.mod. iso9660_mod_SOURCES = fs/iso9660.c iso9660_mod_CFLAGS = $(COMMON_CFLAGS) +iso9660_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For xfs.mod. +xfs_mod_SOURCES = fs/xfs.c +xfs_mod_CFLAGS = $(COMMON_CFLAGS) +xfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For affs.mod. +affs_mod_SOURCES = fs/affs.c +affs_mod_CFLAGS = $(COMMON_CFLAGS) +affs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For sfs.mod. +sfs_mod_SOURCES = fs/sfs.c +sfs_mod_CFLAGS = $(COMMON_CFLAGS) +sfs_mod_LDFLAGS = $(COMMON_LDFLAGS) # For _linux.mod. -_linux_mod_SOURCES = loader/sparc64/ieee1275/linux.c -_linux_mod_CFLAGS = $(COMMON_CFLAGS) +#_linux_mod_SOURCES = loader/sparc64/ieee1275/linux.c +#_linux_mod_CFLAGS = $(COMMON_CFLAGS) +#_linux_mod_LDFLAGS = $(COMMON_LDFLAGS) # For linux.mod. -linux_mod_SOURCES = loader/sparc64/ieee1275/linux_normal.c -linux_mod_CFLAGS = $(COMMON_CFLAGS) +#linux_mod_SOURCES = loader/sparc64/ieee1275/linux_normal.c +#linux_mod_CFLAGS = $(COMMON_CFLAGS) +#linux_mod_LDFLAGS = $(COMMON_LDFLAGS) # For normal.mod. normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \ - normal/context.c normal/main.c normal/menu.c \ - normal/menu_entry.c \ + normal/completion.c normal/context.c normal/main.c \ + normal/menu.c normal/menu_entry.c normal/misc.c \ normal/sparc64/setjmp.c normal_mod_CFLAGS = $(COMMON_CFLAGS) normal_mod_ASFLAGS = $(COMMON_ASFLAGS) +normal_mod_LDFLAGS = $(COMMON_LDFLAGS) # For hello.mod. hello_mod_SOURCES = hello/hello.c hello_mod_CFLAGS = $(COMMON_CFLAGS) +hello_mod_LDFLAGS = $(COMMON_LDFLAGS) # For boot.mod. boot_mod_SOURCES = commands/boot.c boot_mod_CFLAGS = $(COMMON_CFLAGS) +boot_mod_LDFLAGS = $(COMMON_LDFLAGS) # For terminal.mod. terminal_mod_SOURCES = commands/terminal.c terminal_mod_CFLAGS = $(COMMON_CFLAGS) +terminal_mod_LDFLAGS = $(COMMON_LDFLAGS) # For ls.mod. ls_mod_SOURCES = commands/ls.c ls_mod_CFLAGS = $(COMMON_CFLAGS) +ls_mod_LDFLAGS = $(COMMON_LDFLAGS) # For cmp.mod. cmp_mod_SOURCES = commands/cmp.c cmp_mod_CFLAGS = $(COMMON_CFLAGS) +cmp_mod_LDFLAGS = $(COMMON_LDFLAGS) # For cat.mod. cat_mod_SOURCES = commands/cat.c cat_mod_CFLAGS = $(COMMON_CFLAGS) +cat_mod_LDFLAGS = $(COMMON_LDFLAGS) # For font.mod. font_mod_SOURCES = font/manager.c font_mod_CFLAGS = $(COMMON_CFLAGS) +font_mod_LDFLAGS = $(COMMON_LDFLAGS) # For amiga.mod amiga_mod_SOURCES = partmap/amiga.c amiga_mod_CFLAGS = $(COMMON_CFLAGS) +amiga_mod_LDFLAGS = $(COMMON_LDFLAGS) # For apple.mod apple_mod_SOURCES = partmap/apple.c apple_mod_CFLAGS = $(COMMON_CFLAGS) +apple_mod_LDFLAGS = $(COMMON_LDFLAGS) # For pc.mod pc_mod_SOURCES = partmap/pc.c pc_mod_CFLAGS = $(COMMON_CFLAGS) +pc_mod_LDFLAGS = $(COMMON_LDFLAGS) # For sun.mod sun_mod_SOURCES = partmap/sun.c sun_mod_CFLAGS = $(COMMON_CFLAGS) +sun_mod_LDFLAGS = $(COMMON_LDFLAGS) # For loopback.mod loopback_mod_SOURCES = disk/loopback.c loopback_mod_CFLAGS = $(COMMON_CFLAGS) +loopback_mod_LDFLAGS = $(COMMON_LDFLAGS) # For suspend.mod suspend_mod_SOURCES = commands/ieee1275/suspend.c suspend_mod_CFLAGS = $(COMMON_CFLAGS) +suspend_mod_LDFLAGS = $(COMMON_LDFLAGS) # For reboot.mod reboot_mod_SOURCES = commands/ieee1275/reboot.c reboot_mod_CFLAGS = $(COMMON_CFLAGS) +reboot_mod_LDFLAGS = $(COMMON_LDFLAGS) # For halt.mod halt_mod_SOURCES = commands/ieee1275/halt.c halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) # For help.mod. help_mod_SOURCES = commands/help.c help_mod_CFLAGS = $(COMMON_CFLAGS) +help_mod_LDFLAGS = $(COMMON_LDFLAGS) # For default.mod default_mod_SOURCES = commands/default.c default_mod_CFLAGS = $(COMMON_CFLAGS) +default_mod_LDFLAGS = $(COMMON_LDFLAGS) # For timeout.mod timeout_mod_SOURCES = commands/timeout.c timeout_mod_CFLAGS = $(COMMON_CFLAGS) +timeout_mod_LDFLAGS = $(COMMON_LDFLAGS) # For configfile.mod configfile_mod_SOURCES = commands/configfile.c configfile_mod_CFLAGS = $(COMMON_CFLAGS) +configfile_mod_LDFLAGS = $(COMMON_LDFLAGS) # For search.mod. search_mod_SOURCES = commands/search.c search_mod_CFLAGS = $(COMMON_CFLAGS) +search_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For gzio.mod. +gzio_mod_SOURCES = io/gzio.c +gzio_mod_CFLAGS = $(COMMON_CFLAGS) +gzio_mod_LDFLAGS = $(COMMON_LDFLAGS) diff --git a/kern/sparc64/cache.S b/kern/sparc64/cache.S new file mode 100644 index 000000000..9efda0449 --- /dev/null +++ b/kern/sparc64/cache.S @@ -0,0 +1,44 @@ +/* cache.S - Flush the processor cache for a specific region. */ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2005 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include + + .file "cache.S" + + .text + +/* + * void grub_arch_sync_caches (void *address, grub_size_t len) + */ +FUNCTION(grub_arch_sync_caches) + save %o6, -0xC, %o6 ! Get a new register window, + ! reserve space on stack for + ! %i0, %i1, %i2 + brz,pn %i0, return ! Return if address == 0. + nop + brz,pn %i1, return ! Return if len == 0. + clr %i2 ! index = 0. +loop: flush %i0 + %i2 ! Flush address + index. + cmp %i1, %i2 ! Compare len & index . + bpos,a,pt %xcc, loop ! If len > index, loop. + add %i2, 8, %i2 ! Go to next doubleword. +return: ret ! Restore caller's register + restore ! window and return. + diff --git a/kern/sparc64/cache.c b/kern/sparc64/cache.c deleted file mode 100644 index 88a049935..000000000 --- a/kern/sparc64/cache.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -void grub_arch_sync_caches(void *address __attribute__((unused)), - grub_size_t len __attribute__((unused))); -void grub_arch_sync_caches(void *address __attribute__((unused)), - grub_size_t len __attribute__((unused))) -{ - return; -} diff --git a/kern/sparc64/dl.c b/kern/sparc64/dl.c index 4964e525f..157e8faa3 100644 --- a/kern/sparc64/dl.c +++ b/kern/sparc64/dl.c @@ -30,9 +30,9 @@ grub_arch_dl_check_header (void *ehdr) Elf64_Ehdr *e = ehdr; /* Check the magic numbers. */ - if (e->e_ident[EI_CLASS] != ELFCLASS32 + if (e->e_ident[EI_CLASS] != ELFCLASS64 || e->e_ident[EI_DATA] != ELFDATA2MSB - || e->e_machine != EM_PPC) + || e->e_machine != EM_SPARCV9) return grub_error (GRUB_ERR_BAD_OS, "invalid arch specific ELF magic"); return GRUB_ERR_NONE; @@ -83,53 +83,53 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr) rel < max; rel++) { - Elf64_Xword *addr; + Elf64_Word *addr; Elf64_Sym *sym; - grub_uint64_t value; + Elf64_Addr value; if (seg->size < rel->r_offset) return grub_error (GRUB_ERR_BAD_MODULE, "reloc offset is out of the segment"); - addr = (Elf64_Xword *) ((char *) seg->addr + rel->r_offset); + addr = (Elf64_Word *) ((char *) seg->addr + rel->r_offset); sym = (Elf64_Sym *) ((char *) symtab - + entsize * ELF32_R_SYM (rel->r_info)); - - /* On the PPC the value does not have an explicit - addend, add it. */ + + entsize * ELF64_R_SYM (rel->r_info)); + value = sym->st_value + rel->r_addend; - switch (ELF32_R_TYPE (rel->r_info)) + switch (ELF64_R_TYPE (rel->r_info)) { - case R_PPC_ADDR16_LO: - *(Elf64_Half *) addr = value; - break; - - case R_PPC_REL24: - { - Elf64_Sxword delta = value - (Elf64_Xword) addr; - - if (delta << 6 >> 6 != delta) - return grub_error (GRUB_ERR_BAD_MODULE, "Relocation overflow"); - *addr = (*addr & 0xfc000003) | (delta & 0x3fffffc); - break; - } - - case R_PPC_ADDR16_HA: - *(Elf64_Half *) addr = (value + 0x8000) >> 16; - break; - - case R_PPC_ADDR32: - *addr = value; - break; - - case R_PPC_REL32: - *addr = value - (Elf64_Xword) addr; - break; - + case R_SPARC_32: /* 3 V-word32 */ + if (value & 0xFFFFFFFF00000000) + return grub_error (GRUB_ERR_BAD_MODULE, + "Address out of 32 bits range"); + *addr = value; + break; + case R_SPARC_WDISP30: /* 7 V-disp30 */ + if (((value - (Elf64_Addr) addr) & 0xFFFFFFFF00000000) && + ((value - (Elf64_Addr) addr) & 0xFFFFFFFF00000000 + != 0xFFFFFFFF00000000)) + return grub_error (GRUB_ERR_BAD_MODULE, + "Displacement out of 30 bits range"); + *addr = (*addr & 0xC0000000) | + (((grub_int32_t) ((value - (Elf64_Addr) addr) >> 2)) & + 0x3FFFFFFF); + break; + case R_SPARC_HI22: /* 9 V-imm22 */ + if (((grub_int32_t) value) & 0xFF00000000) + return grub_error (GRUB_ERR_BAD_MODULE, + "High address out of 22 bits range"); + *addr = (*addr & 0xFFC00000) | ((value >> 10) & 0x3FFFFF); + break; + case R_SPARC_LO10: /* 12 T-simm13 */ + *addr = (*addr & 0xFFFFFC00) | (value & 0x3FF); + break; + case R_SPARC_64: /* 32 V-xwords64 */ + *(Elf64_Xword *) addr = value; + break; default: return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "This relocation (%d) is not implemented yet", - ELF32_R_TYPE (rel->r_info)); + ELF64_R_TYPE (rel->r_info)); } } }