diff options
author | rillig <rillig@pkgsrc.org> | 2018-11-09 06:46:03 +0000 |
---|---|---|
committer | rillig <rillig@pkgsrc.org> | 2018-11-09 06:46:03 +0000 |
commit | 4775a6e5156ac63e95f931ff76de9613582d62d3 (patch) | |
tree | 5eb307b943f75db992ed151ef1d8cb7bb9e076ca /regress | |
parent | bde92eaf8ca8b9b31674b9a434f734196676c209 (diff) | |
download | pkgsrc-4775a6e5156ac63e95f931ff76de9613582d62d3.tar.gz |
regress/env-vars: demonstrate where and how the *_ENV variables are set
Diffstat (limited to 'regress')
-rw-r--r-- | regress/env-vars/DESCR | 2 | ||||
-rw-r--r-- | regress/env-vars/Makefile | 49 | ||||
-rw-r--r-- | regress/env-vars/PLIST | 2 | ||||
-rw-r--r-- | regress/env-vars/files/Makefile | 6 | ||||
-rw-r--r-- | regress/env-vars/files/configure | 5 | ||||
-rw-r--r-- | regress/env-vars/spec | 65 |
6 files changed, 129 insertions, 0 deletions
diff --git a/regress/env-vars/DESCR b/regress/env-vars/DESCR new file mode 100644 index 00000000000..977d7874014 --- /dev/null +++ b/regress/env-vars/DESCR @@ -0,0 +1,2 @@ +Demonstrate how the various *_ENV variables fit together and where they +are available. diff --git a/regress/env-vars/Makefile b/regress/env-vars/Makefile new file mode 100644 index 00000000000..850db8d4c0e --- /dev/null +++ b/regress/env-vars/Makefile @@ -0,0 +1,49 @@ +# $NetBSD: Makefile,v 1.1 2018/11/09 06:46:03 rillig Exp $ +# + +DISTNAME= env-vars-1.0 +CATEGORIES= regress +MASTER_SITES= # none +DISTFILES= # none + +MAINTAINER= pkgsrc-users@NetBSD.org +COMMENT= Demonstrates the various *_ENV variables +LICENSE= 2-clause-bsd + +USE_TOOLS+= printf env sed sort +NO_CHECKSUM= yes +HAS_CONFIGURE= yes +WRKSRC= ${WRKDIR} + +ENV_VARS+= PKGSRC_MAKE_ENV +ENV_VARS+= EXTRACT_ENV +ENV_VARS+= CONFIGURE_ENV +ENV_VARS+= ALL_ENV +ENV_VARS+= MAKE_ENV +ENV_VARS+= BSD_MAKE_ENV +ENV_VARS+= INSTALL_ENV + +.for v in ${ENV_VARS} +${v}+= ${v}_set=yes +.endfor + +do-extract: + ${CP} ${FILESDIR}/configure ${FILESDIR}/Makefile ${WRKSRC} + +.include "../../mk/bsd.pkg.mk" + +# These definitions must be below bsd.pkg.mk, or their pkgsrc default +# actions will not be run. +# +pre-fetch do-fetch post-fetch \ +pre-extract do-extract post-extract \ +pre-patch do-patch post-patch \ +pre-configure do-configure post-configure \ +pre-build do-build post-build \ +pre-install do-install post-install: \ +save-env-vars + +save-env-vars: .USE .PHONY + ${RUN} \ + env | sed -n -e '/^[^=]*_set=yes$$/p' | LC_ALL=C sort \ + > "$$REGRESS_TMPDIR/${.TARGET}.vars" diff --git a/regress/env-vars/PLIST b/regress/env-vars/PLIST new file mode 100644 index 00000000000..41f1b203de1 --- /dev/null +++ b/regress/env-vars/PLIST @@ -0,0 +1,2 @@ +@comment $NetBSD: PLIST,v 1.1 2018/11/09 06:46:03 rillig Exp $ +@comment intentionally empty diff --git a/regress/env-vars/files/Makefile b/regress/env-vars/files/Makefile new file mode 100644 index 00000000000..aaa00791a8b --- /dev/null +++ b/regress/env-vars/files/Makefile @@ -0,0 +1,6 @@ +# $NetBSD: Makefile,v 1.1 2018/11/09 06:46:03 rillig Exp $ + +all install: + @set -eu; \ + env | sed -n -e '/^.*_set=yes$$/p' | LC_ALL=C sort \ + > "$$REGRESS_TMPDIR/make-${.TARGET}.vars" diff --git a/regress/env-vars/files/configure b/regress/env-vars/files/configure new file mode 100644 index 00000000000..357a6b23799 --- /dev/null +++ b/regress/env-vars/files/configure @@ -0,0 +1,5 @@ +# $NetBSD: configure,v 1.1 2018/11/09 06:46:03 rillig Exp $ +set -eu + +env | sed -n -e '/^.*_set=yes$/p' | LC_ALL=C sort \ +> "$REGRESS_TMPDIR/configure.vars" diff --git a/regress/env-vars/spec b/regress/env-vars/spec new file mode 100644 index 00000000000..aaa8ac99a33 --- /dev/null +++ b/regress/env-vars/spec @@ -0,0 +1,65 @@ +# $NetBSD: spec,v 1.1 2018/11/09 06:46:03 rillig Exp $ +# + +tmpdir=${TMPDIR:-/tmp}/pkgsrc-env-vars +rm -rf "$tmpdir" +mkdir -p "$tmpdir" + +require_file_has_lines() { # filename line... + rfhl_expected="$tmpdir/expected" + rfhl_actual=$1 + shift + + printf '%s\n' "$@" > "$rfhl_expected" + + if diff -u "$rfhl_expected" "$rfhl_actual" > /dev/null; then + : + else + regress_fail "Expected files to be equal." + diff -u "$rfhl_expected" "$rfhl_actual" || true + fi + + rm -f "$rfhl_expected" +} + + +do_test() { + env REGRESS_TMPDIR="$tmpdir" $TEST_MAKE clean + env REGRESS_TMPDIR="$tmpdir" $TEST_MAKE update +} + +check_result() { + + # In the {pre,do,post}-* targets, only the PKGSRC_MAKE_ENV + # variables are set. + # + require_file_has_lines "$tmpdir/do-build.vars" \ + "PKGSRC_MAKE_ENV_set=yes" + + # In the configure script of the package, some more variables + # are set. + # + require_file_has_lines "$tmpdir/configure.vars" \ + "ALL_ENV_set=yes" \ + "CONFIGURE_ENV_set=yes" \ + "PKGSRC_MAKE_ENV_set=yes" + + # In the build phase, when the default do-build commands are + # run, the Makefiles from the package have access to these + # variables: + # + require_file_has_lines "$tmpdir/make-all.vars" \ + "ALL_ENV_set=yes" \ + "MAKE_ENV_set=yes" \ + "PKGSRC_MAKE_ENV_set=yes" + + # In the install phase, when the default do-install commands are + # run, the Makefiles from the package have access to these + # variables: + # + require_file_has_lines "$tmpdir/make-install.vars" \ + "ALL_ENV_set=yes" \ + "INSTALL_ENV_set=yes" \ + "MAKE_ENV_set=yes" \ + "PKGSRC_MAKE_ENV_set=yes" +} |