Skip to contentSkip to conversation

Makefile.target

PATCH In review Stefan Weil 3 participants 4 messages Apr 15, 2007 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Makefile.target

This small patch for Makefile.target fixes a very special build issue:

make distclean # (only needed to remove files left from earlier builds) ./configure
make -C i386-softmmu # (or any other system emulation)

will try to build the missing dyngen and fail because dyngen is normally build by the root Makefile.

The patch adds a rule for dyngen which simply calls "make dyngen" in the root directory.

Stefan

Index: Makefile.target
===================================================================
RCS file: /sources/qemu/qemu/Makefile.target,v
retrieving revision 1.160

Makefile.target +3 -0
diff -u -b -B -r1.160 Makefile.target
@@ -540,6 +540,9 @@
 
 translate-op.o: translate-all.c op.h opc.h cpu.h
 
+$(DYNGEN):
+	make -C .. dyngen$(EXESUF)
+
 op.h: op.o $(DYNGEN)
 	$(DYNGEN) -o $@ $<
 
#1 lore raw
Quoted 11 lines · Stefan Weil

This small patch for Makefile.target fixes a very special build issue:

make distclean # (only needed to remove files left from earlier builds) ./configure
make -C i386-softmmu # (or any other system emulation)

will try to build the missing dyngen and fail because dyngen is normally build by the root Makefile.

The patch adds a rule for dyngen which simply calls "make dyngen" in the root directory.

I think "don't do that" is the most appropriate response to this problem. It's certainly not something I'd like to commit to keeping working long-term.

Try "make subdir-i386-softmmu" if you really must do this. Configuring with --target-list=i386-softmmu is a much better solution though.

Paul

#2 lore raw

Hi Paul,

of course it is always good practice to avoid errors.

But nevertheless, sometimes it happens that I "do that", and then I'm always happy when I get a clear error message. Or even better, when something works as expected even when I did something unexpected. You are lucky if you never experienced such situations.

In my case, even a simple line like
$(DYNGEN):
in Makefile.target would have made me happier.

"make subdir-i386-softmmu" is ok for my application, configuring with --target-list=i386-softmmu is no solution though because I need mips-softmmu and mipsel-softmmu, too :-)

Stefan

Quoted 23 lines · Paul Brook
Quoted 11 lines · Stefan Weil

This small patch for Makefile.target fixes a very special build issue:

make distclean # (only needed to remove files left from earlier builds) ./configure
make -C i386-softmmu # (or any other system emulation)

will try to build the missing dyngen and fail because dyngen is normally build by the root Makefile.

The patch adds a rule for dyngen which simply calls "make dyngen" in the root directory.

I think "don't do that" is the most appropriate response to this problem. It's certainly not something I'd like to commit to keeping working long-term.

Try "make subdir-i386-softmmu" if you really must do this. Configuring with --target-list=i386-softmmu is a much better solution though.

Paul

#3 lore raw
Quoted 9 lines

But nevertheless, sometimes it happens that I "do that", and then I'm always happy when I get a clear error message. Or even better, when something works as expected even when I did something unexpected. You are lucky if you never experienced such situations.

In my case, even a simple line like
$(DYNGEN):
in Makefile.target would have made me happier.

I still think you're poking around in things that shouldn't concern you, so deserve everything you get.

Quoted 3 lines

"make subdir-i386-softmmu" is ok for my application, configuring with --target-list=i386-softmmu is no solution though because I need mips-softmmu and mipsel-softmmu, too :-)

So configure with --target-list=i386-softmmu,mips-softmmu,mipsel-softmmu

Paul