Patchwork [2/2] Adjust v86d.mk per better source URL and build method.

login
register
mail settings
Submitter Dimitry Golubovsky
Date May 7, 2012, 10:28 a.m.
Message ID <1336386538-27684-2-git-send-email-golubovsky@gmail.com>
Download mbox | patch
Permalink /patch/157286/
State Not Applicable
Headers show

Comments

Dimitry Golubovsky - May 7, 2012, 10:28 a.m.
* git source URL -> http source URL
 * AUTOTARGETS -> GENTARGETS

Signed-off-by: Dmitry <golubovsky@gmail.com>
---
 package/v86d/v86d.mk |   23 +++++++++++------------
 1 files changed, 11 insertions(+), 12 deletions(-)
Baruch Siach - May 7, 2012, 11 a.m.
Hi Dmitry,

Please squash this patch into the previous one, and send a single fixed patch.

A couple more comments below.

On Mon, May 07, 2012 at 06:28:58AM -0400, Dmitry wrote:
>  * git source URL -> http source URL
>  * AUTOTARGETS -> GENTARGETS
> 
> Signed-off-by: Dmitry <golubovsky@gmail.com>
> ---
>  package/v86d/v86d.mk |   23 +++++++++++------------
>  1 files changed, 11 insertions(+), 12 deletions(-)
> 
> diff --git a/package/v86d/v86d.mk b/package/v86d/v86d.mk
> index 035797e..5147a2d 100644
> --- a/package/v86d/v86d.mk
> +++ b/package/v86d/v86d.mk
> @@ -4,23 +4,22 @@
>  # 
>  ############################################
>  
> -V86D_VERSION = v86d-0.1.10
> -V86D_SITE = git://repo.or.cz/v86d.git
> -
> -# It is necessary to define __i386__ explicitly for successful compilation.
> -
> -define V86D_BUILD_CMDS
> -	$(MAKE) CC="$(TARGET_CC) -D__i386__" LD="$(TARGET_LD)" -C $(@D) all
> -endef
> -
> -V86D_POST_CONFIGURE_HOOKS += V86D_REALLY_RUN_CONFIGURE
> +V86D_VERSION = 0.1.10
> +V86D_SOURCE = v86d-$(V86D_VERSION).tar.bz2
> +V86D_SITE = http://dev.gentoo.org/~spock/projects/uvesafb/archive
>  
>  # v86d's configure script is not autoconf-based: parameters
>  # supplied by Buildroot cause it to produce no result; explicit
>  # invocation is needed.

Since you don't use Buildroot's autoconf support, this comment is no longer 
relevant.

>  
> -define V86D_REALLY_RUN_CONFIGURE
> +define V86D_CONFIGURE_CMDS
>  	(cd $(@D) ; ./configure --default)
>  endef
>  
> -$(eval $(call AUTOTARGETS))
> +# It is necessary to define __i386__ explicitly for successful compilation.
> +
> +define V86D_BUILD_CMDS
> +	$(MAKE) CC="$(TARGET_CC) -D__i386__" LD="$(TARGET_LD)" -C $(@D) all

You can used $(TARGET_CONFIGURE_OPTS) here as well.

baruch

> +endef
> +
> +$(eval $(call GENTARGETS))
Dimitry Golubovsky - May 7, 2012, 12:47 p.m.
Baruch,

On Mon, May 7, 2012 at 7:00 AM, Baruch Siach <baruch@tkos.co.il> wrote:

>>  # v86d's configure script is not autoconf-based: parameters
>>  # supplied by Buildroot cause it to produce no result; explicit
>>  # invocation is needed.
>
> Since you don't use Buildroot's autoconf support, this comment is no longer
> relevant.

Well, I thought this would be the explanation why there is a configure
script, yet it is a GENTARGET.

>> +
>> +define V86D_BUILD_CMDS
>> +     $(MAKE) CC="$(TARGET_CC) -D__i386__" LD="$(TARGET_LD)" -C $(@D) all
>
> You can used $(TARGET_CONFIGURE_OPTS) here as well.

I tried that, and it did not compile. -D__i386__ should be given
explicitly to cc.

Thanks.
Baruch Siach - May 7, 2012, 12:59 p.m.
Hi Dimitry,

On Mon, May 07, 2012 at 08:47:10AM -0400, Dimitry Golubovsky wrote:
> On Mon, May 7, 2012 at 7:00 AM, Baruch Siach <baruch@tkos.co.il> wrote:
> 
> >>  # v86d's configure script is not autoconf-based: parameters
> >>  # supplied by Buildroot cause it to produce no result; explicit
> >>  # invocation is needed.
> >
> > Since you don't use Buildroot's autoconf support, this comment is no longer
> > relevant.
> 
> Well, I thought this would be the explanation why there is a configure
> script, yet it is a GENTARGET.

The comment needs to be reworded, then. Something like: "v86d's configure 
script is not autoconf-based, so we use GENTARGET".

> >> +
> >> +define V86D_BUILD_CMDS
> >> +     $(MAKE) CC="$(TARGET_CC) -D__i386__" LD="$(TARGET_LD)" -C $(@D) all
> >
> > You can used $(TARGET_CONFIGURE_OPTS) here as well.
> 
> I tried that, and it did not compile. -D__i386__ should be given
> explicitly to cc.

Ah, you're right. I haven't noticed the quotes delimiting the CC variable.

baruch
Thomas Petazzoni - May 7, 2012, 1:45 p.m.
Le Mon, 7 May 2012 08:47:10 -0400,
Dimitry Golubovsky <golubovsky@gmail.com> a écrit :

> >> +define V86D_BUILD_CMDS
> >> +     $(MAKE) CC="$(TARGET_CC) -D__i386__" LD="$(TARGET_LD)" -C
> >> $(@D) all
> >
> > You can used $(TARGET_CONFIGURE_OPTS) here as well.
> 
> I tried that, and it did not compile. -D__i386__ should be given
> explicitly to cc.

This -D is rather a CFLAGS, so:

	$(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -D__i386__" -C $(@D) all

Thomas
Dimitry Golubovsky - May 7, 2012, 1:47 p.m.
OK Thanks, I'll try this way.

On Mon, May 7, 2012 at 9:45 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:

>> I tried that, and it did not compile. -D__i386__ should be given
>> explicitly to cc.
>
> This -D is rather a CFLAGS, so:
>
>        $(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -D__i386__" -C $(@D) all
Baruch Siach - May 7, 2012, 1:55 p.m.
Hi Thomas,

On Mon, May 07, 2012 at 03:45:41PM +0200, Thomas Petazzoni wrote:
> Le Mon, 7 May 2012 08:47:10 -0400,
> Dimitry Golubovsky <golubovsky@gmail.com> a écrit :
> 
> > >> +define V86D_BUILD_CMDS
> > >> +     $(MAKE) CC="$(TARGET_CC) -D__i386__" LD="$(TARGET_LD)" -C
> > >> $(@D) all
> > >
> > > You can used $(TARGET_CONFIGURE_OPTS) here as well.
> > 
> > I tried that, and it did not compile. -D__i386__ should be given
> > explicitly to cc.
> 
> This -D is rather a CFLAGS, so:
> 
> 	$(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -D__i386__" -C $(@D) all

But then you'll have CFLAGS defined twice. Is this OK?

baruch
Thomas Petazzoni - May 7, 2012, 2:04 p.m.
Le Mon, 7 May 2012 16:55:19 +0300,
Baruch Siach <baruch@tkos.co.il> a écrit :

> > 	$(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS)
> > -D__i386__" -C $(@D) all
> 
> But then you'll have CFLAGS defined twice. Is this OK?

You'll have a first definition of CFLAGS in TARGET_CONFIGURE_OPTS,
overriden by the local redefinition. We do this in numerous places in
Buildroot already.

Thomas
Dimitry Golubovsky - May 8, 2012, 3:39 a.m.
Hi,

On Mon, May 7, 2012 at 9:45 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Le Mon, 7 May 2012 08:47:10 -0400,
> Dimitry Golubovsky <golubovsky@gmail.com> a écrit :
>
>> >> +define V86D_BUILD_CMDS
>> >> +     $(MAKE) CC="$(TARGET_CC) -D__i386__" LD="$(TARGET_LD)" -C
>> >> $(@D) all
>> >
>> > You can used $(TARGET_CONFIGURE_OPTS) here as well.
>>
>> I tried that, and it did not compile. -D__i386__ should be given
>> explicitly to cc.
>
> This -D is rather a CFLAGS, so:
>
>        $(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -D__i386__" -C $(@D) all
>

No, it does not work this way. Value of $(CC) with -D__i386__ should
be passed deeper down to the lowest level Makefile in order for v86d
to compile.

/40G2/golubovsky/src/buildroot-patching/buildroot/output/host/usr/bin/i586-unknown-linux-uclibc-gcc
-D__i386__ -c -pipe -Os  -o fpu.o fpu.c
In file included from decode.c:41:0:
x86emu/x86emui.h:64:20: fatal error: x86emu.h: No such file or directory

(the way you proposed) does not work as local flags are lost.

But:

/40G2/golubovsky/src/buildroot-patching/buildroot/output/host/usr/bin/i586-unknown-linux-uclibc-gcc
-D__i386__ -c -I. -I../../include -I../../include/x86emu -o decode.o
decode.c
v86_x86emu.c: In function 'v86_init':
v86_x86emu.c:50:3: warning: initialization from incompatible pointer type
v86_x86emu.c:53:3: warning: initialization from incompatible pointer type
v86_x86emu.c:57:3: warning: initialization from incompatible pointer type
v86_x86emu.c:58:3: warning: initialization from incompatible pointer type
v86_x86emu.c:59:3: warning: initialization from incompatible pointer type
v86_x86emu.c:60:3: warning: initialization from incompatible pointer type
v86_x86emu.c:61:3: warning: initialization from incompatible pointer type
v86_x86emu.c:62:3: warning: initialization from incompatible pointer type

(my way) works as it is only $CC that is needed by the lower level Makefile.

I'll make other changes as recommended.

Thanks.
Baruch Siach - May 8, 2012, 5:15 a.m.
Hi Thomas,

On Mon, May 07, 2012 at 04:04:06PM +0200, Thomas Petazzoni wrote:
> Le Mon, 7 May 2012 16:55:19 +0300,
> Baruch Siach <baruch@tkos.co.il> a écrit :
> 
> > > 	$(MAKE) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS)
> > > -D__i386__" -C $(@D) all
> > 
> > But then you'll have CFLAGS defined twice. Is this OK?
> 
> You'll have a first definition of CFLAGS in TARGET_CONFIGURE_OPTS,
> overriden by the local redefinition. We do this in numerous places in
> Buildroot already.

Is this make behaviour documented? I couldn't find any mention of this in the 
manual.

baruch

Patch

diff --git a/package/v86d/v86d.mk b/package/v86d/v86d.mk
index 035797e..5147a2d 100644
--- a/package/v86d/v86d.mk
+++ b/package/v86d/v86d.mk
@@ -4,23 +4,22 @@ 
 # 
 ############################################
 
-V86D_VERSION = v86d-0.1.10
-V86D_SITE = git://repo.or.cz/v86d.git
-
-# It is necessary to define __i386__ explicitly for successful compilation.
-
-define V86D_BUILD_CMDS
-	$(MAKE) CC="$(TARGET_CC) -D__i386__" LD="$(TARGET_LD)" -C $(@D) all
-endef
-
-V86D_POST_CONFIGURE_HOOKS += V86D_REALLY_RUN_CONFIGURE
+V86D_VERSION = 0.1.10
+V86D_SOURCE = v86d-$(V86D_VERSION).tar.bz2
+V86D_SITE = http://dev.gentoo.org/~spock/projects/uvesafb/archive
 
 # v86d's configure script is not autoconf-based: parameters
 # supplied by Buildroot cause it to produce no result; explicit
 # invocation is needed.
 
-define V86D_REALLY_RUN_CONFIGURE
+define V86D_CONFIGURE_CMDS
 	(cd $(@D) ; ./configure --default)
 endef
 
-$(eval $(call AUTOTARGETS))
+# It is necessary to define __i386__ explicitly for successful compilation.
+
+define V86D_BUILD_CMDS
+	$(MAKE) CC="$(TARGET_CC) -D__i386__" LD="$(TARGET_LD)" -C $(@D) all
+endef
+
+$(eval $(call GENTARGETS))