From fc45fb586d282bf658cde046fdc6a17f5f4e4aa0 Mon Sep 17 00:00:00 2001 From: bean Date: Sun, 3 May 2009 06:39:37 +0000 Subject: [PATCH] 2009-05-03 Bean * Makefile.in (enable_efiemu): New variable. * conf/i386-pc.rmk: Only compile efiemu runtimes when enable_efiemu is set. (efiemu32.o): Use macro $< for source file, add $(srcdir) to include path. (efi64_c.o): Use macro $< for source file, add $(srcdir) to include path, add -mno-red-zone option. (efiemu64_s.o): Likewise. (efiemu64.o): Use macro $^ for source file. * configure.ac (--enable-efiemu): New option. --- ChangeLog | 15 +++++++++++++++ Makefile.in | 1 + conf/i386-pc.rmk | 12 ++++++++---- configure.ac | 5 +++++ 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 65d57351c..b798fe88b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2009-05-03 Bean + + * Makefile.in (enable_efiemu): New variable. + + * conf/i386-pc.rmk: Only compile efiemu runtimes when enable_efiemu is + set. + (efiemu32.o): Use macro $< for source file, add $(srcdir) to include + path. + (efi64_c.o): Use macro $< for source file, add $(srcdir) to include + path, add -mno-red-zone option. + (efiemu64_s.o): Likewise. + (efiemu64.o): Use macro $^ for source file. + + * configure.ac (--enable-efiemu): New option. + 2009-05-03 Vladimir Serbinenko xnu support diff --git a/Makefile.in b/Makefile.in index 363708c6f..109aab928 100644 --- a/Makefile.in +++ b/Makefile.in @@ -101,6 +101,7 @@ enable_lzo = @enable_lzo@ enable_grub_mkfont = @enable_grub_mkfont@ freetype_cflags = @freetype_cflags@ freetype_libs = @freetype_libs@ +enable_efiemu = @enable_efiemu@ ### General variables. diff --git a/conf/i386-pc.rmk b/conf/i386-pc.rmk index 2530dd28e..5eb50367a 100644 --- a/conf/i386-pc.rmk +++ b/conf/i386-pc.rmk @@ -387,19 +387,23 @@ hdparm_mod_SOURCES = commands/hdparm.c lib/hexdump.c hdparm_mod_CFLAGS = $(COMMON_CFLAGS) hdparm_mod_LDFLAGS = $(COMMON_LDFLAGS) +ifeq ($(enable_efiemu), yes) + efiemu32.o: efiemu/runtime/efiemu.c - $(CC) -c -m32 -DELF32 -o $@ -Wall -Werror efiemu/runtime/efiemu.c -nostdlib -O2 -Iefiemu/runtime -Iinclude + $(CC) -c -m32 -DELF32 -o $@ -Wall -Werror $< -nostdlib -O2 -I$(srcdir)/efiemu/runtime -I$(srcdir)/include -Iinclude efiemu64_c.o: efiemu/runtime/efiemu.c - $(CC) -c -m64 -DELF64 -o $@ -Wall -Werror efiemu/runtime/efiemu.c -nostdlib -mcmodel=large -O2 -Iefiemu/runtime -Iinclude + $(CC) -c -m64 -DELF64 -o $@ -Wall -Werror $< -nostdlib -mcmodel=large -mno-red-zone -O2 -I$(srcdir)/efiemu/runtime -I$(srcdir)/include -Iinclude efiemu64_s.o: efiemu/runtime/efiemu.S - $(CC) -c -m64 -DELF64 -o $@ -Wall -Werror efiemu/runtime/efiemu.S -nostdlib -mcmodel=large -O2 -Iefiemu/runtime -Iinclude + $(CC) -c -m64 -DELF64 -o $@ -Wall -Werror $< -nostdlib -mcmodel=large -mno-red-zone -O2 -I$(srcdir)/efiemu/runtime -I$(srcdir)/include -Iinclude efiemu64.o: efiemu64_c.o efiemu64_s.o - ld -melf_x86_64 -o $@ -r efiemu64_c.o efiemu64_s.o -nostdlib + ld -melf_x86_64 -o $@ -r $^ -nostdlib CLEANFILES += efiemu32.o efiemu64.o efiemu64_c.o efiemu64_s.o lib_DATA += efiemu32.o efiemu64.o +endif + include $(srcdir)/conf/i386.mk include $(srcdir)/conf/common.mk diff --git a/configure.ac b/configure.ac index 1f0775bea..d84e2b68d 100644 --- a/configure.ac +++ b/configure.ac @@ -473,6 +473,11 @@ AC_SUBST([enable_grub_mkfont]) AC_SUBST([freetype_cflags]) AC_SUBST([freetype_libs]) +AC_ARG_ENABLE([efiemu], + [AS_HELP_STRING([--enable-efiemu], + [build and install the efiemu runtimes])]) +AC_SUBST([enable_efiemu]) + # Output files. grub_CHECK_LINK_DIR if test x"$link_dir" = xyes ; then