* new bsd.own.mk variable OBJECT_FMT with values "a.out" or "ELF".
* use OBJECT_FMT in Makefile tests that depend on toolchain.
* Add new bsd.own.mk variable NOSHLIB that, if set indicates a given
port doesnt yet do shared libraries. Set on powerpc.
* Document new feature-test variables in src/share/mk/bsd.README.
Tested on i386, mips, fakedup Alpha environment.
current package (IF called from a package dir and not via bsd.port.subdir.mk;
in the latter case it's assumed that the dependent packages will be scanned
later anyways).
This fixes PR 4992 by Mario Kemper <magick@bundy.lip.owl.de>.
characters escaped with a backslash, but recognise the backslashes for
backwards compatibility. When matching names, do any escaping of
the regexp '.' metacharacter automatically, if needed.
When a shared object dependency is printed out, use a form that does
not have the backslashes in it, for readability.
Print out the full pathname of the matching shared object, for clarity.
to "no" in a package's Makefile when the authors have placed
restrictions on the redistribution of the distfiles. (Thanks to Jason
Thorpe for the idea).
Add a `mirror' target, which will do a "make fetch" if the package's
distfile is allowed to be redistributed. This is for use on sites
which mirror package distfiles. (Thanks to Charles Hannum for the
idea).
- Document NO_IGNORE, __ARCH_OK
- Make __ARCH_OK overridable, so it can be set to YES e.g. for fetching
all distfiles.
- Move ".ifndef(__ARCH_OK): block, so some targets like clean work
in any case.
- Add LOCALBASE and X11BASE to PATH in MAKE_ENV, CONFIGURE_ENV and
SCRIPT_ENV; this fixes PR 4573
bsd.port.mk, but this time use a definition before the inclusion,
which stops <bsd.own.mk> defining its own install target when
using the package system.
This makes the package system take notice of the definitions in
/etc/mk.conf
one if the categories directories, will call "make readme" in
any subdirectories.
I thought that this was suggested by Chris Demetriou, but I can't find
any PR backing this up. So my apologies to the person who did suggest
this.
characters, and avoids the wrong interpretation of magic HTML
characters in DESCR files or categories.
Forwarded to me by Chris Demetriou, and refers to PR 4341.
- Fixup documentation for CAT<sect>, CATPREFIX.
(these two changes were accidentally committed to the 1.3 branch
as revisions 1.13.2.3 and 1.13.2.4 before!)
+ set MAKE_PROGRAM variable in bsd.port.mk to either ${GMAKE} or
${MAKE}, and use it in do-build and do-install targets
+ if X11 package, and man pages are installed, add install.man to
${INSTALL_TARGET}, rather than using a separate command to do this.
Also added CATn= blah.0, similar to MANn= blah.1, which installs
pre-formatted man pages, like the ones imake produces.
bsd.port.mk would always find the executable (using which), even if
there wasn't an executable in the $PATH. I've modified bsd.port.mk to
look for the executable directly, and simplified the shell code
somewhat in the process. There may be a lurking bug in shell exit
status handling here.
Noted by matthew green <mrg@madrugada.eterna.com.au> and Chris
Demetriou <cgd@netbsd.org> (PR pkg/4337) but I was too stupid to
realise what was happening. That, and a copy of gmake in
/usr/local/bin.
- sys.mk:
add ${OBJC} and ${OBJCFLAGS} (equivalent to ${CC} and
${CFLAGS} respectively), and ${COMPILE.m} and ${LINK.m} rules
- bsd.sys.mk:
add .m, .m.o, and .m.ln rules (as per the C rules in sys.mk).
it's here, rather than in sys.mk, because `.m' isn't
exclusively used for Objective C files.
- bsd.lib.mk:
add .m.o, .m.po, .m.so, and .m.ln rules (as per C)
* Allow bsd.man.mk to be included separately.
* Always include bsd.own.mk and bsd.obj.mk.
* Include bsd.man.mk and bsd.nls.mk even if NOMAN or NONLS; just turn off
building of the affected files instead.
* Require bsd.subdir.mk to be included explicitly.
(Will make appropriate changes to Makefiles shortly.)
Change <$ARCH> into bsd.port.mk's ${ARCH} value (uname -m) when
constructing the derived PLIST, so that we can use packages on
non-i386 NetBSD architectures and have the correct file names in the
installed inventory.
PLIST before applying.
It is assumed that ports do install manpages uncompressed, if not
they have to set MANCOMPRESSED. Upon that, the pages will be
(un)compressed according to the setting of MANZ.
<bsd.own.mk> defines its own `install' target if none is defined,
which conflicts with the default one we define later on in bsd.port.mk.
This may nuke any WRKOBJDIR definitions (which I have yet to encounter),
but enables "make install" to work as expected.
+ Add temporary mtree file for any X11 packages (like xpm, jpeg etc),
which require a default X11 tree. This will change when we get a NetBSD
x11.dist mtree file.
+ Define SHAREOWN, SHAREGRP and SHAREMODE (in NetBSD) to be the same as
DOCOWN, DOCGRP and DOCMODE respectively.
- Changes from FreeBSD's V1.164:
* Warn if mtree-file not found
* On 'make reinstall' gets DEPENDS_TARGET set
to 'reinstall' instead of 'install'
- Changes from OpenBSD's V1.14:
* Documentation and implementation for ONLY_FOR_ARCHS
* Documentation and implementation for WRKOBJDIR
* Documentation on HAVE_MOTIF and MOTIF_STATIC:
set in /etc/mk.conf, not /etc/make.conf
* Set NOMANCOMPRESS=no to still compress man-pages
(should probably be set to 'yes')
* DEF_UMASK=022
* add ${MACHINE} suffix to WRKDIR if OBJMACHINE is set
* .include <bsd.own.mk>
tbl in building man pages. If the variable USETBL is defined, the
rules for making the man pages include tbl before nroff.
This supports at least 3 man pages in the tree.
(Related to PR 3144.)
and libs in the object tree, if you use a separate object tree,
while maintaining backward compatability with other build methods.
See the notes in src/share/mk/bsd.README for full details. Note
that the `make includes' target now only installs the include files
in the build directory (if you use one--otherwise they go in DESTDIR
just like before); `make install' will install include files in
DESTDIR.
support the two different incompatible rules for build .so files from
.S source on both NetBSD and binutils toolchains:
${CPP} | ${AS} for syscalls
${CC} for non-syscalls
for which the different toolchains's ${AS} requires diffferent flags.
counterparts, and are used to compile programs that are needed to
compile other programs (see src/bin/sh for an example use). These
facilitate cross-compiling.
Define an NM variable - the program to use for nm(1)
indicate whether or not the program should be stripped. This rename
allows the user to set STRIP as an alternative to /usr/bin/strip,
helping cross-compiling.
can make one too. This will break on Makefiles that have both INCS and SUBDIRS,
so then we'll need to change includes: to includes::, but we don't have any
yet.
a bunch of rules, define a clean{kmod,lib,prog} target with the rules,
and have both clean and cleandir depend on that. That eliminates a bug
where 'cleandir' in a directory which included e.g. bsd.prog.mk but which
also had subdirs would 'make clean' all the subdirs and then 'make cleandir'
all ofthe subdirs. It also allows Makefiles to add more dependencies
to 'clean' after inclusion of the make template.
If 'clean' is already defined, the behaviour is the same as it used to be.
the .depend file to add <filename>.ln for each <filename>.o as an
object file which has the given dependencies (in addition to
<filename>.po and <filename>.so, which were already there).
libraries with LD, but add /usr/lib/crtbegin.o and /usr/lib/crtend.o
before and after the rest of the stuff being linked. This is a losing
situation all-around: for correct 'DESTDIR' builds, it should be including
them from ${DESTDIR}/usr/lib. However, since those objects should be
included for all shared libraries, including them from ${DESTDIR} won't work,
because they won't be installed by normal builds by the time they need to
be used.