2008-11-01 Robert Millan * Makefile.in (include_DATA): New variable. (build_flags.mk): New target. (pkgdata_DATA): Add `build_flags.mk'. (install-local): Install $(include_DATA) files in $(includedir). * include/grub/misc.h (GRUB_ABI): New macro (initialize as 0). (grub_abi): New variable prototype. * kern/main.c (grub_abi): New variable (initialize as GRUB_ABI). Index: Makefile.in =================================================================== --- Makefile.in (revision 1889) +++ Makefile.in (working copy) @@ -152,6 +152,13 @@ ifeq (, $(UNIFONT_HEX)) else pkgdata_DATA += unicode.pff ascii.pff +include_DATA = $(shell find $(srcdir)/include -name \*.h | sed -e 's,^$(srcdir)/,,g') \ + $(srcdir)/include/grub/cpu + +pkgdata_DATA += build_flags.mk +build_flags.mk: + echo -en "COMMON_ASFLAGS=$(COMMON_ASFLAGS)\nCOMMON_CFLAGS=$(COMMON_CFLAGS)\nCOMMON_LDFLAGS=$(COMMON_LDFLAGS)\n" > $@ + # Arrows and lines are needed to draw the menu, so we always include them UNICODE_ARROWS=0x2190-0x2193 UNICODE_LINES=0x2501-0x251B @@ -226,6 +233,19 @@ install-local: all dest="`echo $$file | sed 's,.*/,,'`"; \ $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(libdir)/grub/$$dest; \ done + $(mkinstalldirs) $(DESTDIR)$(includedir) + @list='$(include_DATA)'; \ + for file in $$list; do \ + if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ + dest="`echo $$file | sed 's,include/,,'`"; \ + destdir="`echo $$dest | sed 's,\(^\|/\)[^/]*$$,,g'`"; \ + $(mkinstalldirs) $(DESTDIR)$(includedir)/$$destdir; \ + if test -f "$$dir$$file"; then \ + $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(includedir)/$$dest; \ + elif test -L "$$dir$$file"; then \ + cp -d $$dir$$file $(DESTDIR)$(includedir)/$$dest; \ + fi; \ + done install-strip: $(MAKE) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" install Index: kern/main.c =================================================================== --- kern/main.c (revision 1889) +++ kern/main.c (working copy) @@ -28,6 +28,8 @@ #include #include +grub_uint32_t grub_abi = GRUB_ABI; + void grub_module_iterate (int (*hook) (struct grub_module_header *header)) { Index: include/grub/misc.h =================================================================== --- include/grub/misc.h (revision 1889) +++ include/grub/misc.h (working copy) @@ -25,6 +25,10 @@ #include #include +/* Increase this number every time GRUB ABI is changed. */ +#define GRUB_ABI 0 +extern grub_uint32_t EXPORT_VAR(grub_abi); + #define ALIGN_UP(addr, align) (((grub_uint64_t)addr + align - 1) & ~(align - 1)) #define grub_dprintf(condition, fmt, args...) grub_real_dprintf(__FILE__, __LINE__, condition, fmt, ## args);