perlmod: global knob to disable comment stripping modules

Certain strings are misinterpreted as comments by perlmod.mk and removed
when they shouldn't be (in particular, perl-cgi).  Enable this whenever
you have sufficient flash space.

Globally, CONFIG_PERL_NOCOMMENT=y (default) causes comments to be stripped
as before.  However, a package (like perl-cgi) can override this with
PKG_LEAVE_COMMENTS=1.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
This commit is contained in:
Philip Prindeville 2017-01-02 22:55:17 -07:00
parent afda05e417
commit 785b67a27e
3 changed files with 21 additions and 5 deletions

View File

@ -17,4 +17,15 @@ config PERL_TESTS
Test support is still in development. Some tests will fail,
others are just missing completely.
config PERL_NOCOMMENT
bool "Strip comments and pod sections from modules"
default y
help
Remove comments and pod sections for all perl packages.
This will descrease the size of perl libraries moderately.
Stripping occasionally gets confused and mangles valid code,
so disable this option if you're not pressed for space.
endmenu

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=perl
PKG_VERSION:=5.22.1
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_SOURCE_URL:=ftp://ftp.cpan.org/pub/CPAN/src/5.0 \
http://www.cpan.org/src/5.0 \
@ -24,7 +24,8 @@ PKG_MD5SUM:=19295bbb775a3c36123161b9bf4892f1
PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
PKG_LICENSE_FILES:=Copying Artistic README
PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>, \
Philip Prindeville <philipp@redfish-solutions.com>
# Build settings
PKG_BUILD_DIR:=$(BUILD_DIR)/perl/$(PKG_NAME)-$(PKG_VERSION)

View File

@ -129,9 +129,7 @@ define perlmod/Install/NoStrip
endef
define perlmod/Install
$(call perlmod/Install/NoStrip,$(1),$(2),$(3))
define perlmod/_DoStrip
@echo "---> Stripping modules in: $(strip $(1))$(PERL_SITELIB)"
find $(strip $(1))$(PERL_SITELIB) -name \*.pm -or -name \*.pl | \
xargs -r sed -i \
@ -141,6 +139,12 @@ define perlmod/Install
-e '/^#[^!"'"'"']/d'
endef
define perlmod/Install
$(call perlmod/Install/NoStrip,$(1),$(2),$(3))
$(if $(CONFIG_PERL_NOCOMMENT),$(if $(PKG_LEAVE_COMMENTS),,$(call perlmod/_DoStrip,$(1),$(2),$(3))))
endef
# You probably don't want to use this directly. Look at perlmod/InstallTests
define perlmod/_InstallTests
$(INSTALL_DIR) $(strip $(1))