View | Details | Raw Unified | Return to bug 87318
Collapse All | Expand All

(-)bsd.port.mk (-21 / +83 lines)
Lines 480-485 Link Here
480
#				  package depends on.  "lib" is the name of a shared library.
480
#				  package depends on.  "lib" is the name of a shared library.
481
#				  make will use "ldconfig -r" to search for the library.
481
#				  make will use "ldconfig -r" to search for the library.
482
#				  lib can contain extended regular expressions.
482
#				  lib can contain extended regular expressions.
483
# PERL_BUILD_DEPENDS
484
#				- A list of "module:dir" tuples of Perl modules this
485
#				  package depends to build. "module" is the name of the Perl
486
#				  module which should be "use"d. make will use
487
#				  "perl -e 'use module'" to check if the module is
488
#				  available.
489
# PERL_RUN_DEPENDS
490
#				- A list of "module:dir" tuples of Perl modules this
491
#				  package depends to run. "module" is the name of the Perl
492
#				  module which should be "use"d. make will use
493
#				  "perl -e 'use module'" to check if the module is
494
#				  available.
483
# DEPENDS		- A list of "dir[:target]" tuples of other ports this
495
# DEPENDS		- A list of "dir[:target]" tuples of other ports this
484
#				  package depends on being made first.  Use this only for
496
#				  package depends on being made first.  Use this only for
485
#				  things that don't fall into the above four categories.
497
#				  things that don't fall into the above four categories.
Lines 1724-1729 Link Here
1724
USE_REINPLACE=yes
1736
USE_REINPLACE=yes
1725
.endif
1737
.endif
1726
1738
1739
.if defined(PERL_RUN_DEPENDS) || defined(PERL_BUILD_DEPENDS)
1740
USE_PERL5_BUILD=	yes
1741
.endif
1742
1727
.if ${PERL_LEVEL} >= 500600
1743
.if ${PERL_LEVEL} >= 500600
1728
.if defined(USE_PERL5) || defined(USE_PERL5_BUILD)
1744
.if defined(USE_PERL5) || defined(USE_PERL5_BUILD)
1729
EXTRACT_DEPENDS+=${PERL5}:${PORTSDIR}/lang/${PERL_PORT}
1745
EXTRACT_DEPENDS+=${PERL5}:${PORTSDIR}/lang/${PERL_PORT}
Lines 3800-3815 Link Here
3800
_PATCH_SEQ=		patch-message patch-depends patch-dos2unix pre-patch \
3816
_PATCH_SEQ=		patch-message patch-depends patch-dos2unix pre-patch \
3801
				pre-patch-script do-patch post-patch post-patch-script
3817
				pre-patch-script do-patch post-patch post-patch-script
3802
_CONFIGURE_DEP=	patch
3818
_CONFIGURE_DEP=	patch
3803
_CONFIGURE_SEQ=	build-depends lib-depends misc-depends configure-message \
3819
_CONFIGURE_SEQ=	build-depends lib-depends perl-build-depends misc-depends \
3804
				pre-configure pre-configure-script patch-autotools \
3820
				configure-message pre-configure pre-configure-script \
3805
				run-autotools do-configure post-configure post-configure-script
3821
				patch-autotools run-autotools do-configure post-configure \
3822
				post-configure-script
3806
_BUILD_DEP=		configure
3823
_BUILD_DEP=		configure
3807
_BUILD_SEQ=		build-message pre-build pre-build-script do-build \
3824
_BUILD_SEQ=		build-message pre-build pre-build-script do-build \
3808
				post-build post-build-script
3825
				post-build post-build-script
3809
_INSTALL_DEP=	build
3826
_INSTALL_DEP=	build
3810
_INSTALL_SEQ=	install-message check-conflicts \
3827
_INSTALL_SEQ=	install-message check-conflicts \
3811
			    run-depends lib-depends apply-slist pre-install \
3828
			    run-depends lib-depends perl-run-depends apply-slist \
3812
				pre-install-script generate-plist check-already-installed
3829
				pre-install pre-install-script generate-plist \
3830
				check-already-installed
3813
_INSTALL_SUSEQ= check-umask install-mtree pre-su-install \
3831
_INSTALL_SUSEQ= check-umask install-mtree pre-su-install \
3814
				pre-su-install-script do-install post-install \
3832
				pre-su-install-script do-install post-install \
3815
				post-install-script add-plist-info add-plist-docs \
3833
				post-install-script add-plist-info add-plist-docs \
Lines 4307-4313 Link Here
4307
################################################################
4325
################################################################
4308
4326
4309
.if !target(depends)
4327
.if !target(depends)
4310
depends: extract-depends patch-depends lib-depends misc-depends fetch-depends build-depends run-depends
4328
depends: extract-depends patch-depends lib-depends perl-build-depends perl-run-depends misc-depends fetch-depends build-depends run-depends
4311
4329
4312
.if defined(ALWAYS_BUILD_DEPENDS)
4330
.if defined(ALWAYS_BUILD_DEPENDS)
4313
_DEPEND_ALWAYS=	1
4331
_DEPEND_ALWAYS=	1
Lines 4460-4465 Link Here
4460
	done
4478
	done
4461
.endif
4479
.endif
4462
4480
4481
.for deptype in BUILD RUN
4482
perl-${deptype:L}-depends:
4483
.if defined(PERL_${deptype}_DEPENDS)
4484
	@for tupple in ${PERL_${deptype}_DEPENDS}; do \
4485
		mod=$${tupple%:*}; \
4486
		mod=`${ECHO_CMD} $${mod} | sed -e 's/\-/::/g'`; \
4487
		dir=$${tupple##*:}; \
4488
		${ECHO_MSG} -n "===>   ${PKGNAME} depends on Perl module: $$mod"; \
4489
		if ${PERL} -M$${mod} -e 1 2>/dev/null; then \
4490
			${ECHO_MSG} " - found"; \
4491
		else \
4492
			${ECHO_MSG} " - not found"; \
4493
			${ECHO_MSG} "===>    Verifying install for $$mod in $$dir"; \
4494
			if [ ! -d "$$dir" ]; then \
4495
				${ECHO_MSG} "     => No directory for $$mod.  Skipping.."; \
4496
			else \
4497
				if [ X${USE_PACKAGE_DEPENDS} != "X" ]; then \
4498
					subpkgfile=`(cd $$dir; ${MAKE} $$depends_args -V PKGFILE)`; \
4499
					if [ -r "$${subpkgfile}" -a "$$target" = "${DEPENDS_TARGET}" ]; then \
4500
						${ECHO_MSG} "===>   Installing existing package $${subpkgfile}"; \
4501
						${PKG_ADD} $${subpkgfile}; \
4502
					else \
4503
					  (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS install ) ; \
4504
					fi; \
4505
				else \
4506
					(cd $$dir; ${MAKE} -DINSTALLS_DEPENDS install) ; \
4507
				fi ; \
4508
				${ECHO_MSG} "===>   Returning to build of ${PKGNAME}"; \
4509
				if ! ${PERL} -M$${mod} -e 1 2>/dev/null; then \
4510
					${ECHO_MSG} "Error: Perl module \"$${mod}\" does not exist"; \
4511
					${FALSE}; \
4512
				fi; \
4513
			fi; \
4514
		fi; \
4515
    done
4516
.else
4517
	@${DO_NADA}
4518
.endif
4519
.endfor
4520
4463
misc-depends:
4521
misc-depends:
4464
.if defined(DEPENDS)
4522
.if defined(DEPENDS)
4465
.if !defined(NO_DEPENDS)
4523
.if !defined(NO_DEPENDS)
Lines 4490-4502 Link Here
4490
# Dependency lists: both build and runtime, recursive.  Print out directory names.
4548
# Dependency lists: both build and runtime, recursive.  Print out directory names.
4491
4549
4492
all-depends-list:
4550
all-depends-list:
4493
.if defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) || defined(DEPENDS)
4551
.if defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) || defined(DEPENDS) || defined(PERL_BUILD_DEPENDS) || defined(PERL_RUN_DEPENDS)
4494
	@${ALL-DEPENDS-LIST}
4552
	@${ALL-DEPENDS-LIST}
4495
.endif
4553
.endif
4496
4554
4497
ALL-DEPENDS-LIST= \
4555
ALL-DEPENDS-LIST= \
4498
	checked="${PARENT_CHECKED}"; \
4556
	checked="${PARENT_CHECKED}"; \
4499
	for dir in $$(${ECHO_CMD} "${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':') $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':'); do \
4557
	for dir in $$(${ECHO_CMD} "${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${RUN_DEPENDS} ${PERL_RUN_DEPENDS} ${PERL_BUILD_DEPENDS} " | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':') $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':'); do \
4500
		if [ -d $$dir ]; then \
4558
		if [ -d $$dir ]; then \
4501
			if (${ECHO_CMD} $$checked | ${GREP} -qwv "$$dir"); then \
4559
			if (${ECHO_CMD} $$checked | ${GREP} -qwv "$$dir"); then \
4502
				child=$$(cd $$dir; ${MAKE} PARENT_CHECKED="$$checked" all-depends-list); \
4560
				child=$$(cd $$dir; ${MAKE} PARENT_CHECKED="$$checked" all-depends-list); \
Lines 4541-4547 Link Here
4541
.if !target(fetch-required)
4599
.if !target(fetch-required)
4542
fetch-required: fetch
4600
fetch-required: fetch
4543
	@${ECHO_MSG} "===> Fetching all required distfiles for ${PKGNAME} and dependencies"
4601
	@${ECHO_MSG} "===> Fetching all required distfiles for ${PKGNAME} and dependencies"
4544
.for deptype in EXTRACT PATCH FETCH BUILD RUN
4602
.for deptype in EXTRACT PATCH FETCH BUILD RUN PERL_BUILD PERL_RUN
4545
.if defined(${deptype}_DEPENDS)
4603
.if defined(${deptype}_DEPENDS)
4546
.if !defined(NO_DEPENDS)
4604
.if !defined(NO_DEPENDS)
4547
	@for i in ${${deptype}_DEPENDS}; do \
4605
	@for i in ${${deptype}_DEPENDS}; do \
Lines 4569-4575 Link Here
4569
4627
4570
.if !target(fetch-required-list)
4628
.if !target(fetch-required-list)
4571
fetch-required-list: fetch-list
4629
fetch-required-list: fetch-list
4572
.for deptype in EXTRACT PATCH FETCH BUILD RUN
4630
.for deptype in EXTRACT PATCH FETCH BUILD RUN PERL_BUILD PERL_RUN
4573
.if defined(${deptype}_DEPENDS)
4631
.if defined(${deptype}_DEPENDS)
4574
.if !defined(NO_DEPENDS)
4632
.if !defined(NO_DEPENDS)
4575
	@for i in ${${deptype}_DEPENDS}; do \
4633
	@for i in ${${deptype}_DEPENDS}; do \
Lines 4611-4622 Link Here
4611
# Dependency lists: build and runtime.  Print out directory names.
4669
# Dependency lists: build and runtime.  Print out directory names.
4612
4670
4613
build-depends-list:
4671
build-depends-list:
4614
.if defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) || defined(DEPENDS)
4672
.if defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) || defined(DEPENDS) || defined(PERL_BUILD_DEPENDS)
4615
	@${BUILD-DEPENDS-LIST}
4673
	@${BUILD-DEPENDS-LIST}
4616
.endif
4674
.endif
4617
4675
4618
BUILD-DEPENDS-LIST= \
4676
BUILD-DEPENDS-LIST= \
4619
	for dir in $$(${ECHO_CMD} "${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS}" | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | ${SORT} -u) $$(${ECHO_CMD} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//' | ${SORT} -u); do \
4677
	for dir in $$(${ECHO_CMD} "${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${PERL_BUILD_DEPENDS}" | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | ${SORT} -u) $$(${ECHO_CMD} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//' | ${SORT} -u); do \
4620
		if [ -d $$dir ]; then \
4678
		if [ -d $$dir ]; then \
4621
			${ECHO_CMD} $$dir; \
4679
			${ECHO_CMD} $$dir; \
4622
		else \
4680
		else \
Lines 4625-4636 Link Here
4625
	done | ${SORT} -u
4683
	done | ${SORT} -u
4626
4684
4627
run-depends-list:
4685
run-depends-list:
4628
.if defined(LIB_DEPENDS) || defined(RUN_DEPENDS) || defined(DEPENDS)
4686
.if defined(LIB_DEPENDS) || defined(RUN_DEPENDS) || defined(DEPENDS) || defined(PERL_RUN_DEPENDS)
4629
	@${RUN-DEPENDS-LIST}
4687
	@${RUN-DEPENDS-LIST}
4630
.endif
4688
.endif
4631
4689
4632
RUN-DEPENDS-LIST= \
4690
RUN-DEPENDS-LIST= \
4633
	for dir in $$(${ECHO_CMD} "${LIB_DEPENDS} ${RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':' | ${SORT} -u) $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':' | ${SORT} -u); do \
4691
	for dir in $$(${ECHO_CMD} "${LIB_DEPENDS} ${RUN_DEPENDS} ${PERL_RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':' | ${SORT} -u) $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':' | ${SORT} -u); do \
4634
		if [ -d $$dir ]; then \
4692
		if [ -d $$dir ]; then \
4635
			${ECHO_CMD} $$dir; \
4693
			${ECHO_CMD} $$dir; \
4636
		else \
4694
		else \
Lines 4642-4648 Link Here
4642
# and package names.
4700
# and package names.
4643
4701
4644
package-depends-list:
4702
package-depends-list:
4645
.if defined(CHILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) || defined(DEPENDS)
4703
.if defined(CHILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) || defined(DEPENDS) || defined(PERL_RUN_DEPENDS)
4646
	@${PACKAGE-DEPENDS-LIST}
4704
	@${PACKAGE-DEPENDS-LIST}
4647
.endif
4705
.endif
4648
4706
Lines 4661-4667 Link Here
4661
		done; \
4719
		done; \
4662
	fi; \
4720
	fi; \
4663
	checked="${PARENT_CHECKED}"; \
4721
	checked="${PARENT_CHECKED}"; \
4664
	for dir in $$(${ECHO_CMD} "${LIB_DEPENDS} ${RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':') $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':'); do \
4722
	for dir in $$(${ECHO_CMD} "${LIB_DEPENDS} ${RUN_DEPENDS} ${PERL_RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':') $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':'); do \
4665
		dir=$$(${REALPATH} $$dir); \
4723
		dir=$$(${REALPATH} $$dir); \
4666
		if [ -d $$dir ]; then \
4724
		if [ -d $$dir ]; then \
4667
			if (${ECHO_CMD} $$checked | ${GREP} -qwv "$$dir"); then \
4725
			if (${ECHO_CMD} $$checked | ${GREP} -qwv "$$dir"); then \
Lines 4730-4736 Link Here
4730
		@rdirs = map((split /:/)[1], split(q{ }, q{${RUN_DEPENDS}})); \
4788
		@rdirs = map((split /:/)[1], split(q{ }, q{${RUN_DEPENDS}})); \
4731
		@ddirs = map((split /:/)[0], split(q{ }, q{${DEPENDS}})); \
4789
		@ddirs = map((split /:/)[0], split(q{ }, q{${DEPENDS}})); \
4732
		@ldirs = map((split /:/)[1], split(q{ }, q{${LIB_DEPENDS}})); \
4790
		@ldirs = map((split /:/)[1], split(q{ }, q{${LIB_DEPENDS}})); \
4733
		for my $$i (\@edirs, \@pdirs, \@fdirs, \@bdirs, \@rdirs, \@ddirs, \@ldirs) { \
4791
		@prdirs = map((split /:/)[1], split(q{ }, q{${PERL_RUN_DEPENDS}})); \
4792
		@pbdirs = map((split /:/)[1], split(q{ }, q{${PERL_BUILD_DEPENDS}})); \
4793
		for my $$i (\@edirs, \@pdirs, \@fdirs, \@bdirs, \@rdirs, \@ddirs, \@ldirs, \@prdirs, \@pbdirs) { \
4734
			my @dirs = @$$i; \
4794
			my @dirs = @$$i; \
4735
			@$$i = (); \
4795
			@$$i = (); \
4736
			for (@dirs) { \
4796
			for (@dirs) { \
Lines 4754-4764 Link Here
4754
			$$xf{$$_} = 1; \
4814
			$$xf{$$_} = 1; \
4755
		} \
4815
		} \
4756
		print join(q{ }, sort keys %xf), q{|}; \
4816
		print join(q{ }, sort keys %xf), q{|}; \
4757
		for (@bdirs, @ddirs, @ldirs) { \
4817
		for (@bdirs, @ddirs, @ldirs, @pbdirs) { \
4758
			$$xb{$$_} = 1; \
4818
			$$xb{$$_} = 1; \
4759
		} \
4819
		} \
4760
		print join(q{ }, sort keys %xb), q{|}; \
4820
		print join(q{ }, sort keys %xb), q{|}; \
4761
		for (@rdirs, @ddirs, @ldirs) { \
4821
		for (@rdirs, @ddirs, @ldirs, @prdirs) { \
4762
			$$xr{$$_} = 1; \
4822
			$$xr{$$_} = 1; \
4763
		} \
4823
		} \
4764
		print join(q{ }, sort keys %xr), q{|}; \
4824
		print join(q{ }, sort keys %xr), q{|}; \
Lines 4819-4825 Link Here
4819
pretty-print-build-depends-list:
4879
pretty-print-build-depends-list:
4820
.if defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || \
4880
.if defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || \
4821
	defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || \
4881
	defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || \
4822
	defined(LIB_DEPENDS) || defined(DEPENDS)
4882
	defined(LIB_DEPENDS) || defined(DEPENDS) || \
4883
	defined(PERL_BUILD_DEPENDS)
4823
	@${ECHO_CMD} -n 'This port requires package(s) "'
4884
	@${ECHO_CMD} -n 'This port requires package(s) "'
4824
	@${ECHO_CMD} -n `${GREP} '^${PKGNAME}|' ${PORTSDIR}/${INDEXFILE} | ${AWK} -F\| '{print $$8;}'`
4885
	@${ECHO_CMD} -n `${GREP} '^${PKGNAME}|' ${PORTSDIR}/${INDEXFILE} | ${AWK} -F\| '{print $$8;}'`
4825
	@${ECHO_CMD} '" to build.'
4886
	@${ECHO_CMD} '" to build.'
Lines 4828-4834 Link Here
4828
4889
4829
.if !target(pretty-print-run-depends-list)
4890
.if !target(pretty-print-run-depends-list)
4830
pretty-print-run-depends-list:
4891
pretty-print-run-depends-list:
4831
.if defined(RUN_DEPENDS) || defined(LIB_DEPENDS) || defined(DEPENDS)
4892
.if defined(RUN_DEPENDS) || defined(LIB_DEPENDS) || \
4893
	defined(DEPENDS) || defined(PERL_RUN_DEPENDS)
4832
	@${ECHO_CMD} -n 'This port requires package(s) "'
4894
	@${ECHO_CMD} -n 'This port requires package(s) "'
4833
	@${ECHO_CMD} -n `${GREP} '^${PKGNAME}|' ${PORTSDIR}/${INDEXFILE} | ${AWK} -F\| '{print $$9;}'`
4895
	@${ECHO_CMD} -n `${GREP} '^${PKGNAME}|' ${PORTSDIR}/${INDEXFILE} | ${AWK} -F\| '{print $$9;}'`
4834
	@${ECHO_CMD} '" to run.'
4896
	@${ECHO_CMD} '" to run.'

Return to bug 87318