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 14:28:39 +0000 |
commit | 9867a9ad7a80a26654326650752dbbe89c8de3c5 (patch) | |
tree | a7e99d87caa787d4eec1bb545584deb561f324ea /meta/recipes-support | |
parent | 57907458fe4b6c7037f35862adabf29b8ac1f029 (diff) | |
download | openembedded-core-9867a9ad7a80a26654326650752dbbe89c8de3c5.tar.gz openembedded-core-9867a9ad7a80a26654326650752dbbe89c8de3c5.tar.bz2 openembedded-core-9867a9ad7a80a26654326650752dbbe89c8de3c5.zip |
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
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>
Diffstat (limited to 'meta/recipes-support')
-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 @@ -Upstream-Status: Inappropriate [configuration] +Upstream-Status: Pending -To be upstreamable, this patch requires check for *_FOR_BUILD, otherwise -it needs to pass special variables. - -It would be nice to implement per-target compiler specification to -automake, as it is done for linker. - -Even better it would be nice to implement native build time targets in -automake. - -Index: pcre-7.6/Makefile.am -=================================================================== ---- pcre-7.6.orig/Makefile.am 2008-01-23 17:58:28.000000000 +0000 -+++ pcre-7.6/Makefile.am 2008-04-03 22:32:00.000000000 +0000 -@@ -147,6 +147,11 @@ +--- pcre-8.32.orig/Makefile.am ++++ pcre-8.32/Makefile.am +@@ -197,8 +197,18 @@ bin_SCRIPTS = pcre-config + ++CC_FOR_BUILD = @CC_FOR_BUILD@ ++CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ ++CCLD_FOR_BUILD = @CCLD_FOR_BUILD@ ++LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ ++ + if WITH_REBUILD_CHARTABLES noinst_PROGRAMS += dftables dftables_SOURCES = dftables.c -+dftables_LINK = $(LINK_FOR_BUILD) -o $@ ++dftables_LINK = $(CCLD_FOR_BUILD) -o $@ +dftables_LDFLAGS = $(LDFLAGS_FOR_BUILD) + +dftables.o: $(srcdir)/dftables.c @@ -25,3 +21,28 @@ Index: pcre-7.6/Makefile.am pcre_chartables.c: dftables$(EXEEXT) ./dftables$(EXEEXT) $@ +--- pcre-8.32.orig/configure.ac ++++ pcre-8.32/configure.ac +@@ -72,6 +72,22 @@ then + fi + fi + ++if test x"$cross_compiling" = xyes; then ++ CC_FOR_BUILD="${CC_FOR_BUILD-gcc}" ++ CCLD_FOR_BUILD="${CCLD_FOR_BUILD-gcc}" ++ CFLAGS_FOR_BUILD="${CFLAGS_FOR_BUILD}" ++ LDFLAGS_FOR_BUILD="${LDFLAGS_FOR_BUILD}" ++else ++ CC_FOR_BUILD="${CC_FOR_BUILD-\$(CC)}" ++ CCLD_FOR_BUILD="${CCLD_FOR_BUILD-\$(CCLD)}" ++ CFLAGS_FOR_BUILD="${CFLAGS_FOR_BUILD-\$(CFLAGS)}" ++ LDFLAGS_FOR_BUILD="${LDFLAGS_FOR_BUILD-\$(LDFLAGS)}" ++fi ++AC_ARG_VAR(CC_FOR_BUILD, [build system C compiler]) ++AC_ARG_VAR(CCLD_FOR_BUILD, [build system C linker frontend]) ++AC_ARG_VAR(CFLAGS_FOR_BUILD, [build system C compiler arguments]) ++AC_ARG_VAR(LDFLAGS_FOR_BUILD, [build system C linker frontend arguments]) ++ + # AC_PROG_CXX will return "g++" even if no c++ compiler is installed. + # Check for that case, and just disable c++ code if g++ doesn't run. + 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." SUMMARY = "Perl Compatible Regular Expressions" HOMEPAGE = "http://www.pcre.org" SECTION = "devel" -PR = "r0" +PR = "r1" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://LICENCE;md5=115e2bee152e2e23e838a29136094877" SRC_URI = "${SOURCEFORGE_MIRROR}/project/pcre/pcre/${PV}/pcre-${PV}.tar.bz2 \ @@ -17,37 +17,42 @@ SRC_URI[sha256sum] = "a913fb9bd058ef380a2d91847c3c23fcf98e92dc3b47cd08a53c021c5c S = "${WORKDIR}/pcre-${PV}" -PROVIDES = "pcre" -DEPENDS = "bzip2 zlib readline" +FILESPATH .= ":${@base_set_filespath([bb.which(BBPATH, 'recipes-support/libpcre/files', direction=True)], d)}" + +PROVIDES += "pcre" +DEPENDS += "bzip2 zlib readline" inherit autotools binconfig PARALLEL_MAKE = "" -CFLAGS_append = " -D_REENTRANT" -CXXFLAGS_powerpc += "-lstdc++" -EXTRA_OECONF = " --with-link-size=2 --enable-newline-is-lf --with-match-limit=10000000 --enable-rebuild-chartables --enable-utf8" - -do_compile () { - # stop libtool from trying to link with host libraries - fix from #33 - # this resolve build problem on amd64 - #1015 - if [ -e ${S}/${HOST_SYS}-libtool ] ; then - sed -i 's:-L\$:-L${STAGING_LIBDIR} -L\$:' ${S}/${HOST_SYS}-libtool - else - ln -sf ${S}/libtool ${S}/${HOST_SYS}-libtool - sed -i 's:-L\$:-L${STAGING_LIBDIR} -L\$:' ${S}/${HOST_SYS}-libtool - fi - - # The generation of dftables can lead to timestamp problems with ccache - # because the generated config.h seems newer. It is sufficient to ensure that the - # attempt to build dftables inside make will actually work (foo_FOR_BUILD is - # only used for this). - oe_runmake CC_FOR_BUILD="${BUILD_CC}" CFLAGS_FOR_BUILD="-DLINK_SIZE=2 -I${S}/include" LINK_FOR_BUILD="${BUILD_CC} -L${S}/lib" -} - -python populate_packages_prepend () { - pcre_libdir = d.expand('${libdir}') - do_split_packages(d, pcre_libdir, '^lib(.*)\.so\.+', 'lib%s', 'libpcre %s library', extra_depends='', allow_links=True, prepend=True) -} - -BBCLASSEXTEND = "native" +EXTRA_OECONF = "\ + --enable-newline-is-lf \ + --enable-rebuild-chartables \ + --enable-utf8 \ + --with-link-size=2 \ + --with-match-limit=10000000 \ +" + +BUILD_CPPFLAGS += "-DLINK_SIZE=2" +BUILD_CFLAGS =+ "-I${S}/include" +CFLAGS += "-D_REENTRANT" +CXXFLAGS_append_powerpc = " -lstdc++" + +PACKAGES =+ "libpcrecpp libpcreposix pcregrep pcregrep-doc pcretest pcretest-doc" + +SUMMARY_libpcrecpp = "${SUMMARY} - C++ wrapper functions" +SUMMARY_libpcreposix = "${SUMMARY} - C wrapper functions based on the POSIX regex API" +SUMMARY_pcregrep = "grep utility that uses perl 5 compatible regexes" +SUMMARY_pcregrep-doc = "grep utility that uses perl 5 compatible regexes - docs" +SUMMARY_pcretest = "program for testing Perl-comatible regular expressions" +SUMMARY_pcretest-doc = "program for testing Perl-comatible regular expressions - docs" + +FILES_libpcrecpp = "${libdir}/libpcrecpp.so.*" +FILES_libpcreposix = "${libdir}/libpcreposix.so.*" +FILES_pcregrep = "${bindir}/pcregrep" +FILES_pcregrep-doc = "${mandir}/man1/pcregrep.1" +FILES_pcretest = "${bindir}/pcretest" +FILES_pcretest-doc = "${mandir}/man1/pcretest.1" + +BBCLASSEXTEND = "native nativesdk" |