diff mbox

[v2] agg: new package

Message ID 1398351989-24238-1-git-send-email-julien.boibessot@free.fr
State Changes Requested
Headers show

Commit Message

Julien Boibessot April 24, 2014, 3:06 p.m. UTC
From: Julien Boibessot <julien.boibessot@armadeus.com>


Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
---
 This library will be needed by gnash (soon coming Flash player).

 Changes since v1:
 * Took Arnout/Thomas/Yann remarks into account:
   - add comments for AGG_AUTORECONF usage and sdl-prefix redefinition,
   - fixes license (comments welcome),
   - add a patch to fixes autoreconf problems previously hacked directly in agg.mk
   - changed commit Subject

 package/Config.in                         |    1 +
 package/agg/Config.in                     |   13 +++++++++
 package/agg/agg-make-autoreconfable.patch |   25 ++++++++++++++++++
 package/agg/agg.mk                        |   39 +++++++++++++++++++++++++++++
 4 files changed, 78 insertions(+), 0 deletions(-)
 create mode 100644 package/agg/Config.in
 create mode 100644 package/agg/agg-make-autoreconfable.patch
 create mode 100644 package/agg/agg.mk

Comments

Julien Boibessot April 30, 2014, 7:01 p.m. UTC | #1
ping ?

On 04/24/2014 05:06 PM, julien.boibessot@free.fr wrote:
> From: Julien Boibessot <julien.boibessot@armadeus.com>
>
>
> Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
> ---
>  This library will be needed by gnash (soon coming Flash player).
>
>  Changes since v1:
>  * Took Arnout/Thomas/Yann remarks into account:
>    - add comments for AGG_AUTORECONF usage and sdl-prefix redefinition,
>    - fixes license (comments welcome),
>    - add a patch to fixes autoreconf problems previously hacked directly in agg.mk
>    - changed commit Subject
>
>  package/Config.in                         |    1 +
>  package/agg/Config.in                     |   13 +++++++++
>  package/agg/agg-make-autoreconfable.patch |   25 ++++++++++++++++++
>  package/agg/agg.mk                        |   39 +++++++++++++++++++++++++++++
>  4 files changed, 78 insertions(+), 0 deletions(-)
>  create mode 100644 package/agg/Config.in
>  create mode 100644 package/agg/agg-make-autoreconfable.patch
>  create mode 100644 package/agg/agg.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 688ed4d..3b34a67 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -556,6 +556,7 @@ source "package/lockdev/Config.in"
>  endmenu
>  
>  menu "Graphics"
> +source "package/agg/Config.in"
>  source "package/atk/Config.in"
>  source "package/cairo/Config.in"
>  source "package/fltk/Config.in"
> diff --git a/package/agg/Config.in b/package/agg/Config.in
> new file mode 100644
> index 0000000..a842098
> --- /dev/null
> +++ b/package/agg/Config.in
> @@ -0,0 +1,13 @@
> +config BR2_PACKAGE_AGG
> +	bool "agg"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	select BR2_PACKAGE_SDL
> +	help
> +	  The Anti-Grain Geometry project. A High Quality 2D Graphics Rendering
> +	  Engine for C++.
> +	  We select the SDL backend by default.
> +
> +	  http://www.antigrain.com/index.html
> +
> +comment "agg needs a toolchain with C++ support"
> +	depends on !BR2_INSTALL_LIBSTDCPP
> diff --git a/package/agg/agg-make-autoreconfable.patch b/package/agg/agg-make-autoreconfable.patch
> new file mode 100644
> index 0000000..9c069a3
> --- /dev/null
> +++ b/package/agg/agg-make-autoreconfable.patch
> @@ -0,0 +1,25 @@
> +Make the package autoreconfigurable without having to create NEWS, AUTHORS and
> +README files. Also fixes reconfiguring with recent automake by removing
> +AM_C_PROTOTYPES.
> +
> +Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
> +
> +--- agg-2.5.org/configure.in	2014-04-24 15:53:57.832886577 +0200
> ++++ agg-2.5/configure.in	2014-04-24 16:06:56.788749209 +0200
> +@@ -1,14 +1,13 @@
> +-AC_INIT(src/agg_arc.cpp) # give me a source file, any source file...
> ++AC_INIT([agg], 2.5.0)
> + AC_CANONICAL_TARGET
> + AC_CONFIG_HEADERS(include/config.h)
> +-AM_INIT_AUTOMAKE(agg, 2.5.0)
> ++AM_INIT_AUTOMAKE([foreign])
> + 
> + 
> + dnl Checks for programs.
> + AC_PROG_CC
> + AC_PROG_CXX
> + AC_ISC_POSIX
> +-AM_C_PROTOTYPES
> + if test "x$U" != "x"; then
> +   AC_MSG_ERROR(Compiler not ANSI compliant)
> + fi
> diff --git a/package/agg/agg.mk b/package/agg/agg.mk
> new file mode 100644
> index 0000000..4802d3e
> --- /dev/null
> +++ b/package/agg/agg.mk
> @@ -0,0 +1,39 @@
> +###############################################################################
> +#
> +# agg
> +#
> +###############################################################################
> +
> +AGG_VERSION = 2.5
> +AGG_SITE = http://www.antigrain.com/
> +AGG_LICENSE = GPLv2+
> +AGG_LICENSE_FILES = copying
> +# Examples (if one day enabled) use gpc library which has a different license:
> +#AGG_LICENSE += with exceptions: gpc sources are free for non-commercial use
> +#AGG_LICENSE_FILES += gpc/copying.txt
> +AGG_INSTALL_STAGING = YES
> +# No ./configure in the sources, we need to generate it:
> +AGG_AUTORECONF = YES
> +
> +AGG_DEPENDENCIES = host-pkgconf sdl
> +
> +# Forces sdl-prefix, otherwise configure will set it to Host SDL devt files
> +# directory, if installed:
> +AGG_CONF_OPT = \
> +        --with-sdl-prefix=$(STAGING_DIR)/usr \
> +        --disable-sdltest
> +
> +ifeq ($(BR2_PACKAGE_SDL_X11),)
> +AGG_CONF_OPT += \
> +	--with-x=NO \
> +	--disable-examples # examples require X11
> +endif
> +
> +ifeq ($(BR2_PACKAGE_FREETYPE),y)
> +AGG_DEPENDENCIES += freetype
> +AGG_CONF_OPT += --enable-freetype
> +else
> +AGG_CONF_OPT += --disable-freetype
> +endif
> +
> +$(eval $(autotools-package))
Thomas De Schampheleire April 30, 2014, 7:16 p.m. UTC | #2
Hi Julien,

On Thu, Apr 24, 2014 at 5:06 PM,  <julien.boibessot@free.fr> wrote:
> From: Julien Boibessot <julien.boibessot@armadeus.com>
>
>
> Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
> ---
>  This library will be needed by gnash (soon coming Flash player).
>
>  Changes since v1:
>  * Took Arnout/Thomas/Yann remarks into account:
>    - add comments for AGG_AUTORECONF usage and sdl-prefix redefinition,
>    - fixes license (comments welcome),
>    - add a patch to fixes autoreconf problems previously hacked directly in agg.mk
>    - changed commit Subject
>
>  package/Config.in                         |    1 +
>  package/agg/Config.in                     |   13 +++++++++
>  package/agg/agg-make-autoreconfable.patch |   25 ++++++++++++++++++
>  package/agg/agg.mk                        |   39 +++++++++++++++++++++++++++++
>  4 files changed, 78 insertions(+), 0 deletions(-)
>  create mode 100644 package/agg/Config.in
>  create mode 100644 package/agg/agg-make-autoreconfable.patch
>  create mode 100644 package/agg/agg.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 688ed4d..3b34a67 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -556,6 +556,7 @@ source "package/lockdev/Config.in"
>  endmenu
>
>  menu "Graphics"
> +source "package/agg/Config.in"
>  source "package/atk/Config.in"
>  source "package/cairo/Config.in"
>  source "package/fltk/Config.in"
> diff --git a/package/agg/Config.in b/package/agg/Config.in
> new file mode 100644
> index 0000000..a842098
> --- /dev/null
> +++ b/package/agg/Config.in
> @@ -0,0 +1,13 @@
> +config BR2_PACKAGE_AGG
> +       bool "agg"
> +       depends on BR2_INSTALL_LIBSTDCPP
> +       select BR2_PACKAGE_SDL
> +       help
> +         The Anti-Grain Geometry project. A High Quality 2D Graphics Rendering
> +         Engine for C++.
> +         We select the SDL backend by default.
> +
> +         http://www.antigrain.com/index.html
> +
> +comment "agg needs a toolchain with C++ support"
> +       depends on !BR2_INSTALL_LIBSTDCPP

The comment should be 'agg needs a toolchain w/ C++'
(the comment string is defined strictly for uniformity and
limited-terminal-width reasons, see
http://buildroot.uclibc.org/downloads/manual/manual.html#dependencies-target-toolchain-options)

> diff --git a/package/agg/agg-make-autoreconfable.patch b/package/agg/agg-make-autoreconfable.patch

Patches should be named foo-0001-description.patch

[..]
> diff --git a/package/agg/agg.mk b/package/agg/agg.mk
> new file mode 100644
> index 0000000..4802d3e
> --- /dev/null
> +++ b/package/agg/agg.mk
> @@ -0,0 +1,39 @@
> +###############################################################################
> +#
> +# agg
> +#
> +###############################################################################

These should be 80 # signs, not 79.

Best regards,
Thomas
Yann E. MORIN April 30, 2014, 8:43 p.m. UTC | #3
Julien, All,

On 2014-04-24 17:06 +0200, julien.boibessot@free.fr spake thusly:
> From: Julien Boibessot <julien.boibessot@armadeus.com>
[--SNIP--]
> diff --git a/package/agg/Config.in b/package/agg/Config.in
> new file mode 100644
> index 0000000..a842098
> --- /dev/null
> +++ b/package/agg/Config.in
> @@ -0,0 +1,13 @@
> +config BR2_PACKAGE_AGG
> +	bool "agg"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	select BR2_PACKAGE_SDL
> +	help
> +	  The Anti-Grain Geometry project. A High Quality 2D Graphics Rendering
> +	  Engine for C++.
> +	  We select the SDL backend by default.
> +
> +	  http://www.antigrain.com/index.html

Not your fault, but here's what one gets when one visits
http://antigrain.com/ :

    antigrain.com expired on 04/09/2014 and is pending renewal or
    deletion

So, I'm a bit sceptic at adding this package, just because there will
shortly be no way of getting it... :-/

But wikipedia comes to the rescue, and points us to a "copy" of the
site, on sourceforge:
    http://agg.sourceforge.net/antigrain.com/index.html

You may want to point to SF instead.

Still upstream does not seem very active, and I'm a bit uneasy at adding
it...

BTW, strictly speaking, it is not *needed* by gnash. It is only one of
the few, somewhat-supported backends:
    directfb, OpenVG, OpenGLES1, OpenGL, Cairo.

Granted, only cairo and agg are enabled by default (others are
considered incomplete).

> +comment "agg needs a toolchain with C++ support"
> +	depends on !BR2_INSTALL_LIBSTDCPP
> diff --git a/package/agg/agg-make-autoreconfable.patch b/package/agg/agg-make-autoreconfable.patch
> new file mode 100644
> index 0000000..9c069a3
> --- /dev/null
> +++ b/package/agg/agg-make-autoreconfable.patch
> @@ -0,0 +1,25 @@
> +Make the package autoreconfigurable without having to create NEWS, AUTHORS and
> +README files. Also fixes reconfiguring with recent automake by removing
> +AM_C_PROTOTYPES.
> +
> +Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
> +
> +--- agg-2.5.org/configure.in	2014-04-24 15:53:57.832886577 +0200
> ++++ agg-2.5/configure.in	2014-04-24 16:06:56.788749209 +0200
> +@@ -1,14 +1,13 @@
> +-AC_INIT(src/agg_arc.cpp) # give me a source file, any source file...
> ++AC_INIT([agg], 2.5.0)

Yep, good, except you should now need something like:
    AC_CONFIG_SRCDIR([src/agg_arc.cpp]) # give me a source file, any source file...

> + AC_CANONICAL_TARGET
> + AC_CONFIG_HEADERS(include/config.h)
> +-AM_INIT_AUTOMAKE(agg, 2.5.0)
> ++AM_INIT_AUTOMAKE([foreign])

Yep! :-)

I know upstream looks pretty dead, but it might still be worth pushing
this patch to them if possible (once the nit above is fixed.)

> + 
> + dnl Checks for programs.
> + AC_PROG_CC
> + AC_PROG_CXX
> + AC_ISC_POSIX
> +-AM_C_PROTOTYPES

Yep, die C prototypes, die! :-]

> + if test "x$U" != "x"; then
> +   AC_MSG_ERROR(Compiler not ANSI compliant)
> + fi
> diff --git a/package/agg/agg.mk b/package/agg/agg.mk
> new file mode 100644
> index 0000000..4802d3e
> --- /dev/null
> +++ b/package/agg/agg.mk
> @@ -0,0 +1,39 @@
> +###############################################################################
> +#
> +# agg
> +#
> +###############################################################################
> +
> +AGG_VERSION = 2.5
> +AGG_SITE = http://www.antigrain.com/

Ditto, point to SF instead.

> +AGG_LICENSE = GPLv2+
> +AGG_LICENSE_FILES = copying
> +# Examples (if one day enabled) use gpc library which has a different license:
> +#AGG_LICENSE += with exceptions: gpc sources are free for non-commercial use
> +#AGG_LICENSE_FILES += gpc/copying.txt
> +AGG_INSTALL_STAGING = YES
> +# No ./configure in the sources, we need to generate it:
> +AGG_AUTORECONF = YES
> +
> +AGG_DEPENDENCIES = host-pkgconf sdl
> +
> +# Forces sdl-prefix, otherwise configure will set it to Host SDL devt files
> +# directory, if installed:
> +AGG_CONF_OPT = \
> +        --with-sdl-prefix=$(STAGING_DIR)/usr \
> +        --disable-sdltest
> +
> +ifeq ($(BR2_PACKAGE_SDL_X11),)
> +AGG_CONF_OPT += \
> +	--with-x=NO \
> +	--disable-examples # examples require X11

Single line, please, it is not long enough to warrant a multi-line

Besides, the comment on that second line is part of the variable value,
so it might come and interfere with the build. Move it above:

    # Dont build examples, they need X11
    AGG_CONF_OPT += --with-x=NO --disable-examples

> +endif

Peter might disagree, but I prefer when there is an explicit else-clause
that does the opposite:

    else
    AGG_CONF_OPT += --with-x --enable-examples
    endif

(Or disable exanples altogether anyway.)

> +ifeq ($(BR2_PACKAGE_FREETYPE),y)
> +AGG_DEPENDENCIES += freetype
> +AGG_CONF_OPT += --enable-freetype
> +else
> +AGG_CONF_OPT += --disable-freetype
> +endif
> +
> +$(eval $(autotools-package))

Regards,
Yann E. MORIN.
Julien Boibessot May 2, 2014, 9:01 a.m. UTC | #4
Yann, all,

On 04/30/2014 10:43 PM, Yann E. MORIN wrote:
> Julien, All,
>
> On 2014-04-24 17:06 +0200, julien.boibessot@free.fr spake thusly:
>> From: Julien Boibessot <julien.boibessot@armadeus.com>
> [--SNIP--]
>> diff --git a/package/agg/Config.in b/package/agg/Config.in
>> new file mode 100644
>> index 0000000..a842098
>> --- /dev/null
>> +++ b/package/agg/Config.in
>> @@ -0,0 +1,13 @@
>> +config BR2_PACKAGE_AGG
>> +	bool "agg"
>> +	depends on BR2_INSTALL_LIBSTDCPP
>> +	select BR2_PACKAGE_SDL
>> +	help
>> +	  The Anti-Grain Geometry project. A High Quality 2D Graphics Rendering
>> +	  Engine for C++.
>> +	  We select the SDL backend by default.
>> +
>> +	  http://www.antigrain.com/index.html
> Not your fault, but here's what one gets when one visits
> http://antigrain.com/ :
>
>     antigrain.com expired on 04/09/2014 and is pending renewal or
>     deletion
>
> So, I'm a bit sceptic at adding this package, just because there will
> shortly be no way of getting it... :-/
>
> But wikipedia comes to the rescue, and points us to a "copy" of the
> site, on sourceforge:
>     http://agg.sourceforge.net/antigrain.com/index.html
>
> You may want to point to SF instead.
>
> Still upstream does not seem very active, and I'm a bit uneasy at adding
> it...
>
> BTW, strictly speaking, it is not *needed* by gnash. It is only one of
> the few, somewhat-supported backends:
>     directfb, OpenVG, OpenGLES1, OpenGL, Cairo.
>
> Granted, only cairo and agg are enabled by default (others are
> considered incomplete).

Oups I missed that one... :-(
Would it be OK if I switch to agg-2.4 which is a fork that seems to be
still maintained and used in several other projects ?
( https://sourceforge.net/p/agg/svn/HEAD/tree/)

My idea behind agg was to have a "lightweight" gnash player for ARM9
platform which doesn't have OpenVG/GL accelerators. Do you think cairo
can do the job ? I got inspired from LFS which uses agg as gnash backend.

>
>> +comment "agg needs a toolchain with C++ support"
>> +	depends on !BR2_INSTALL_LIBSTDCPP
>> diff --git a/package/agg/agg-make-autoreconfable.patch b/package/agg/agg-make-autoreconfable.patch
>> new file mode 100644
>> index 0000000..9c069a3
>> --- /dev/null
>> +++ b/package/agg/agg-make-autoreconfable.patch
>> @@ -0,0 +1,25 @@
>> +Make the package autoreconfigurable without having to create NEWS, AUTHORS and
>> +README files. Also fixes reconfiguring with recent automake by removing
>> +AM_C_PROTOTYPES.
>> +
>> +Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
>> +
>> +--- agg-2.5.org/configure.in	2014-04-24 15:53:57.832886577 +0200
>> ++++ agg-2.5/configure.in	2014-04-24 16:06:56.788749209 +0200
>> +@@ -1,14 +1,13 @@
>> +-AC_INIT(src/agg_arc.cpp) # give me a source file, any source file...
>> ++AC_INIT([agg], 2.5.0)
> Yep, good, except you should now need something like:
>     AC_CONFIG_SRCDIR([src/agg_arc.cpp]) # give me a source file, any source file...
>
>> + AC_CANONICAL_TARGET
>> + AC_CONFIG_HEADERS(include/config.h)
>> +-AM_INIT_AUTOMAKE(agg, 2.5.0)
>> ++AM_INIT_AUTOMAKE([foreign])
> Yep! :-)
>
> I know upstream looks pretty dead, but it might still be worth pushing
> this patch to them if possible (once the nit above is fixed.)
>
>> + 
>> + dnl Checks for programs.
>> + AC_PROG_CC
>> + AC_PROG_CXX
>> + AC_ISC_POSIX
>> +-AM_C_PROTOTYPES
> Yep, die C prototypes, die! :-]
>
>> + if test "x$U" != "x"; then
>> +   AC_MSG_ERROR(Compiler not ANSI compliant)
>> + fi
>> diff --git a/package/agg/agg.mk b/package/agg/agg.mk
>> new file mode 100644
>> index 0000000..4802d3e
>> --- /dev/null
>> +++ b/package/agg/agg.mk
>> @@ -0,0 +1,39 @@
>> +###############################################################################
>> +#
>> +# agg
>> +#
>> +###############################################################################
>> +
>> +AGG_VERSION = 2.5
>> +AGG_SITE = http://www.antigrain.com/
> Ditto, point to SF instead.
>
>> +AGG_LICENSE = GPLv2+
>> +AGG_LICENSE_FILES = copying
>> +# Examples (if one day enabled) use gpc library which has a different license:
>> +#AGG_LICENSE += with exceptions: gpc sources are free for non-commercial use
>> +#AGG_LICENSE_FILES += gpc/copying.txt
>> +AGG_INSTALL_STAGING = YES
>> +# No ./configure in the sources, we need to generate it:
>> +AGG_AUTORECONF = YES
>> +
>> +AGG_DEPENDENCIES = host-pkgconf sdl
>> +
>> +# Forces sdl-prefix, otherwise configure will set it to Host SDL devt files
>> +# directory, if installed:
>> +AGG_CONF_OPT = \
>> +        --with-sdl-prefix=$(STAGING_DIR)/usr \
>> +        --disable-sdltest
>> +
>> +ifeq ($(BR2_PACKAGE_SDL_X11),)
>> +AGG_CONF_OPT += \
>> +	--with-x=NO \
>> +	--disable-examples # examples require X11
> Single line, please, it is not long enough to warrant a multi-line
>
> Besides, the comment on that second line is part of the variable value,
> so it might come and interfere with the build. Move it above:
>
>     # Dont build examples, they need X11
>     AGG_CONF_OPT += --with-x=NO --disable-examples
>
>> +endif
> Peter might disagree, but I prefer when there is an explicit else-clause
> that does the opposite:
>
>     else
>     AGG_CONF_OPT += --with-x --enable-examples
>     endif
>
> (Or disable exanples altogether anyway.)

even if it's the default configure options ?

Regards,
Julien


>
>> +ifeq ($(BR2_PACKAGE_FREETYPE),y)
>> +AGG_DEPENDENCIES += freetype
>> +AGG_CONF_OPT += --enable-freetype
>> +else
>> +AGG_CONF_OPT += --disable-freetype
>> +endif
>> +
>> +$(eval $(autotools-package))
> Regards,
> Yann E. MORIN.
>
Yann E. MORIN May 2, 2014, 10:36 a.m. UTC | #5
Julien, All,

[Please do not send HTML mail]

On 2014-05-02 11:01 +0200, Julien Boibessot spake thusly:
> On 04/30/2014 10:43 PM, Yann E. MORIN wrote:
>  Julien, All,On 2014-04-24 17:06 +0200,
>  [1]julien.boibessot@free.fr spake thusly:
[--SNIP--]
>  Not your fault, but here's what one gets when one visits
>  [4]http://antigrain.com/ :    antigrain.com expired on 04/09/2014 and is pending renewal or
>      deletion
[--SNIP--]
> Oups I missed that one... :-(
> Would it be OK if I switch to agg-2.4 which is a fork that seems to be
> still maintained and used in several other projects ?
> ( [6]https://sourceforge.net/p/agg/svn/HEAD/tree/ )

Whatever gets us up-n-runnin', I guess :-)

> My idea behind agg was to have a "lightweight" gnash player for ARM9
> platform which doesn't have OpenVG/GL accelerators. Do you
> think cairo can do the job ? I got inspired from LFS which uses agg
> as gnash backend.

I don't know. If agg makes it work for you, then just add agg. If you or
someone else wants to experiment with cairo, then it's fine too.

>  +comment "agg needs a toolchain with C++ support"

BTW, this should be:

    comment "agg needs a toolchain w/ C++"

See:
    http://buildroot.net/downloads/manual/manual.html#dependencies-target-toolchain-options

>  diff --git a/package/agg/agg.mk b/package/agg/agg.mk
>  new file mode 100644index 0000000..4802d3e
>  --- /dev/null+++ b/package/agg/agg.mk@@ -0,0 +1,39 @@
>  +###############################################################################
>  +#+# agg+#+###############################################################################
>  ++AGG_VERSION = 2.5+AGG_SITE =
>  [8]http://www.antigrain.com/
> 
>  Ditto, point to SF instead.
> 
>  +AGG_LICENSE = GPLv2++AGG_LICENSE_FILES = copying
>  +# Examples (if one day enabled) use gpc library which has a different license:
>  +#AGG_LICENSE += with exceptions: gpc sources are free for non-commercial use
>  +#AGG_LICENSE_FILES += gpc/copying.txt+AGG_INSTALL_STAGING = YES
>  +# No ./configure in the sources, we need to generate it:
>  +AGG_AUTORECONF = YES++AGG_DEPENDENCIES = host-pkgconf sdl
>  ++# Forces sdl-prefix, otherwise configure will set it to Host SDL devt files
>  +# directory, if installed:+AGG_CONF_OPT = \
>  +        --with-sdl-prefix=$(STAGING_DIR)/usr \
>  +        --disable-sdltest++ifeq ($(BR2_PACKAGE_SDL_X11),)
>  +AGG_CONF_OPT += \+     --with-x=NO \+  --disable-examples # examples require X11
> 
>  Single line, please, it is not long enough to warrant a multi-line
>  Besides, the comment on that second line is part of the variable value,
>  so it might come and interfere with the build. Move it above:
>      # Dont build examples, they need X11    AGG_CONF_OPT += --with-x=NO --disable-examples
> 
>  +endif
> 
>  Peter might disagree, but I prefer when there is an explicit else-clause
>  that does the opposite:    else    AGG_CONF_OPT += --with-x --enable-examples
>      endif(Or disable exanples altogether anyway.)
> 
> even if it's the default configure options ?

Yes, I do not trust the defaults.

Regards,
Yann E. NORIN.
Thomas Petazzoni Aug. 3, 2014, 12:58 p.m. UTC | #6
Hello Julien,

On Thu, 24 Apr 2014 17:06:29 +0200, julien.boibessot@free.fr wrote:
> From: Julien Boibessot <julien.boibessot@armadeus.com>
> 
> 
> Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
> ---
>  This library will be needed by gnash (soon coming Flash player).
> 
>  Changes since v1:
>  * Took Arnout/Thomas/Yann remarks into account:
>    - add comments for AGG_AUTORECONF usage and sdl-prefix redefinition,
>    - fixes license (comments welcome),
>    - add a patch to fixes autoreconf problems previously hacked directly in agg.mk
>    - changed commit Subject

Numerous comments were made on this package when you submitted this v2,
but you haven't submitted a new, updated version of this package, even
though the comments date back from early May. I'll therefore mark this
patch as "Changes Requested" in our patch tracking system. Could you
resubmit an updated version, preferably with the 'gnash' package as
well, so that it's clear what agg will be useful for?

Thanks,

Thomas
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index 688ed4d..3b34a67 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -556,6 +556,7 @@  source "package/lockdev/Config.in"
 endmenu
 
 menu "Graphics"
+source "package/agg/Config.in"
 source "package/atk/Config.in"
 source "package/cairo/Config.in"
 source "package/fltk/Config.in"
diff --git a/package/agg/Config.in b/package/agg/Config.in
new file mode 100644
index 0000000..a842098
--- /dev/null
+++ b/package/agg/Config.in
@@ -0,0 +1,13 @@ 
+config BR2_PACKAGE_AGG
+	bool "agg"
+	depends on BR2_INSTALL_LIBSTDCPP
+	select BR2_PACKAGE_SDL
+	help
+	  The Anti-Grain Geometry project. A High Quality 2D Graphics Rendering
+	  Engine for C++.
+	  We select the SDL backend by default.
+
+	  http://www.antigrain.com/index.html
+
+comment "agg needs a toolchain with C++ support"
+	depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/agg/agg-make-autoreconfable.patch b/package/agg/agg-make-autoreconfable.patch
new file mode 100644
index 0000000..9c069a3
--- /dev/null
+++ b/package/agg/agg-make-autoreconfable.patch
@@ -0,0 +1,25 @@ 
+Make the package autoreconfigurable without having to create NEWS, AUTHORS and
+README files. Also fixes reconfiguring with recent automake by removing
+AM_C_PROTOTYPES.
+
+Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
+
+--- agg-2.5.org/configure.in	2014-04-24 15:53:57.832886577 +0200
++++ agg-2.5/configure.in	2014-04-24 16:06:56.788749209 +0200
+@@ -1,14 +1,13 @@
+-AC_INIT(src/agg_arc.cpp) # give me a source file, any source file...
++AC_INIT([agg], 2.5.0)
+ AC_CANONICAL_TARGET
+ AC_CONFIG_HEADERS(include/config.h)
+-AM_INIT_AUTOMAKE(agg, 2.5.0)
++AM_INIT_AUTOMAKE([foreign])
+ 
+ 
+ dnl Checks for programs.
+ AC_PROG_CC
+ AC_PROG_CXX
+ AC_ISC_POSIX
+-AM_C_PROTOTYPES
+ if test "x$U" != "x"; then
+   AC_MSG_ERROR(Compiler not ANSI compliant)
+ fi
diff --git a/package/agg/agg.mk b/package/agg/agg.mk
new file mode 100644
index 0000000..4802d3e
--- /dev/null
+++ b/package/agg/agg.mk
@@ -0,0 +1,39 @@ 
+###############################################################################
+#
+# agg
+#
+###############################################################################
+
+AGG_VERSION = 2.5
+AGG_SITE = http://www.antigrain.com/
+AGG_LICENSE = GPLv2+
+AGG_LICENSE_FILES = copying
+# Examples (if one day enabled) use gpc library which has a different license:
+#AGG_LICENSE += with exceptions: gpc sources are free for non-commercial use
+#AGG_LICENSE_FILES += gpc/copying.txt
+AGG_INSTALL_STAGING = YES
+# No ./configure in the sources, we need to generate it:
+AGG_AUTORECONF = YES
+
+AGG_DEPENDENCIES = host-pkgconf sdl
+
+# Forces sdl-prefix, otherwise configure will set it to Host SDL devt files
+# directory, if installed:
+AGG_CONF_OPT = \
+        --with-sdl-prefix=$(STAGING_DIR)/usr \
+        --disable-sdltest
+
+ifeq ($(BR2_PACKAGE_SDL_X11),)
+AGG_CONF_OPT += \
+	--with-x=NO \
+	--disable-examples # examples require X11
+endif
+
+ifeq ($(BR2_PACKAGE_FREETYPE),y)
+AGG_DEPENDENCIES += freetype
+AGG_CONF_OPT += --enable-freetype
+else
+AGG_CONF_OPT += --disable-freetype
+endif
+
+$(eval $(autotools-package))