1SUMMARY = "Traditional Unix macro processor"
2HOMEPAGE = "https://www.gnu.org/software/m4/m4.html"
3DESCRIPTION = "GNU m4 is an implementation of the traditional Unix macro processor.  It is mostly SVR4 \
4compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). \
5GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc."
6
7inherit autotools texinfo ptest gettext
8
9SRC_URI = "${GNU_MIRROR}/m4/m4-${PV}.tar.gz \
10           file://ac_config_links.patch \
11           file://0001-sigsegv-Fix-build-on-ppc-musl.patch \
12           file://0001-Define-alignof_slot-using-_Alignof-when-using-C11-or.patch \
13           "
14SRC_URI:append:class-target = " file://run-ptest \
15                                file://serial-tests-config.patch \
16                              "
17
18SRC_URI[md5sum] = "f4a2b0284d80353b995f8ef2385ed73c"
19SRC_URI[sha256sum] = "3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70"
20
21LICENSE = "GPL-3.0-only"
22
23LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464\
24	            file://examples/COPYING;md5=4031593b2166d6c47cae282d944a7ede"
25
26# Fix "Argument list too long" error when len(TMPDIR) = 410
27acpaths = "-I ./m4"
28
29EXTRA_OECONF += "--without-libsigsegv-prefix"
30
31EXTRA_OEMAKE += "'infodir=${infodir}'"
32
33do_compile_ptest() {
34	cd ${B}/tests
35	sed -i '/^buildtest-TESTS: /c buildtest-TESTS: $(TESTS) $(check_LIBRARIES) $(check_PROGRAMS)' Makefile
36	oe_runmake buildtest-TESTS
37}
38
39do_install_ptest() {
40                cp -r ${B}/tests                        ${D}${PTEST_PATH}
41                cp -r ${S}/tests/*                      ${D}${PTEST_PATH}/tests/
42                sed -i '/^Makefile:/c Makefile:'        ${D}${PTEST_PATH}/tests/Makefile
43                find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {}
44                cp ${S}/build-aux/update-copyright  ${D}${PTEST_PATH}/tests/
45                sed -i 's;update-copyright;./update-copyright;g' ${D}${PTEST_PATH}/tests/test-update-copyright.sh
46                chmod 0755 ${D}${PTEST_PATH}/tests/test-mbrtowc-w32-1.sh  ${D}${PTEST_PATH}/tests/test-spawn-pipe-main \
47                     ${D}${PTEST_PATH}/tests/test-spawn-pipe-child ${D}${PTEST_PATH}/tests/test-version-etc \
48                     ${D}${PTEST_PATH}/tests/test-xalloc-die
49
50                ln -s ptest ${D}${libdir}/${BPN}/${BP}
51}
52
53do_install_ptest:append:libc-glibc() {
54                sed -i -e  "s;LOCALE_FR='fr_FR';LOCALE_FR='fr_FR.iso88591';g" \
55                       -e  "s;LOCALE_FR_UTF8='none';LOCALE_FR_UTF8='fr_FR.utf8';g" ${D}${PTEST_PATH}/tests/Makefile
56}
57
58RDEPENDS:${PN}-ptest += "make coreutils diffutils bash"
59RDEPENDS:${PN}-ptest:append:libc-glibc = "\
60     locale-base-fr-fr \
61     locale-base-fr-fr.iso-8859-1 \
62     glibc-gconv-iso8859-1 \
63"
64
65INSANE_SKIP:${PN}-ptest += "ldflags"
66INSANE_SKIP:${PN}-ptest += "rpaths"
67
68