diff --git a/lang/perl/Makefile b/lang/perl/Makefile index 963ee1e00..4fdf30583 100644 --- a/lang/perl/Makefile +++ b/lang/perl/Makefile @@ -27,15 +27,20 @@ PKG_LICENSE_FILES:=Copying Artistic README PKG_MAINTAINER:=Marcel Denia PKG_BUILD_DIR:=$(BUILD_DIR)/perl/$(PKG_NAME)-$(PKG_VERSION) +PKG_INSTALL:=1 +PKG_BUILD_DEPENDS:=perl/host +PKG_BUILD_PARALLEL:=1 +HOST_BUILD_PARALLEL:=1 include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk ifneq ($(CONFIG_USE_EGLIBC),) EXTRA_LIBS:=bsd EXTRA_LIBDIRS:=$(STAGING_DIR)/lib endif -define Package/perl/Default +define Package/perl SUBMENU:=Perl SECTION:=lang CATEGORY:=Languages @@ -44,75 +49,24 @@ define Package/perl/Default DEPENDS:=+USE_EGLIBC:libbsd endef -define Package/microperl -$(call Package/perl/Default) - TITLE+=(minimal version) -endef - -define Package/microperl/description - A perl package without operating-specific functions such as readdir. -endef - -define Build/Template - -$(STAMP_CONFIGURED)-$(1): $(STAMP_PREPARED) - -$(MAKE) -C $(PKG_BUILD_DIR) clean - $(call Build/$(1)/Configure) - touch $$@ - -$(STAMP_BUILT)-$(1): $(STAMP_CONFIGURED)-$(1) - $(call Build/$(1)/Compile) - touch $$@ - -$(STAMP_BUILT): $(STAMP_BUILT)-$(1) - -endef - -define Build/microperl/Configure -endef - -define Build/microperl/Compile - +$(MAKE) $(MAKE_J) -C $(PKG_BUILD_DIR) -f Makefile.micro \ - CC="gcc" ugenerate_uudmap - +$(MAKE) $(MAKE_J) -C $(PKG_BUILD_DIR) -f Makefile.micro \ - CC="$(TARGET_CC)" OPTIMIZE="$(TARGET_CFLAGS)" - $(INSTALL_DIR) $(PKG_INSTALL_DIR)/usr/bin/ - $(CP) $(PKG_BUILD_DIR)/microperl $(PKG_INSTALL_DIR)/usr/bin/ -endef - -define Package/microperl/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/microperl $(1)/usr/bin/ -endef - -include perlmod.mk - -define Package/perl -$(call Package/perl/Default) -endef - define Package/perl/description Perl is a stable, cross platform programming language. It is used for mission critical projects in the public and private sectors and is widely used to program web applications of all needs. endef -define Build/perl/Configure - @echo - @echo "===> Stage 1: Configure host perl" - @echo - mkdir -p $(PKG_BUILD_DIR)/host-perl - (cd $(PKG_BUILD_DIR)/host-perl && sh ../Configure -der -Dmksymlinks -Uusedl -Dotherlibdirs=$(PERL_LIB)) - - @echo - @echo "===> Stage 2: Build host perl binary with static extensions" - @echo - +$(MAKE) $(MAKE_J) -C $(PKG_BUILD_DIR)/host-perl miniperl - - @echo - @echo "===> Stage 3: Configure target perl" - @echo - -$(MAKE) -C $(PKG_BUILD_DIR) clean +HOST_PERL_DIR:=$(STAGING_DIR_HOST)/usr +define Host/Configure + ( cd $(HOST_BUILD_DIR); ./Configure -der -Uusedl -Dprefix=$(HOST_PERL_DIR) ) +endef + +define Host/Install + ( cd $(HOST_BUILD_DIR); ./miniperl installperl ) + #--destdir=$(STAGING_DIR_HOST) + $(CP) $(HOST_BUILD_DIR)/generate_uudmap $(HOST_PERL_DIR)/bin/ +endef + +define Build/Configure sed \ -e 's!%%CC%%!$(TARGET_CC)!g' \ -e 's!%%CFLAGS%%!$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)!g' \ @@ -125,37 +79,16 @@ define Build/perl/Configure -e 's!%%EXTRA_PERLLIBS%%!$(EXTRA_LIBS:%=-l%)!g' \ -e 's!%%EXTRA_PERLLIBDIRS%%!$(EXTRA_LIBDIRS:%=-L%)!g' \ -e 's!%%IPV6%%!$(if $($(CONFIG_IPV6)),define,undef)!g' \ - -e 's!%%HOSTMINIPERL%%!$(PKG_BUILD_DIR)/host-perl/miniperl!g' \ - -e 's!%%HOSTGENERATE%%!$(PKG_BUILD_DIR)/host-perl/generate_uudmap!g' \ + -e 's!%%HOSTMINIPERL%%!$(HOST_PERL_DIR)/bin/perl!g' \ + -e 's!%%HOSTGENERATE%%!$(HOST_PERL_DIR)/bin/generate_uudmap!g' \ files/config.sh-$(patsubst i386,i486,$(ARCH)).in \ > $(PKG_BUILD_DIR)/config.sh (cd $(PKG_BUILD_DIR) && ./Configure -S) + install -m 0644 $(PKG_BUILD_DIR)/config.h $(PKG_BUILD_DIR)/xconfig.h endef -define Build/perl/Compile - @echo - @echo "===> Stage 4: Build target perl binary" - @echo - install -m 0644 $(PKG_BUILD_DIR)/config.h $(PKG_BUILD_DIR)/xconfig.h - +$(MAKE) $(MAKE_J) -C $(PKG_BUILD_DIR) perl - mkdir -p $(PKG_BUILD_DIR)/target-bin - install -m 0755 $(PKG_BUILD_DIR)/perl $(PKG_BUILD_DIR)/target-bin/ - - @echo - @echo "===> Stage 5: Build target extensions and utils" - @echo - +$(MAKE) $(MAKE_J) -C $(PKG_BUILD_DIR) - - @echo - @echo "===> Stage 6: Install Perl into staging dir" - @echo - (cd $(PKG_BUILD_DIR) && ./miniperl installperl --destdir=$(STAGING_DIR)) - - @echo - @echo "===> Stage 7: Install Perl into a temporary root" - @echo - mkdir -p $(PKG_INSTALL_DIR) - (cd $(PKG_BUILD_DIR) && ./miniperl installperl --destdir=$(PKG_INSTALL_DIR)) +define Build/Compile + +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) endef define Package/perl/install @@ -164,31 +97,12 @@ define Package/perl/install ln -nsf perl$(PKG_VERSION) $(1)/usr/bin/perl endef -ifneq ($(CONFIG_PACKAGE_microperl),) -define Build/microperl - $(call Build/Template,microperl) -endef -endif -$(eval $(Build/microperl)) - -ifneq ($(CONFIG_PACKAGE_perl),) -define Build/perl - $(call Build/Template,perl) -endef -endif -$(eval $(Build/perl)) - -define Build/Configure -endef - -define Build/Compile -endef - $(eval $(call RequireCommand,rsync, \ $(PKG_NAME) requires rsync installed on the host-system. \ )) -$(eval $(call BuildPackage,microperl)) $(eval $(call BuildPackage,perl)) +$(eval $(call HostBuild)) +include perlmod.mk -include perlbase.mk