[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[XenPPC] [PATCH] Builtin cmdline dependency rule



Rebuild cmdline.o when the user changes the CMDLINE=X argument passed to
the make invocation.  I couldn't find an example of another project that
handles this case properly, so I came up with this.

Signed-off-by: Amos Waterland <apw@xxxxxxxxxx>

---

 .hgignore                 |    1 +
 xen/arch/powerpc/Makefile |   16 +++++++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff -r 1b759b2522cd .hgignore
--- a/.hgignore Wed Oct 04 17:27:16 2006 -0500
+++ b/.hgignore Wed Oct 04 20:26:04 2006 -0400
@@ -207,6 +207,7 @@
 ^xen/arch/powerpc/xen\.lds$
 ^xen/arch/powerpc/.xen-syms$
 ^xen/arch/powerpc/xen-syms.S$
+^xen/arch/powerpc/cmdline.dep$
 ^unmodified_drivers/linux-2.6/\.tmp_versions
 ^unmodified_drivers/linux-2.6/.*\.cmd$
 ^unmodified_drivers/linux-2.6/.*\.ko$
diff -r 1b759b2522cd xen/arch/powerpc/Makefile
--- a/xen/arch/powerpc/Makefile Wed Oct 04 17:27:16 2006 -0500
+++ b/xen/arch/powerpc/Makefile Wed Oct 04 20:26:24 2006 -0400
@@ -80,6 +80,20 @@ ifneq ($(CMDLINE),)
 # The first token in the arguments will be silently dropped.
 FULL_CMDLINE := xen $(CMDLINE)
 endif
+
+ifeq ($(wildcard cmdline.dep),)
+cmdline.dep:
+       echo $(FULL_CMDLINE) > cmdline.dep
+else
+ifneq ($(FULL_CMDLINE),$(shell cat cmdline.dep))
+cmdline.dep::
+       echo $(FULL_CMDLINE) > cmdline.dep
+else
+cmdline.dep:
+endif
+endif
+
+cmdline.o: cmdline.dep
 cmdline.o: CFLAGS += -DCMDLINE="\"$(FULL_CMDLINE)\""
 
 TARGET_OPTS = $(OMAGIC) -Wl,-Ttext,0x400000,-T,xen.lds
@@ -122,4 +136,4 @@ dom0.bin: $(DOM0_IMAGE)
 
 clean::
        $(MAKE) -f $(BASEDIR)/Rules.mk -C of_handler clean
-       rm -f firmware firmware_image.bin dom0.bin .xen-syms
+       rm -f firmware firmware_image.bin dom0.bin .xen-syms cmdline.dep

_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.