Commit graph

193 commits

Author SHA1 Message Date
jlam
ce7bf9c372 Move the check for USE_X11 after bsd.builtin.mk included since that file
may indirectly set USE_X11.  This should fix using some of the builtin
X11 software to build non-X11 packages.
2004-03-31 07:12:31 +00:00
jlam
a87ac65a40 There is no "heimdal-libs" package. 2004-03-30 20:29:54 +00:00
jlam
7783b66d89 Extend the capabilities of buildlink3's libtool wrapper a bit compared
to the stock libtool: you can now copy or symlink an uninstalled
libtool archive file somewhere else than its build directory, and you
can still link against it.  This allows us to more easily bolt libtool
build machinery onto packages that have unusual(ly crappy) build
systems that rely on installing libraries to some common build directory
after they're built.

We do this by adding a "buildlibdir" variable to the uninstalled
libtool archive that points to the build directory of the archive.
Whenever we link against this archive, we rewrite the path to archive
on the libtool command line so that it points to the true archive.
This allows the real libtool to find the files under $buildlibdir/.libs.
2004-03-30 17:25:19 +00:00
jlam
474598e164 Allow setting BUILDLINK_WRAPPER_LOG in /etc/mk.conf and using that as the
log file used by all of the wrapper scripts.
2004-03-29 06:05:10 +00:00
jlam
a0923cb1cf Handle "-Xlinker" being equivalent to "-Wl," when passing arguments
to the linker.  This fixes a bug building Emacs on Linux.
2004-03-29 06:02:53 +00:00
jlam
82cd68d38a Look at the list of run-time dependencies for the package (gleaned
from BUILDLINK_PACKAGES, which is built up by including buildlink[23].mk
files in the package's Makefile), and for each dependency, if it's
already installed, then automatically include the buildlink[23].mk
file for that dependency.

This means that for any package, the dependencies are taken to be the
union of the dependency information as laid out in /usr/pkgsrc and
the dependency information of installed packages stored in /var/db/pkg.

This handle situations where an installed package has _more_ dependencies
than the package as it exists in pkgsrc.  This can occur, e.g., if
you build databases/gnome-libs with BDB_DEFAULT=db4, and then you
decide that you'd rather build other packages using the native Berkeley
DB, so you remove that setting from your environment.  You'd still
like for your packages that depend on gnome-libs to also depend on
db4, but the pkgsrc Makefiles no longer reflect that dependency.
2004-03-29 05:42:58 +00:00
jlam
020b3ec3e2 Make the list of files "buildlinked" be unique for cleanliness' sake. 2004-03-29 05:27:42 +00:00
jlam
d1b4206bba Instead of saving all of the buildlink3 variables into the command-line
environment, it creates a Makefile fragment that is included within
bsd.buildlink3.mk that contains all of the buildlink3 variable
definitions that we want to pass to make(1) invocations on the same
package Makefile.  Change the make variables that are only relevant
for the current package to use BUILDLINK_VARS instead of MAKEFLAGS.
This avoids overflowing the command line with lots of extra arguments.
2004-03-29 05:21:17 +00:00
xtraeme
18a3083bd9 Enable X11_TYPE=XFree86. 2004-03-28 22:25:35 +00:00
jlam
e237ad11d0 Ensure that ${LOCALBASE}/lib is always in the runtime library search path,
even for packages that have no dependencies.
2004-03-26 08:53:01 +00:00
jlam
aa26ea0b16 Move the code that includes the package builtin.mk files into a separate
file, bsd.builtin.mk.  Document the requirements and the recommended
structure of a builtin.mk file in the comments at the top of
bsd.builtin.mk.
2004-03-21 00:03:32 +00:00
jlam
725855d095 Don't match "bin/libtool" and symlink into the buildlink directory if
libtool/buildlink3.mk is included by a package Makefile, as that symlink
overwrites the libtool wrapper script.  This fixes pkg/24851.
2004-03-19 20:27:44 +00:00
danw
bf0551245e add another darwin linker option that needs to be protected from
path munging
2004-03-19 00:04:42 +00:00
jlam
27336df716 Back out part of previous that was an unrelated change accidentally
committed.
2004-03-18 09:22:34 +00:00
jlam
7db11b582a Fix serious bug where BUILDLINK_PACKAGES wasn't being ordered properly
by moving the inclusion of buildlink3.mk files outside of the protected
region.  This bug would be seen by users that have set PREFER_PKGSRC
or PREFER_NATIVE to non-default values.

BUILDLINK_PACKAGES should be ordered so that for any package in the
list, that package doesn't depend on any packages to the left of it
in the list.  This ordering property is used to check for builtin
packages in the correct order.  The problem was that including a
buildlink3.mk file for <pkg> correctly ensured that <pkg> was removed
from BUILDLINK_PACKAGES and appended to the end.  However, since the
inclusion of any other buildlink3.mk files within that buildlink3.mk
was in a region that was protected against multiple inclusion, those
dependencies weren't also moved to the end of BUILDLINK_PACKAGES.
2004-03-18 09:12:08 +00:00
jlam
59bdf89739 If the ${PKGBASE} of a package doesn't match the token passed to
BUILDLINK_PACKAGES, then set BUILDLINK_PKGBASE.<pkg> explicitly so that
we can map from <pkg> to BUILDLINK_PKGBASE.<pkg>.
2004-03-16 18:23:26 +00:00
jlam
fb92616cec Be more permissive in finding libraries to symlink into the buildlink
directory as libraries may be found outside of ${PREFIX}/lib.  We now
match anything that looks like "/lib[^/]*$".
2004-03-16 16:19:37 +00:00
jlam
dbe375ec88 Some of the builtin.mk files append more values to BUILDLINK_PACKAGES, so
make a separate loop to set the default value of USE_BUILTIN.<pkg>.
2004-03-16 02:03:31 +00:00
jlam
62bd2cd672 Add -L${X11BASE}/lib for the benefit of any *-config scripts on
use-xpkgwedge systems.  Not needed when building within pkgsrc, but useful
if you want to link outside 3rd-party software against pkgsrc-controlled
libraries.
2004-03-15 17:55:31 +00:00
jlam
8a2b888017 Back out previous and remove an extra ")" that was causing "malformed
conditional" problems.
2004-03-14 20:27:17 +00:00
jlam
e506d614ce Apparently, some pre-conditions aren't true, so set a default USE_BUILTIN
value before checking it.
2004-03-14 19:04:01 +00:00
jlam
86bb0a15b8 Don't bother checking whether a package is actually built-in or not
in the fall-through code for setting a default value for USE_BUILTIN.<pkg>.
This provides ensures that USE_BUILTIN.<pkg> is always set for every
package listed in BUILDLINK_PACKAGES.  Back out previous as it's now
unneeded.
2004-03-14 18:57:04 +00:00
jmmv
14aa52924a Fix a 'malformed conditional' error. 2004-03-14 12:15:19 +00:00
uebayasi
ac4027935c Indent. 2004-03-13 03:41:13 +00:00
jlam
277b3e1dbb During the "extract" phase (which is when "install-depends" is invoked),
add all of the direct _and_ indirect dependencies to the DEPENDS list.
This causes "install-depends" to check that every dependency, whether
it be direct or indirect, is up-to-date.  This fixes PR 24721 by Jeremy
Reed.
2004-03-13 03:33:31 +00:00
jlam
9eac3f73f0 Ensure that _BLNK_DEPENDS is a subset of _BLNK_PACKAGES. Also rearrange
some code to more easily allow other having different dependency lists for
different phases.
2004-03-12 18:45:20 +00:00
jlam
056d15bbf0 Move a code snippet for easier readability. 2004-03-12 18:03:53 +00:00
jlam
76bf003824 Put comments in order that make sense. 2004-03-12 15:45:43 +00:00
jlam
12d273cd9d Check that a variable is defined before using it.
BUILDLINK_PKGSRCDIR.<pkg> may not be defined since <pkg> may refer to a
dummy package, e.g. "db-native" as set by bdb.buildlink3.mk.
2004-03-11 08:36:41 +00:00
jlam
f755e633c2 X11_TYPE is a user-settable variable that can take the values:
native		use the native, non-pkgsrc-managed X11R6
	XFree86		use x11/XFree86-libs (not yet implemented)
	xlibs		use freedesktop.org xlibs (not yet implemented)

It is used to set the X11 implementation used to build X11 packages.
2004-03-11 06:32:58 +00:00
jlam
c1302f2da6 We can garbage collect USE_X11_LINKS which was used solely to avoid
build loops, which are now handled in a more general way using
IGNORE_PKG.<pkg>.
2004-03-11 05:15:23 +00:00
jlam
088bbd1c66 Avoid build loops by ensuring that a package can never inadvertantly be
a dependency for itself.  This is done by setting IGNORE_PKG.<pkg> if
<pkg> is the current package and then appropriately checking its value.
2004-03-11 05:13:31 +00:00
jlam
a06db92674 Instead of doing a special step to copy the contents of
/usr/pkg/share/x11-links into the buildlink directory, just rely on the
regular buildlink3 infrastructure to do it for us.  This simplifies the
handling of X11 in buildlink3.  The only caveat is that "x11-links"
should appear at the head of BUILDLINK_PACKAGES, and this detail is
handled by x11-links/buildlink3.mk.
2004-03-11 00:54:51 +00:00
jlam
de9a48935b Along with BUILDLINK_INCDIRS.<pkg> and BUILDLINK_LIBDIRS.<pkg>, also have
BUILDLINK_RPATHDIRS.<pkg> which is a list of directories relative to
BUILDLINK_PREFIX.<pkg> to add to the library runtime search path.  For
packages that are a full dependency, this defaults to
BUILDLINK_LIBDIRS.<pkg>, but for packages that are a build dependency,
this defaults to an empty list (on the theory that a build dependency
doesn't have any shared libraries required by the package at runtime).
2004-03-11 00:26:29 +00:00
jlam
463209639c The libtool archive filter was incorrectly eating the closing quote on
the dependency_libs line if it ended in a "-Ldir" option.  Fix by not
eating shell word separators [ \`\"':;,].  This should fix PR 24639 by
Matthias Scheler.
2004-03-10 19:42:27 +00:00
jlam
9d61fef853 Get rid of BUILDLINK_USE_BUILTIN and BUILDLINK_IS_BUILTIN, as they're
renamed to {USE,IS}_BUILTIN and are handled separately by the builtin.mk
files.

Create a new variable PREFER.<pkg> that lets <pkg>/builtin.mk determine
what the preference is in a simple way.
2004-03-10 17:49:26 +00:00
jlam
6d89d6f410 Do previous in a different way by providing a default value for
USE_BUILTIN.<pkg> before it is checked.  _BLNK_PACKAGES isn't strictly
a superset of _BLNK_DEPENDS due to the special x11-links handling
which should eventually be removed altogether.
2004-03-06 14:38:01 +00:00
xtraeme
19638ed9ef Make sure USE_BUILTIN.<pkg> is defined before checking its value. jlam@
seems dead again... so I'll commit this.
2004-03-06 09:46:05 +00:00
jlam
9ff0e10340 Reorder location and setting of BUILDLINK_PACKAGES to match template
buildlink3.mk file in revision 1.101 of bsd.buildlink3.mk.
2004-03-05 19:25:06 +00:00
jlam
07634a03fa Update template bsd.buildlink3.mk file to work with to-be-committed
changes to the buildlink3 framework.  The changes ensure that
BUILDLINK_PACKAGES orders packages so that for any element in the
list, the packages to the right do not depend on any packages to the
left of that element.
2004-03-05 19:09:56 +00:00
jlam
1a98a9895b sjg recommends escaping the bare left curly brace in the make variable
modifer expression.
2004-02-23 09:15:33 +00:00
jlam
00b950724b Back out previous because that brace is not supposed to be there. 2004-02-23 08:58:22 +00:00
dogcow
48adda54db add a missing } to the end of the line; fixes PR/24525. 2004-02-23 08:18:59 +00:00
jlam
65af2d1fe6 According to the documentation on version numbering of shared libraries at:
http://fink.sourceforge.net/doc/porting/shared.php

It's okay to link against a name like "libqt.2.3.0.dylib" using
"-lqt.2.3.0", which means we never need to do anything more than just
strip the trailing ".dylib" from shared library names when converting from
a full path to "-L... -l...".  This should fix PR 24402.
2004-02-19 18:39:27 +00:00
jlam
3d05ef90b1 Use the mipspro-ucode bits if we're using the mipspro-ucode compiler. 2004-02-19 13:17:13 +00:00
jlam
b4081e6300 Resolve ${LOCALBASE} to its phyiscal path and mangle it back into
${LOCALBASE}.  Some packages' configure scripts resolve all paths to
physical paths, and since buildlink3 suppresses references outside of
${LOCALBASE}, it can break the build of those packages.

This should fix the problem noted by Nathan Williams in the thread
titled "x11/tk build failure" at:

	http://mail-index.netbsd.org/tech-pkg/2004/02/17/0004.html
2004-02-19 12:50:47 +00:00
jlam
2a766c79fa Don't spew files in the package directory if the BUILDLINK_DEPENDS.<pkg>
uses {} to list several "or" dependencies.
2004-02-19 07:41:44 +00:00
jlam
5c40aefbbe Output a more informative/desriptive error than:
cd: cd BUILDLINK_PREFIX.foo_not_found

We now say that the package wasn't installed at the time that we were
trying to buildlink its files.
2004-02-18 19:16:52 +00:00
jlam
3bc670ced3 Remove some checks for PREPEND_PATH as we don't need them. 2004-02-18 14:23:42 +00:00
jlam
c40ee95964 * Move pkgsrc/mk/compiler/bsd.compiler.mk to pkgsrc/mk/compiler.mk.
Package Makefiles may now directly include compiler.mk.

* Don't include compiler.mk within bsd.prefs.mk any longer.  It was only
  included for the purposes of defining CC_VERSION.  Packages that want
  to test the value of CC_VERSION should now first include
  "../../mk/compiler.mk".  Any GCC_REQD statements in package Makefiles
  should be set before compiler.mk is included.

* Simpllfy pkgsrc/mk/compiler/*.mk files as a result of not needing to
  be included indirectly by bsd.prefs.mk.  We remove the special handling
  associated with detecting whether the file was included from within
  bsd.prefs.mk.  These files are now much more straightforward to write
  and understand.

* G/C the BSD_PREFS_MK stack mechanism as the only users (compiler/*)
  no longer need it.

* Ensure that directories are prepended to the PATH only from within
  bsd.pkg.mk.
2004-02-18 13:32:38 +00:00