diff options
author | Fahad Usman <fahad_usman@mentor.com> | 2012-12-10 19:51:21 +0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-12-13 15:18:43 +0000 |
commit | 9820786bbaf51fca38cf6ec90de623b8420500e1 (patch) | |
tree | f507b5c923a231946a9bc34d576e239c67b83d90 /meta | |
parent | f615f0c140aa0748a16bb34ad5c19d828bd57ea2 (diff) | |
download | poky-9820786bbaf51fca38cf6ec90de623b8420500e1.tar.gz |
libpcre: Improve the recipe
- Improve the cross patch to determine *_FOR_BUILD in configure
- Leverage the fact that autotools.bbclass handles *_FOR_BUILD now
- Drop the now unnecessary do_compile override
- Drop the do_split_packages
- Split out packages for pcregrep, pcretest, in addition to libpcrecpp and
libpcreposix
- add nativesdk to BBCLASSEXTEND as well as native
(From OE-Core rev: 9867a9ad7a80a26654326650752dbbe89c8de3c5)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
- the patch was imported from meta-mentor layer on yoctoproject git server
http://git.yoctoproject.org/cgit/cgit.cgi/meta-mentor as of commit id
62f819b97e356c1d7468fbccbf3a3ceed78b09a8
- broken up the original patch in two parts, this part contains some
improvements to the recipe and the cross patch
Signed-off-by: Fahad Usman <fahad_usman@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-support/libpcre/files/pcre-cross.patch | 53 | ||||
-rw-r--r-- | meta/recipes-support/libpcre/libpcre_8.32.bb | 65 |
2 files changed, 72 insertions, 46 deletions
diff --git a/meta/recipes-support/libpcre/files/pcre-cross.patch b/meta/recipes-support/libpcre/files/pcre-cross.patch index 2ae05a12ca..83880f7098 100644 --- a/meta/recipes-support/libpcre/files/pcre-cross.patch +++ b/meta/recipes-support/libpcre/files/pcre-cross.patch | |||
@@ -1,23 +1,19 @@ | |||
1 | Upstream-Status: Inappropriate [configuration] | 1 | Upstream-Status: Pending |
2 | 2 | ||
3 | To be upstreamable, this patch requires check for *_FOR_BUILD, otherwise | 3 | --- pcre-8.32.orig/Makefile.am |
4 | it needs to pass special variables. | 4 | +++ pcre-8.32/Makefile.am |
5 | 5 | @@ -197,8 +197,18 @@ bin_SCRIPTS = pcre-config | |
6 | It would be nice to implement per-target compiler specification to | 6 | |
7 | automake, as it is done for linker. | 7 | +CC_FOR_BUILD = @CC_FOR_BUILD@ |
8 | 8 | +CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ | |
9 | Even better it would be nice to implement native build time targets in | 9 | +CCLD_FOR_BUILD = @CCLD_FOR_BUILD@ |
10 | automake. | 10 | +LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
11 | 11 | + | |
12 | Index: pcre-7.6/Makefile.am | 12 | if WITH_REBUILD_CHARTABLES |
13 | =================================================================== | ||
14 | --- pcre-7.6.orig/Makefile.am 2008-01-23 17:58:28.000000000 +0000 | ||
15 | +++ pcre-7.6/Makefile.am 2008-04-03 22:32:00.000000000 +0000 | ||
16 | @@ -147,6 +147,11 @@ | ||
17 | 13 | ||
18 | noinst_PROGRAMS += dftables | 14 | noinst_PROGRAMS += dftables |
19 | dftables_SOURCES = dftables.c | 15 | dftables_SOURCES = dftables.c |
20 | +dftables_LINK = $(LINK_FOR_BUILD) -o $@ | 16 | +dftables_LINK = $(CCLD_FOR_BUILD) -o $@ |
21 | +dftables_LDFLAGS = $(LDFLAGS_FOR_BUILD) | 17 | +dftables_LDFLAGS = $(LDFLAGS_FOR_BUILD) |
22 | + | 18 | + |
23 | +dftables.o: $(srcdir)/dftables.c | 19 | +dftables.o: $(srcdir)/dftables.c |
@@ -25,3 +21,28 @@ Index: pcre-7.6/Makefile.am | |||
25 | 21 | ||
26 | pcre_chartables.c: dftables$(EXEEXT) | 22 | pcre_chartables.c: dftables$(EXEEXT) |
27 | ./dftables$(EXEEXT) $@ | 23 | ./dftables$(EXEEXT) $@ |
24 | --- pcre-8.32.orig/configure.ac | ||
25 | +++ pcre-8.32/configure.ac | ||
26 | @@ -72,6 +72,22 @@ then | ||
27 | fi | ||
28 | fi | ||
29 | |||
30 | +if test x"$cross_compiling" = xyes; then | ||
31 | + CC_FOR_BUILD="${CC_FOR_BUILD-gcc}" | ||
32 | + CCLD_FOR_BUILD="${CCLD_FOR_BUILD-gcc}" | ||
33 | + CFLAGS_FOR_BUILD="${CFLAGS_FOR_BUILD}" | ||
34 | + LDFLAGS_FOR_BUILD="${LDFLAGS_FOR_BUILD}" | ||
35 | +else | ||
36 | + CC_FOR_BUILD="${CC_FOR_BUILD-\$(CC)}" | ||
37 | + CCLD_FOR_BUILD="${CCLD_FOR_BUILD-\$(CCLD)}" | ||
38 | + CFLAGS_FOR_BUILD="${CFLAGS_FOR_BUILD-\$(CFLAGS)}" | ||
39 | + LDFLAGS_FOR_BUILD="${LDFLAGS_FOR_BUILD-\$(LDFLAGS)}" | ||
40 | +fi | ||
41 | +AC_ARG_VAR(CC_FOR_BUILD, [build system C compiler]) | ||
42 | +AC_ARG_VAR(CCLD_FOR_BUILD, [build system C linker frontend]) | ||
43 | +AC_ARG_VAR(CFLAGS_FOR_BUILD, [build system C compiler arguments]) | ||
44 | +AC_ARG_VAR(LDFLAGS_FOR_BUILD, [build system C linker frontend arguments]) | ||
45 | + | ||
46 | # AC_PROG_CXX will return "g++" even if no c++ compiler is installed. | ||
47 | # Check for that case, and just disable c++ code if g++ doesn't run. | ||
48 | AC_LANG_PUSH(C++) | ||
diff --git a/meta/recipes-support/libpcre/libpcre_8.32.bb b/meta/recipes-support/libpcre/libpcre_8.32.bb index b6847e8217..e434d55ce9 100644 --- a/meta/recipes-support/libpcre/libpcre_8.32.bb +++ b/meta/recipes-support/libpcre/libpcre_8.32.bb | |||
@@ -5,7 +5,7 @@ to the POSIX regular expression API." | |||
5 | SUMMARY = "Perl Compatible Regular Expressions" | 5 | SUMMARY = "Perl Compatible Regular Expressions" |
6 | HOMEPAGE = "http://www.pcre.org" | 6 | HOMEPAGE = "http://www.pcre.org" |
7 | SECTION = "devel" | 7 | SECTION = "devel" |
8 | PR = "r0" | 8 | PR = "r1" |
9 | LICENSE = "BSD" | 9 | LICENSE = "BSD" |
10 | LIC_FILES_CHKSUM = "file://LICENCE;md5=115e2bee152e2e23e838a29136094877" | 10 | LIC_FILES_CHKSUM = "file://LICENCE;md5=115e2bee152e2e23e838a29136094877" |
11 | SRC_URI = "${SOURCEFORGE_MIRROR}/project/pcre/pcre/${PV}/pcre-${PV}.tar.bz2 \ | 11 | SRC_URI = "${SOURCEFORGE_MIRROR}/project/pcre/pcre/${PV}/pcre-${PV}.tar.bz2 \ |
@@ -17,37 +17,42 @@ SRC_URI[sha256sum] = "a913fb9bd058ef380a2d91847c3c23fcf98e92dc3b47cd08a53c021c5c | |||
17 | 17 | ||
18 | S = "${WORKDIR}/pcre-${PV}" | 18 | S = "${WORKDIR}/pcre-${PV}" |
19 | 19 | ||
20 | PROVIDES = "pcre" | 20 | FILESPATH .= ":${@base_set_filespath([bb.which(BBPATH, 'recipes-support/libpcre/files', direction=True)], d)}" |
21 | DEPENDS = "bzip2 zlib readline" | 21 | |
22 | PROVIDES += "pcre" | ||
23 | DEPENDS += "bzip2 zlib readline" | ||
22 | 24 | ||
23 | inherit autotools binconfig | 25 | inherit autotools binconfig |
24 | 26 | ||
25 | PARALLEL_MAKE = "" | 27 | PARALLEL_MAKE = "" |
26 | 28 | ||
27 | CFLAGS_append = " -D_REENTRANT" | 29 | EXTRA_OECONF = "\ |
28 | CXXFLAGS_powerpc += "-lstdc++" | 30 | --enable-newline-is-lf \ |
29 | EXTRA_OECONF = " --with-link-size=2 --enable-newline-is-lf --with-match-limit=10000000 --enable-rebuild-chartables --enable-utf8" | 31 | --enable-rebuild-chartables \ |
30 | 32 | --enable-utf8 \ | |
31 | do_compile () { | 33 | --with-link-size=2 \ |
32 | # stop libtool from trying to link with host libraries - fix from #33 | 34 | --with-match-limit=10000000 \ |
33 | # this resolve build problem on amd64 - #1015 | 35 | " |
34 | if [ -e ${S}/${HOST_SYS}-libtool ] ; then | 36 | |
35 | sed -i 's:-L\$:-L${STAGING_LIBDIR} -L\$:' ${S}/${HOST_SYS}-libtool | 37 | BUILD_CPPFLAGS += "-DLINK_SIZE=2" |
36 | else | 38 | BUILD_CFLAGS =+ "-I${S}/include" |
37 | ln -sf ${S}/libtool ${S}/${HOST_SYS}-libtool | 39 | CFLAGS += "-D_REENTRANT" |
38 | sed -i 's:-L\$:-L${STAGING_LIBDIR} -L\$:' ${S}/${HOST_SYS}-libtool | 40 | CXXFLAGS_append_powerpc = " -lstdc++" |
39 | fi | 41 | |
40 | 42 | PACKAGES =+ "libpcrecpp libpcreposix pcregrep pcregrep-doc pcretest pcretest-doc" | |
41 | # The generation of dftables can lead to timestamp problems with ccache | 43 | |
42 | # because the generated config.h seems newer. It is sufficient to ensure that the | 44 | SUMMARY_libpcrecpp = "${SUMMARY} - C++ wrapper functions" |
43 | # attempt to build dftables inside make will actually work (foo_FOR_BUILD is | 45 | SUMMARY_libpcreposix = "${SUMMARY} - C wrapper functions based on the POSIX regex API" |
44 | # only used for this). | 46 | SUMMARY_pcregrep = "grep utility that uses perl 5 compatible regexes" |
45 | oe_runmake CC_FOR_BUILD="${BUILD_CC}" CFLAGS_FOR_BUILD="-DLINK_SIZE=2 -I${S}/include" LINK_FOR_BUILD="${BUILD_CC} -L${S}/lib" | 47 | SUMMARY_pcregrep-doc = "grep utility that uses perl 5 compatible regexes - docs" |
46 | } | 48 | SUMMARY_pcretest = "program for testing Perl-comatible regular expressions" |
47 | 49 | SUMMARY_pcretest-doc = "program for testing Perl-comatible regular expressions - docs" | |
48 | python populate_packages_prepend () { | 50 | |
49 | pcre_libdir = d.expand('${libdir}') | 51 | FILES_libpcrecpp = "${libdir}/libpcrecpp.so.*" |
50 | do_split_packages(d, pcre_libdir, '^lib(.*)\.so\.+', 'lib%s', 'libpcre %s library', extra_depends='', allow_links=True, prepend=True) | 52 | FILES_libpcreposix = "${libdir}/libpcreposix.so.*" |
51 | } | 53 | FILES_pcregrep = "${bindir}/pcregrep" |
52 | 54 | FILES_pcregrep-doc = "${mandir}/man1/pcregrep.1" | |
53 | BBCLASSEXTEND = "native" | 55 | FILES_pcretest = "${bindir}/pcretest" |
56 | FILES_pcretest-doc = "${mandir}/man1/pcretest.1" | ||
57 | |||
58 | BBCLASSEXTEND = "native nativesdk" | ||