summaryrefslogtreecommitdiffstats
path: root/meta/recipes-support/libpcre
diff options
context:
space:
mode:
authorFahad Usman <fahad_usman@mentor.com>2012-12-10 19:51:21 +0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-12-13 15:18:43 +0000
commit9820786bbaf51fca38cf6ec90de623b8420500e1 (patch)
treef507b5c923a231946a9bc34d576e239c67b83d90 /meta/recipes-support/libpcre
parentf615f0c140aa0748a16bb34ad5c19d828bd57ea2 (diff)
downloadpoky-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/recipes-support/libpcre')
-rw-r--r--meta/recipes-support/libpcre/files/pcre-cross.patch53
-rw-r--r--meta/recipes-support/libpcre/libpcre_8.32.bb65
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 @@
1Upstream-Status: Inappropriate [configuration] 1Upstream-Status: Pending
2 2
3To be upstreamable, this patch requires check for *_FOR_BUILD, otherwise 3--- pcre-8.32.orig/Makefile.am
4it needs to pass special variables. 4+++ pcre-8.32/Makefile.am
5 5@@ -197,8 +197,18 @@ bin_SCRIPTS = pcre-config
6It would be nice to implement per-target compiler specification to 6
7automake, as it is done for linker. 7+CC_FOR_BUILD = @CC_FOR_BUILD@
8 8+CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
9Even better it would be nice to implement native build time targets in 9+CCLD_FOR_BUILD = @CCLD_FOR_BUILD@
10automake. 10+LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
11 11+
12Index: 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."
5SUMMARY = "Perl Compatible Regular Expressions" 5SUMMARY = "Perl Compatible Regular Expressions"
6HOMEPAGE = "http://www.pcre.org" 6HOMEPAGE = "http://www.pcre.org"
7SECTION = "devel" 7SECTION = "devel"
8PR = "r0" 8PR = "r1"
9LICENSE = "BSD" 9LICENSE = "BSD"
10LIC_FILES_CHKSUM = "file://LICENCE;md5=115e2bee152e2e23e838a29136094877" 10LIC_FILES_CHKSUM = "file://LICENCE;md5=115e2bee152e2e23e838a29136094877"
11SRC_URI = "${SOURCEFORGE_MIRROR}/project/pcre/pcre/${PV}/pcre-${PV}.tar.bz2 \ 11SRC_URI = "${SOURCEFORGE_MIRROR}/project/pcre/pcre/${PV}/pcre-${PV}.tar.bz2 \
@@ -17,37 +17,42 @@ SRC_URI[sha256sum] = "a913fb9bd058ef380a2d91847c3c23fcf98e92dc3b47cd08a53c021c5c
17 17
18S = "${WORKDIR}/pcre-${PV}" 18S = "${WORKDIR}/pcre-${PV}"
19 19
20PROVIDES = "pcre" 20FILESPATH .= ":${@base_set_filespath([bb.which(BBPATH, 'recipes-support/libpcre/files', direction=True)], d)}"
21DEPENDS = "bzip2 zlib readline" 21
22PROVIDES += "pcre"
23DEPENDS += "bzip2 zlib readline"
22 24
23inherit autotools binconfig 25inherit autotools binconfig
24 26
25PARALLEL_MAKE = "" 27PARALLEL_MAKE = ""
26 28
27CFLAGS_append = " -D_REENTRANT" 29EXTRA_OECONF = "\
28CXXFLAGS_powerpc += "-lstdc++" 30 --enable-newline-is-lf \
29EXTRA_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 \
31do_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 37BUILD_CPPFLAGS += "-DLINK_SIZE=2"
36 else 38BUILD_CFLAGS =+ "-I${S}/include"
37 ln -sf ${S}/libtool ${S}/${HOST_SYS}-libtool 39CFLAGS += "-D_REENTRANT"
38 sed -i 's:-L\$:-L${STAGING_LIBDIR} -L\$:' ${S}/${HOST_SYS}-libtool 40CXXFLAGS_append_powerpc = " -lstdc++"
39 fi 41
40 42PACKAGES =+ "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 44SUMMARY_libpcrecpp = "${SUMMARY} - C++ wrapper functions"
43 # attempt to build dftables inside make will actually work (foo_FOR_BUILD is 45SUMMARY_libpcreposix = "${SUMMARY} - C wrapper functions based on the POSIX regex API"
44 # only used for this). 46SUMMARY_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" 47SUMMARY_pcregrep-doc = "grep utility that uses perl 5 compatible regexes - docs"
46} 48SUMMARY_pcretest = "program for testing Perl-comatible regular expressions"
47 49SUMMARY_pcretest-doc = "program for testing Perl-comatible regular expressions - docs"
48python populate_packages_prepend () { 50
49 pcre_libdir = d.expand('${libdir}') 51FILES_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) 52FILES_libpcreposix = "${libdir}/libpcreposix.so.*"
51} 53FILES_pcregrep = "${bindir}/pcregrep"
52 54FILES_pcregrep-doc = "${mandir}/man1/pcregrep.1"
53BBCLASSEXTEND = "native" 55FILES_pcretest = "${bindir}/pcretest"
56FILES_pcretest-doc = "${mandir}/man1/pcretest.1"
57
58BBCLASSEXTEND = "native nativesdk"