1# Makefile orchestrating CPAN 2 3include $(SRCROOT)/$(VERS).inc 4ifneq ($(wildcard $(SRCROOT)/Platforms/$(RC_TARGET_CONFIG)/$(VERS).inc),) 5include $(SRCROOT)/Platforms/$(RC_TARGET_CONFIG)/$(VERS).inc 6endif 7 8# These variables cause installation into the Extras directory, adds RC_CFLAGS 9# to the compile and linking arguments, and sets DESTDIR to DSTROOT 10installarchlib := $(shell perl -MConfig -e 'print $$Config::Config{installextrasarch}') 11installbin := $(shell perl -MConfig -e 'print $$Config::Config{installbin}') 12installprivlib := $(shell perl -MConfig -e 'print $$Config::Config{installextraslib}') 13EXTRASARCH := $(DSTROOT)/$(shell perl -MConfig -e 'print $$Config::Config{extrasarch}') 14EXTRASLIB := $(DSTROOT)/$(shell perl -MConfig -e 'print $$Config::Config{extraslib}') 15PLARGS := INSTALLDIRS=perl INSTALLARCHLIB='$(installarchlib)' INSTALLPRIVLIB='$(installprivlib)' INSTALLBIN='$(installbin)' INSTALLSCRIPT='$(installbin)' 16PLBARGS := --installdirs core --install_path arch='$(installarchlib)' --install_path lib='$(installprivlib)' --install_path bin='$(installbin)' --install_path script='$(installbin)' 17make := perl $(SRCROOT)/make.pl 18MAKEARGS := DESTDIR=$(DSTROOT) 19BUILDARGS := --destdir $(DSTROOT) 20export PERL5LIB := $(EXTRASLIB) 21export NO_PERL_PREPENDTOPATH := 1 22 23no_target: 24 @set -x && for i in $(PROJECTS); do \ 25 echo "===== $$i =====" && \ 26 $(make) -C Modules/$$i unpack installarchlib="$(installarchlib)" \ 27 installprivlib="$(installprivlib)" PLARGS="$(PLARGS)" \ 28 PLBARGS="$(PLBARGS)" BUILDARGS="$(BUILDARGS)"\ 29 MAKEARGS="$(MAKEARGS)" && \ 30 $(make) -C Modules/$$i installarchlib="$(installarchlib)" \ 31 installprivlib="$(installprivlib)" PLARGS="$(PLARGS)" \ 32 PLBARGS="$(PLBARGS)" BUILDARGS="$(BUILDARGS)"\ 33 MAKEARGS="$(MAKEARGS)" || exit 1; \ 34 done 35 36install: 37 @set -x && for i in $(PROJECTS); do \ 38 echo "===== $$i =====" && \ 39 $(make) -C Modules/$$i unpack installarchlib="$(installarchlib)" \ 40 installprivlib="$(installprivlib)" PLARGS="$(PLARGS)" \ 41 PLBARGS="$(PLBARGS)" BUILDARGS="$(BUILDARGS)"\ 42 MAKEARGS="$(MAKEARGS)" && \ 43 $(make) -C Modules/$$i install installarchlib="$(installarchlib)" \ 44 installprivlib="$(installprivlib)" PLARGS="$(PLARGS)" \ 45 PLBARGS="$(PLBARGS)" BUILDARGS="$(BUILDARGS)"\ 46 MAKEARGS="$(MAKEARGS)" || exit 1; \ 47 done 48 @echo ================ post-install fixups ================ 49 @set -x && \ 50 cd $(EXTRASARCH)/auto && \ 51 for b in `find . -name \*.bundle | sed 's,^\./,,'`; do \ 52 rsync -R $$b $(SYMROOT) && \ 53 dsymutil $(SYMROOT)/$$b && \ 54 strip -x $$b || exit 1; \ 55 done 56 @set -x && \ 57 cd $(DSTROOT) && \ 58 for b in usr/bin/*; do \ 59 if file $$b | fgrep -q Mach-O; then \ 60 rsync -R $$b $(SYMROOT) && \ 61 dsymutil $(SYMROOT)/$$b && \ 62 strip -x $$b || exit 1; \ 63 fi \ 64 done 65 rm -f $(EXTRASARCH)/perllocal.pod 66 find $(EXTRASARCH)/auto -name .packlist -print -delete 67