diff --git a/lang/perl/perlmod.mk b/lang/perl/perlmod.mk index 2ce3ceab03..5a91c23a5a 100644 --- a/lang/perl/perlmod.mk +++ b/lang/perl/perlmod.mk @@ -32,39 +32,49 @@ PERL_TESTSDIR:=/usr/share/perl/perl-tests PERLBASE_TESTSDIR:=/usr/share/perl/perlbase-tests PERLMOD_TESTSDIR:=/usr/share/perl/perlmod-tests +FLOCK:=$(STAGING_DIR_HOST)/bin/flock + define perlmod/host/relink rm -f $(1)/Makefile.aperl - $(MAKE) -C $(1) perl - $(INSTALL_BIN) $(1)/perl $(PERL_CMD) - $(INSTALL_BIN) $(1)/perl $(STAGING_DIR_HOSTPKG)/usr/bin/perl + ($(FLOCK) -w 900 9 || { echo perlmod/host/relink: failed to acquire lock; exit 1; }; \ + $(MAKE) -C $(1) perl && \ + $(INSTALL_BIN) $(1)/perl $(PERL_CMD) && \ + $(INSTALL_BIN) $(1)/perl $(STAGING_DIR_HOSTPKG)/usr/bin/perl \ + ) 9> $(TMP_DIR)/.perlmod-perl.flock endef define perlmod/host/Configure (cd $(HOST_BUILD_DIR); \ + $(FLOCK) -s -w 300 9 || { echo perlmod/host/Configure: failed to acquire lock; exit 1; }; \ PERL_MM_USE_DEFAULT=1 \ $(2) \ $(PERL_CMD) Makefile.PL \ $(1) \ - ); + ) 9> $(TMP_DIR)/.perlmod-perl.flock; endef define perlmod/host/Compile + ($(FLOCK) -s -w 300 9 || { echo perlmod/host/Compile: failed to acquire lock; exit 1; }; \ $(2) \ $(MAKE) -C $(HOST_BUILD_DIR) \ $(1) \ - install + install \ + ) 9> $(TMP_DIR)/.perlmod-perl.flock endef define perlmod/host/Install + ($(FLOCK) -s -w 300 9 || { echo perlmod/host/Install: failed to acquire lock; exit 1; }; \ $(2) \ $(MAKE) -C $(HOST_BUILD_DIR) \ $(1) \ - install + install \ + ) 9> $(TMP_DIR)/.perlmod-perl.flock $(call perlmod/host/relink,$(HOST_BUILD_DIR)) endef define perlmod/Configure (cd $(if $(3),$(3),$(PKG_BUILD_DIR)); \ + $(FLOCK) -s -w 300 9 || { echo perlmod/Configure: failed to acquire lock; exit 1; }; \ (echo -e 'use Config;\n\n$$$${tied %Config::Config}{cpprun}="$(GNU_TARGET_NAME)-cpp -E";\n' ; cat Makefile.PL) | \ PERL_MM_USE_DEFAULT=1 \ $(2) \ @@ -114,16 +124,18 @@ define perlmod/Configure INSTALLVENDORMAN3DIR=" " \ LINKTYPE=dynamic \ DESTDIR=$(PKG_INSTALL_DIR) \ - ) + ) 9> $(TMP_DIR)/.perlmod-perl.flock sed -i -e 's!^PERL_INC = .*!PERL_INC = $(STAGING_DIR)/usr/lib/perl5/$(PERL_VERSION)/CORE/!' $(if $(3),$(3),$(PKG_BUILD_DIR))/Makefile endef define perlmod/Compile + ($(FLOCK) -s -w 300 9 || { echo perlmod/Compile: failed to acquire lock; exit 1; }; \ PERL5LIB=$(PERL_LIB) \ $(2) \ $(MAKE) -C $(if $(3),$(3),$(PKG_BUILD_DIR)) \ $(1) \ - install + install \ + ) 9> $(TMP_DIR)/.perlmod-perl.flock endef define perlmod/Install/NoStrip