From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: EXTRA_CFLAGS when compiling Xen Date: Wed, 17 Feb 2016 12:02:03 -0500 Message-ID: <20160217170203.GB23247@char.us.oracle.com> References: <56C4493D.10703@bitdefender.com> <56C45ACD02000078000D3076@prv-mh.provo.novell.com> <56C46307.1060303@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <56C46307.1060303@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Corneliu ZUZU Cc: Tamas K Lengyel , Keir Fraser , Ian Campbell , Razvan Cojocaru , Andrew Cooper , Xen-devel , Stefano Stabellini , Jan Beulich List-Id: xen-devel@lists.xenproject.org On Wed, Feb 17, 2016 at 02:09:43PM +0200, Corneliu ZUZU wrote: > On 2/17/2016 12:34 PM, Jan Beulich wrote: > > > >>The reason I need this is to pass '-save-temps' to GCC, I want to inspect > >>some code > >>and it would be easier to do that on the preprocessed files. > >... there's absolutely no need to for a case like this, at least as > >long as the xen/ subtree is where you want to do this. > >xen/Rules.mk has rules for what you want (and also for > >producing the intermediate assembly file), just that you can't > >achieve this by invoking make from the top level directory - > >you need to run make directly in xen/ and manually specify > >the intended target (including leading sub-directories). > > > >Jan > > > > I wouldn't want to needlessly insist, but of course a canonical way to do > this would be preferred. > I do see the %.i targets there in Rules.mk invoking the preprocessor, but I > haven't yet figured how to make those execute. You are probably running in the problem that XEN_ROOT and BASEDIR is not set. I usually do: make -f $(BASEDIR)/Rules.mk -C arch/x86 build_id.o from xen/xen directory. Thought it does not seem to work for me now. It had in the past. Ah, I also added an specific entry to top root Makefile to make it work for me (since it has some many env variables): diff --git a/xen/Makefile b/xen/Makefile index 5d98bcb..b5870b1 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -39,8 +39,8 @@ dist: install build install:: include/config/auto.conf -.PHONY: build install uninstall clean distclean cscope TAGS tags MAP gtags -build install uninstall debug clean distclean cscope TAGS tags MAP gtags:: +.PHONY: build install uninstall clean distclean cscope TAGS tags MAP gtags custom +build install uninstall debug clean distclean cscope TAGS tags MAP gtags custom:: ifneq ($(XEN_TARGET_ARCH),x86_32) $(MAKE) -f Rules.mk _$@ else @@ -132,6 +132,8 @@ $(TARGET): delete-unfresh-files $(MAKE) -f $(BASEDIR)/Rules.mk include/asm-$(TARGET_ARCH)/asm-offsets.h $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $(TARGET) +_custom: + $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $(TARGET) # drivers/char/console.o contains static banner/compile info. Blow it away. # Don't refresh these files during e.g., 'sudo make install' .PHONY: delete-unfresh-files > > Could you detail what make args would activate execution of the %.i targets? > This is not so important since for now Razvan's suggestion does the trick > (or adding %.i as a dependency for %.o in Rules.mk), > but I thought it would be nice for future reference, so only respond when/if > you have the time/disposition. > > Thanks, > Corneliu. > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel