Hello. genmk.rb is a point where our build system has the most
problems. For once ruby is a problematic dependency on some platforms.
Then few people here understand ruby enough. And thirdly genmk.rb
prevents splitting *_SOURCES across .rmk. So I propose to switch to
GNU make which is already our dependency in any case. Here I put a
working prototype of such solution. I intentionally omitted deletion
of genmk.rb and .rmk->.mk renaming from this patch so it's easier to
read
This patch is just a prototype. It has 3 problems I currently aware of:
1) External build is untested
2) non i386-pc build is untested
3) make clean fails because of command line is too long
--
Regards
Vladimir 'phcoder' Serbinenko
Personal git repository: http://repo.or.cz/w/grub2/phcoder.git
diff --git a/Makefile.in b/Makefile.in
index 25acce7..9d7ce62 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -97,6 +97,7 @@ LIBCURSES = @LIBCURSES@
LIBUSB = @LIBUSB@
YACC = @YACC@
UNIFONT_BDF = @UNIFONT_BDF@
+TRUE=true
# Options.
enable_grub_emu = @enable_grub_emu@
@@ -134,12 +135,8 @@ MAINTAINER_CLEANFILES = $(srcdir)/configure $(addprefix
$(srcdir)/,$(MKFILES))
all: all-local
### Include an arch-specific Makefile.
-$(addprefix $(srcdir)/,$(MKFILES)): %.mk: %.rmk genmk.rb
- if test "x$(RUBY)" = x; then \
- touch $@; \
- else \
- $(RUBY) $(srcdir)/genmk.rb < $< > $@; \
- fi
+$(addprefix $(srcdir)/,$(MKFILES)): %.mk: %.rmk
+ cat $< > $@; \
include $(srcdir)/conf/$(target_cpu)-$(platform).mk
diff --git a/autogen.sh b/autogen.sh
index 6895de2..15e291b 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -6,7 +6,7 @@ autoconf
autoheader
echo timestamp > stamp-h.in
for rmk in conf/*.rmk; do
- ruby genmk.rb < $rmk > `echo $rmk | sed 's/\.rmk$/.mk/'`
+ cat $rmk > `echo $rmk | sed 's/\.rmk$/.mk/'`
done
./gendistlist.sh > DISTLIST
diff --git a/conf/common.rmk b/conf/common.rmk
index 032517f..ab5a8c5 100644
--- a/conf/common.rmk
+++ b/conf/common.rmk
@@ -4,11 +4,14 @@
bin_UTILITIES += grub-mkelfimage
grub_mkelfimage_SOURCES = util/elf/grub-mkimage.c util/misc.c \
util/resolve.c
-util/elf/grub-mkimage.c_DEPENDENCIES = Makefile
+util/elf/grub-mkimage.c: Makefile
+ $(TRUE)
# For grub-probe.
sbin_UTILITIES += grub-probe
-util/grub-probe.c_DEPENDENCIES = grub_probe_init.h
+util/grub-probe.c.dep: grub_probe_init.h
+ $(TRUE)
+
grub_probe_SOURCES = util/grub-probe.c \
util/hostdisk.c util/misc.c util/getroot.c \
kern/device.c kern/disk.c kern/err.c kern/misc.c \
@@ -28,7 +31,9 @@ bin_UTILITIES += grub-fstest
endif
# For grub-fstest.
-util/grub-fstest.c_DEPENDENCIES = grub_fstest_init.h
+util/grub-fstest.c.dep: grub_fstest_init.h
+ $(TRUE)
+
grub_fstest_SOURCES = util/grub-fstest.c util/hostfs.c util/misc.c \
kern/file.c kern/device.c kern/disk.c kern/err.c kern/misc.c \
disk/host.c disk/loopback.c kern/list.c kern/command.c \
@@ -136,21 +141,15 @@ grub_macho2img_SOURCES = util/grub-macho2img.c
CLEANFILES += grub-macho2img
# For grub-mkconfig
-grub-mkconfig: util/grub-mkconfig.in config.status
- ./config.status --file=$@:$<
- chmod +x $@
+grub_mkconfig_SOURCES = util/grub-mkconfig.in
sbin_SCRIPTS += grub-mkconfig
CLEANFILES += grub-mkconfig
-grub-mkconfig_lib: util/grub-mkconfig_lib.in config.status
- ./config.status --file=$@:$<
- chmod +x $@
+grub_mkconfig_lib_SOURCES = util/grub-mkconfig_lib.in
lib_SCRIPTS += grub-mkconfig_lib
CLEANFILES += grub-mkconfig_lib
-update-grub_lib: util/update-grub_lib.in config.status
- ./config.status --file=$@:$<
- chmod +x $@
+update_grub_lib_SOURCES = util/update-grub_lib.in
lib_SCRIPTS += update-grub_lib
CLEANFILES += update-grub_lib
@@ -167,9 +166,7 @@ CLEANFILES += $(grub-mkconfig_SCRIPTS)
grub-mkconfig_DATA += util/grub.d/README
# For grub-dumpbios
-grub-dumpbios: util/grub-dumpbios.in config.status
- ./config.status --file=$@:$<
- chmod +x $@
+grub_dumpbios_SOURCES = util/grub-dumpbios.in
sbin_SCRIPTS += grub-dumpbios
CLEANFILES += grub-dumpbios
@@ -607,3 +604,198 @@ pkglib_MODULES += setjmp.mod
setjmp_mod_SOURCES = lib/$(target_cpu)/setjmp.S
setjmp_mod_ASFLAGS = $(COMMON_ASFLAGS)
setjmp_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+
+.PHONY: %.dep
+
+%.dep:
+ $(TRUE)
+
+define UTILITY_template
+$(1): $$($(2)_DEPENDENCIES) $$(addsuffix .obj_$(2),$$($(2)_SOURCES))
+ $(CC) -o $$@ $$(addsuffix .obj_$(2),$$($(2)_SOURCES)) $$(LDFLAGS)
$$($(2)_LDFLAGS)
+
+%.obj_$(2): % %.dep
+ $$(CC) $$(CPPFLAGS) $$(CFLAGS) -DGRUB_UTIL=1 $$($(2)_CFLAGS) -MD -c -o
$$@ $$<
+
+CLEANFILES += $$(addsuffix .obj-$(2),$$($(2)_SOURCES))
+CLEANFILES += $$(addsuffix $$(EXEEXT),$(1))
+
+MOSTLYCLEANFILES += $$(addsuffix .d,$$($(2)_SOURCES))
+endef
+
+$(foreach util,$(bin_UTILITIES),$(eval $(call UTILITY_template,$(util),$(subst
-,_,$(subst .,_,$(util))))))
+$(foreach util,$(sbin_UTILITIES),$(eval $(call
UTILITY_template,$(util),$(subst -,_,$(subst .,_,$(util))))))
+
+define PROGRAM_template
+$(1): $$($(2)_DEPENDENCIES) $$(addsuffix .obj_$(2),$$($(2)_SOURCES))
+ $(TARGET_CC) -o $$@ $$(addsuffix .obj_$(2),$$($(2)_SOURCES))
$$(TARGET_LDFLAGS) $$($(2)_LDFLAGS)
+
+%.c.obj_$(2): %.c %.c.dep
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_CFLAGS) $$($(2)_CFLAGS) -MD
-c -o $$@ $$<
+
+%.S.obj_$(2): %.S %.S.dep
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_ASFLAGS) $$($(2)_ASFLAGS)
-MD -c -o $$@ $$<
+
+CLEANFILES += $$(addsuffix .obj-$(2),$$($(2)_SOURCES))
+CLEANFILES += $(1)
+
+MOSTLYCLEANFILES += $$(addsuffix .d,$$($(2)_SOURCES))
+endef
+
+$(foreach prog,$(pkglib_PROGRAMS),$(eval $(call
PROGRAM_template,$(prog),$(subst -,_,$(subst .,_,$(prog))))))
+
+define IMAGE_template
+CLEANFILES += $(1) $(1).exec $$(addsuffix .obj-$(2),$$($(2)_SOURCES))
+MOSTLYCLEANFILES += $$(addsuffix .d,$$($(2)_SOURCES))
+
+ifneq ($$(TARGET_APPLE_CC),1)
+$(1): $(1).exec $$($(2)_DEPENDENCIES)
+ $$(OBJCOPY) -O $$($(2)_FORMAT) --strip-unneeded -R .note -R .comment -R
.note.gnu.build-id $$< $$@
+else
+ifneq ($(1),kernel.img)
+$(1): $(1).exec $$($(2)_DEPENDENCIES) ./grub-macho2img
+ ./grub-macho2img $$< $$@
+else
+
+$(1): $(1).exec $$($(2)_DEPENDENCIES) ./grub-macho2img
+ ./grub-macho2img --bss $$< $$@
+endif
+endif
+
+
+$(1).exec: $$($(2)_DEPENDENCIES) $$(addsuffix .obj_$(2),$$($(2)_SOURCES))
+ $$(TARGET_CC) -o $$@ $$(addsuffix .obj_$(2),$$($(2)_SOURCES))
$$(TARGET_LDFLAGS) $$($(2)_LDFLAGS)
+
+%.c.obj_$(2): %.c %.c.dep
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_CFLAGS) $$($(2)_CFLAGS) -MD
-c -o $$@ $$<
+
+%.S.obj_$(2): %.S %.S.dep
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_ASFLAGS) -DASM_FILE=1
$$($(2)_ASFLAGS) -MD -c -o $$@ $$<
+
+endef
+
+$(foreach image,$(pkglib_IMAGES),$(eval $(call IMAGE_template,$(image),$(subst
-,_,$(subst .,_,$(image))))))
+
+define SCRIPT_template
+CLEANFILES += $(1)
+
+$(1): $$($(2)_SOURCES) $$($(2)_DEPENDENCIES) config.status
+ ./config.status --file=$$@:$$<
+ chmod +x $$@
+endef
+
+$(foreach script,$(bin_SCRIPTS),$(eval $(call
SCRIPT_template,$(script),$(subst -,_,$(subst .,_,$(script))))))
+$(foreach script,$(sbin_SCRIPTS),$(eval $(call
SCRIPT_template,$(script),$(subst -,_,$(subst .,_,$(script))))))
+$(foreach script,$(lib_SCRIPTS),$(eval $(call
SCRIPT_template,$(script),$(subst -,_,$(subst .,_,$(script))))))
+
+define MODULE_template
+CLEANFILES += $(1) mod-$(2).o mod-$(2).c pre-$(2).o pre-$(2).c mod-$(2).o
und-$(2).lst
+ifneq ($$($(2)_EXPORTS),no)
+CLEANFILES += def-$(2).lst
+DEFSYMFILES += def-$(2).lst
+endif
+MOSTLYCLEANFILES += $$(addsuffix .d,$$($(2)_SOURCES))
+UNDSYMFILES += und-$(2).lst
+
+ifneq ($$(TARGET_APPLE_CC),1)
+$(1): pre-$(2).o mod-$(2).o $(TARGET_OBJ2ELF)
+ -rm -f $$@
+ $$(TARGET_CC) $$($(2)_LDFLAGS) $$(TARGET_LDFLAGS) -Wl,-r,-d -o $$@
pre-$(2).o mod-$(2).o
+ if test ! -z $$(TARGET_OBJ2ELF); then ./$$(TARGET_OBJ2ELF) $$@ || (rm
-f $$@; exit 1); fi
+ $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K
_grub_mod_init -K _grub_mod_fini -R .note -R .comment $$@
+else
+$(1): pre-$(2).o mod-$(2).o
+ -rm -f $$@
+ -rm -f [email protected]
+ $$(TARGET_CC) $$($(2)_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o [email protected]
pre-$(2).o mod-$(2).o
+ $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init
-nr:_grub_mod_fini:grub_mod_fini -wd1106 -nu -nd [email protected] $$@
+ -rm -f [email protected]
+endif
+
+pre-$(2).o: $$($(2)_DEPENDENCIES) $$(addsuffix .obj_$(2),$$($(2)_SOURCES))
+ -rm -f $$@
+ $$(TARGET_CC) $$($(2)_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $$@
$$(addsuffix .obj_$(2),$$($(2)_SOURCES))
+
+mod-$(2).o: mod-$(2).c
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_CFLAGS) $$($(2)_CFLAGS) -c
-o $$@ $$<
+
+mod-$(2).c: $$(builddir)/moddep.lst $$(srcdir)/genmodsrc.sh
+ sh $$(srcdir)/genmodsrc.sh "$$(subst .mod,,$(1))" $$< > $$@ || (rm -f
$$@; exit 1)
+
+ifneq ($$($(2)_EXPORTS),no)
+ifneq ($(TARGET_APPLE_CC),1)
+def-$(2).lst: pre-$(2).o
+ $(NM) -g --defined-only -P -p $$< | sed "s/^\\([^ ]*\\).*/\\1 $$(subst
.mod,,$(1))/" > $$@
+else
+def-$(2).lst: pre-$(2).o
+ $(NM) -g -P -p $$< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\\([^
]*\\).*/\\1 $$(subst .mod,,$(1))/' > $$@
+endif
+endif
+
+und-$(2).lst: pre-$(2).o
+ echo '$$(subst .mod,,$(1))' > $$@
+ $$(NM) -u -P -p $$< | cut -f1 -d' ' >> $$@
+
+%.c.obj_$(2): %.c %.c.dep
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_CFLAGS) $$($(2)_CFLAGS) -MD
-c -o $$@ $$<
+
+%.S.obj_$(2): %.S %.S.dep
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_ASFLAGS) -DASM_FILE=1
$$($(2)_ASFLAGS) -MD -c -o $$@ $$<
+
+CLEANFILES += $$(addsuffix .cmd.lst_$(2),$$($(2)_SOURCES)) \
+ $$(addsuffix .fs.lst_$(2),$$($(2)_SOURCES)) \
+ $$(addsuffix .parttool.lst_$(2),$$($(2)_SOURCES)) \
+ $$(addsuffix .partmap.lst_$(2),$$($(2)_SOURCES)) \
+ $$(addsuffix .handler.lst_$(2),$$($(2)_SOURCES)) \
+ $$(addsuffix .obj_$(2),$$($(2)_SOURCES))
+
+COMMANDFILES += $$(addsuffix .cmd.lst_$(2),$$($(2)_SOURCES))
+FSFILES += $$(addsuffix .fs.lst_$(2),$$($(2)_SOURCES))
+PARTTOOLFILES += $$(addsuffix .parttool.lst_$(2),$$($(2)_SOURCES))
+PARTMAPFILES += $$(addsuffix .partmap.lst_$(2),$$($(2)_SOURCES))
+HANDLERFILES += $$(addsuffix .handler.lst_$(2),$$($(2)_SOURCES))
+
+%.c.cmd.lst_$(2): %.c %.c.dep gencmdlist.sh
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_CFLAGS) $$($(2)_CFLAGS) -E
$$< \
+ | sh $(srcdir)/gencmdlist.sh $$(subst .mod,,$(1)) > $$@ || (rm -f
$$@; exit 1)
+
+%.S.cmd.lst_$(2): %.S %.S.dep gencmdlist.sh
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_ASFLAGS) -DASM_FILE=1
$$($(2)_ASFLAGS) -E $$< \
+ | sh $(srcdir)/gencmdlist.sh $$(subst .mod,,$(1)) > $$@ || (rm -f
$$@; exit 1)
+
+%.c.fs.lst_$(2): %.c %.c.dep genfslist.sh
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_CFLAGS) $$($(2)_CFLAGS) -E
$$< \
+ | sh $(srcdir)/genfslist.sh $$(subst .mod,,$(1)) > $$@ || (rm -f $$@;
exit 1)
+
+%.S.fs.lst_$(2): %.S %.S.dep genfslist.sh
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_ASFLAGS) -DASM_FILE=1
$$($(2)_ASFLAGS) -E $$< \
+ | sh $(srcdir)/genfslist.sh $$(subst .mod,,$(1)) > $$@ || (rm -f $$@;
exit 1)
+
+%.c.parttool.lst_$(2): %.c %.c.dep genparttoollist.sh
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_CFLAGS) $$($(2)_CFLAGS) -E
$$< \
+ | sh $(srcdir)/genparttoollist.sh $$(subst .mod,,$(1)) > $$@ || (rm
-f $$@; exit 1)
+
+%.S.parttool.lst_$(2): %.S %.S.dep genparttoollist.sh
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_ASFLAGS) -DASM_FILE=1
$$($(2)_ASFLAGS) -E $$< \
+ | sh $(srcdir)/genparttoollist.sh $$(subst .mod,,$(1)) > $$@ || (rm
-f $$@; exit 1)
+
+%.c.partmap.lst_$(2): %.c %.c.dep genpartmaplist.sh
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_CFLAGS) $$($(2)_CFLAGS) -E
$$< \
+ | sh $(srcdir)/genpartmaplist.sh $$(subst .mod,,$(1)) > $$@ || (rm -f
$$@; exit 1)
+
+%.S.partmap.lst_$(2): %.S %.S.dep genpartmaplist.sh
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_ASFLAGS) -DASM_FILE=1
$$($(2)_ASFLAGS) -E $$< \
+ | sh $(srcdir)/genpartmaplist.sh $$(subst .mod,,$(1)) > $$@ || (rm -f
$$@; exit 1)
+
+%.c.handler.lst_$(2): %.c %.c.dep genhandlerlist.sh
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_CFLAGS) $$($(2)_CFLAGS) -E
$$< \
+ | sh $(srcdir)/genhandlerlist.sh $$(subst .mod,,$(1)) > $$@ || (rm -f
$$@; exit 1)
+
+%.S.handler.lst_$(2): %.S %.S.dep genhandlerlist.sh
+ $$(TARGET_CC) $$(TARGET_CPPFLAGS) $$(TARGET_ASFLAGS) -DASM_FILE=1
$$($(2)_ASFLAGS) -E $$< \
+ | sh $(srcdir)/genhandlerlist.sh $$(subst .mod,,$(1)) > $$@ || (rm -f
$$@; exit 1)
+
+endef
+
+$(foreach mod,$(pkglib_MODULES),$(eval $(call MODULE_template,$(mod),$(subst
-,_,$(subst .,_,$(mod))))))
diff --git a/conf/i386-coreboot.rmk b/conf/i386-coreboot.rmk
index 7ba5737..c57680c 100644
--- a/conf/i386-coreboot.rmk
+++ b/conf/i386-coreboot.rmk
@@ -5,7 +5,8 @@ COMMON_CFLAGS = -fno-builtin -mrtd -mregparm=3 -m32
COMMON_LDFLAGS = -m32 -nostdlib
# Used by various components. These rules need to precede them.
-script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h
+script/sh/lexer.c.dep: grub_script.tab.h
+ $(TRUE)
# Images.
@@ -104,7 +105,9 @@ grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c
util/deviceiter.c \
util/devicemap.c util/misc.c
# For grub-emu.
-util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
+util/grub-emu.c.dep: grub_emu_init.h
+ $(TRUE)
+
grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/echo.c commands/help.c \
commands/handler.c commands/ls.c commands/test.c \
diff --git a/conf/i386-efi.rmk b/conf/i386-efi.rmk
index 9177b9d..1e38488 100644
--- a/conf/i386-efi.rmk
+++ b/conf/i386-efi.rmk
@@ -5,7 +5,8 @@ COMMON_CFLAGS = -fno-builtin -m32
COMMON_LDFLAGS = -melf_i386 -nostdlib
# Used by various components. These rules need to precede them.
-script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h
+script/sh/lexer.c.dep: grub_script.tab.h
+ $(TRUE)
# Utilities.
bin_UTILITIES = grub-mkimage
@@ -17,7 +18,8 @@ sbin_UTILITIES = grub-mkdevicemap
# For grub-mkimage.
grub_mkimage_SOURCES = util/i386/efi/grub-mkimage.c util/misc.c \
util/resolve.c
-util/i386/efi/grub-mkimage.c_DEPENDENCIES = Makefile
+util/i386/efi/grub-mkimage.c.dep: Makefile
+ $(TRUE)
# For grub-setup.
#grub_setup_SOURCES = util/i386/pc/grub-setup.c util/hostdisk.c \
@@ -32,7 +34,8 @@ grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c
util/deviceiter.c \
util/devicemap.c util/misc.c
# For grub-emu.
-util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
+util/grub-emu.c.dep: grub_emu_init.h
+ $(TRUE)
grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/help.c \
commands/handler.c commands/ls.c commands/test.c \
diff --git a/conf/i386-ieee1275.rmk b/conf/i386-ieee1275.rmk
index 0321979..98e4de7 100644
--- a/conf/i386-ieee1275.rmk
+++ b/conf/i386-ieee1275.rmk
@@ -5,7 +5,8 @@ COMMON_CFLAGS = -ffreestanding -mrtd -mregparm=3
COMMON_LDFLAGS = -nostdlib
# Used by various components. These rules need to precede them.
-script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h
+script/sh/lexer.c.dep: grub_script.tab.h
+ $(TRUE)
# Images.
pkglib_PROGRAMS = kernel.img
@@ -58,7 +59,8 @@ grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c
util/deviceiter.c \
util/devicemap.c util/misc.c
# For grub-emu.
-util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
+util/grub-emu.c.dep: grub_emu_init.h
+ $(TRUE)
grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/echo.c commands/help.c \
commands/handler.c commands/ls.c commands/test.c \
diff --git a/conf/i386-pc.rmk b/conf/i386-pc.rmk
index 798aee2..d5ad6a1 100644
--- a/conf/i386-pc.rmk
+++ b/conf/i386-pc.rmk
@@ -7,7 +7,8 @@ COMMON_CFLAGS = -fno-builtin -mrtd -mregparm=3 -m32
COMMON_LDFLAGS = -m32 -nostdlib
# Used by various components. These rules need to precede them.
-script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h
+script/sh/lexer.c.dep: grub_script.tab.h
+ $(TRUE)
# Images.
pkglib_IMAGES = boot.img diskboot.img kernel.img pxeboot.img cdboot.img
@@ -92,10 +93,13 @@ endif
grub_mkimage_SOURCES = util/i386/pc/grub-mkimage.c util/misc.c \
util/resolve.c lib/LzmaEnc.c lib/LzFind.c
grub_mkimage_CFLAGS =
-DGRUB_KERNEL_MACHINE_LINK_ADDR=$(GRUB_KERNEL_MACHINE_LINK_ADDR)
-util/i386/pc/grub-mkimage.c_DEPENDENCIES = Makefile
+util/i386/pc/grub-mkimage.c.dep: Makefile
+ $(TRUE)
# For grub-setup.
-util/i386/pc/grub-setup.c_DEPENDENCIES = grub_setup_init.h
+util/i386/pc/grub-setup.c.dep: grub_setup_init.h
+ $(TRUE)
+
grub_setup_SOURCES = util/i386/pc/grub-setup.c util/hostdisk.c \
util/misc.c util/getroot.c kern/device.c kern/disk.c \
kern/err.c kern/misc.c kern/parser.c kern/partition.c \
@@ -117,7 +121,8 @@ grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c
util/deviceiter.c \
util/devicemap.c util/misc.c
# For grub-emu.
-util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
+util/grub-emu.c.dep: grub_emu_init.h
+ $(TRUE)
grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/echo.c commands/help.c \
commands/handler.c commands/ls.c commands/test.c \
diff --git a/conf/powerpc-ieee1275.rmk b/conf/powerpc-ieee1275.rmk
index af29d23..b5d3f13 100644
--- a/conf/powerpc-ieee1275.rmk
+++ b/conf/powerpc-ieee1275.rmk
@@ -6,7 +6,8 @@ COMMON_CFLAGS = -ffreestanding
COMMON_LDFLAGS += -nostdlib
# Used by various components. These rules need to precede them.
-script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h
+script/sh/lexer.c.dep: grub_script.tab.h
+ $(TRUE)
# Images.
@@ -39,7 +40,8 @@ grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c
util/deviceiter.c \
util/devicemap.c util/misc.c
# For grub-emu
-util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
+util/grub-emu.c.dep: grub_emu_init.h
+ $(TRUE)
grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/help.c \
commands/search.c commands/handler.c commands/test.c \
diff --git a/conf/sparc64-ieee1275.rmk b/conf/sparc64-ieee1275.rmk
index aabccee..d2977b9 100644
--- a/conf/sparc64-ieee1275.rmk
+++ b/conf/sparc64-ieee1275.rmk
@@ -6,7 +6,8 @@ COMMON_CFLAGS = -ffreestanding -m64 -mno-app-regs
COMMON_LDFLAGS = -melf64_sparc -nostdlib -mno-relax
# Used by various components. These rules need to precede them.
-script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h
+script/sh/lexer.c.dep: grub_script.tab.h
+ $(TRUE)
# Images.
pkglib_IMAGES = boot.img diskboot.img kernel.img
@@ -69,7 +70,9 @@ grub_mkimage_SOURCES = util/sparc64/ieee1275/grub-mkimage.c
util/misc.c \
util/resolve.c
# For grub-setup.
-util/sparc64/ieee1275/grub-setup.c_DEPENDENCIES = grub_setup_init.h
+util/sparc64/ieee1275/grub-setup.c.dep: grub_setup_init.h
+ $(TRUE)
+
grub_setup_SOURCES = util/sparc64/ieee1275/grub-setup.c util/hostdisk.c
\
util/misc.c util/getroot.c kern/device.c kern/disk.c \
kern/err.c kern/misc.c kern/parser.c kern/partition.c \
@@ -96,7 +99,9 @@ grub_ofpathname_SOURCES =
util/sparc64/ieee1275/grub-ofpathname.c \
util/ieee1275/ofpath.c util/misc.c
# For grub-emu
-util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
+util/grub-emu.c.dep: grub_emu_init.h
+ $(TRUE)
+
grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/help.c \
commands/search.c commands/handler.c commands/test.c \
diff --git a/conf/x86_64-efi.rmk b/conf/x86_64-efi.rmk
index 21da0e1..ac1a230 100644
--- a/conf/x86_64-efi.rmk
+++ b/conf/x86_64-efi.rmk
@@ -5,7 +5,8 @@ COMMON_CFLAGS = -fno-builtin -m64
COMMON_LDFLAGS = -melf_x86_64 -nostdlib
# Used by various components. These rules need to precede them.
-script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h
+script/sh/lexer.c.dep: grub_script.tab.h
+ $(TRUE)
# Utilities.
bin_UTILITIES = grub-mkimage
@@ -30,7 +31,9 @@ grub_mkimage_SOURCES = util/i386/efi/grub-mkimage.c
util/misc.c \
grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c
# For grub-emu.
-util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
+util/grub-emu.c.dep: grub_emu_init.h
+ $(TRUE)
+
grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/help.c \
commands/handler.c commands/ls.c commands/test.c \
_______________________________________________
Grub-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel