perl: version modules and non-base packages

Currently external modules and non-base packages are numbered
from their own internal number space, and even though the Perl
ABI number is embedded into them this isn't externally visible.

For example, perl-html-parser-3.72.1 could be built for ABI
5.26 or for 5.28, we can't easily tell.  This changes all of
that by embedding the ABI number into the filename.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
This commit is contained in:
Philip Prindeville 2018-08-07 16:00:19 -06:00
parent 7f71fa5a8d
commit 0d9584724f
3 changed files with 22 additions and 4 deletions

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2006-2016 OpenWrt.org
# Copyright (C) 2006-2018 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -7,8 +7,10 @@
include $(TOPDIR)/rules.mk
include perlver.mk
PKG_NAME:=perl
PKG_VERSION:=5.28.0
PKG_VERSION:=$(PERL_VERSION)
PKG_RELEASE:=1
PKG_SOURCE_URL:=\

View File

@ -1,7 +1,13 @@
# This makefile simplifies perl module builds.
#
PERL_VERSION:=5.28
include ../perl/perlver.mk
ifneq ($(PKG_NAME),perl)
PKG_VERSION:=$(PKG_VERSION)+perl$(PERL_VERSION2)
endif
PERL_VERSION:=$(PERL_VERSION2)
# Build environment
HOST_PERL_PREFIX:=$(STAGING_DIR_HOSTPKG)/usr
@ -9,7 +15,7 @@ ifneq ($(CONFIG_USE_GLIBC),)
EXTRA_LIBS:=bsd
EXTRA_LIBDIRS:=$(STAGING_DIR)/lib
endif
PERL_CMD:=$(STAGING_DIR_HOSTPKG)/usr/bin/perl$(PERL_VERSION).0
PERL_CMD:=$(STAGING_DIR_HOSTPKG)/usr/bin/perl$(PERL_VERSION3)
MOD_CFLAGS_PERL:=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(TARGET_CFLAGS) $(TARGET_CPPFLAGS)
ifdef CONFIG_PERL_THREADS

10
lang/perl/perlver.mk Normal file
View File

@ -0,0 +1,10 @@
PERL_VERSION:=5.28.0
PERL_EXPLODE:=$(subst ., ,$(PERL_VERSION))
PERL_MAJOR:=$(word 1,$(PERL_EXPLODE))
PERL_MINOR:=$(word 2,$(PERL_EXPLODE))
PERL_REL:=$(word 3,$(PERL_EXPLODE))
PERL_VERSION3:=$(PERL_VERSION)
PERL_VERSION2:=$(PERL_MAJOR).$(PERL_MINOR)