microperl.mk 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #############################################################
  2. #
  3. # microperl
  4. #
  5. #############################################################
  6. MICROPERL_MAJ=5
  7. MICROPERL_VER=$(MICROPERL_MAJ).8.8
  8. MICROPERL_SOURCE=perl-$(MICROPERL_VER).tar.bz2
  9. MICROPERL_CAT:=$(BZCAT)
  10. MICROPERL_SITE=ftp://ftp.cpan.org/pub/CPAN/src/5.0
  11. MICROPERL_DIR=$(BUILD_DIR)/perl-$(MICROPERL_VER)
  12. MICROPERL_MODS_DIR=/usr/lib/perl$(MICROPERL_MAJ)/$(MICROPERL_VER)
  13. MICROPERL_MODS=$(subst ",,$(BR2_PACKAGE_MICROPERL_MODULES))
  14. # ")
  15. $(DL_DIR)/$(MICROPERL_SOURCE):
  16. $(WGET) -P $(DL_DIR) $(MICROPERL_SITE)/$(MICROPERL_SOURCE)
  17. $(MICROPERL_DIR)/.source: $(DL_DIR)/$(MICROPERL_SOURCE)
  18. $(MICROPERL_CAT) $(DL_DIR)/$(MICROPERL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  19. touch $@
  20. $(MICROPERL_DIR)/.configured: $(MICROPERL_DIR)/.source
  21. (cd $(MICROPERL_DIR) ; chmod u+w uconfig.h ; . ./uconfig.sh ; \
  22. $(MAKE) -f Makefile.micro regen_uconfig ; \
  23. $(SED) 's,PRIVLIB ".*,PRIVLIB "/$(MICROPERL_MODS_DIR)",' \
  24. -e 's,PRIVLIB_EXP ".*,PRIVLIB_EXP "$(MICROPERL_MODS_DIR)",' \
  25. -e 's,BIN ".*,BIN "/usr/bin",' \
  26. ./uconfig.h ; \
  27. )
  28. touch $@
  29. $(MICROPERL_DIR)/microperl: $(MICROPERL_DIR)/.configured
  30. $(MAKE) -f Makefile.micro CC=$(TARGET_CC) \
  31. OPTIMIZE="$(TARGET_CFLAGS)" -C $(MICROPERL_DIR)
  32. $(TARGET_DIR)/usr/bin/microperl: $(MICROPERL_DIR)/microperl
  33. ifneq ($(MICROPERL_MODS),)
  34. (cd $(MICROPERL_DIR) ; \
  35. for i in $(patsubst %,$(TARGET_DIR)/$(MICROPERL_MODS_DIR)/%,$(dir $(MICROPERL_MODS))) ; do \
  36. [ -d $$i ] || mkdir -p $$i ; \
  37. done ; \
  38. for i in $(MICROPERL_MODS) ; do \
  39. cp -dpf lib/$$i $(TARGET_DIR)/$(MICROPERL_MODS_DIR)/$$i ; \
  40. done; \
  41. )
  42. endif
  43. cp -dpf $(MICROPERL_DIR)/microperl $(TARGET_DIR)/usr/bin/microperl
  44. microperl: uclibc $(TARGET_DIR)/usr/bin/microperl
  45. microperl-source: $(DL_DIR)/$(MICROPERL_SOURCE)
  46. microperl-clean:
  47. rm -rf $(TARGET_DIR)/usr/bin/microperl $(TARGET_DIR)/$(MICROPERL_MODS_DIR)
  48. -rmdir $(TARGET_DIR)/usr/lib/perl$(MICROPERL_MAJ)
  49. -$(MAKE) -C $(MICROPERL_DIR) -f Makefile.micro clean
  50. microperl-dirclean:
  51. rm -rf $(MICROPERL_DIR)
  52. #############################################################
  53. #
  54. # Toplevel Makefile options
  55. #
  56. #############################################################
  57. ifeq ($(strip $(BR2_PACKAGE_MICROPERL)),y)
  58. TARGETS+=microperl
  59. endif