Commit graph

255 commits

Author SHA1 Message Date
jlam
b563e8eb9b There is still one small but important distinction between some of the
tools listed in USE_TOOLS -- some of them are required by the pkgsrc
infrastructure in variable assignment statements that look like:

    VARIABLE!=	${AWK} ...

These tools are actually *required* by pkgsrc to be installed on the
system before it can even work (bootstrap situation).  For these tools,
only override the "TOOL" name representing the tool if we're really
using the pkgsrc version of the tool.

We accomplish this by adding a new :pkgsrc modifier that is appended
to these tools listed in USE_TOOLS.  We also list these tools in
bsd.prefs.mk so that all packages pick them up fairly early on.
2005-07-16 22:33:18 +00:00
jlam
e6ab9808fa Changing := to = here fixes a bug seen in x11-links where _USE_TOOLS
was empty.

XXX I have no idea why this fixes the problem.
2005-07-16 05:34:59 +00:00
jlam
3e474a90d8 Get rid of USE_PERL5. The new way to express needing the Perl executable
around at either build-time or at run-time is:

	USE_TOOLS+=	perl		# build-time
	USE_TOOLS+=	perl:run	# run-time

Also remove some places where perl5/buildlink3.mk was being included
by a package Makefile, but all that the package wanted was the Perl
executable.
2005-07-16 01:19:06 +00:00
jlam
e26a9ed756 Drop support for TOOLS_DEPMETHOD.<tool>. The new way to specify a
run-time dependency (DEPENDS) on a tool is to append a ":run" modifier
to the tool name, e.g.,

	USE_TOOLS+=	perl:run

Tools without modifiers or with an explicit ":build" modifier will
cause build dependencies (BUILD_DEPENDS) on those tools to be added.
This makes the notation a bit more compact.
2005-07-15 20:14:02 +00:00
jlam
bf9129c41e Drop distinction between PKGSRC_USE_TOOLS and USE_TOOLS by making
PKGSRC_USE_TOOLS go away.  There is now only a single USE_TOOLS variable
that specifies all of the tools we need to build/run the package.
2005-07-15 18:27:48 +00:00
jlam
7ab7ea45ee "imake" may be defined in PKGSRC_USE_TOOLS instead of USE_TOOLS, so add
any IMAKE_TOOLS in that case as well.
2005-07-08 13:43:47 +00:00
jlam
222936ee6b MacOS X 10.[34] have /usr/bin/shlock (from <schmonz>). 2005-07-07 21:29:11 +00:00
minskim
1766fa83af Fix another typo (TOOLS_READ_CMD -> TOOLS_REAL_CMD). 2005-06-24 21:21:31 +00:00
minskim
b27f349884 Fix a typo. 2005-06-24 21:17:01 +00:00
jlam
73e8531006 Teach the tools framework about csh, and replace with tcsh if necessary. 2005-06-24 20:59:59 +00:00
jlam
237d39908a Create TOOLS_LDCONFIG and LDCONFIG variables that contain the actual
command that can be embedded into packages.  Calling a bare "ldconfig"
will still call the one in the tools directory, which always does the
right thing.
2005-06-24 20:40:53 +00:00
jlam
aa8ce0eb27 Remove unused variable _TOOLS_VARNAME.ldconfig. 2005-06-24 20:33:52 +00:00
minskim
36a63b2df7 Darwin may have bzcat. 2005-06-24 20:15:06 +00:00
minskim
317318f0f0 Support bash as a tool, so that packages containing bash scripts
(e.g. graphics/netpbm) use native bash if available.
2005-06-24 19:39:10 +00:00
jlam
c2fb31ba79 Drop the perl-5.6.x package from pkgsrc. Remove lang/perl58 and update
lang/perl5 to perl-5.8.6nb4.  Modify packages that referred to
lang/perl58 to point to lang/perl5 instead.
2005-06-24 06:43:43 +00:00
jlam
df8c47b2f2 Note locations for native diff tools. 2005-06-23 20:45:34 +00:00
jlam
805d6d300a Teach the tools framework about "diff". 2005-06-23 20:39:39 +00:00
jlam
9b5d98e50b "cmp" can be "gcmp" if we use the one from pkgsrc. 2005-06-23 20:35:55 +00:00
jlam
7357eef2ae The OpenBSD chgrp and chown can be in different places depending on the
OpenBSD release, so check for the right location.
2005-06-17 20:58:58 +00:00
jlam
873398634f Pull out the LS and TR definitions from algae/Makefile and place them
in tools/defaults.mk where they can be more widely used.
2005-06-17 17:05:18 +00:00
jlam
c49a0c735b PERL_PATH is also a common GNU configure script variable for the path to
the perl interpreter.
2005-06-17 16:24:51 +00:00
grant
3bfb445a35 provide defaults for bzcat and tbl to avoid unnecessary build
dependencies on archivers/bzip2 and textproc/groff when they are
available in the base system.
2005-06-16 04:30:46 +00:00
jlam
226567f45c Make IMAKE_TOOLS into a publicly-readable variable so that it can be
used by pkgtools/xpkgwedge.
2005-06-14 07:12:23 +00:00
jlam
9a2b543ac3 Remove unnecessary .undef lines after .for loops as the loop variables
are automatically undefined after the loop exits.
2005-06-11 05:22:03 +00:00
jlam
d9ac2e54e4 Force an autoconf "cache" override for tools that are likely to be
shell builtins, e.g. echo, false, test, true, since those tools don't
have a full path.
2005-06-10 20:53:54 +00:00
jlam
816e616b23 Add another common name for the GNU configure variable name used for the
"env" tool.
2005-06-07 16:57:37 +00:00
jlam
034f0336eb Add a few more GNU configure variable names that are commonly used.
Also, some configure scripts use "ENV" to represent the path to the
"env" tool, which is probably bad since ENV has a special meaning to
/bin/sh.  To workaround this, set ac_cv_path_ENV.
2005-06-07 16:33:12 +00:00
jlam
c55f2fb319 Teach the tools framework about mktemp. Replace explicit tests for
mktemp with USE_TOOLS+=mktemp in the samba packages.
2005-06-03 22:54:44 +00:00
jlam
dd2b1cf653 Teach the tools framework about bdftopcf and remove
x11-clients.buildlink3.mk.  Packages that need bdftopcf should say:

	USE_TOOLS+=	bdftopcf
2005-06-03 21:11:06 +00:00
jlam
493a44f926 Back out previous change, and correct the surrounding check -- we need
to see if _USE_TOOLS contains "perl", not USE_TOOLS.
2005-06-02 21:03:32 +00:00
tron
286d96e77f Test whether "_TOOLS_USE_PKGSRC.perl" is defined before checking its value.
This makes "make fetch-list" in "pkgsrc/meta-pkgs/kde3" work again.
2005-06-02 09:31:25 +00:00
jlam
fcb7da800b Remove mk/autoconf.mk and mk/automake.mk and replace their usage with
USE_TOOLS and any of "autoconf", "autoconf213", "automake" or
"automake14".  Also, we don't need to call the auto* tools via
${ACLOCAL}, ${AUTOCONF}, etc., since the tools framework takes care
to symlink the correct tool to the correct name, so we can just use
aclocal, autoconf, etc.
2005-06-01 20:07:59 +00:00
jlam
05db0b4f12 Turn IMAKE_MAKE into a public variable that may be set via /etc/mk.conf. 2005-06-01 18:14:23 +00:00
jlam
72f6164581 Teach the tools framework about nroff. 2005-05-26 21:46:13 +00:00
jlam
780794d4c1 Work around brokenness in GNU configure scripts generated by autoconf-2.59a
-- the checks for grep and egrep are broken because when passed GREP
and EGREP in the environment, the script causes GREP and EGREP to be
set to empty strings, which causes GNU configure scripts to hang or
break.  Pass the real paths to grep and egrep through using ac_cv_path_GREP
and ac_cv_path_EGREP as well to avoid the brokenness.  This fixes the
build of textproc/gsed.
2005-05-23 17:07:22 +00:00
jlam
19ef841612 Teach the tools framework about "flex" so that packages can specify
that they require flex instead of any old lex.
2005-05-23 01:20:50 +00:00
jlam
163b6e6c2b Remove USE_TBL from pkgsrc and replace with USE_TOOLS+=tbl. 2005-05-22 21:04:41 +00:00
jlam
ea6e7a716b Don't add "INSTALL" to CONFIGURE_ENV as bsd.pkg.mk adds special values
for INSTALL by itself during the configure stage.  This fixes problems
with GNU configure scripts using the wrong value of INSTALL.
2005-05-22 20:58:27 +00:00
jlam
585534220c Remove USE_GNU_TOOLS and replace with the correct USE_TOOLS definitions:
USE_GNU_TOOLS	-> USE_TOOLS
	awk		-> gawk
	m4		-> gm4
	make		-> gmake
	sed		-> gsed
	yacc		-> bison
2005-05-22 20:07:36 +00:00
minskim
9e8f5af260 Do not enable _IMAKE_TOOLS unless imake is used. Otherwise, packages
would always be built with gmake on Linux.
2005-05-22 05:21:15 +00:00
jlam
63e891437c Some packages want to embed the path to the perl tool in scripts but
don't want to depend on perl, e.g. devel/cvs.  Provide values for
TOOLS_PERL5 and PERL5 even if the package doesn't ask for the perl
tool.
2005-05-22 02:30:53 +00:00
jlam
ce40410af8 The path to perl is now passed via CONFIGURE_ENV as of revision 1.9 of
mk/tools/replace.mk.
2005-05-22 02:05:24 +00:00
jlam
b3ff0bed40 Allow a tool to be passed to GNU configure scripts under more than
one name.
2005-05-22 01:56:27 +00:00
jlam
edef76fb93 Add a few more tools for GNU configure scripts: grep, env, xmkmf. 2005-05-22 01:53:55 +00:00
jlam
5792714269 For packages that use GNU configure scripts, pass the real command
paths for the tools that the package uses through the shell environment.
We do this since these paths may be hardcoded into package scripts,
and if they're not pre-specified, then they'll be searched for in the
PATH, which would find the ones in ${TOOLS_DIR}.

The variable names that GNU configure scripts expect are named in
_TOOLS_VARNAME_GNU.* for the various tools.
2005-05-21 23:09:36 +00:00
jlam
3b3b871622 Grammar 101 -- sentences should end in a period. 2005-05-21 04:53:17 +00:00
jlam
6cb4436e71 Add TNF copyright to the new tools framework makefiles. 2005-05-21 04:46:52 +00:00
jlam
62acf70ba6 Only add the autoconf tool if the user also requested automake. This
avoids making autoconf required by every package in pkgsrc.
2005-05-20 03:08:45 +00:00
jlam
5a4310c9a2 Move the PLIST_SUBST lines that substitute for PERL5_* variables from
perl5/module.mk into tools/perl.mk so that the substitution occurs for
all packages that use perl.
2005-05-20 03:00:16 +00:00
jlam
169a6feefa Properly quote dependency to avoid creating garbage files in the pkgsrc
tree.
2005-05-20 02:57:23 +00:00
jlam
53e42fcf42 Based on the value of ${AUTOCONF_REQD}, choose the right autoconf tool
to use.  This fixes packages that want automake-1.4, but autoconf-2.50.
2005-05-20 02:40:23 +00:00
jlam
28e2995cd1 We can only use the subst.mk framework if the files are relative to
${WRKSRC}.  Just directly create the msgfmt wrapper in the proper
target.  Also, note that the msgfmt handling should eventually migrate
to the tools framework so that build dependencies and binary paths are
correct.
2005-05-19 20:08:44 +00:00
jlam
10b0f8d012 Merge most of imake.mk into replace.mk and leave imake.mk to contain
the extra bits required by packages that use imake/xmkmf.  This
consolidates most of the replacement tools handling into replace.mk.
2005-05-19 05:27:25 +00:00
jlam
0e05f46639 Merge most of perl.mk into replace.mk and leave perl.mk to contain
the extra bits required by packages that use perl.  This causes
PKGSRC_USE_TOOLS+=perl to work properly.
2005-05-19 03:52:23 +00:00
jlam
2046497558 Properly deal with case where TOOL_DEPENDS.* is a list of values by
iterating over each dependency in the list.
2005-05-19 02:27:38 +00:00
jlam
d6f6120540 Goal: Remove USE_PERL5 from pkgsrc.
Plan:
	(1) Change USE_PERL5=build into USE_TOOLS+=perl.
	(2) Change all other USE_PERL5 into including perl5/buildlink3.mk.

Possibly, for packages that don't actually build anything with perl,
but merely require it for the perl interpreter, we can instead do:

	USE_TOOLS+=		perl
	TOOLS_DEPMETHOD.perl=	DEPENDS

but this is more verbose than simply including the perl5/buildlink3.mk
file.

Move the PERL5_REQD computation into a lang/perl5/version.mk file,
and only do the USE_PERL5 logic in bsd.pkg.use.mk if we're not using
the new tools framework.  This consolidates all of the perl-handling
into two places -- lang/perl5 and mk/tools/perl.mk.
2005-05-18 22:42:07 +00:00
jlam
5a008c838b Use nawk as the default "awk" replacement since it has no dependencies
and is still strong enough for pkgsrc use.
2005-05-18 05:31:55 +00:00
jlam
d17d2e4a4f perl.mk was moved from being included by bsd.tools.mk to replace.mk.
Since replace.mk has its own loop to add dependencies, we can remove
the one from perl.mk.
2005-05-18 03:14:01 +00:00
jlam
8c1f92916b Move perl handling into replace.mk. We now can specify USE_TOOLS+=perl
to note that we need the perl binary and the associated PERL5 and
TOOLS_PERL5 variable definitions.
2005-05-17 18:34:45 +00:00
jlam
f009001837 In the autoconf213 case, the AUTO* variables should point to the
TOOLS_CMD.* variables for the -2.13 variants.  Otherwise, they're
empty, which causes errors for packages that use ${AUTOCONF}.
2005-05-16 18:54:06 +00:00
jlam
a77257ee11 USE_GNU_TOOLS+=m4 should translate to USE_TOOLS+=gm4 to get the same
meaning.
2005-05-16 18:35:30 +00:00
jlam
e87497f3c3 Don't have USE_TOOLS+=imake replace USE_IMAKE. Rather let the former
specify that imake is used by the package, while the latter triggers
the special do-configure process.
2005-05-16 18:01:12 +00:00
jlam
3966d98d38 Treat USE_GNU_TOOLS+=yacc the same as USE_TOOLS+=bison, since there is
the implication that the system yacc(1) is not good enough anyway.
2005-05-16 16:28:54 +00:00
jlam
2338cbae27 Change the EXTRACT_USING_PAX defined/undefined option into a EXTRACT_USING
which can take multiple values -- "pax" or "gtar".  The default value
of EXTRACT_USING is "pax", which more closely matches reality since
before, we were using bootstrap "tar" for ${GTAR} and it was actually
pax-as-tar.  Also, stop pretending pax-as-tar from the bootstrap kit
or on NetBSD is GNU tar.  Lastly, in bsd.pkg.extract.mk, note whether
we need "pax" or "gtar" depending on what we need to extract the
distfiles.
2005-05-16 03:04:44 +00:00
jlam
bff1867aa9 Don't forcibly set XMKMF -- allow the package to override it if necessary. 2005-05-15 23:27:44 +00:00
jlam
0582157fdb Asking the tools framework for "bison" now provides two distinct tools:
"bison" and "bison-yacc".  bison is just a symlink to the real bison,
but "bison-yacc" provides a "yacc" in ${TOOLS_DIR} that does "bison
-y".  This allows the tools framework to provide everything that a
package might look for when asking for "bison" and avoids relying on
the bison being available in the PATH.
2005-05-15 23:20:38 +00:00
jlam
94ed41f339 In the tools framework, check that the directory doesn't exist before
creating it in case ${MKDIR} can't handle that situation.
2005-05-15 22:53:57 +00:00
jlam
f6bb82897e MAKE_PROGRAM:T isn't necessary... we can just call "make", and the PATH
is already properly constructed to call the one in ${TOOLS_DIR}, which
symlinks to the correct make tools.  From rillig@ in private mail.
2005-05-15 22:50:53 +00:00
jlam
2205e39726 Linux xargs is probably GNU xargs, so we need to invoke it with "-r".
From schwarz@ in private mail.
2005-05-15 22:37:46 +00:00
jlam
2e18822098 gzip-base installs "zcat" not "gzcat". 2005-05-15 22:34:43 +00:00
jlam
f680604f3c We want to check if we're in gzip-base to avoid circular dependencies on
gzip.
2005-05-15 22:33:08 +00:00
jlam
4298b295a5 gzip and gunzip don't exist on IRIX 5 so wrap then in existence checks.
Ditto for mailx.  Lastly, /usr/bsd/zcat isn't gzcat (doesn't understand
gzipped files), so don't use it as a gzcat replacement.  Changes from
Georg Schwarz in private email.
2005-05-15 22:31:50 +00:00
jlam
75b0b9c5cc If we're using xpkgwedge, we need to force using pkgxmkmf so that we
pick up the xpkgwedge imake config files.
2005-05-15 18:37:44 +00:00
jlam
2adc6c7d19 Old versions of pax-as-tar don't do the right thing when invoked as
"gtar".  Force the gtar in the tools directory to be a wrapper script
so that we invoke the (possibly) pax-as-tar as "tar".
2005-05-15 03:27:20 +00:00
jlam
29988e2252 Make TOOLS_REAL_CMDLINE_DFLT.<tool> into a publicly-readable value. 2005-05-15 03:09:52 +00:00
jlam
2f3b9ec6f2 Make implementation match documentation for when a wrapper is created and
when a symlink is created.
2005-05-15 01:17:05 +00:00
jlam
e78c6207f3 BUILDLINK_DEPENDS.* can be lists, so iterate over the lists when creating
a proper BUILD_DEPENDS or DEPENDS list.
2005-05-14 21:38:18 +00:00
jlam
8dba6226e7 Consider ${TAR} differently from ${GTAR}. Currently, mark pkgsrc down
as needing both (no impact since they're both satisfied by the tar
binary installed by the bootstrap kit).  There's some funniness in
the extraction code where we check for pax or GNU tar that needs to
be resolved.  Remove the TAR=${GTAR} hack since it's no longer needed
after these changes.

XXX Later, a sweep needs to be made to see where we actually need GTAR
XXX and where we only need TAR, probably triggered by whether we call it
XXX with the "z" option or not.  Packages that need GTAR should explicitly
XXX add USE_TOOLS+=gtar to the package Makefile.
2005-05-14 21:15:07 +00:00
jlam
42d411e6b9 Temporarily define TAR here until I figure out a better way to deal
with TAR vs. GTAR.  This fixes pkg_install not being created with a
tar command.
2005-05-14 20:05:05 +00:00
jlam
e692366547 The mk/tools/defaults.mk is included by bsd.prefs.mk, so it must include
other files without making assumptions about the location of the top of
the pkgsrc tree.  This fixes problems with running "make bulk-cache"
in /usr/pkgsrc (PR pkg/30288).
2005-05-14 19:01:14 +00:00
rillig
31952ae630 Typo: if exists /bin/gzip, use /bin/gzip (not /usr/bin/gzip). 2005-05-14 10:19:36 +00:00
rillig
064ca17fa9 Fixed a typo: now using /usr/sbin/gzcat, like in platform/IRIX.mk. 2005-05-14 10:17:10 +00:00
rillig
1eddab530b Fixed a typo when looking for /usr/bin/cmp. 2005-05-14 10:14:29 +00:00
jlam
214611316d Compute the installation prefix for every tool specified so that the
"TOOL" variables defined by replace.mk, e.g. AWK, GREP, SED, TRUE,
etc., can be used immediately after bsd.tools.mk is included.
2005-05-14 05:57:43 +00:00
rillig
6c2804ebbe Fixed typo in finding grep(1). 2005-05-14 01:25:19 +00:00
rillig
fb358b0e89 Fixed two obvious typos that leaded to syntax errors. 2005-05-14 01:04:37 +00:00
jlam
ec7c68e97c Teach the new tools framework about lha, unrar, unzip, and unzoo and
modify bsd.pkg.extract.mk to use them.  As a side-effect, we stop
hardcoding ${LOCALBASE} as the install prefix for these tools so this
becomes more pkgviews-friendly.
2005-05-13 22:08:20 +00:00
jlam
b17ddaa794 Don't condtionally set the "TOOL" variables... set them explicitly. Also
fix variable name in the case where we're using the pkgsrc tool, since
we were referencing the wrong variable.
2005-05-13 21:57:13 +00:00
rillig
ca96c47d1e Fixed a typo in the comment. 2005-05-13 21:00:12 +00:00
minskim
a96a4d2bc8 if-if-endif -> if-elif-endif 2005-05-13 19:53:08 +00:00
jlam
1ee9760a81 Teach the new tools framework more about perl. We include perl5/vars.mk
in mk/tools/perl.mk since many packages expect to be able to use the
variables defined in vars.mk, but those variables can only be defined
if PERL5 is correctly defined, and that is only true after it is set
here.
2005-05-12 21:03:46 +00:00
jlam
a136d7cc68 Observe the following:
VAR=	a
	PTR=	VAR
	${PTR}?= b

Given these definitions, ${VAR} == "b" (unintuitively).  We can work
around this by doing:

	VAR=	a
	PTR=	VAR
	.for _v_ in ${PTR}
	${_v_}?= b
	.endfor

In this case, ${VAR} == "a" (as expected).

Use the second form of assignment in this changeset so that the expected
behavior happens for the "TOOL" name variables.  This fixes "recursively
defined" errors for some of the "TOOL" variables when the pkgsrc tool
replaces the system-supplied one.
2005-05-12 03:57:40 +00:00
jlam
0dbd0c0762 Rename MAKE_VARS to MAKEVARS so that it more closely resembles
"MAKEFLAGS".  Both "MAKEVARS" and "MAKEFLAGS" affect the package-level
make process, not the software's own make process.
2005-05-11 22:08:18 +00:00
jlam
5e67c262e4 Needing automake implies needing autoconf. Match the version requirements
outlined in mk/automake.mk.
2005-05-11 20:21:32 +00:00
jlam
840f6f2978 Rewrite so that we avoid needing to check the value of TOOLS_REAL_CMD.*
within make.  This allows us to use EVAL_PREFIX to locate the installation
prefix for autoconf and automake, which is more pkgviews-friendly.  In any
case, this implementation is a lot simpler anyway.
2005-05-11 20:09:44 +00:00
jlam
bb022af73a Use EVAL_PREFIX to be pkgviews-friendly. 2005-05-11 19:42:17 +00:00
jlam
0536415df7 Rewrite logic that defines the targets that create the tools under
${TOOLS_DIR} so that we avoid inspecting various variables during the
top-level make invocation -- rather, we defer inspection until the
target is actually made.  This allows TOOLS_REAL_CMDLINE.*,
TOOLS_REAL_CMD.*, and TOOLS_REAL_ARGS.* to be defined after bsd.tools.mk
is included and still affect the creation of the tools under ${TOOLS_DIR}.
2005-05-11 08:41:50 +00:00
jlam
62c0222458 Don't forget to pass the rest of the command-line arguments "$@" to
the command, or else the wrapper will ignore all of its arguments.
This fixes the rpcgen script to actually work.
2005-05-11 05:44:58 +00:00
jlam
52a8db644e Fix the makeinfo wrapper to actually accept arguments by fixing the
value of TOOLS_REAL_CMDLINE.makeinfo.  In this case, we split MAKEINFO
into the command and the arguments, and allow the default command line
to be constructed.
2005-05-11 05:43:48 +00:00
jlam
a03def662e Define the "TOOL" names for the tools to be the same as the "TOOLS_TOOL"
names if the former are undefined.  This allows the "TOOL" names, e.g.
GMAKE, YACC, etc., to be used by package Makefiles for simplicity.
2005-05-11 05:05:03 +00:00