[oe] [PATCH] SWI-Prolog: New program

Frans Meulenbroeks fransmeulenbroeks at gmail.com
Wed Oct 6 13:45:13 UTC 2010


Jayen, thanks for your contribution.
Below some feedback.

2010/10/6 Jayen Ashar <jayen at cse.unsw.edu.au>:
> * Starting with SWI-Prolog 5.10.1
> * SWI-Prolog is a fast and powerful ISO/Edinburgh-style Prolog compiler with a
> *  rich set of built-in predicates. It offers a fast, robust and small
> *  environment which enables substantial applications to be developed with it.
>
> Signed-off-by: Jayen Ashar <jayen at cse.unsw.edu.au>
> ---
>  recipes/swi-prolog/swi-prolog.inc             |   76 +++++++++++++++++++++++++
>  recipes/swi-prolog/swi-prolog/configure.patch |   11 ++++
>  recipes/swi-prolog/swi-prolog_5.10.1.bb       |    3 +
>  3 files changed, 90 insertions(+), 0 deletions(-)
>  create mode 100644 recipes/swi-prolog/swi-prolog.inc
>  create mode 100644 recipes/swi-prolog/swi-prolog/configure.patch
>  create mode 100644 recipes/swi-prolog/swi-prolog_5.10.1.bb
>
> diff --git a/recipes/swi-prolog/swi-prolog.inc b/recipes/swi-prolog/swi-prolog.inc
> new file mode 100644
> index 0000000..772873e
> --- /dev/null
> +++ b/recipes/swi-prolog/swi-prolog.inc
> @@ -0,0 +1,76 @@
> +DESCRIPTION = "SWI-Prolog is a fast and powerful ISO/Edinburgh-style Prolog compiler with a rich set of built-in predicates. It offers a fast, robust and small environment which enables substantial applications to be developed with it."
> +HOMEPAGE = "http://www.swi-prolog.org/"
> +SECTION = "interpreters"
> +PRIORITY = "optional"
> +LICENSE = "LGPL"
> +DEPENDS = "ncurses readline gmp chrpath"

Do you need chrpath on the target
> +
> +INC_PR = "r1"

New recipes start with r0

> +
> +SRC_URI = "http://mirror.cse.unsw.edu.au/pub/debian/pool/main/s/${PN}/${PN}_${PV}.orig.tar.gz \
> +           file://configure.patch;patch=1"
> +
> +S = "${WORKDIR}/pl-${PV}"
> +
> +inherit autotools
> +
> +#overriden because we don't want to run autoconf on releases
> +do_configure() {
> +  if [ -e ${S}/configure ]; then
> +    oe_runconf $@
> +  else
> +    oenote "nothing to configure ${S}"
> +  fi
> +}
> +
> +#appended so we can run configure and make on the packages directory after
> +#compiling the main enging

Hm, not too keen on that. What about splitting the recipe in two; one
for the main engine, and one for the packages?

> +do_compile_append() {
> +  if [ -e ${S}/packages/configure ]; then
> +  if [ -x ${S}/packages/configure ] ; then
> +    cd ${S}/packages
> +    export DISABLE_PKGS="xpce http pldoc jpl"
> +    cfgcmd="${S}/packages/configure \
> +        --build=${BUILD_SYS} \
> +        --host=${HOST_SYS} \
> +        --target=${TARGET_SYS} \
> +        --prefix=${prefix} \
> +        --exec_prefix=${exec_prefix} \
> +        --bindir=${bindir} \
> +        --sbindir=${sbindir} \
> +        --libexecdir=${libexecdir} \
> +        --datadir=${datadir} \
> +        --sysconfdir=${sysconfdir} \
> +        --sharedstatedir=${sharedstatedir} \
> +        --localstatedir=${localstatedir} \
> +        --libdir=${libdir} \
> +        --includedir=${includedir} \
> +        --oldincludedir=${oldincludedir} \
> +        --infodir=${infodir} \
> +        --mandir=${mandir} \
> +      ${EXTRA_OECONF} \
> +        $@"
> +    oenote "Running $cfgcmd..."
> +    $cfgcmd || oefatal "oe_runconf failed"
> +  else
> +    oefatal "no configure script found"
> +  fi
> +  else
> +    oenote "nothing to configure ${S}/packages"
> +  fi
> +  if [ -e packages/Makefile -o -e packages/makefile ]; then
> +    oe_runmake -C packages || die "make failed"
> +  else
> +    oenote "nothing to compile"
> +  fi
> +}
> +
> +#to install the packages
> +do_install_append() {
> +  oe_runmake -C packages 'DESTDIR=${D}' install
> +}
> +
> +#so debug files aren't included in the main package
> +FILES_${PN}-dbg += " ${libdir}/swipl-${PV}/bin/*/.debug ${libdir}/swipl-${PV}/lib/*/.debug"
> +#so the main package includes dependent libraries and packages
> +FILES_${PN} += " ${libdir}/swipl-${PV}"
> diff --git a/recipes/swi-prolog/swi-prolog/configure.patch b/recipes/swi-prolog/swi-prolog/configure.patch
> new file mode 100644
> index 0000000..58ecd58
> --- /dev/null
> +++ b/recipes/swi-prolog/swi-prolog/configure.patch
> @@ -0,0 +1,11 @@
> +--- a/src/configure~    2010-07-21 23:04:23.000000000 +1000
> ++++ b/src/configure     2010-10-01 14:02:15.000000000 +1000
> +@@ -7470,7 +7470,7 @@
> +
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread support for cpu clocks" >&5
> + $as_echo_n "checking for pthread support for cpu clocks... " >&6; }
> +-if test "$cross_compiling" = yes; then :
> ++if test x"$cross_compiling" = yes; then :
> +   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
> + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
> + as_fn_error "cannot run test program while cross compiling
> diff --git a/recipes/swi-prolog/swi-prolog_5.10.1.bb b/recipes/swi-prolog/swi-prolog_5.10.1.bb
> new file mode 100644
> index 0000000..bb7e95b
> --- /dev/null
> +++ b/recipes/swi-prolog/swi-prolog_5.10.1.bb
> @@ -0,0 +1,3 @@
> +require swi-prolog.inc
> +
> +PR = "${INC_PR}.1"

Again here start with .0

Best regards, Frans




More information about the Openembedded-devel mailing list