diff mbox

[v2] stubdom: modify ioemu linkfarm only if necessary

Message ID 20161213135827.31212-1-jgross@suse.com (mailing list archive)
State New, archived
Headers show

Commit Message

Juergen Gross Dec. 13, 2016, 1:58 p.m. UTC
Several stubdom libraries are being rebuilt each time a top level make
is called as they depend on stubdom/ioemu/linkfarm.stamp which is
depending on tools/qemu-xen-traditional-dir. Unfortunately this
directory is modified by each "make tools" call.

This can be avoided by writing stubdom/ioemu/linkfarm.stamp only if
a source file beneath tools/qemu-xen-traditional-dir has been added
or removed.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2: maintain a list of the to be linked files in linkfarm.stamp and
    rebuild this list at each make call for detecting any change

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 stubdom/Makefile | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Wei Liu Dec. 13, 2016, 3:15 p.m. UTC | #1
On Tue, Dec 13, 2016 at 02:58:27PM +0100, Juergen Gross wrote:
> Several stubdom libraries are being rebuilt each time a top level make
> is called as they depend on stubdom/ioemu/linkfarm.stamp which is
> depending on tools/qemu-xen-traditional-dir. Unfortunately this
> directory is modified by each "make tools" call.
> 
> This can be avoided by writing stubdom/ioemu/linkfarm.stamp only if
> a source file beneath tools/qemu-xen-traditional-dir has been added
> or removed.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Acked-by: Wei Liu <wei.liu2@citrix.com>

though ...

> ---
> V2: maintain a list of the to be linked files in linkfarm.stamp and
>     rebuild this list at each make call for detecting any change
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  stubdom/Makefile | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/stubdom/Makefile b/stubdom/Makefile
> index bc49cfe..38f1688 100644
> --- a/stubdom/Makefile
> +++ b/stubdom/Makefile
> @@ -298,9 +298,13 @@ ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
>  	(cd $$src && find *	! -type l  -type f  $(addprefix ! -name ,	\
>  			'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen	\
>  			'*.html' '*.pod'					\
> -			)) |							\
> -	    while read f; do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done
> -	touch ioemu/linkfarm.stamp
> +			)) >linkfarm.stamp.tmp;				\
> +	cmp linkfarm.stamp.tmp linkfarm.stamp 2>/dev/null &&		\

I think we want 'cmp -s' here.

> +		rm linkfarm.stamp.tmp || {				\
> +		mv linkfarm.stamp.tmp linkfarm.stamp;			\
> +		cat linkfarm.stamp | while read f;			\
> +			do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done;	\
> +	}
>  else
>  export QEMU_ROOT
>  
> -- 
> 2.10.2
>
Juergen Gross Dec. 13, 2016, 3:24 p.m. UTC | #2
On 13/12/16 16:15, Wei Liu wrote:
> On Tue, Dec 13, 2016 at 02:58:27PM +0100, Juergen Gross wrote:
>> Several stubdom libraries are being rebuilt each time a top level make
>> is called as they depend on stubdom/ioemu/linkfarm.stamp which is
>> depending on tools/qemu-xen-traditional-dir. Unfortunately this
>> directory is modified by each "make tools" call.
>>
>> This can be avoided by writing stubdom/ioemu/linkfarm.stamp only if
>> a source file beneath tools/qemu-xen-traditional-dir has been added
>> or removed.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
> 
> Acked-by: Wei Liu <wei.liu2@citrix.com>
> 
> though ...
> 
>> ---
>> V2: maintain a list of the to be linked files in linkfarm.stamp and
>>     rebuild this list at each make call for detecting any change
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>>  stubdom/Makefile | 10 +++++++---
>>  1 file changed, 7 insertions(+), 3 deletions(-)
>>
>> diff --git a/stubdom/Makefile b/stubdom/Makefile
>> index bc49cfe..38f1688 100644
>> --- a/stubdom/Makefile
>> +++ b/stubdom/Makefile
>> @@ -298,9 +298,13 @@ ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
>>  	(cd $$src && find *	! -type l  -type f  $(addprefix ! -name ,	\
>>  			'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen	\
>>  			'*.html' '*.pod'					\
>> -			)) |							\
>> -	    while read f; do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done
>> -	touch ioemu/linkfarm.stamp
>> +			)) >linkfarm.stamp.tmp;				\
>> +	cmp linkfarm.stamp.tmp linkfarm.stamp 2>/dev/null &&		\
> 
> I think we want 'cmp -s' here.

Oh, right. This removes the need for redirecting error output.
Shall I resend or could you fix it up when committing?


Juergen
Wei Liu Dec. 13, 2016, 3:27 p.m. UTC | #3
On Tue, Dec 13, 2016 at 04:24:01PM +0100, Juergen Gross wrote:
> On 13/12/16 16:15, Wei Liu wrote:
> > On Tue, Dec 13, 2016 at 02:58:27PM +0100, Juergen Gross wrote:
> >> Several stubdom libraries are being rebuilt each time a top level make
> >> is called as they depend on stubdom/ioemu/linkfarm.stamp which is
> >> depending on tools/qemu-xen-traditional-dir. Unfortunately this
> >> directory is modified by each "make tools" call.
> >>
> >> This can be avoided by writing stubdom/ioemu/linkfarm.stamp only if
> >> a source file beneath tools/qemu-xen-traditional-dir has been added
> >> or removed.
> >>
> >> Signed-off-by: Juergen Gross <jgross@suse.com>
> > 
> > Acked-by: Wei Liu <wei.liu2@citrix.com>
> > 
> > though ...
> > 
> >> ---
> >> V2: maintain a list of the to be linked files in linkfarm.stamp and
> >>     rebuild this list at each make call for detecting any change
> >>
> >> Signed-off-by: Juergen Gross <jgross@suse.com>
> >> ---
> >>  stubdom/Makefile | 10 +++++++---
> >>  1 file changed, 7 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/stubdom/Makefile b/stubdom/Makefile
> >> index bc49cfe..38f1688 100644
> >> --- a/stubdom/Makefile
> >> +++ b/stubdom/Makefile
> >> @@ -298,9 +298,13 @@ ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
> >>  	(cd $$src && find *	! -type l  -type f  $(addprefix ! -name ,	\
> >>  			'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen	\
> >>  			'*.html' '*.pod'					\
> >> -			)) |							\
> >> -	    while read f; do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done
> >> -	touch ioemu/linkfarm.stamp
> >> +			)) >linkfarm.stamp.tmp;				\
> >> +	cmp linkfarm.stamp.tmp linkfarm.stamp 2>/dev/null &&		\
> > 
> > I think we want 'cmp -s' here.
> 
> Oh, right. This removes the need for redirecting error output.
> Shall I resend or could you fix it up when committing?
> 
> 

Please resend with my ack.

> Juergen
diff mbox

Patch

diff --git a/stubdom/Makefile b/stubdom/Makefile
index bc49cfe..38f1688 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -298,9 +298,13 @@  ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
 	(cd $$src && find *	! -type l  -type f  $(addprefix ! -name ,	\
 			'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen	\
 			'*.html' '*.pod'					\
-			)) |							\
-	    while read f; do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done
-	touch ioemu/linkfarm.stamp
+			)) >linkfarm.stamp.tmp;				\
+	cmp linkfarm.stamp.tmp linkfarm.stamp 2>/dev/null &&		\
+		rm linkfarm.stamp.tmp || {				\
+		mv linkfarm.stamp.tmp linkfarm.stamp;			\
+		cat linkfarm.stamp | while read f;			\
+			do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done;	\
+	}
 else
 export QEMU_ROOT