+2007-12-25 Robert Millan <rmh@aybabtu.com>
+
+ * configure.ac: Search for possible unifont.hex locations, and
+ define UNIFONT_HEX if found.
+
+ * Makefile.in (UNIFONT_HEX): Define variable.
+ (DATA): Rename to ...
+ (PKGLIB): ... this. Update all users.
+ (PKGDATA): New variable.
+ (pkgdata_IMAGES): Rename to ...
+ (pkglib_IMAGES): ... this. Update all users.
+ (pkgdata_MODULES): Rename to ...
+ (pkglib_MODULES): ... this. Update all users.
+ (pkgdata_PROGRAMS): Rename to ...
+ (pkglib_PROGRAMS): ... this. Update all users.
+ (pkgdata_DATA): Rename to ...
+ (pkglib_DATA): ... this. Update all users.
+ (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
+ (unicode.pff, ascii.pff): New rules.
+ (all-local): Add `$(PKGDATA)' dependency.
+ (install-local): Process `$(PKGDATA)'.
+
+ * util/update-grub_lib.in (font_path): Search for *.pff files in
+ a few more locations, including `${pkgdata}'.
+
2007-12-23 Robert Millan <rmh@aybabtu.com>
Patch from Bean <bean123ch@gmail.com>:
LIBCURSES = @LIBCURSES@
LIBLZO = @LIBLZO@
YACC = @YACC@
+UNIFONT_HEX = @UNIFONT_HEX@
# Options.
enable_grub_emu = @enable_grub_emu@
sparc64-ieee1275.rmk i386-efi.rmk)
MKFILES = $(patsubst %.rmk,%.mk,$(RMKFILES))
-DATA = $(pkgdata_IMAGES) $(pkgdata_MODULES) $(pkgdata_PROGRAMS) \
- $(pkgdata_DATA) $(lib_DATA)
+PKGLIB = $(pkglib_IMAGES) $(pkglib_MODULES) $(pkglib_PROGRAMS) \
+ $(pkglib_DATA) $(lib_DATA)
+PKGDATA = $(pkgdata_DATA)
PROGRAMS = $(bin_UTILITIES) $(sbin_UTILITIES)
SCRIPTS = $(bin_SCRIPTS) $(sbin_SCRIPTS) $(update-grub_SCRIPTS)
### General targets.
-CLEANFILES += moddep.lst command.lst fs.lst
-pkgdata_DATA += moddep.lst command.lst fs.lst
+CLEANFILES += $(pkglib_DATA) $(pkgdata_DATA)
+pkglib_DATA += moddep.lst command.lst fs.lst
moddep.lst: $(DEFSYMFILES) $(UNDSYMFILES) genmoddep.awk
cat $(DEFSYMFILES) /dev/null \
| $(AWK) -f $(srcdir)/genmoddep.awk $(UNDSYMFILES) > $@ \
fs.lst: $(FSFILES)
cat $^ /dev/null | sort > $@
-all-local: $(PROGRAMS) $(DATA) $(SCRIPTS) $(MKFILES)
+ifeq (, $(UNIFONT_HEX))
+else
+pkgdata_DATA += unicode.pff ascii.pff
+unicode.pff: $(UNIFONT_HEX)
+ ruby $(srcdir)/util/unifont2pff.rb $(UNIFONT_HEX) > $@
+
+ascii.pff: $(UNIFONT_HEX)
+ ruby $(srcdir)/util/unifont2pff.rb 0-127 $(UNIFONT_HEX) > $@
+endif
+
+all-local: $(PROGRAMS) $(PKGLIB) $(PKGDATA) $(SCRIPTS) $(MKFILES)
install: install-local
install-local: all
$(mkinstalldirs) $(DESTDIR)$(pkglibdir)
- @list='$(DATA)'; \
+ @list='$(PKGLIB)'; \
for file in $$list; do \
if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
dest="`echo $$file | sed 's,.*/,,'`"; \
$(INSTALL_DATA) $$dir$$file $(DESTDIR)$(pkglibdir)/$$dest; \
done
+ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
+ @list='$(PKGDATA)'; \
+ for file in $$list; do \
+ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
+ dest="`echo $$file | sed 's,.*/,,'`"; \
+ $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(pkgdatadir)/$$dest; \
+ done
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_UTILITIES)'; for file in $$list; do \
if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
$(MAKE) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" install
uninstall:
- @list='$(DATA)'; \
+ @list='$(PKGLIB)'; \
for file in $$list; do \
dest="`echo $$file | sed 's,.*/,,'`"; \
rm -f $(DESTDIR)$(pkglibdir)/$$dest; \
done
+ @list='$(PKGDATA)'; \
+ for file in $$list; do \
+ dest="`echo $$file | sed 's,.*/,,'`"; \
+ rm -f $(DESTDIR)$(pkgdatadir)/$$dest; \
+ done
@list='$(bin_UTILITIES) $(bin_SCRIPTS)'; for file in $$list; do \
dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
rm -f $(DESTDIR)$(bindir)/$$dest; \
# Filing systems.
-pkgdata_MODULES += fshelp.mod fat.mod ufs.mod ext2.mod ntfs.mod \
+pkglib_MODULES += fshelp.mod fat.mod ufs.mod ext2.mod ntfs.mod \
ntfscomp.mod minix.mod hfs.mod jfs.mod iso9660.mod xfs.mod \
affs.mod sfs.mod hfsplus.mod
hfsplus_mod_LDFLAGS = $(COMMON_LDFLAGS)
# Partition maps.
-pkgdata_MODULES += amiga.mod apple.mod pc.mod sun.mod acorn.mod gpt.mod
+pkglib_MODULES += amiga.mod apple.mod pc.mod sun.mod acorn.mod gpt.mod
# For amiga.mod
amiga_mod_SOURCES = partmap/amiga.c
# Special disk structures
-pkgdata_MODULES += raid.mod lvm.mod
+pkglib_MODULES += raid.mod lvm.mod
# For raid.mod
raid_mod_SOURCES = disk/raid.c
lvm_mod_LDFLAGS = $(COMMON_LDFLAGS)
# Commands.
-pkgdata_MODULES += hello.mod boot.mod terminal.mod ls.mod \
+pkglib_MODULES += hello.mod boot.mod terminal.mod ls.mod \
cmp.mod cat.mod help.mod font.mod search.mod \
loopback.mod configfile.mod \
terminfo.mod test.mod blocklist.mod hexdump.mod
hexdump_mod_LDFLAGS = $(COMMON_LDFLAGS)
# Misc.
-pkgdata_MODULES += gzio.mod elf.mod
+pkglib_MODULES += gzio.mod elf.mod
# For elf.mod.
elf_mod_SOURCES = kern/elf.c
# Filing systems.
-pkgdata_MODULES += fshelp.mod fat.mod ufs.mod ext2.mod ntfs.mod \
+pkglib_MODULES += fshelp.mod fat.mod ufs.mod ext2.mod ntfs.mod \
ntfscomp.mod minix.mod hfs.mod jfs.mod iso9660.mod xfs.mod \
affs.mod sfs.mod hfsplus.mod
hfsplus_mod_LDFLAGS = $(COMMON_LDFLAGS)
# Partition maps.
-pkgdata_MODULES += amiga.mod apple.mod pc.mod sun.mod acorn.mod gpt.mod
+pkglib_MODULES += amiga.mod apple.mod pc.mod sun.mod acorn.mod gpt.mod
# For amiga.mod
amiga_mod_SOURCES = partmap/amiga.c
# Special disk structures
-pkgdata_MODULES += raid.mod lvm.mod
+pkglib_MODULES += raid.mod lvm.mod
# For raid.mod
raid_mod_SOURCES = disk/raid.c
lvm_mod_LDFLAGS = $(COMMON_LDFLAGS)
# Commands.
-pkgdata_MODULES += hello.mod boot.mod terminal.mod ls.mod \
+pkglib_MODULES += hello.mod boot.mod terminal.mod ls.mod \
cmp.mod cat.mod help.mod font.mod search.mod \
loopback.mod configfile.mod \
terminfo.mod test.mod blocklist.mod hexdump.mod
hexdump_mod_LDFLAGS = $(COMMON_LDFLAGS)
# Misc.
-pkgdata_MODULES += gzio.mod elf.mod
+pkglib_MODULES += gzio.mod elf.mod
# For elf.mod.
elf_mod_SOURCES = kern/elf.c
# Modules.
-pkgdata_MODULES = kernel.mod normal.mod _chain.mod chain.mod \
+pkglib_MODULES = kernel.mod normal.mod _chain.mod chain.mod \
_linux.mod linux.mod cpuid.mod
# For kernel.mod.
grub_install_SOURCES = util/i386/efi/grub-install.in
# Modules.
-pkgdata_MODULES = kernel.mod normal.mod _chain.mod chain.mod \
+pkglib_MODULES = kernel.mod normal.mod _chain.mod chain.mod \
_linux.mod linux.mod cpuid.mod
# For kernel.mod.
COMMON_LDFLAGS = -nostdlib -static -lgcc
# Images.
-pkgdata_PROGRAMS = kernel.elf
+pkglib_PROGRAMS = kernel.elf
# For kernel.elf.
kernel_elf_SOURCES = kern/i386/linuxbios/startup.S kern/i386/linuxbios/init.c \
grub_emu_LDFLAGS = $(LIBCURSES)
# Modules.
-pkgdata_MODULES = _linux.mod linux.mod normal.mod \
+pkglib_MODULES = _linux.mod linux.mod normal.mod \
_multiboot.mod multiboot.mod play.mod \
cpuid.mod serial.mod ata.mod
COMMON_LDFLAGS = -nostdlib -static -lgcc
# Images.
-pkgdata_PROGRAMS = kernel.elf
+pkglib_PROGRAMS = kernel.elf
# For kernel.elf.
kernel_elf_SOURCES = kern/i386/linuxbios/startup.S kern/i386/linuxbios/init.c \
grub_emu_LDFLAGS = $(LIBCURSES)
# Modules.
-pkgdata_MODULES = _linux.mod linux.mod normal.mod \
+pkglib_MODULES = _linux.mod linux.mod normal.mod \
_multiboot.mod multiboot.mod play.mod \
cpuid.mod serial.mod ata.mod
COMMON_LDFLAGS = -m32 -nostdlib
# Images.
-pkgdata_IMAGES = boot.img diskboot.img kernel.img pxeboot.img lnxboot.img
+pkglib_IMAGES = boot.img diskboot.img kernel.img pxeboot.img lnxboot.img
# For boot.img.
boot_img_SOURCES = boot/i386/pc/boot.S
# Modules.
-pkgdata_MODULES = biosdisk.mod _chain.mod _linux.mod linux.mod normal.mod \
+pkglib_MODULES = biosdisk.mod _chain.mod _linux.mod linux.mod normal.mod \
_multiboot.mod chain.mod multiboot.mod reboot.mod halt.mod \
vbe.mod vbetest.mod vbeinfo.mod video.mod gfxterm.mod \
videotest.mod play.mod bitmap.mod tga.mod cpuid.mod serial.mod ata.mod \
COMMON_LDFLAGS = -m32 -nostdlib
# Images.
-pkgdata_IMAGES = boot.img diskboot.img kernel.img pxeboot.img lnxboot.img
+pkglib_IMAGES = boot.img diskboot.img kernel.img pxeboot.img lnxboot.img
# For boot.img.
boot_img_SOURCES = boot/i386/pc/boot.S
grub_mkrescue_SOURCES = util/i386/pc/grub-mkrescue.in
# Modules.
-pkgdata_MODULES = biosdisk.mod _chain.mod _linux.mod linux.mod normal.mod \
+pkglib_MODULES = biosdisk.mod _chain.mod _linux.mod linux.mod normal.mod \
_multiboot.mod chain.mod multiboot.mod reboot.mod halt.mod \
vbe.mod vbetest.mod vbeinfo.mod video.mod gfxterm.mod \
videotest.mod play.mod bitmap.mod tga.mod cpuid.mod serial.mod ata.mod \
/bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# Programs
-pkgdata_PROGRAMS = kernel.elf
+pkglib_PROGRAMS = kernel.elf
# Utilities.
bin_UTILITIES = grub-mkimage
# Modules.
-pkgdata_MODULES = halt.mod \
+pkglib_MODULES = halt.mod \
_linux.mod \
linux.mod \
normal.mod \
/bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# Programs
-pkgdata_PROGRAMS = kernel.elf
+pkglib_PROGRAMS = kernel.elf
# Utilities.
bin_UTILITIES = grub-mkimage
grub_install_SOURCES = util/powerpc/ieee1275/grub-install.in
# Modules.
-pkgdata_MODULES = halt.mod \
+pkglib_MODULES = halt.mod \
_linux.mod \
linux.mod \
normal.mod \
/bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# Programs
-pkgdata_PROGRAMS = kernel.elf
+pkglib_PROGRAMS = kernel.elf
# Utilities.
#bin_UTILITIES = grub-mkimage
# Modules.
#_linux.mod linux.mod
-pkgdata_MODULES = fat.mod ufs.mod ext2.mod minix.mod \
+pkglib_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 \
/bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
# Programs
-pkgdata_PROGRAMS = kernel.elf
+pkglib_PROGRAMS = kernel.elf
# Utilities.
#bin_UTILITIES = grub-mkimage
# Modules.
#_linux.mod linux.mod
-pkgdata_MODULES = fat.mod ufs.mod ext2.mod minix.mod \
+pkglib_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 \
platform
CMP
YACC
+UNIFONT_HEX
INSTALL_PROGRAM
INSTALL_SCRIPT
INSTALL_DATA
{ (exit 1); exit 1; }; }
fi
+for file in /usr/share/unifont/unifont.hex ; do
+ if test -e $file ; then
+ UNIFONT_HEX=$file
+
+ break
+ fi
+done
+
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
platform!$platform$ac_delim
CMP!$CMP$ac_delim
YACC!$YACC$ac_delim
+UNIFONT_HEX!$UNIFONT_HEX$ac_delim
INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
INSTALL_DATA!$INSTALL_DATA$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 81; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 82; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
AC_MSG_ERROR([bison is not found])
fi
+for file in /usr/share/unifont/unifont.hex ; do
+ if test -e $file ; then
+ AC_SUBST([UNIFONT_HEX], [$file])
+ break
+ fi
+done
+
AC_PROG_INSTALL
AC_PROG_AWK
AC_PROG_MAKE_SET
prefix=@prefix@
exec_prefix=@exec_prefix@
+datadir=@datadir@
sbindir=@sbindir@
+pkgdatadir=${datadir}/`echo @PACKAGE_TARNAME@ | sed "${transform}"`
grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
# Prefer system path for space reasons (/boot/grub might be a very small
# partition in case of OpenFirmware, etc).
- for i in /usr/share/grub/unifont.pff /boot/grub/unifont.pff ; do
- if path=`convert_system_path_to_grub_path $i` ; then
- GRUB_FONT_PATH="${path}"
- echo "${GRUB_FONT_PATH}"
- return 0
- fi
+ for dir in ${pkgdatadir} /usr/share/grub /boot/grub ; do
+ # Prefer complete fonts over incomplete ones.
+ for basename in unicode unifont ascii ; do
+ if path=`convert_system_path_to_grub_path ${dir}/${basename}.pff` ; then
+ GRUB_FONT_PATH="${path}"
+ echo "${GRUB_FONT_PATH}"
+ return 0
+ fi
+ done
done
return 1