summaryrefslogtreecommitdiffstats
path: root/package/perl/perl.mk
diff options
context:
space:
mode:
Diffstat (limited to 'package/perl/perl.mk')
-rw-r--r--package/perl/perl.mk21
1 files changed, 21 insertions, 0 deletions
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index 51aeb14910..64ad7d323f 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -94,4 +94,25 @@ define PERL_INSTALL_TARGET_CMDS
$(MAKE1) -C $(@D) DESTDIR="$(TARGET_DIR)" install.perl
endef
+# perl infra: fix for Perl XS packages configured by Makefile.PL
+#
+# ExtUtils::MakeMaker adds all the header files used by the perl as
+# dependencies to the generated Makefile. This means that the generated
+# Makefile will depend on the system's header files.
+#
+# Usually this is not a problem, because when building the target package,
+# these header files will indeed be found in $(STAGING_DIR). However, some
+# distro's add an extra header file to the system's perl. This header is
+# also included in the generated Makefile, which makes the build fail
+# because it doesn't exist in $(STAGING_DIR).
+#
+# As a work-around, explicitly create this header file in $(STAGING_DIR).
+# It doesn't hurt to create it even if the system perl doesn't need it.
+#
+define PERL_ADD_PATCHLEVEL_DEBIAN_H
+ touch $(STAGING_DIR)/usr/lib/perl5/$(PERL_VERSION)/$(PERL_ARCHNAME)/CORE/patchlevel-debian.h
+endef
+
+PERL_POST_INSTALL_STAGING_HOOKS += PERL_ADD_PATCHLEVEL_DEBIAN_H
+
$(eval $(generic-package))
OpenPOWER on IntegriCloud