Commit graph

37 commits

Author SHA1 Message Date
joerg
f3e91441c9 Create ranlib override for cross-compilation as libtool doesn't
use the target version.

If we ever want to create archives for the native platform,
NATIVE_RANLIB similiar to NATIVE_CC should be introduced.
2007-08-15 13:24:14 +00:00
joerg
005620851f Add core of the infrastructure support for cross-compilation.
- USE_CROSS_COMPILATION activates it, CROSS_DESTDIR specifies root of
  the target filesystem
- derive _CROSS_DESTDIR from CROSS_DESTDIR or MAKEOBJDIR
- buildlink3.mk prefixes the files to symlink with _CROSS_DESTDIR
- compiler/gcc.mk knows about the target prefix (e.g. i386--netbsdelf)
- PKG_DBDIR is prefixed with _CROSS_DESTDIR
- package-install and bin-install are not called with su
- install and strip are redirected to the tool version
- links for the target specific ar, as, ld, nm, objdump, ranlib and
  strip are added
- compiler wrapper detect if linking is requested or not
- special command sinks for CPP and CC/CXX add the cross-compile magic:
  - modify include dirs to get the target /usr/include
  - modify linker dirs and runpath to use target /usr/lib at link time,
    but keep correct rpath entries

Supported-by: Google SoC 2007
Basic tests by he@ on Sparc. Review from jlam@.
2007-08-02 18:19:31 +00:00
joerg
93bf771184 Add bzip2 as tool. All platforms that had code to deal with bzcat
also get bzip2, the rest falls back to archivers/bzip2.

OK jlam.
2007-06-19 17:01:12 +00:00
joerg
f4ecc6bd31 Add ident as tool and use /usr/bin/ident on those platforms I know to
have it. Fallback to devel/rcs otherwise.

Commited during freeze as it is a dependency of pbulk.
2007-06-19 14:21:18 +00:00
jlam
bb74d3bb13 Teach the tools framework about the following new tools:
itools, intltool, diff3, sdiff, msgmerge

* Adding USE_TOOLS+=itools to a package Makefile will cause the
  tool-directory versions of imake, makedepend, mkdirhier and xmkmf
  to point to the ones from the devel/nbitools package.

  This change will remove the need for nbitools/buildlink3.mk, which
  currently does a bit of hackery to force the "right" imake tools to
  be used by packages that need it.

* Adding USE_TOOLS+=intltool to a package Makefile will cause the
  local versions of intltool-* inside ${WRKSRC} to be replaced by
  copies from the textproc/intltool package.  If "intltool" is not
  specified as a tool, then we create "broken" intltool-* tools in
  the tools directory to help highlight hidden dependencies on the
  intltool package.

  In addition, modify the tools framework so that if "perl" is not
  specified as a tool, then we create a "broken" perl tool in the
  tools directory for the same reason as for "intltool".

  These two changes together will remove the need for
  intltools/buildlink3.mk and should also catch all cases where the
  sources' intltools may have been silently used because perl was
  found on the system.

* Adding USE_TOOLS+=diff3, USE_TOOLS+=sdiff, or USE_TOOLS+=msgmerge
  to a package Makefile will cause the corresponding tool to be pulled
  into the tools directory.

  These are convenience tools to help simplify dependencies for some
  packages.
2006-07-05 04:32:10 +00:00
jlam
29133ee234 Teach the tools framework about "openssl". 2006-06-14 16:57:07 +00:00
jlam
5f0d92603f Add back "gsoelim" as a NetBSD tool since it supports "-I directory".
Mark this as merely "GNUish" in the comment so that we know it's not
really GNU soelim.
2006-05-21 17:25:27 +00:00
jlam
884ac81839 NetBSD actually doesn't have GNU soelim, but rather BSD soelim. 2006-05-21 16:57:07 +00:00
jlam
872507ebf5 Teach the tools framework about "groff" as a tool. 2006-05-21 16:55:21 +00:00
jlam
fe289f4c72 Rename msgfmt.mk to gettext.mk. The rest of the gettext tool handling
will be moved here from replace.mk shortly.
2006-04-13 18:45:01 +00:00
jlam
0f4967eb59 Overhaul the way packages can ask for "msgfmt". If a package needs
msgfmt, then it should set the following in the package Makefile:

	USE_TOOLS+=	msgfmt

To deal with message files that use the "msgid_plural" statement,
which isn't supported in NetBSD<=3.x and also in gettext<=0.10.35, we
determine if the built-in "msgfmt" is sufficiently new enough to
understand "msgid_plural".  If it isn't, then we use the msgfmt.sh
script to transform the msgid_plural statements to an equivalent
construct that's understood by older msgfmt tools.

The msgfmt.sh script is a straightforward translation of the original
perl script msgfmt.pl script by Julio M. Merino Vidal into shell and
awk, which are more lightweight dependencies than perl.

We remove the USE_MSGFMT_PLURALS bits in gettext-lib/builtin.mk as they
are made obsolete by the new code in mk/tools/msgfmt.mk.

BUILD_USE_MSGFMT is still supported but will be removed in a separate
commit.
2006-04-13 16:35:57 +00:00
jlam
2d8270de7f Teach the tools framework how to supply a pkgsrc version of install-info
if a native one isn't available.  We ensure that the "install-info"
tool in the tools directory is a no-op since the real info file
registration is handled by the INSTALL/DEINSTALL script in
pkgsrc/mk/pkginstall/install-info.
2006-03-06 05:25:45 +00:00
jlam
6e0c050321 * Teach the tools framework how to supply the pkgsrc version of
makeinfo if no native makeinfo executable exists.  Honor TEXINFO_REQD
  when determining whether the native makeinfo can be used.

* Remove USE_MAKEINFO and replace it with USE_TOOLS+=makeinfo.

* Get rid of all the "split" argument deduction for makeinfo since
  the PLIST module already handles varying numbers of split info files
  correctly.

NOTE: Platforms that have "makeinfo" in the base system should check
      that the makeinfo entries of pkgsrc/mk/tools.${OPSYS}.mk are
      correct.
2006-03-05 16:27:22 +00:00
jlam
228eeacad9 Teach the tools framework about the ``ksh'' tool, provided by the
shells/pdksh package if it doesn't exist on the base system.
2006-01-09 18:32:52 +00:00
jlam
4593519ecc Teach the tools framework about "gsoelim", which is the soelim tool from
a groff distribution.
2006-01-08 23:00:00 +00:00
tv
312e7c87c7 Add "soelim", also part of groff if replacement is needed. 2005-11-08 03:36:13 +00:00
jlam
72750fdc87 Teach the tools framework about "sleep" which can be provided by the
sysutils/coreutils package.
2005-11-04 20:02:01 +00:00
jlam
2f774b2802 Teach the tools framework about ``printf'', which can be replaced by the
printf in sysutils/coreutils.
2005-10-12 16:28:29 +00:00
jlam
1403b1ed13 Teach the tools framework about "byacc", which is a Berkeley-compatible
YACC.  This should be used by packages that require NOT using bison
(maybe because bison can't handle the .y file) but still need a yacc.
2005-09-20 03:50:18 +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
df8c47b2f2 Note locations for native diff tools. 2005-06-23 20:45:34 +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
72f6164581 Teach the tools framework about nroff. 2005-05-26 21:46:13 +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
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
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
fb1593ba8b Split out ldconfig handling from the USE_TOOLS processing in replace.mk.
This makes more sense since there is never going to be a pkgsrc
replacement for ldconfig.  We now always create an ldconfig tool in
${TOOLS_DIR} that either calls the system-supplied one if it exists,
or is a no-op.
2005-05-10 20:14:27 +00:00
jlam
ef1665c54f Remove conditional expression from tools.*.mk files. Strip handling has
moved to its own file, and we only need to define TOOLS_PLATFORM.strip
if it actually exists on the system.
2005-05-10 19:56:51 +00:00
jlam
91092c5789 Teach the new tools framework about ${STRIP}, which is used in some
packages to strip installed executables.  If INSTALL_UNSTRIPPED ==
"yes", then we create a "strip" wrapper in ${TOOLS_DIR} that just
calls ${TRUE} by considering ${TRUE} the system-supplied strip command.
2005-05-04 06:42:43 +00:00
jlam
3f770348b7 Teach the new tools framework about INSTALL and set the appropriate
default value for each platform.  Currently, the replacement tools
comes from sysutils/coreutils, but where there is no native BSD install
program, bootstrap-pkgsrc should probably be made to provide an install
shell script as an alternative, and mk/tools/bootstrap.mk should be
amended accordingly.

Also remove one use of ${TYPE} in pkgsrc (bsd.pkg.mk) under the new tools
framework.
2005-05-03 20:41:53 +00:00
jlam
8861b6ba02 Teach the new tools framework about MAIL_CMD. We use mail/nail as a
"mail" replacement in case TOOLS_PLATFORM.mail is empty.
2005-05-03 16:30:34 +00:00
jlam
37d5689ed6 Teach the new tools framework about ldconfig. This must be provided by
tools.${OPSYS}.mk, so at the very worst, it must be set to "true".
2005-05-02 04:42:08 +00:00
jlam
96c5deea72 Teach the new tools framework about USE_TOOLS+=bzcat. 2005-05-02 02:50:33 +00:00
jlam
f0f9780186 Note the "[" is natively available everywhere (usually as a shell builtin). 2005-04-28 17:30:24 +00:00
jlam
1f5fbfd47d Rename PLATFORM_TOOLS.* to TOOLS_PLATFORM.* to bring the variable names
under the same namespace as the other parts of the new tools framework.
2005-04-27 16:52:28 +00:00
jlam
5ac75286c8 The BSDs all have lex, tbl, and yacc in the base system. 2005-04-27 15:59:25 +00:00
jlam
ad38b77969 Initial stab at creating lists of system-supplied tools for each platform.
These were culled from pkgsrc/mk/${OPSYS}.mk.  These files should only be
listing utilities that aren't installed by pkgsrc.
2005-04-27 15:28:16 +00:00