History log of /freebsd-10.1-release/share/mk/
Revision Date Author Comments
272461 03-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


272322 30-Sep-2014 delphij

MFC r271493,271688-271689,271696,271854,272139-272143:

Import HyperV Key-Value Pair (KVP) driver and daemon code by Microsoft,
many thanks for their continued support of FreeBSD.

While I'm there, also implement a new build knob, WITHOUT_HYPERV to
disable building and installing of the HyperV utilities when necessary.

The HyperV utilities are only built for i386 and amd64 targets.

Approved by: re (gjb)


272152 26-Sep-2014 gjb

Properly revert r272128.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


272151 26-Sep-2014 gjb

Revert r272149, which introduces obscure vestiges from the
r272128 reversal.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


272149 26-Sep-2014 gjb

Revert r272128:
Though this passes the buildworld test, this fails during
installworld with:

make[3]: "/releng/scripts-release/chroots/10/i386/release/etc/devd/Makefile"
line 13: Malformed conditional (${MK_HYPERV} != "no")

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


272128 25-Sep-2014 delphij

MFC r271493,271688,271689,271696,271854:

Import HyperV Key-Value Pair (KVP) driver and daemon code by Microsoft,
many thanks for their continued support of FreeBSD.

While I'm there, also implement a new build knob, WITHOUT_HYPERV to
disable building and installing of the HyperV utilities when necessary.

The HyperV utilities are only built for i386 and amd64 targets.

Approved by: re (gjb)


271298 09-Sep-2014 ngie

MFC r267176, r267181, r268445 (ATF-related commits):

Phabric: https://reviews.freebsd.org/D706
Approved by: rpaulo (mentor)
Approved by: re (gjb)
Reviewed by: jmmv
Sponsored by: EMC / Isilon Storage Division

r267176:

Add the *_TESTS_SH_SED_* functionality to atf.test.mk.

This exists already in plain.test.mk and tap.test.mk and should have been
added to atf.test.mk too when the feature was first introduced.

(It is probably time to address the related TODOs but I will do that
separately.)

r267181:

Move atf-sh from /usr/bin/ to /usr/libexec/

In r266650, we made libatf-c and libatf-c++ private libraries so that no
components outside of the source tree could unintendedly depend on them.

This change does the same for the "atf-sh library" by moving the atf-sh
interpreter from its public location in /usr/bin/ to the private location
in /usr/libexec/. Our build system will ensure that our own test programs
use the right binary, but users won't be able to depend on atf-sh by
"mistake".

Committing this now to ride the UPDATING notice added with r267172 today.

r268445:

Fix atf-sh's integration_test

With the move of atf-sh into /usr/libexec in r267181, some of the
tests in the integration_test program broke because they could not
execute atf-sh from the path any longer.

This slipped through because I do have a local atf installation in
my home directory that appears in my path, hence the tests could
still execute my own version.

Fix this by forcing /usr/libexec to appear at the beginning of the
path when attempting to execute atf-sh.

To make upgrading easy (and to avoid an unnecessary entry in UPDATING),
make integration_test depend on the Makefile so that a rebuild of the
shell script is triggered. This requires a hack in the *.test.mk files
to ensure the Makefile is not treated as a source to the generated
program. Ugly, I know, but I don't have a better way of doing this at
the moment. Will think of one once I address the TODO in the *.test.mk
files that suggests generalizing the file generation functionality.

PR: 191052
Reviewed by: Garrett Cooper


271274 08-Sep-2014 emaste

MFC r270976: Allow standalone debug for non-default ${PROG} targets

This allows WITH_DEBUG_FILES to produce standalone debug for the ELF
runtime linker.

We previously disabled standalone debug files for bsd.prog.mk consumers
that included a non-default ${PROG} target, but this is not required.

Consumers that do not support standalone debug are still handled by
disabling it for statically linked binaries, and for those that specify
a non-default binary format.

Sponsored by: DARPA, AFRL
Approved by: re


270905 31-Aug-2014 ngie

MFC r266650, r267172 (both by jmmv):

r266650:

Change libatf-c and libatf-c++ to be private libraries.

We should not be leaking these interfaces to the outside world given
that it's much easier for third-party components to use the devel/atf
package from ports.

As a side-effect, we can also drop the ATF pkgconfig and aclocal files
from the base system. Nothing in the base system needs these, and it
was quite ugly to have to get them installed only so that a few ports
could build. The offending ports have been fixed to depend on
devel/atf explicitly.

Reviewed by: bapt

r267172:

Homogenize libatf-* version numbers with upstream.

The libatf-* major version numbers in FreeBSD were one version ahead of
upstream because, when atf was first imported into FreeBSD, the upstream
numbers were not respected. This is just confusing and bound to cause
problems down the road.

Fix this by taking advantage of the fact that libatf-* are now private
and that atf is not yet built by default. However, and unfortunately, a
clean build is needed for tests to continue working once "make
delete-old-libs" has been run; hence the note in UPDATING.

Phabric: D701
Approved by: jmmv (maintainer, mentor)


270760 28-Aug-2014 ngie

MFC r270519:

Fix "make checkdpadd" for lib/libc when MK_SSP != no

Add LIBSSP_NONSHARED to bsd.libnames.mk and append LIBSSP_NONSHARED to DPADD in
lib/libc when MK_SSP != no

Approved by: rpaulo (mentor)
Phabric: D675 (as part of a larger diff)
PR: 192728


270484 24-Aug-2014 des

MFH (r264367): add RANLIBFLAGS and set timestamps in static libraries to 0


270408 23-Aug-2014 des

MFH (r268877, r268921): use -o instead of a redirect.


270291 21-Aug-2014 emaste

MFC r264927 by imp:

NO_DEBUG_FILES -> MK_DEBUG_FILES=no in last remaining place.


270187 19-Aug-2014 ian

MFC r266473,267331,267511:

Use an intermediate target to associate with _SUBDIR which is marked .MAKE
this allows make -n to do tree walks as expected without
doing anything else (as intended).
Use prefix _sub. to help avoid conflict with any real target.

Put the test suite in its own tests.txz distribution file.
Force all the contents of /usr/tests to go into a separate distribution
file so that users of binary releases can easily choose to not install

Create a mechanism for providing fine-grained build order dependencies
during SUBDIR_PARALLEL builds. This augments the coarse .WAIT mechanism,
which is still useful if you've got a situation such as "almost everything
depends on A and B".


269946 13-Aug-2014 rpaulo

MFC r268300 r268541 r268544 r268565 r269775 r269838 r269839 r269840
r269842 r269844 r269899:

BSD make support for generating and compiling USDT DTrace probes.


269324 31-Jul-2014 rpaulo

MFC r268300:

bsd.dep.mk: add support for generating DTrace header files from .d
files.


269102 25-Jul-2014 ian

MFC r263373, r268402

Add a way to apply CFLAGS only when building the given architecture. This
is useful primarily on a system used for cross-building, when you have a
set of flags to apply to the TARGET_ARCH being cross-built but don't want
those settings applied to building the cross-tools or other components that
run on the build host machine.

Support CXXFLAGS.${MACHINE_ARCH} as well as CFLAGS. This allows different
C++ options for toolchain versus target when cross-building.


268399 08-Jul-2014 emaste

MFC r268022: Rename the WITHOUT_VT_SUPPORT knob to WITHOUT_VT

The _SUPPORT knobs have a consistent meaning which differs from the
behaviour controlled by this knob. As the knob is opt-out and has not
appeared in a release the impact should be low.


267797 23-Jun-2014 emaste

MFC r267124, r267582:

Install VT support files

They can be disabled by setting WITHOUT_VT_SUPPORT=yes in src.conf.


266251 16-May-2014 ian

MFC 262614, 262625, 262626, 262627, 262682, 262714, 262725, 262736

Integrate device-tree upstream files into the build process:
(1) Invoke cpp to bring in files via #include (although the old
/include/ stuff is supported still).
(2) bring in files from either vendor tree or freebsd-custom files
when building.
(3) move all dts* files from sys/boot/fdt/dts to
sys/boot/fdt/dts/${MACHINE} as appropriate.
(4) encode all the magic to do the build in sys/tools/fdt/make_dtb.sh
so that the different places in the tree use the exact same logic.
(5) switch back to gpl dtc by default. the bsdl one in the tree has
significant issues not easily addressed by those unfamiliar with
the code.

Only try to build the static dtb when we're building a static dtb.

Use proper include path for dtc as well as cpp.

Fix syntax errors (missing ; other minor glitches) in existing dts files.


265934 12-May-2014 ian

MFC r264822: Allow .WAIT to appear in SUBDIR= lists


264483 14-Apr-2014 jmmv

MFC refactoring of the *.test.mk files.

- r263161 Make bsd.test.mk the only public mk fragment for the building of tests.
- r263172 Move FreeBSD Test Suite-specific code to a suite.test.mk file.
- r263204 Add some documentation for bsd.test.mk.
- r263217 Document support for TAP-compliant Perl test programs.

This is "make tinderbox" clean.


264303 09-Apr-2014 dim

MFC r263778:

Add a SUBDIR_PARALLEL option to bsd.subdir.mk, to allow make to process
all the SUBDIR entries in parallel, instead of serially. Apply this
option to a selected number of Makefiles, which can greatly speed up the
build on multi-core machines, when using make -j.

This can be extended to more Makefiles later on, whenever they are
verified to work correctly with parallel building.

I tested this on a 24-core machine, with make -j48 buildworld (N = 6):

before stddev after stddev
======= ====== ======= ======
real time 1741.1 16.5 959.8 2.7
user time 12468.7 16.4 14393.0 16.8
sys time 1825.0 54.8 2110.6 22.8

(user+sys)/real 8.2 17.1

E.g. the build was approximately 45% faster in real time. On machines
with less cores, or with lower -j settings, the speedup will not be as
impressive. But at least you can now almost max out a machine with
buildworld!

Submitted by: jilles

MFC r263833:

Enable parallel building for gnu/usr.bin and usr.bin/clang too.


263882 28-Mar-2014 jkim

MFC: r263435

Add new CPUTYPEs supported by Clang 3.4.


263763 26-Mar-2014 dim

MFC r262613:

Merge the projects/clang-sparc64 branch back to head. This brings in
several updates from the llvm and clang trunks to make the sparc64
backend fully functional.

Apart from one patch to sys/sparc64/include/pcpu.h which is still under
discussion, this makes it possible to let clang fully build world and
kernel for sparc64.

Any assistance with testing this on actual sparc64 hardware is greatly
appreciated, as there will unavoidably be bugs left.

Many thanks go to Roman Divacky for his upstream work on getting the
sparc64 backend into shape.

MFC r262985:

Repair a few minor mismerges from r262261 in the clang-sparc64 project
branch. This is also to minimize differences with upstream.


263508 21-Mar-2014 dim

MFC 261991:

Upgrade our copy of llvm/clang to 3.4 release. This version supports
all of the features in the current working draft of the upcoming C++
standard, provisionally named C++1y.

The code generator's performance is greatly increased, and the loop
auto-vectorizer is now enabled at -Os and -O2 in addition to -O3. The
PowerPC backend has made several major improvements to code generation
quality and compile time, and the X86, SPARC, ARM32, Aarch64 and SystemZ
backends have all seen major feature work.

Release notes for llvm and clang can be found here:
<http://llvm.org/releases/3.4/docs/ReleaseNotes.html>
<http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html>

MFC 262121 (by emaste):

Update lldb for clang/llvm 3.4 import

This commit largely restores the lldb source to the upstream r196259
snapshot with the addition of threaded inferior support and a few bug
fixes.

Specific upstream lldb revisions restored include:
SVN git
181387 779e6ac
181703 7bef4e2
182099 b31044e
182650 f2dcf35
182683 0d91b80
183862 15c1774
183929 99447a6
184177 0b2934b
184948 4dc3761
184954 007e7bc
186990 eebd175

Sponsored by: DARPA, AFRL

MFC 262186 (by emaste):

Fix mismerge in r262121

A break statement was lost in the merge. The error had no functional
impact, but restore it to reduce the diff against upstream.

MFC 262303:

Pull in r197521 from upstream clang trunk (by rdivacky):

Use the integrated assembler by default on FreeBSD/ppc and ppc64.

Requested by: jhibbits

MFC 262611:

Pull in r196874 from upstream llvm trunk:

Fix a crash that occurs when PWD is invalid.

MCJIT needs to be able to run in hostile environments, even when PWD
is invalid. There's no need to crash MCJIT in this case.

The obvious fix is to simply leave MCContext's CompilationDir empty
when PWD can't be determined. This way, MCJIT clients,
and other clients that link with LLVM don't need a valid working directory.

If we do want to guarantee valid CompilationDir, that should be done
only for clients of getCompilationDir(). This is as simple as checking
for an empty string.

The only current use of getCompilationDir is EmitGenDwarfInfo, which
won't conceivably run with an invalid working dir. However, in the
purely hypothetically and untestable case that this happens, the
AT_comp_dir will be omitted from the compilation_unit DIE.

This should help fix assertions occurring with ports-mgmt/tinderbox,
when it is using jails, and sometimes invalidates clang's current
working directory.

Reported by: decke

MFC 262809:

Pull in r203007 from upstream clang trunk:

Don't produce an alias between destructors with different calling conventions.

Fixes pr19007.

(Please note that is an LLVM PR identifier, not a FreeBSD one.)

This should fix Firefox and/or libxul crashes (due to problems with
regparm/stdcall calling conventions) on i386.

Reported by: multiple users on freebsd-current
PR: bin/187103

MFC 263048:

Repair recognition of "CC" as an alias for the C++ compiler, since it
was silently broken by upstream for a Windows-specific use-case.

Apparently some versions of CMake still rely on this archaic feature...

Reported by: rakuco

MFC 263049:

Garbage collect the old way of adding the libstdc++ include directories
in clang's InitHeaderSearch.cpp. This has been superseded by David
Chisnall's commit in r255321.

Moreover, if libc++ is used, the libstdc++ include directories should
not be in the search path at all. These directories are now only used
if you pass -stdlib=libstdc++.


263019 11-Mar-2014 bapt

MFC: r262398,r262399,r262410,r262975

Import libucl into head

UCL is heavily infused by nginx configuration as the example of a convenient
configuration system. However, UCL is fully compatible with JSON format and is
able to parse json files.

UCL is used by pkg(8) for its configuration file as well for the manifest format
in packages, it will be used in base for the pkg boostrap (signature checking
and configuration file parsing.)

libucl has been developped and is maintained by vsevolod@


262964 09-Mar-2014 ache

MFC r262689:

Add fetch and patch to .PHONY and .NOTMAIN only if PORTNAME is defined.
Unconditional addition cause real fetch(1) and patch(1) programs are
builded every time.


262852 06-Mar-2014 jmmv

MFC a couple of improvements to the test suite mk files.

- r260632 Support defining test program metadata from the Makefiles.
- r260633 Support perl-based TAP-compliant test programs.


262849 06-Mar-2014 jmmv

MFC various fixes for the ATF tests.

- r260505 Allow tests to provide a Kyuafile when they relied on auto-generation.
- r260525 Respect the original layout of the atf-{c,c++} tests.
- r260526 Fix path to the process_helpers for the libatf-c++ tests.
- r260576 Generate and install pkg-config files for atf.
- r260577 Add atf pkg-config files from the vendor branch.
- r260584 Prevent misc_helpers from running as a test.


262650 01-Mar-2014 brooks

MFC r261299:

Merge from CheriBSD:
commit 2d581e8caf79d7a0f5a24590eccd06da90cccb74
Author: Brooks Davis <brooks@one-eyed-alien.net>
Date: Mon Jan 27 22:57:51 2014 +0000

Add WITHOUT_FMTREE to disable building fmtree.

Sponsored by: DARPA, AFRL


262643 01-Mar-2014 brooks

MFC r261296:

Merge from CheriBSD:
commit c1acf022c533c5ae27e0cd556977eafe3f5959eb
Author: Brooks Davis <brooks@one-eyed-alien.net>
Date: Fri Jan 17 21:46:44 2014 +0000

Add an option WITHOUT_NCURSESW to suppress building and linking to
libncursesw. While wide character support it useful we'd like to
only need one ncurses library on embedded systems.

Sponsored by: DARPA, AFRL


262459 24-Feb-2014 dim

MFC r262310:

Move the part in bsd.own.mk that sets -Wno-c++11-extensions for clang to
bsd.sys.mk, where it really belongs. This also causes the flag to get
added when clang is *not* the default system compiler, but is still
used, e.g. by setting WITH_CLANG_IS_CC manually.


261236 28-Jan-2014 skreuzer

Merge /head:261072: Remove WITHOUT_ATF from src.conf.5

Approved by: hrs (mentor)


260495 09-Jan-2014 dim

MFC r260102:

Similar to r260020, only use -fms-extensions with gcc, for all other
modules which require this flag to compile. Use a GCC_MS_EXTENSIONS
variable, defined in kern.pre.mk, which can be used to easily supply the
flag (or not), depending on the compiler type.

MFC r260322:

In addition to r260102, also define GCC_MS_EXTENSIONS in bsd.sys.mk,
since kernel module builds do not use kern.pre.mk.


260096 30-Dec-2013 dim

MFC r257532 (by adrian):

Fix this build for clang.

MFC r259730:

To avoid having to explicitly test COMPILER_TYPE for setting
clang-specific or gcc-specific flags, introduce the following new
variables for use in Makefiles:

CFLAGS.clang
CFLAGS.gcc
CXXFLAGS.clang
CXXFLAGS.gcc

In bsd.sys.mk, these get appended to the regular CFLAGS or CXXFLAGS for
the right compiler.

MFC r259913:

For libstand and sys/boot, split off gcc-only flags into CFLAGS.gcc.

MFC r259927:

Fix pc98 build, by also forcing COMPILER_TYPE in sys/boot/pc98/boot2's
Makefile.

Pointy hat to: dim


260037 29-Dec-2013 jmmv

Add sample test programs.

This is a MFC of the following into stable/10:
- r258299 Add some sample test programs.
- r258552 Generate plain sh test programs from a source file.

As usual, "make tinderbox" clean on ref10-amd64.


260013 28-Dec-2013 jmmv

Set up the /usr/tests hierarchy.

This is a MFC of the following into stable/10:
- r257097 Set up the /usr/tests hierarchy.
- r257098 Add missing WITHOUTTESTS file.
- r257100 Add a tests(7) manual page.
- r257105 Disable WITHTESTS= for now.
- r257848 Fix buildworld when WITHTESTS is enabled.
- r257850 Subsume the functionality of MKATF into MKTESTS.
- r257851 Handle the removal of the test suite when WITHOUTTESTS=yes.
- r257852 Install category Kyuafiles from their category directories.
- r258232 Install BSD.tests.mtree when MKTESTS is yes.

Note that building with WITH_TESTS is still broken at this point (and
hence why WITHOUT_TESTS is the set as the default). Subsequent pullups
will fix the remaining issues.


260005 28-Dec-2013 jmmv

Pull up fixes to allow building tests along scripts and data files.

MFC of the following into stable/10:
- r257095 Allow mixing bsd.files.mk with bsd.subdir.mk.
- r258095 Allow this (bsd.progs.mk) to work with fmake.
- r258330 Need to also test for defined(${v}_${PROG}) in bsd.progs.mk.
- r259209 Make bsd.progs.mk work in directories with SCRIPTS but no PROGS.

This is all 'make tinderbox' clean as run on ref10-amd64.


259962 27-Dec-2013 jmmv

Split and extend bsd.test.mk into {atf,plain,tap}.test.mk.

This is a MFC of:

- r256761 Clearly split the logic to build ATF and plain tests apart.
- r256762 Add the automatic generation of Atffile files.
- r256763 Add the automatic generation of Kyuafile files.
- r256764 Plug atf-run into the 'test' target.
- r256765 Plug kyua into the 'test' target.
- r257096 Move the TESTSBASE definition to bsd.own.mk.
- r257099 Add missing plain.test.mk.
- r258297 Remove registration of C++ test programs into PROGS.
- r258298 Fix the build of plain test programs.
- r258551 Install plain.test.mk.
- r259208 Add tap.test.mk.

Approved by: rpaulo (mentor)


259158 10-Dec-2013 dim

MFC r259083:

For WARNS <= 3, change the clang warning flag -Wno-conversion to
-Wno-enum-conversion. In earlier clang versions (before 3.2), the
latter did not exist, and suppressing enum conversion warnings was
really the goal of this warning suppression flag.

This should enable the same kind of warning again as was fixed by
r259072 ("incompatible integer to pointer conversion passing 'Elf_Addr'
(aka 'unsigned int') to parameter of type 'void *'"), and which was only
emitted by gcc.

Noticed by: kib


259073 07-Dec-2013 peter

Hoist all the mergeinfo up to the root in preparation for enforcing merges
to the root only. All MFC's were rerecorded to the root.

Going forward, if an MFC includes mergeinfo, it will need to be made to
the root and committed from the root. Merges with --ignore-ancestry
or diff | patch can go anywhere.

The mergeinfo in HEAD is in a bad state from years of neglect and manual
tampering and this was branched into 10.x. This confuses the coalescing
code and prevents it from doing its job.

Approved by: re (gjb, implicit)


258230 16-Nov-2013 gjb

MFC r257583, r258012, r258013:

r257583 (peter):
Remove the WITH_LIBICONV_COMPAT hack that seems to do more harm
than good. This caused libc to spoof the ports libiconv namespace
and provide a colliding libiconv.so.3 to fool rtld. This should
have been removed some time ago.

r258012:
Remove WITH_LIBICONV_COMPAT file to chase after r257583.

r258013:
Regenerate src.conf.5 after removal of WITH_LIBICONV_COMPAT.

Approved by: re (kib)
Sponsored by: The FreeBSD Foundation

Sponsored by: The FreeBSD Foundation


257460 31-Oct-2013 brooks

MFC r257138:

Switch the default mtree to nmtree our new NetBSD derived mtree.

Exp-runs by: bdrewery (ports/182438)
Sponsored by: DARPA/AFRL
Approved by: re (gjb)


257449 31-Oct-2013 brooks

MFC r256915

Stop conflating WITHOUT_CLANG with WITHOUT_CLANG_IS_CC. This allows
bootstrapping a copy of clang without building clang for the base system

which is useful for nanobsd and similar setups. It's still probably
wrong to conflate what is installed as /usr/bin/cc with the selection
of a bootstrap compiler under WITH*_CLANG_IS_CC, but that's for another
day.

Sponsored by: DARPA/AFRL
Approved by: re (gjb)


256998 23-Oct-2013 bdrewery

MFC r256450:

Rename libbsdyml to libyaml, make private, and bump
SHLIB_MAJOR to 1.0

Approved by: bapt
Approved by: re (glebius)


256366 12-Oct-2013 rpaulo

MFC 256365
Remove most of the ATF tools and the _atf user.

Approved by: re


256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


256198 09-Oct-2013 gjb

Revert r256095, r256120 (partial), r256121:

r256095:
- Add gnu/usr.bin/rcs back to the base system.

r256120:
- Add WITHOUT_RCS back to src.conf.5.

r256121:
- Remove UPDATING entry regarding gnu/usr.bin/rcs removal.

Requested by: many
Approved by: re (marius)
Discussed with: core


256095 07-Oct-2013 eadler

Good bye RCS. You will be missed.

(devel/rcs and devel/rcs57 are available as alternatives)

Approved by: core
Approved by: re (hrs)


255949 30-Sep-2013 des

Remove BIND.

Approved by: re (gjb)


255850 24-Sep-2013 des

Flip the switch: disable BIND and enable LDNS_UTILS.

Approved by: re (blanket)


255722 20-Sep-2013 emaste

Add LLDB bmake infrastructure

This connects LLDB to the build, but it is disabled by default. Add
WITH_LLDB= to src.conf to build it.

Note that LLDB requires a C++11 compiler so is disabled on platforms
using GCC.

Approved by: re (gjb)
Sponsored by: DARPA, AFRL


255627 17-Sep-2013 des

Set the correct path for LIBUNBOUND.

Approved by: re (blanket)


255597 15-Sep-2013 des

Build and install the Unbound caching DNS resolver daemon.

Approved by: re (blanket)


255455 10-Sep-2013 des

Clean up the Kerberos build by turning libheimipcc and libheimipcs into
private shared libraries, instead of hacked-together archives of PIC
objects. This makes it possible to build a static libkrb5 that works.

Reviewed by: stas
Approved by: re (gjb)


255431 09-Sep-2013 des

Emit the correct standard library dependency line for C++ programs. In
the CLANG_IS_CC case, the default is now libc++. Only use libstdc++ if
!CLANG_IS_CC or it was explicitly requested in CXXFLAGS.

Submitted by: theraven
Approved by: re (gjb)


255386 08-Sep-2013 des

Make libldns and libssh private.

Approved by: re (blanket)


255384 08-Sep-2013 des

Create a private library directory (LIBPRIVATEDIR) for libraries which
we don't want to expose but which can't or shouldn't be static.

To mark a library as private, define PRIVATELIB in its Makefile. It
will be installed in LIBPRIVATEDIR, which is normally /usr/lib/private
(or /usr/lib32/private for 32-bit libraries on 64-bit platforms).

To indicate that a program or library depends on a private library,
define USEPRIVATELIB in its Makefile. The correct version of
LIBPRIVATEDIR will be added to its run-time library search path.

Approved by: re (blanket)


255324 06-Sep-2013 theraven

Only set -Wno-c++11-extensions if we're building with clang, so bootstrapping
clang with gcc doesn't fail.


255322 06-Sep-2013 theraven

Fix use of MACHINE_ARCH where MACHINE was intended for pc98 detection.

Reported by: nwhitehorn


255321 06-Sep-2013 theraven

On platforms where clang is the default compiler, don't build gcc or libstdc++.
To enable them, set WITH_GCC and WITH_GNUCXX in src.conf.
Make clang default to using libc++ on FreeBSD 10.
Bumped __FreeBSD_version for the change.

GCC is still enabled on PC98, because the PC98 bootloader requires GCC to build
(or, at least, hard-codes the use of gcc into its build).

Thanks to everyone who helped make the ports tree ready for this (and bapt
for coordinating them all). Also to imp for reviewing this and working on the
forward-porting of the changes in our gcc so that we're getting to a much
better place with regard to external toolchains.

Sorry to all of the people who helped who I forgot to mention by name.

Reviewed by: bapt, imp, dim, ...


255180 03-Sep-2013 emaste

Connect libexecinfo to the build

Sponsored by: DARPA, AFRL


255014 29-Aug-2013 pfg

Drop build option switch for the older GNU patch.

As promised, drop the option to make the older GNU patch
the default.

GNU patch is still being built but something drastic may
happen to it to it before Release.


254980 27-Aug-2013 sjg

Use .SHELL to tell bmake to use 'set -e' when running scripts
since most FreeBSD makefiles it is in effect.

Move the other bmake compatability knobs out of the POSIX block.

Reviewed by: obrien


254958 27-Aug-2013 dteske

It was brought to my attention that SVN r252862 was incomplete. It needed
to also make this change, to completely deprecate WITH_BSDCONFIG.


254654 22-Aug-2013 ae

Really disconnect pkg_install from the build.

Reported by: Mikhail Timofeyev


254273 13-Aug-2013 peter

The iconv in libc did two things - implement the standard APIs, the GNU
extensions and also tried to be link time compatible with ports libiconv.
This splits that functionality and enables the parts that shouldn't
interfere with the port by default.

WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker
symbols and even a stub libiconv.so.3 that are good enough to be able
to 'pkg delete -f libiconv' on a running system and reasonably expect it
to work.

I have tortured many machines over the last few days to try and reduce
the possibilities of foot-shooting as much as I can. I've successfully
recompiled to enable and disable the libiconv_compat modes, ports that use
libiconv alongside system iconv etc. If you don't enable the
WITH_LIBICONV_COMPAT switch, they don't share symbol space.

This is an extension of behavior on other system. iconv(3) is a standard
libc interface and libiconv port expects to be able to run alongside it on
systems that have it.

Bumped osreldate.


253689 26-Jul-2013 pfg

Make the BSD-licensed patch the default.

The BSD-licensed patch(1) command has matured and it's behaviour
can be considered equivalent to the older version of GNU patch
in the tree.

The switch has been extensively tested [1] and only two ports
presented regressions, which have since been fixed.

For convenience a new WITH_GNU_PATCH option is available,
but it will likely be removed in the near future.

PR: 176313
Approved by: portmgr


253546 22-Jul-2013 glebius

Fix build.


253396 16-Jul-2013 andrew

2 years, 10 months, 22 days after the projects/arm_eabi branch was created
make the ARM EABI the default ABI on arm, armeb, armv6 and armv6eb.

This is intended to be the default ABI from now on with the old ABI to be
retired. Because of this all users are strongly suggested to upgrade to the
ARM EABI.

As the two ABIs are incompatible it is unlikely upgrading in place will
work. Users should perform a full backup and either use an external machine
to upgrade, or install to an alternative location on their media. They
should also reinstall all ports or packages when these are available.

The only known issues are:
- pkg incorrectly detects the ABI. This is fixed upstream, and will a
patch will be made to the port.
- GDB can have issues with executables built with clang.

__FreeBSD_version has been bumped.


252356 28-Jun-2013 davide

- Trim an unused and bogus Makefile for mount_smbfs.
- Reconnect with some minor modifications, in particular now selsocket()
internals are adapted to use sbintime units after recent'ish calloutng
switch.


252127 23-Jun-2013 eadler

Remove variable added by ru@ in r94940 that is no longer used by source or ports in share/mk/sys.mk

PR: conf/155737
Reviewed by: ed (two years ago!)
Exp-Run by: bdrewery


251886 18-Jun-2013 peter

Introduce svnlite so that we can check out our source code again.

This is actually a fully functional build except:
* All internal shared libraries are static linked to make sure there
is no interference with ports (and to reduce build time).
* It does not have the python/perl/etc plugin or API support.
* By default, it installs as "svnlite" rather than "svn".
* If WITH_SVN added in make.conf, you get "svn".
* If WITHOUT_SVNLITE is in make.conf, this is completely disabled.

To be absolutely clear, this is not intended for any use other than
checking out freebsd source and committing, like we once did with cvs.

It should be usable for small scale local repositories that don't
need the python/perl plugin architecture.


251810 16-Jun-2013 jlh

Fix install from read-only obj dir when SHLIB_LDSCRIPT is used.

Reported by: joeld
Tested by: joeld


251794 15-Jun-2013 eadler

Remove CVS from the base system.

Discussed with: many
Reviewed by: peter, zi
Approved by: core


251749 14-Jun-2013 sjg

Flag recursive make targets with .MAKE (has no effect on fmake)
make -n will still exectute such targets
make -N will not.

Reviewed by: obrien


251748 14-Jun-2013 sjg

We cannot remove the _+_ trick, until old make is completely deprecated.
But we don't want to set it to + for bmake since it breaks make -N
which is used to supress the normal handling of targets marked with .MAKE
(which seems broken in fmake and might be why _+_ was introduced).
Add some comments to explain what's gong on.

Reviewed by: obrien


251690 13-Jun-2013 jkim

Add a new CPUTYPE supported by Clang 3.3 for AMD Jaguar processors (btver2).


251512 07-Jun-2013 emaste

Add a new knob WITH_DEBUG_FILES to control the building of standalone
debug files for userland programs and libraries. The "-g" debug flag
is automatically applied when WITH_DEBUG_FILES is set.

The debug files are now named ${prog}.debug and ${shlib}.debug for
consistency with other systems and documentation. In addition they are
installed under /usr/lib/debug, to simplify the process of installing
them if needed after a crash. Users of bsd.{prog,lib}.mk outside of the
base system place the standalone debug files in a .debug subdirectory.
GDB automatically searches both of these directories for standalone
debug files.

Thanks to everyone who contributed changes, review, and testing during
development.


251506 07-Jun-2013 sjg

Override bmake's default MAKEFILE_PREFERENCE


250992 25-May-2013 jlh

Rework the comment I initially wrote when SHLIB_LDSCRIPT was introduced.
The build system is really intricate and I had a hard time to remind the
whole picture even when reading my own words. This one will hopefully
be better.


250699 16-May-2013 sjg

Build bmake by default.
If someone explicitly builds usr.bin/make while MK_BMAKE==yes,
install it as 'fmake'.

Reviewed by: brooks


250659 15-May-2013 brooks

Add support for an external cross compiler. The cross compiler is
specified by passing the XCC, XCXX, and XCPP variables (corresponding to
CC, CXX, and CPP) to buildworld/buildkernel. The compiler must be clang
or be configured to target the appropriate architecture.

To speed build times, if XCC is an absolute path or
WITHOUT_CROSS_COMPILER is defined then no cross compiler will be built
during the cross-tools stage.

Limited documentation of this feature can currently be found at:

https://wiki.freebsd.org/ExternalToolchain

This functionality should be considered experimental and is subject to
change without notice.

Sponsored by: DARPA, AFRL
Discussed with: imp, sjg


250658 15-May-2013 brooks

Add a new option WITHOUT_FORMAT_EXTENSIONS to disable flags related to
checking our kernel printf extensions. This is useful to allow
compilers without these extensions to build kernels.

Sponsored by: DARPA, AFRL


249959 26-Apr-2013 eadler

Remove the WITH_IDEA option and build it unconditionally.
The European version of the patent expired in 2011.
The US version of the patent expired in 2012 or prior.

Reviewed by: des
No objection from: cperciva, ehaupt


249770 22-Apr-2013 sjg

Pass more variables to bsd.prog.mk and
only append to already defined variables.

Submitted by: Garrett Cooper


249657 19-Apr-2013 ed

Add the Clang specific -Wmissing-variable-declarations to WARNS=6.

This compiler flag enforces that that people either mark variables
static or use an external declarations for the variable, similar to how
-Wmissing-prototypes works for functions.

Due to the fact that Yacc/Lex generate code that cannot trivially be
changed to not warn because of this (lots of yy* variables), add a
NO_WMISSING_VARIABLE_DECLARATIONS that can be used to turn off this
specific compiler warning.

Announced on: toolchain@


249057 03-Apr-2013 sjg

Tell bmake to use the FreeBSD preferred makefile preference list.

PR: 177593
Reviewed by: obrien


248856 28-Mar-2013 andrew

Welcome clang as the default compiler on ARM.

Change the default compiler for little-endian ARM to clang to allow for more
testing before 10.0 is released. As LLVM and clang currnetly lack support
for big-endian ARM leave gcc as the default there.

This will also allow us to investigate moving to use the hard floating-point
version of the ARM EABI on SoCs that include the Vector Floating Point unit.
A version of this is included in all ARMv6 and ARMv7 SoCs we currently, and
are likely to support.

Both the current ABI and the new EABI are supported by clang and it will be
built correctly depending on which is selected by the user.


248806 28-Mar-2013 markj

Make sure that ${SHLIB_NAME}.debug and ${SHLIB_NAME}.symbols are always
deleted by a "make clean" when DEBUG_FLAGS is set.

Reported by: gleb
Approved by: emaste (co-mentor)


248753 26-Mar-2013 emaste

Always define and use PROGNAME

This avoids having separate cases in the install rule for PROGNAME set and
not set. This is a minor cleanup in advance of further support for
standalone debug files.


248751 26-Mar-2013 emaste

Unconditionally include ${SRCCONF} if overridden

This avoids silently failing to include ${SRCCONF} specified by a make(1)
invocation.


248742 26-Mar-2013 markj

Make sure to set OBJS consistently in the cases where SRCS is and isn't
already defined. Setting it with "+=" makes it possible for other make
scripts (e.g. bsd.dtrace.mk) to include additional object files in the
linker arguments.

Approved by: emaste (co-mentor)


248571 21-Mar-2013 mm

Merge libzfs_core branch:
includes MFV 238590, 238592, 247580

MFV 238590, 238592:
In the first zfs ioctl restructuring phase, the libzfs_core library was
introduced. It is a new thin library that wraps around kernel ioctl's.
The idea is to provide a forward-compatible way of dealing with new
features. Arguments are passed in nvlists and not random zfs_cmd fields,
new-style ioctls are logged to pool history using a new method of
history logging.

http://blog.delphix.com/matt/2012/01/17/the-future-of-libzfs/

MFV 247580 [1]:
To address issues of several deadlocks and race conditions the locking
code around dsl_dataset was rewritten and the interface to synctasks
was changed.

User-Visible Changes:
"zfs snapshot" can create more arbitrary snapshots at once (atomically)
"zfs destroy" destroys multiple snapshots at once
"zfs recv" has improved performance

Backward Compatibility:
I have extended the compatibility layer to support full backward
compatibility by remapping or rewriting the responsible ioctl arguments.
Old utilities are fully supported by the new kernel module.

Forward Compatibility:
New utilities work with old kernels with the following restrictions:
- creating, destroying, holding and releasing of multiple snapshots
at once is not supported, this includes recursive (-r) commands

Illumos ZFS issues:
2882 implement libzfs_core
2900 "zfs snapshot" should be able to create multiple,
arbitrary snapshots at once
3464 zfs synctask code needs restructuring

References:
https://www.illumos.org/issues/2882
https://www.illumos.org/issues/2900
https://www.illumos.org/issues/3464 [1]

MFC after: 1 month
Sponsored by: Hybrid Logic Inc. [1]


247779 04-Mar-2013 bapt

Import libyaml as libbsdyml (private brand name)

LibYAML is a YAML 1.1 parser and emitter under MIT license which will
soon be used by the pkg boostrap (usr.bin/pkg) and bhyve

Reviewed by: roberto, antoine


247527 01-Mar-2013 brooks

Provide slightly more helpful feedback when we can't figure out what
compiler the user is using.

PR: misc/173914


247054 20-Feb-2013 emaste

Fix parallel build race with DEBUG_FLAGS

Reported by: Jan Beich on freebsd-current
Tested by: markj


246880 16-Feb-2013 dim

Since clang 3.2 now has an option to suppress warnings about implicitly
promoted K&R parameters, remove the workarounds added for sendmail
components in r228558.

MFC after: 1 week


246852 15-Feb-2013 des

fix leftover from an earlier experiment


246833 15-Feb-2013 des

The relationship between LDNS_UTILS and BIND_UTILS was inverted.


246827 15-Feb-2013 des

Import LDNS and build it as an internal library.


246354 05-Feb-2013 andrew

Build clang for little-endian arm by default. Due to size issues when built
with gcc disable CLANG_FULL for now.


246259 02-Feb-2013 dim

Pull in r170135 from upstream clang trunk:

Dont use/link ARCMT, StaticAnalyzer and Rewriter to clang when the user
specifies not to. Dont build ASTMatchers with Rewriter disabled and
StaticAnalyzer when it's disabled.

Without all those three, the clang binary shrinks (x86_64) from ~36MB
to ~32MB (unstripped).

To disable these clang components, and get a smaller clang binary built
and installed, set WITHOUT_CLANG_FULL in src.conf(5). During the
initial stages of buildworld, those extra components are already
disabled automatically, to save some build time.

MFC after: 1 week


246131 30-Jan-2013 dim

Fix a problem introduced in r231057: in bsd.own.mk, move the test for
whether clang is enabled to just after the last place where it could
have been forced to "no".

MFC after: 3 days


246074 29-Jan-2013 gabor

- Add a BSD-licensed patch, ported by Pedro F. Giffuni (pfg) from
DragonflyBSD and install it as bsdpatch. WITH_BSD_PATCH makes it
default and installs GNU patch as gnupatch.

Submitted by: pfg
Obtained from: The DragonflyBSD Project


245885 24-Jan-2013 brooks

Don't declare an dependency on _maninstall when LIBRARIES_ONLY is set.
It doesn't exist.


245803 22-Jan-2013 theraven

Import new (BSDL) device tree compiler. Now built by default, so that it can't
be used on the host system (and not installed on the device, if required). The
GPL'd one is still available if there are any devices that need it (make
universe passes with it, including kernels that use fdt, but there may be some
out-of-tree ones). WITH_GPL_DTC can be used to select the old one, for now.

Probably won't be MFC'd, but we'll remove the GPL'd version in head after the
new one has had a lot more testing and ship it in 10.0.


245752 21-Jan-2013 brooks

Replace all known uses of ln in the build process with appropriate
install -l invocations via new INSTALL_LINK and INSTALL_SYMLINK
variables.

Sponsored by: DARPA, AFRL
Reviewed by: ian, ray, rpaulo


245652 19-Jan-2013 neel

Merge projects/bhyve to head.

'bhyve' was developed by grehan@ and myself at NetApp (thanks!).

Special thanks to Peter Snyder, Joe Caradonna and Michael Dexter for their
support and encouragement.

Obtained from: NetApp


245606 18-Jan-2013 eadler

Add option to make pc-sysinstall optional

Approved by: cperciva


245561 17-Jan-2013 brooks

Add a new LIBRARIES_ONLY make variable to disable the build and install
of files other than the actual libraries.

Use LIBRARIES_ONLY to supress the inclusion of files in the lib32
distribution that are duplicates of files in base.

Sponsored by: DARPA, AFRL
Reviewed by: emaste


245539 17-Jan-2013 andrew

Add compiler support for the ARM EABI.

ARM EABI support is disabled by default and can be enabled by setting
WITH_ARM_EABI when building, however only the kernel-toolchain target will
work with this flag until the rest of the support is added.


245527 17-Jan-2013 bz

Add a src.conf(5) option to allow users to compile in the "NONE cipher",
which, only after authentication, disables crypto, and only for sessions
without a terminal.

Submitted by: Jeremy Chadwick (freebsd jdc.parodius.com)
PR: bin/163095
MFC after: 10 days


245515 16-Jan-2013 brooks

Remove support for installing 1aout section manpages.


245269 10-Jan-2013 des

Remove all support for legacy NOFOO and NO_FOO build options.


245241 09-Jan-2013 brooks

Always install our mtree as /usr/sbin/fmtree and link it as
/usr/sbin/mtree by default.

Add a src.conf option WITH_NMTREE that causes NetBSD's mtree to be linked
as /usr/sbin/mtree as well as /usr/sbin/nmtree.


245139 07-Jan-2013 cognet

Nuke ARM_WANT_TP_ADDRESS, it's not used anymore.
Don't force -march=armv6 for Cortex A, as we want at least armv6k. The
compiler default is good enough.


244915 31-Dec-2012 markj

Explicitly specify that the beforelinking target depends on the
generated object files, ensuring that the beforelinking recipe won't be
executed until compilation has finished.

Also define SHLIB_NAME_FULL to denote ${SHLIB_NAME}.debug if
DEBUG_FILES is set and ${SHLIB_NAME} otherwise, which helps avoid
obfuscating the compilation and linking rules.

Reviewed by: emaste
Approved by: emaste (co-mentor)


244865 30-Dec-2012 nwhitehorn

With the old sade removed, libdisk is no longer used by anything in HEAD
and uses a number of problematic pre-gpart interfaces. Since it has been
entirely obsoleted by interfaces in geom, remove it.


244527 21-Dec-2012 emaste

Sort default option lists


244408 18-Dec-2012 emaste

No reason to install debug data with the schg flag


244366 17-Dec-2012 emaste

Hide OBJCOPY and others in POSIX mode

Submitted by: Garrett Cooper


244236 15-Dec-2012 emaste

Put shared library debug info into separate .symbols file

Sponsored by: ADARA Networks


244224 14-Dec-2012 emaste

Minor refactoring prior to .symbols file changes

- Combine .if x and .if !x using .else
- Separate out beforelinking dependency
- Add comments to clarify .if nesting

Sponsored by: ADARA Networks


243934 06-Dec-2012 eadler

Change the default to 'cru' for speed reasons.

Submitted by: Erik Cederstrand <erik@cederstrand.dk>
Reviewed by: imp, toolchain@
Approved by: cperciva
MFC after: 2 weeks


243933 06-Dec-2012 eadler

Clean up hardcoded ar(1) flags in the tree to use the global ARFLAGS in
share/mk/sys.mk instead.

This is part of a medium term project to permit deterministic builds of
FreeBSD.

Submitted by: Erik Cederstrand <erik@cederstrand.dk>
Reviewed by: imp, toolchain@
Approved by: cperciva
MFC after: 2 weeks


243847 04-Dec-2012 jkim

Fix typos in the previous commit.


243846 04-Dec-2012 jkim

Tidy up bsd.cpu.mk for X86 CPUs:

- Do not limit recent processors to "prescott" class for i386 target. There
is no reason for this hack because clang is default now. On top of that, it
will only grow indefinitely over time.
- Add more CPUTYPEs, i.e., "athlon-fx", "core-avx2", "atom", "penryn", and
"yonah". Note "penryn" and "yonah" are intentionally undocumented because
they are not supported by gcc and marked deprecated by clang.
- Add more CPUTYPE aliases, i.e., "barcelona" (-> amdfam10), "westmere" and
"nehalem" (-> corei7). Note these are intentionally undocumented because
they are not supported by (base) gcc and/or clang. However, LLVM (backend)
seems to "know" the differences. Most likely, they were deprecated with
other vendor code names and clang did not bother implementing them at all.
- Add i686 to MACHINE_CPU for "c3-2" (VIA Nehemiah). Both gcc & clang treat
it like an i686-class processor.
- Add IDT "winchip2" and "winchip-c6" for completeness (undocumented).
- Order processors per make.conf example, i.e., CPU vendors and models.
- Tidy up make.conf example, i.e., remove "by gcc" (because we have aliases)
and remove "prescott" from AMD64 architecture (because it is not correct).


243831 03-Dec-2012 jkim

Remove fictitious support for 80386-class CPUs from bsd.cpu.mk and make(1).
It was removed from head more than 8 years ago (see r137784 and r137785).

Reviewed by: imp, delphij, dim


243393 22-Nov-2012 sjg

If .PARSEDIR is defined we have bmake, and CTFCONVERT_CMD can be empty.

PR: 172440
Approved by: marcel (mentor)


243392 22-Nov-2012 sjg

INSTALL_AS_USER: output of id -un will never match 0 so use id -u
and USER for BINOWN etc.

Approved by: marcel (mentor)


243348 20-Nov-2012 dim

Do not expose LIBCXXRT and LIBCPLUSPLUS in bsd.libnames.mk, if
WITHOUT_LIBCPLUSPLUS is specified.

Submitted by: Garrett Cooper <yanegomi@gmail.com>
MFC after: 3 days


243310 19-Nov-2012 jkim

Add x86 CPUs supported by clang on head.

Reviewed by: arch (silence)
X-MFC: r242624


243165 17-Nov-2012 marcel

Install bsd.progs.mk, needed by bsd.test.mk and thus by atf.test.mk.


242712 07-Nov-2012 sjg

Add ATF and reformat to ease reviews

Approved by: marcel (mentor)


242711 07-Nov-2012 sjg

Enable ATF testing.

Submitted by: Garrett Cooper
Approved by: marcel (mentor)


242710 07-Nov-2012 sjg

Latest progs.mk from crufty.net for ATF

Approved by: marcel (mentor)


242658 06-Nov-2012 dim

Fix typo in bsd.compiler.mk.


242633 05-Nov-2012 brooks

Allow CC to be gcc46 or similar by matching gcc*.

Don't test the value of the :M matches, either the string matches or does
not.


242624 05-Nov-2012 brooks

After years of hard work by many FreeBSD and LLVM developers, make
clang the default compiler on i386 and amd64 systems.

Special thanks to: dim, ed, rdivacky


241823 22-Oct-2012 marcel

Add ATF to the build. This is may be a bit rought around the egdes,
but committing it helps to get everyone on the same page and makes
sure we make progress.

Tinderbox breakages that are the result of this commit are entirely
the committer's fault -- in other words: buildworld testing on amd64
only.

Credits follow:

Submitted by: Garrett Cooper <yanegomi@gmail.com>
Sponsored by: Isilon Systems
Based on work by: keramida@
Thanks to: gnn@, mdf@, mlaier@, sjg@
Special thanks to: keramida@


241790 20-Oct-2012 marcel

Revert r241752. The claim that it's more correct while at the same time
causing a build breakage is interesting to say the least.


241752 19-Oct-2012 marcel

Improve upon the previous commit to fix the yacc rule.
1. Have the resulting C file depend on the resulting H
file as it should be. Touch the C file to make sure
the C file is newer than the H file to keep make
happy.
2. Apply the same fix to the other instance of .ORDER,
missed in the previous commit.


241680 18-Oct-2012 attilio

Disconnect non-MPSAFE SMBFS from the build in preparation for dropping
GIANT from VFS. In addition, disconnect also netsmb, which is a base
requirement for SMBFS.

In the while SMBFS regular users can use FUSE interface and smbnetfs
port to work with their SMBFS partitions.

Also, there are ongoing efforts by vendor to support in-kernel smbfs,
so there are good chances that it will get relinked once properly locked.

This is not targeted for MFC.


241629 17-Oct-2012 attilio

Disconnect non-MPSAFE NWFS from the build in preparation for dropping
GIANT from VFS. In addition, disconnect also netncp, which is a base
requirement for NWFS.

In the possibility of a future maintenance of the code and later
readd to the FreeBSD base, maybe we should think about a better location
for netncp. I'm not entirely sure the / top location is actually right,
however I will let network people to comment on that more specifically.

This is not targeted for MFC.


241513 13-Oct-2012 gabor

- Remove WITH_GNU_SORT support


241298 06-Oct-2012 marcel

Add support for bmake. This includes:
1. Don't do upgrade_checks when using bmake. As long as we have WITH_BMAKE,
there's a bootstrap complication in ths respect. Avoid it. Make the
necessary changes to have upgrade_checks work wth bmake anyway.
2. Remove the use of -E. It's not needed in our build because we use ?= for
the respective variables, which means that we'll take the environment
value (if any) anyway.
3. Properly declare phony targets as phony as bmake is a lot smarter (and
thus agressive) about build avoidance.
4. Make sure CLEANFILES is complete and use it on .NOPATH. bmake is a lot
smarter about build avoidance and should not find files we generate in
the source tree. We should not have files in the repository we want to
generate, but this is an easier way to cross this hurdle.
5. Have behavior under bmake the same as it is under make with respect to
halting when sub-commands fail. Add "set -e" to compound commands so
that bmake is informed when sub-commands fail.
6. Make sure crunchgen uses the same make as the rest of the build. This
is important when the make utility isn't called make (but bmake for
example).
7. While here, add support for using MAKEOBJDIR to set the object tree
location. It's the second alternative bmake looks for when determining
the actual object directory (= .OBJDIR).

Submitted by: Simon Gerraty <sjg@juniper.net>
Submitted by: John Van Horne <jvanhorne@juniper.net>


241279 06-Oct-2012 marcel

Add bmake to the build and allow it to be installed as make(1) instead
of FreeBSD's make by setting WITH_BMAKE. The WITH_BMAKE build makes it
easy for people to switch while working out the kinks -- think ports
tree here. The option will be removed in due time.

Submitted by: Simon Gerraty (sjg@juniper.net)


240966 26-Sep-2012 brooks

Add a COMPILER_FEATURES variable that is set in bsd.compiler.mk.

When the compiler is clang add c++11 to COMPILER_FEATURES.

When the compiler supports c++11, default to building libc++. This will
not impact the compliation of programs, but will make it easier for
users with clang compiled systems to test libc++ by passing -stdlib=libc++
to their c++ compliations.


240468 13-Sep-2012 brooks

Introduce a new make variable COMPILER_TYPE that specifies what
type of compiler is being used (currently clang or gcc). COMPILER_TYPE
is set in the new bsd.compiler.mk file based on the value of the CC
variable or, should it prove informative, by running ${CC} --version
and examining the output.

To avoid negative performance impacts in the default case and correct
value for COMPILER_TYPE type is determined and passed in the environment
of submake instances while building world.

Replace adhoc attempts at determining the compiler type by examining
CC or MK_CLANG_IS_CC with checks of COMPILER_TYPE. This eliminates
bootstrapping complications when first setting WITH_CLANG_IS_CC.

Sponsored by: DARPA, AFRL
Reviewed by: Yamaya Takashi <yamayan@kbh.biglobe.ne.jp>, imp, linimon
(with some modifications post review)
MFC after: 2 weeks


240404 12-Sep-2012 obrien

Add MK_KDUMP.


239686 25-Aug-2012 dim

When using -stdlib=libc++, add the correct dependency to .depend in
bsd.prog.mk.

Submitted by: Yamaya Takashi <yamayan@kbh.biglobe.ne.jp>
MFC after: 2 weeks


239613 23-Aug-2012 dim

Make sure bsd.dep.mk does not filter out -stdlib=xxx from CXXFLAGS,
since this determines parts of the C++ include path.

MFC after: 1 week


239272 15-Aug-2012 gonzo

Merging of projects/armv6, part 3

r238211:
Support TARGET_ARCH=armv6 and TARGET_ARCH=armv6eb

This adds a new TARGET_ARCH for building on ARM
processors that support the ARMv6K multiprocessor
extensions. In particular, these processors have
better support for TLS and mutex operations.

This mostly touches a lot of Makefiles to extend
existing patterns for inferring CPUARCH from ARCH.
It also configures:
* GCC to default to arm1176jz-s
* GCC to predefine __FreeBSD_ARCH_armv6__
* gas to default to ARM_ARCH_V6K
* uname -p to return 'armv6'
* make so that MACHINE_ARCH defaults to 'armv6'
It also changes a number of headers to use
the compiler __ARM_ARCH_XXX__ macros to configure
processor-specific support routines.

Submitted by: Tim Kientzle <kientzle@freebsd.org>


238438 14-Jul-2012 dteske

Import bsdconfig(8) as a replacement for the post-install abilities of
deprecated sysinstall(8). NOTE: WITH_BSDCONFIG is currently required.

Submitted by: Devin Teske (dteske), Ron McDowell <rcm@fuzzwad.org>
Reviewed by: Ron McDowell <rcm@fuzzwad.org>
Approved by: Ed Maste (emaste)


238010 02-Jul-2012 glebius

Fix build after r237997.


237629 27-Jun-2012 gabor

- Switch to BSD sort as default sort. GNU sort will still be installed as
"gnusort". Most of the BSD sort development work was done by
Oleg Moskalenko <oleg.moskalenko@citrix.com>.
- GNU grep can be set to default by setting WITH_GNU_GREP. It will cause
BSD sort to be installed as "bsdsort".

Portbuild tested by: linimon


237612 26-Jun-2012 obrien

Add -DWITH_INSTALL_AS_USER to the source build (naming matches the
same functionality of The Ports Collection).
This sets BINOWN, BINGRP, etc... to match current user. This this
allows 'install', as used in 'make install', to succeed (assuming
user has write permissions).

Submitted by: Simon J Gerraty <sjg@juniper.net>
Discussed on: freebsd-arch


237574 25-Jun-2012 obrien

Ensure crunchen uses the same make binary as the rest of the build.

Submitted by: Simon Gerraty <sjg@juniper.net>


237165 16-Jun-2012 rmh

In CTFCONVERT_CMD initialization, check that ${MAKE_VERSION} is defined
before using it. Bootstrap make (as built by usr.bin/make/Makefile.dist)
does not define this variable, but it needs to parse bsd.own.mk in order
to build a complete make.


236810 09-Jun-2012 dim

Amend r227797 by also passing ${STATIC_CXXFLAGS} for the other supported
C++ file extensions.

MFC after: 3 days


236528 03-Jun-2012 dim

During buildworld and buildkernel, define EARLY_BUILD in the earlier
stages (build-tools, cross-tools, etc) of the build, so we can detect in
bsd.*.mk whether to pass compiler-specific flags to ${CC}.

In particular, this commit will allow using WITH_CLANG_IS_CC when the
base compiler is still gcc, and when ${CC}, ${CXX} and ${CPP} are left
at their defaults. The early stages will then be built using gcc, and
no clang-specific flags will be passed to it. The later stages will be
built as usual.

The EARLY_BUILD define can also serve other uses, such as building the
world stage C++ executables with libc++ instead of libstdc++: during the
early build stages, we cannot assume libc++ is already available, so we
must still build with libstdc++ at that time.

MFC after: 1 week


235928 24-May-2012 marcel

Fix an inconsistency I just ran into for LDADD and DPADD. The description
for both of them use different, and presumably wrong, variables in the
example. They set LDFILES and SRCLIB respectively. I guess that's what
DPADD and LDADD were called first ...


235655 19-May-2012 marcel

Add build opton MK_LS_COLORS to control whether ls(1) supports colors
(and thus needs to depend on libtermcap). Embedded systems may not
want or need colors.

Obtained from: Juniper Networks, Inc.


235654 19-May-2012 marcel

Add build option MK_ED_CRYPTO to control whether ed(1) is to have the
ability to encrypt/decrypt files. Embedded systems can typically have
OpenSSL, but not for ed(1) to use it.

Obtained from: Juniper Networks, Inc.


235641 19-May-2012 marcel

Add missing LIBPROCSTAT.


235537 17-May-2012 gber

Import work done under project/nand (@235533) into head.

The NAND Flash environment consists of several distinct components:
- NAND framework (drivers harness for NAND controllers and NAND chips)
- NAND simulator (NANDsim)
- NAND file system (NAND FS)
- Companion tools and utilities
- Documentation (manual pages)

This work is still experimental. Please use with caution.

Obtained from: Semihalf
Supported by: FreeBSD Foundation, Juniper Networks


235268 11-May-2012 gabor

- Hook up BSD sort to the build. By default, it will be installed as
"bsdsort" and GNU sort will be the default "sort". When WITH_BSD_SORT
is set, BSD sort will be the default "sort" and GNU sort will be installed
as "gnusort".


235133 07-May-2012 dim

Revert r234656, and apply a proper fix for binutils PR 10474, which
caused linking clang on 32-bit PowerPC to fail with "relocation
truncated to fit: R_PPC_REL24" errors.

Original diffs (relicensed under GPLv2 with permission from author):
http://sourceware.org/git/?p=binutils.git;a=commit;h=1fd262ff7d7ea5adf4894c6b960e092e7e43e3cd
http://sourceware.org/git/?p=binutils.git;a=commit;h=053c49fbff58bd33bd0d12200ea61302f92caceb

Tested by: andreast
MFC after: 1 week


235122 07-May-2012 jlh

Introduce the ${SHLIB_LDSCRIPT} variable to have an ld(1) script
instead of a symlink for .so files.

Reviewed by: kib, kan (previous version), dim
Approved by: kib (mentor)
Silence from: -hackers@
MFC after: 1 week


234782 29-Apr-2012 kib

Add src.conf option WITH_SHARED_TOOLCHAIN to enable building the
toolchain binaries as dynamically linked. Option is disabled by
default.

Reviewed by: ru (previous version)
MFC after: 2 weeks


234656 24-Apr-2012 dim

After r234596, temporarily disable building clang on 32-bit PowerPC,
until we are able to fix the binutils bug that makes linking clang fail
with "relocation truncated to fit: R_PPC_REL24" errors. This should fix
the tinderboxes for now.


234575 22-Apr-2012 imp

Sort nm in order.

Submitted by: bde


234549 21-Apr-2012 imp

Fix partially merged patch from my external compiler tree in r234546.
Define NM except when we're in strict POSIX mode.


234353 16-Apr-2012 dim

Upgrade our copy of llvm/clang to trunk r154661, in preparation of the
upcoming 3.1 release (expected in a few weeks). Preliminary release
notes can be found at: <http://llvm.org/docs/ReleaseNotes.html>

MFC after: 2 weeks


233644 29-Mar-2012 jmallett

Assume a big-endian default on MIPS and drop the "eb" suffix from MACHINE_ARCH.
This makes our naming scheme more closely match other systems and the
expectations of much third-party software. MIPS builds which are little-endian
should require and exhibit no changes. Big-endian TARGET_ARCHes must be
changed:
From: To:
mipseb mips
mipsn32eb mipsn32
mips64eb mips64

An entry has been added to UPDATING and some foot-shooting protection (complete
with warnings which should become errors in the near future) to the top-level
base system Makefile.


233294 22-Mar-2012 stas

- Update FreeBSD Heimdal distribution to version 1.5.1. This also brings
several new kerberos related libraries and applications to FreeBSD:
o kgetcred(1) allows one to manually get a ticket for a particular service.
o kf(1) securily forwards ticket to another host through an authenticated
and encrypted stream.
o kcc(1) is an umbrella program around klist(1), kswitch(1), kgetcred(1)
and other user kerberos operations. klist and kswitch are just symlinks
to kcc(1) now.
o kswitch(1) allows you to easily switch between kerberos credentials if
you're running KCM.
o hxtool(1) is a certificate management tool to use with PKINIT.
o string2key(1) maps a password into key.
o kdigest(8) is a userland tool to access the KDC's digest interface.
o kimpersonate(8) creates a "fake" ticket for a service.

We also now install manpages for some lirbaries that were not installed
before, libheimntlm and libhx509.

- The new HEIMDAL version no longer supports Kerberos 4. All users are
recommended to switch to Kerberos 5.

- Weak ciphers are now disabled by default. To enable DES support (used
by telnet(8)), use "allow_weak_crypto" option in krb5.conf.

- libtelnet, pam_ksu and pam_krb5 are now compiled with error on warnings
disabled due to the function they use (krb5_get_err_text(3)) being
deprecated. I plan to work on this next.

- Heimdal's KDC now require sqlite to operate. We use the bundled version
and install it as libheimsqlite. If some other FreeBSD components will
require it in the future we can rename it to libbsdsqlite and use for these
components as well.

- This is not a latest Heimdal version, the new one was released while I was
working on the update. I will update it to 1.5.2 soon, as it fixes some
important bugs and security issues.


233052 16-Mar-2012 dim

Change the style of share/mk/bsd.sys.mk to that of the other bsd.*.mk
files, and style.Makefile(5), where applicable. While here, update the
link to the gcc warning documentation.

No functional change.

MFC after: 1 week


232754 09-Mar-2012 jkim

Make boot2 build with Clang again.

Submitted by: dim (bsd.sys.mk)
Reviewed by: dim, jhb


232476 03-Mar-2012 dim

Revert r232473. I have been convinced by Doug Barton and Bjoern Zeeb
that it is better to error out when people attempt to build using the
wrong bsd.*.mk files, than to silently ignore the problem.

This means, that after this commit, if you want to build kernel modules
by hand (or via a port) from a head source tree, you *must* make sure
the files in /usr/share/mk are in sync with that tree. If that isn't
possible, for example when you are running on an older FreeBSD branch,
you can:

- Run "make buildenv" from your head source tree, to have the correct
environment setup. (It's advisable to have run "make buildworld", or
at a minimum "make toolchain" first.)
- Alternatively, set MAKESYSPATH to the share/mk directory under your
head source tree. If your build tools are too old, other problems may
still occur.
- Alternatively, use "make -m" and specify the share/mk directory under
your head source tree. Again, build tools that are too old may still
result in trouble.

MFC after: 2 weeks


232473 03-Mar-2012 dim

After r232322, it turned out many people (and some ports) are building
kernel modules using their old installed /usr/share/mk/bsd.*.mk files,
instead of the updated ones in their source tree. This leads to errors
like:

"sys/conf/kmod.mk", line 111: Malformed conditional (${MK_CLANG_IS_CC} == "no" && ${CC:T:Mclang} != "clang")

Obviously, these errors will go away after a "make installworld", or
alternatively, by using "make buildenv" before attempting to manually
build modules.

However, since it is apparently an expected use case to build using old
.mk files, change the way we test for clang, so it also works when the
MK_CLANG_IS_CC macro doesn't exist.

Note the conditional expressions are becoming rather unreadable now, but
I will attempt to fix that on a followup commit.

MFC after: 2 weeks


232322 29-Feb-2012 dim

Add a WITH_CLANG_IS_CC option for src.conf(5), disabled by default, that
installs clang as /usr/bin/cc, /usr/bin/c++ and /usr/bin/cpp.

Note this does *not* disable building and installing gcc, which will
still be available as /usr/bin/gcc, /usr/bin/g++ and /usr/bin/gcpp. If
you want to disable gcc completely, you must use WITHOUT_GCC.

MFC after: 2 weeks


232263 28-Feb-2012 dim

Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to
get rid of testing explicitly for clang (using ${CC:T:Mclang}) in
individual Makefiles.

Instead, use the following extra macros, for use with clang:
- NO_WERROR.clang (disables -Werror)
- NO_WCAST_ALIGN.clang (disables -Wcast-align)
- NO_WFORMAT.clang (disables -Wformat and friends)
- CLANG_NO_IAS (disables integrated assembler)
- CLANG_OPT_SMALL (adds flags for extra small size optimizations)

As a side effect, this enables setting CC/CXX/CPP in src.conf instead of
make.conf! For clang, use the following:

CC=clang
CXX=clang++
CPP=clang-cpp

MFC after: 2 weeks


231834 16-Feb-2012 imp

Fix comma splice, can't ambiguity and quoting.

Submitted by: bde@
MFC after: 2 weeks


231780 15-Feb-2012 imp

Wordsmith the can't find kernel error message, and suggest which
variable to set to override.


231057 06-Feb-2012 dim

Add a WITH_CLANG_EXTRAS option for src.conf(5), disabled by default,
that builds the following additional llvm/clang tools:

- bugpoint
- llc
- lli
- llvm-ar
- llvm-as
- llvm-bcanalyzer
- llvm-diff
- llvm-dis
- llvm-extract
- llvm-ld
- llvm-link
- llvm-mc
- llvm-nm
- llvm-objdump
- llvm-prof
- llvm-ranlib
- llvm-rtdyld
- llvm-stub
- macho-dump
- opt

These tools are mainly useful for people that want to manipulate llvm
bitcode (.bc) and llvm assembly language (.ll) files, or want to tinker
with llvm and clang themselves.

MFC after: 2 weeks


230972 04-Feb-2012 rmh

Add MK_SOURCELESS build option. Setting MK_SOURCELESS to "no" will disable
kernel modules that include binary-only code.

More fine-grained control is provided via MK_SOURCELESS_HOST (for native code
that runs on host CPU) and MK_SOURCELESS_UCODE (for microcode).

Reviewed by: julian, delphij, freebsd-arch
Approved by: kib (mentor)
MFC after: 2 weeks


229658 05-Jan-2012 adrian

Allow crunchgen binary link generation to be disabled.

If CRUNCH_GENERATE_LINKS is set to "no", then no links will be
generated.

This defaults to "yes" so things like release crunch building
still works.


229319 02-Jan-2012 rwatson

Add WITHOUT_CAPSICUM src.conf(5) define, which can be used to compile out
use of Capsicum by userspace applications.

MFC after: 3 weeks
Sponsored by: Google, Inc.


228677 18-Dec-2011 dim

Disable another clang warning (-Wempty-body) when WARNS <= 2.

MFC after: 1 week


228675 18-Dec-2011 dim

Disable yet another clang warning (-Wconversion) when WARNS <= 3.

MFC after: 1 week


228617 17-Dec-2011 dim

Disable yet another clang warning when WARNS <= 3.

MFC after: 1 week


228606 16-Dec-2011 dim

Add a NO_WARRAY_BOUNDS setting to bsd.sys.mk, only applicable to clang,
to selectively work around warnings in programs that don't use flexible
array members, but instead define arrays of length 1 at the end of the
struct, and then access those beyond their declared bounds.

MFC after: 1 week


228551 15-Dec-2011 dim

Disable one more clang warning when WARNS <= 3.

MFC after: 1 week


228546 15-Dec-2011 dim

Clang has more warnings enabled by default, and when using -Wall, so if WARNS
is set to low values, some of them have to be disabled explicitly.

MFC after: 1 week


228307 06-Dec-2011 kib

Force linker error when created shared library contains a relocation
against text. Provide the override switch to turn off the strict
behaviour. Apparently, openssl libcrypto needs it due to assembler
code not being PIC.

Discussed with: bf
MFC after: 2 weeks


228196 02-Dec-2011 fjoe

Revert to conservative defaults. WITH_PROFILE is a default now.

NO_PROFILE overrides in Makefile.inc1 and bsd.own.m are left intact
so that the reversal to the WITHOUT_PROFILE will be easier in future.


228158 30-Nov-2011 fjoe

- CTF knob is now implemented using common scheme: MK_CTF=yes/no is
defined based on WITH/WITHOUT_CTF settings, default is WITHOUT_CTF,
NO_CTF overrides WITH_CTF (used by Makefile.inc1)
- CTFCONVERT_CMD/NORMAL_CTFCONVERT are now defined to empty string
if make(1) can handle empty commands


228147 29-Nov-2011 fjoe

CTFCONVERT_CMD=... hack does not work sufficiently well in parallel builds.

Put a bandaid until make(1) is taught to ignore empty commands.


228143 29-Nov-2011 fjoe

Turn off profiled libs build by default.
Can be enabled back using WITH_PROFILE=yes in /etc/src.conf


228137 29-Nov-2011 fjoe

- fix WITH_CTF when specified in /etc/src.conf [1]
- CTFCONVERT_CMD=... is a hack (should be defined to empty string instead):
make(1) should be taught to ignore empty commands silently in compat mode
(as it does in !compat mode, GNU make also silently ignores empty commands)
and to skip printing empty commands in !compat mode
- config(8) should generate ${NORMAL_CTFCONVERT} invocation without '@':
this will allow to simplify kern.pre.mk even more and lessen the number
of shell invocations during kernel build when CTF is turned off
- WITH_CTF can now be converted to usual MK_CTF=yes/no infrastructure

Pointy hat to: fjoe [1]


228124 29-Nov-2011 fjoe

Conditionalize ctfconvert/ctfmerge runs on make level (.if/.endif) instead
of executing a shell on every object or executable/library file.

This shaves off more than 30,000 shell invocations during buildworld.


228120 29-Nov-2011 fjoe

Allow NO_FOO to override WITH_FOO that could be specified in /etc/src.conf.

This is required to override knobs (e.g. WITH_PROFILE) during buildworld
stages in Makefile.inc1 (otherwise the build is stopped due to both WITH_FOO
and WITHOUT_FOO defined).


227987 26-Nov-2011 dim

Fix breakage after r227983; lib/libcxxrt still got built, because it was
not disabled in the usual way (by adding it to __DEFAULT_NO_OPTIONS in
share/mk/bsd.own.mk), and because the test for MK_LIBCPLUSPLUS in
Makefile.inc1 was incorrect.

Pointy hat to: dim


227983 25-Nov-2011 theraven

Import libc++ / libcxxrt into base. Not build by default yet (use
MK_LIBCPLUSPLUS=yes to enable). This is a work-in-progress. It works for
me, but is not guaranteed to work for anyone else and may eat your dog.

To build C++ using libc++, add -stdlib=libc++ to your CXX and LD flags.

Bug reports welcome, bug fixes even more welcome...

Approved by: dim (mentor)


227951 24-Nov-2011 fjoe

libodialog: disconnect from the build and obsolete.


227932 24-Nov-2011 des

Add CTF magic to the new .c.o rule.

MFC after: 3 weeks


227797 21-Nov-2011 des

As threatened on -arch, add {SHARED,STATIC}_{C,CXX}FLAGS, which allow a
Makefile to specify different CFLAGS for shared and static libraries.

MFC after: 3 weeks


227775 21-Nov-2011 nwhitehorn

Connect LLVM/clang to the build on powerpc64. After the binutils 2.17.50
import, it works without issue.


226564 20-Oct-2011 jchandra

Build 'dtc' by default for MIPS.

The device tree compiler is needed during the kernel build to compile
DTS files to DTB.

Reviewed by: stas


226244 11-Oct-2011 das

Also pass the -ansi flag through to mkdep (requested by bde), and fix
a cut-and-paste-o (noticed by rdivacky).


226216 10-Oct-2011 das

Pass -std= flags in CFLAGS to mkdep. Without this, preprocessor tests
for particular compiler features might be evaluated differently by
mkdep than they would be by cc.


226162 08-Oct-2011 crees

Revert unapproved commit to bsd.port.mk.

This would have had more discussion, but it was explicitly rejected at submission by portmgr:

http://lists.freebsd.org/pipermail/freebsd-ports/2011-September/070591.html


226124 08-Oct-2011 stas

- Add a couple of more sed subsitutions needed to get the correct
libtool.m4. With these fixes libtool will correctly indentify the
system as ELF (and not a.out).
- While here, change the substitutions so they're still correctly
match freebsd1.x, freebsd2.x etc.


226122 07-Oct-2011 stas

- ${WRKSRC} might be missing when the autotools fixup is running.
Account for this.

Reported by: Mykola Dzham <i@levsha.me>


226027 04-Oct-2011 jilles

Work around the autotools problem with the 10.0 version.

With this, I can build various ports on a 10.0-CURRENT system without
hacking or hiding the version number.

This commit should be reverted when there is a cleaner fix in autotools
and/or ports/Mk/bsd.port.mk.

The original patch is from Ed Schouten but needed some additions.


223758 04-Jul-2011 attilio

With retirement of cpumask_t and usage of cpuset_t for representing a
mask of CPUs, pc_other_cpus and pc_cpumask become highly inefficient.

Remove them and replace their usage with custom pc_cpuid magic (as,
atm, pc_cpumask can be easilly represented by (1 << pc_cpuid) and
pc_other_cpus by (all_cpus & ~(1 << pc_cpuid))).

This change is not targeted for MFC because of struct pcpu members
removal and dependency by cpumask_t retirement.

MD review by: marcel, marius, alc
Tested by: pluknet
MD testing by: marcel, marius, gonzo, andreast


223596 27-Jun-2011 se

Add macros to specify owner, group and mode of config files for installation.

Submitted by: Chris Rees (crees)


223209 17-Jun-2011 ed

Add WITHOUT_UTMPX switch to the build system.

This knob removes the tools that are exclusively used to view and
maintain the databases maintained by utmpx, namely last, users, who,
wtmpcvt, ac, lastlogin and utxrm.

The tool w is not in this list, because it has some other functionality
which is unrelated to utmpx; it is hardlinked to the uptime tool.


222813 07-Jun-2011 attilio

etire the cpumask_t type and replace it with cpuset_t usage.

This is intended to fix the bug where cpu mask objects are
capped to 32. MAXCPU, then, can now arbitrarely bumped to whatever
value. Anyway, as long as several structures in the kernel are
statically allocated and sized as MAXCPU, it is suggested to keep it
as low as possible for the time being.

Technical notes on this commit itself:
- More functions to handle with cpuset_t objects are introduced.
The most notable are cpusetobj_ffs() (which calculates a ffs(3)
for a cpuset_t object), cpusetobj_strprint() (which prepares a string
representing a cpuset_t object) and cpusetobj_strscan() (which
creates a valid cpuset_t starting from a string representation).
- pc_cpumask and pc_other_cpus are target to be removed soon.
With the moving from cpumask_t to cpuset_t they are now inefficient
and not really useful. Anyway, for the time being, please note that
access to pcpu datas is protected by sched_pin() in order to avoid
migrating the CPU while reading more than one (possible) word
- Please note that size of cpuset_t objects may differ between kernel
and userland. While this is not directly related to the patch itself,
it is good to understand that concept and possibly use the patch
as a reference on how to deal with cpuset_t objects in userland, when
accessing kernland members.
- KTR_CPUMASK is changed and now is represented through a string, to be
set as the example reported in NOTES.

Please additively note that no MAXCPU is bumped in this patch, but
private testing has been done until to MAXCPU=128 on a real 8x8x2(htt)
machine (amd64).

Please note that the FreeBSD version is not yet bumped because of
the upcoming pcpu changes. However, note that this patch is not
targeted for MFC.

People to thank for the time spent on this patch:
- sbruno, pluknet and Nicholas Esborn (nick AT desert DOT net) tested
several revision of the patches and really helped in improving
stability of this work.
- marius fixed several bugs in the sparc64 implementation and reviewed
patches related to ktr.
- jeff and jhb discussed the basic approach followed.
- kib and marcel made targeted review on some specific part of the
patch.
- marius, art, nwhitehorn and andreast reviewed MD specific part of
the patch.
- marius, andreast, gonzo, nwhitehorn and jceel tested MD specific
implementations of the patch.
- Other people have made contributions on other patches that have been
already committed and have been listed separately.

Companies that should be mentioned for having participated at several
degrees:
- Yahoo! for having offered the machines used for testing on big
count of CPUs.
- The FreeBSD Foundation for having sponsored my devsummit attendance,
which has been instrumental.
- Sandvine for having offered offices and infrastructure during
development.

(I really hope I didn't forget anyone, if it happened I apologize in
advance).


222647 03-Jun-2011 ru

Don't pass -o1- to groff(1) by default. If ms(7) formatted document
uses the .RP macro, a separate cover page is created as page 0 which
is not otherwise output. The bug was hiding by a hack in troffrc
that disables SGR support in grotty(1), which I'm going to remove now.
For POLA reasons, still disable SGR support in grotty(1), by passing
-P-c to groff(1). If we want SGR sequences in these documents, this
can be removed.

MFC after: 1 week


222185 22-May-2011 imp

Start to usher INSTALL_NODEBUG hack out the door. Add new
WITH{OUT,}_KERNEL_SYMBOLS (defaulting to WITH). In the fullness of
time, likely around 2020, INSTALL_NODEBUG will be removed. For now,
don't print a warning when using INSTALL_NODEBUG, but that will be
coming soon.


222090 19-May-2011 imp

Implement WITH{,OUT}_{GCC,BINUTILS} to provide finer-grained control
over building gcc and binutils. They default to true, unless
MK_TOOLCHAIN is no.

Reviewed by: ru@


222035 17-May-2011 flz

Backout libinstall.a -> libpkg commit.

Discussed with: erwin, brooks, bapt


221728 10-May-2011 ru

Removed unsupported options MK_BINUTILS and MK_GCC that were
silently added in r218936.


221726 10-May-2011 ru

Another fallout from r220359: MK_GNU_CPIO was mistakenly re-added
after being removed in r205702. Remove it again.


221266 30-Apr-2011 bz

Introduce two new options MK_INET and MK_INET_SUPPORT analogically
with INET6 equivalents. Patch reather than re-genenerating src.conf
(given the current problem with the script that does the re-gen).

Reviewed by: gnn
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
MFC after: 2 weeks


220863 19-Apr-2011 dim

Remove support for the Intel C Compiler from the build infrastructure.
This support has not worked for several years, and is not likely to work
again, unless Intel decides to release a native FreeBSD version of their
compiler. ;)


220755 17-Apr-2011 dim

Remove libobjc and other Objective-C related components, as these are
extremely outdated, and not used by anything in the base system.

Silence from: current@


220401 06-Apr-2011 uqs

Complete WITHOUT_CXX support. It implies WITHOUT_GROFF and
WITHOUT_CLANG.

Don't build clang bootstrap/build-tools depending on this flag. We also
keep gperf, devd and libstdc++ around to prevent foot-shooting and to
make this a two-way street.


220359 05-Apr-2011 imp

Make clang default on x86 and powerpc, but not on other architectures.
Make fdt default on arm and powerpc.

This now includes cross compiled targets, where before we tried to
make it host-based.

Also, move the lists of default yes and no options to a variable.

In general, only build tools should get this treatment in bsd.own.mk.
Also, the use of TARGET* in the bsd.*mk files is discouraged, but
necessary here due to the ordering of things in buildworld. We make
the native case work by testing MACHINE_ARCH after TARGET_ARCH.


219820 21-Mar-2011 jeff

- Merge in OFED 1.5.3 from projects/ofed/head


219640 14-Mar-2011 mm

Add ssse3 capability for CPUTYPE=core2 to MACHINE_CPU in bsd.cpu.mk

MFC after: 2 weeks


219376 07-Mar-2011 mm

Add AMD Geode CPU type to bsd.cpu.mk and examples/etc/make.conf
For CPUTYPE=core2 use -march=core2

PR: gnu/155308
MFC after: 2 weeks


219368 07-Mar-2011 pjd

To be able to use printf extensions we need to turn off gcc format checking.
Following the convention of NO_WERROR and NO_WCAST_ALIGN add NO_WFORMAT,
which, when defined in Makefile, turns off compile-time format checking
(by adding -Wno-format), but still allows to use high WARNS level.

MFC after: 2 weeks


219019 25-Feb-2011 gabor

Add the BSD-licensed Citrus iconv to the base system with default off
setting. It can be built by setting the WITH_ICONV knob. While this
knob is unset, the library part, the binaries, the header file and
the metadata files will not be built or installed so it makes no impact
on the system if left turned off.

This work is based on the iconv implementation in NetBSD but a great
number of improvements and feature additions have been included:

- Some utilities have been added. There is a conversion table generator,
which can compare conversion tables to reference data generated by
GNU libiconv. This helps ensuring conversion compatibility.
- UTF-16 surrogate support and some endianness issues have been fixed.
- The rather chaotic Makefiles to build metadata have been refactored
and cleaned up, now it is easy to read and it is also easier to add
support for new encodings.
- A bunch of new encodings and encoding aliases have been added.
- Support for 1->2, 1->3 and 1->4 mappings, which is needed for
transliterating with flying accents as GNU does, like "u.
- Lots of warnings have been fixed, the major part of the code is
now WARNS=6 clean.
- New section 1 and section 5 manual pages have been added.
- Some GNU-specific calls have been implemented:
iconvlist(), iconvctl(), iconv_canonicalize(), iconv_open_into()
- Support for GNU's //IGNORE suffix has been added.
- The "-" argument for stdin is now recognized in iconv(1) as per POSIX.
- The Big5 conversion module has been fixed.
- The iconv.h header files is supposed to be compatible with the
GNU version, i.e. sources should build with base iconv.h and
GNU libiconv. It also includes a macro magic to deal with the
char ** and const char ** incompatibility.
- GNU compatibility: "" or "char" means the current local
encoding in use
- Various cleanups and style(9) fixes.

Approved by: delphij (mentor)
Obtained from: The NetBSD Project
Sponsored by: Google Summer of Code 2009


218936 22-Feb-2011 imp

Back out 218933 and 281934. The easy cases still worked, but some
hard cases broke in worse ways than the status quo. Back them out
until that can be resolved.


218933 22-Feb-2011 imp

Testing based on MACHINE_ARCH is problematic. Default to yes to build
clang. A separate change will fix buildworld to default to yes or no
based on the target.


218896 20-Feb-2011 mm

Add opteron-sse3, athlon64-sse3 and k8-sse3 cpu types to bsd.cpu.mk.
- add "sse3" to MACHINE_CPU for the new cpu types
- for i386, default to CPUTYPE=prescott for the new cpu types

PR: gnu/154906
Discussed with: kib, kan, dim
MFC after: 2 weeks


218525 10-Feb-2011 keramida

Add LIBEXECDIR to the bsd.own.mk vars, pointing to /usr/libexec by default

Some of the patches we are preparing for porting ATF from NetBSD
refer to '/usr/libexec' several times. Instead of repeating the
path all over the place, add ${LIBEXECDIR} to match ${LIBDATADIR}
and reduce the redundancy of the relevant makefiles.

Submitted by: Garrett Cooper <yanegomi@gmail.com>
Approved by: ru
MFC after: 1 month


217309 12-Jan-2011 nwhitehorn

Update dialog to version 20100428. This changes the license under which
dialog is distributed from GPLv2 to LGPLv2 and introduces a number of new
features and a new and better libdialog API. The existing libdialog will
be kept temporarily as libodialog for compatibility purposes until sade,
sysinstall and tzsetup have been either updated or replaced.

__FreeBSD_version is now 900030.

Discussed on: -current
Approved by: core
Obtained from: http://invisible-island.net/dialog


217123 07-Jan-2011 imp

Retire TARGET_ABI.

Implement MACHINE_ARCH=mips64e[lb] to build N64 images. This replaces
MACHINE_ARCH=mipse[lb] TARGET_ABI=n64.

MACHINE_ARCH=mipsn32e[lb] has been added, but currently requires
WITHOUT_CDDL due to atomic issues in libzfs. I've not investigated
this much, but implemented this to preserve as much of the TARGET_ABI
functionality that I could. Since its presence doesn't affect the
working cases, I've kept it in for now.

Added mips64e[lb] to make universe, so more kernels build.

And I think this (finally) closes the curtain on the tbemd tree.


217100 07-Jan-2011 kib

Introduce make variable ACFLAGS used to supply additional flags to
cc driver when compiling assembler source file that is preprocessed.


216820 30-Dec-2010 marius

- Add CPUTYPE support for sparc64. The net result is that it's now possible
to let the compiler optimize for the famility of UltraSPARC-III CPUs as the
default already was to optimize for UltraSPARC-I/II and generating generic
64-bit V9 is mainly for reference purposes. At least for SPARC64-V CPUs
code optimized for UltraSPARC-I/II still is the most performant one.
Thanks go to Michael Moll for testing SPARC64-V.
- Move a booke MACHINE_CPU bit into the right section.


216662 22-Dec-2010 nwhitehorn

Enable build of FDT components by default. dtc is a required build tool
for all FDT-enabled kernels, and having it off by default means that
building these kernels fails by default. This fixes FDT-related build
failures in make universe on ARM and PowerPC.

Reviewed by: imp


215413 16-Nov-2010 adrian

Re-enable generating links.


215412 16-Nov-2010 adrian

.. and then notice that the list of mk files is ordered, and update to suit.


215411 16-Nov-2010 adrian

Add in forgotten install rule.


215274 14-Nov-2010 imp

This case is actually powerpc specific, and doesn't apply to powerpc64.

Submitted by: nathanw@


215226 13-Nov-2010 adrian

Break out the rules which generate crunchgen'ed binaries into a separate
.mk file so they can be reused.

Introduce a new option, CRUNCH_BUILDTOOLS, which lists the binaries that
require tools built in the local architecture. sh and csh both require this.
It was previously hardcoded in rescue/rescue/Makefile .

Introduce a new option, CRUNCH_SHLIBS, which lists the shared libraries
to link against. These override the static libraries listed in CRUNCH_LIBS.
Some build environments may wish to use a handful of shared libraries
(eg libc.so) so other small, dynamic binaries can be run in the environment.

Remove the now-shared code from rescue/rescue/Makefile and introduce the
CRUNCH_BUILDTOOLS option for the above shells.


215149 11-Nov-2010 dim

Fix typo, and re-wrap paragraph.


215082 10-Nov-2010 imp

Complete the integration of tbemd branch into head.

TARGET_BIG_ENDIAN is now completely dead, except where it was
originally supposed to be used (internally in the toolchain building).

TARGET_ARCH has changed in three cases:
(1) Little endian mips has changed to mipsel.
(2) Big endian mips has changed to mipseb.
(3) Big endian arm has changed to armeb.

Some additional changes are needed to make 'make universe' work on arm
and mips after this change, so those are commented out for now.

UPDATING information will be forthcoming. Any remaining rough edges
will be hammered out in -current.


213462 05-Oct-2010 gonzo

- Introduce WITH_GPIO knob and disable building gpioctl
by default. Most systems do not need it.


212540 13-Sep-2010 imp

Prefer MACHINE_CPUARCH to MACHINE_ARCH unless there's a good reason...


212461 11-Sep-2010 rpaulo

Add a comment describing where to include bsd.dtrace.mk.

Sponsored by: The FreeBSD Foundation


212428 10-Sep-2010 rpaulo

Fix bugs introduced in the previous rev:
* add a phatom target for the DTRACEOBJS
* when invoking DTrace, don't add DTRACEOBJS to the command line.

Sponsored by: The FreeBSD Foundation


212426 10-Sep-2010 rpaulo

Fix typo in previous commit.


212424 10-Sep-2010 rpaulo

Add bsd.dtrace.mk. This allows userland programs and libraries to
define USDT probes on a provider.d file and then use this new make
infrastructure to build the corresponding header file and object file.

This will only take effect when the user defines WITH_DTRACE when building.

Sponsored by: The FreeBSD Foundation


212423 10-Sep-2010 rpaulo

Check the existence of a 'beforelinking' target and make the resulting
program or library depend on that before doing the final linking. This
will be needed by DTrace.

Sponsored by: The FreeBSD Foundation


212422 10-Sep-2010 rpaulo

Add the DTRACE variable that points to the executable.

Sponsored by: The FreeBSD Foundation


211949 28-Aug-2010 imp

Now that we default to the proper endian, we don't need these for mips


211725 23-Aug-2010 imp

MFtbemd:

Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.


211701 23-Aug-2010 gabor

- Change default grep back to GNU version. BSD grep can be built with the
WITH_BSD_GREP knob.
- Bump __FreeBSD_version

Requested by: dougb
Approved by: delphij (mentor)


211580 21-Aug-2010 rpaulo

Remove LIBELF_PIC.

Sponsored by: The FreeBSD Foundation


211565 21-Aug-2010 rpaulo

Add the definition of LIBELF_PIC.

Sponsored by: The FreeBSD Foundation


211437 17-Aug-2010 rpaulo

For every instance of '.if ${CC} == "foo"' or '.if ${CC} != "foo"' in
Makefiles or *.mk files, use ${CC:T:Mfoo} instead, so only the basename
of the compiler command (excluding any arguments) is considered.

This allows you to use, for example, CC="/nondefault/path/clang -xxx",
and still have the various tests in bsd.*.mk identify your compiler as
clang correctly.

ICC if cases were also changed.

Submitted by: Dimitry Andric <dimitry at andric.com>


211427 17-Aug-2010 rpaulo

Make sure any -U CFLAGS are not filtered out when calling mkdep, as
gnu/usr.bin/cc/libiberty first defines the PREFIX macro, and then
undefines it again, so mkdep with clang complains.

Submitted by: Dimitry Andric <dimitry at andric.com>
Reviewed by: ru


211243 12-Aug-2010 will

Fix buildworld -DNO_CLEAN when using with Perforce, which marks files as
read-only by default, meaning files copied can't be overwritten next time.

Reviewed by: imp
Approved by: ken (mentor)


210680 31-Jul-2010 rpaulo

Add LIBRTLD_DB.

Sponsored by: The FreeBSD Foundation


210656 30-Jul-2010 rpaulo

Add missing escape characthers.

Pointed out by: b.f.


210636 30-Jul-2010 rpaulo

Fix previous commit: I forgot to include parenthesis.

Submitted by: anonymous


210612 29-Jul-2010 rpaulo

When building WITH_CTF=1, print the ctf executable that's going to be
run. This makes the 'ctfconvert' and 'ctfmerge' programs show up during
a build when compiling a kernel, a library or a program.

Sponsored by: The FreeBSD Foundation


210389 22-Jul-2010 gabor

Add BSD grep to the base system and make it our default grep.

Deliverables: Small and clean code (1,4 KSLOC vs GNU's 8,5 KSLOC),
lower memory usage than GNU grep, GNU compatibility,
BSD license.

TODO: Performance is somewhat behind GNU grep but it is only
significant for bigger searches. The reason is complex, the
most important factor is that GNU grep uses lots of
optimizations to improve the speed of the regex library.
First, we need a modern regex library (practically by adopting
TRE), add support for GNU-style non-standard regexes and then
reevalute the performance issues and look for bottlenecks. In
the meantime, for those, who need better performance, it is
possible to build GNU grep by setting WITH_GNU_GREP.

Approved by: delphij (mentor)
Obtained from: OpenBSD (http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/grep/),
freegrep (http://github.com/howardjp/freegrep)
Sponsored by: Google SoC 2008
Portbuild tests run by: kris, pav, erwin
Acknowledgements to: fjoe (as SoC 2008 mentor),
everyone who helped in reviewing and testing


209868 10-Jul-2010 nwhitehorn

Minor modifications to know what to do with powerpc64.


209739 06-Jul-2010 bz

Also install the new bsd.arch.inc.mk filed. Missed in r204020.

Reviewed by: imp


209126 13-Jun-2010 raj

Do not set WITH_FDT by default based on arch, as this does not work for
a bootstrap stage tool.

FDT-enabled platforms will have to specify WITH_FDT explicitly at buildworld
time for now until TBEMD is complete, which is going to provide means for such
arch based selection of build components.

Discussed with: imp


209025 11-Jun-2010 imp

Merge from tbemd

Enhance Makefile.inc processing, when asked for, to include the most
specific (MACHINE specific) to least specific (MACHINE_CPUARCH).

Reviewed by: arch@ (mostly silence though)


209024 11-Jun-2010 imp

Merge from tbemd branch:

Introduce MACHINE_CPUARCH. Many different MACHINE_ARCHs will be built
from one MACHINE_CPUARCH. This will allow us to move to a more
standard MACHINE_ARCH for mips and arm which exist in many different
endian variants, and for powerpc where both 32 and 64 bit binaries are
generated from the same sources.

Reviewed by: arch@ (mostly silence though)


208964 09-Jun-2010 rdivacky

Hook clang into the build on i386/amd64/powerpc.

Approved by: ed (mentor)


208559 26-May-2010 raj

Use MACHINE_ARCH instead of TARGET_ARCH.

Pointed out by: imp


208537 25-May-2010 raj

Introduce a new build knob for Flattened Device Tree support.

Reviewed by: imp
Sponsored by: The FreeBSD Foundation


208420 22-May-2010 maxim

o Remove EoL w/spaces introduced in the last commit.

Spotted by: uqs


208417 22-May-2010 maxim

o Grammar.

PR: conf/146827
Submitted by: chris petrik


208320 20-May-2010 jkim

Add a new build option, MAN_UTILS. This option lets you control building
utilities and related support files for manual pages, which were previously
controlled by MAN. For POLA, the default depends on MAN, i.e., WITHOUT_MAN
implies WITHOUT_MAN_UTILS and WITH_MAN implies WITH_MAN_UTILS. This patch
is slightly improved by me from:

PR: misc/145212


207842 10-May-2010 mm

Import of liblzma, xz, xzdec, lzmainfo from vendor branch
Add support for xz and lzma to lesspipe.sh (xzless, lzless)
Bump __FreeBSD_version

Approved by: delphij (mentor)
MFC after: 2 weeks


207113 23-Apr-2010 flz

- Take libinstall.a out of pkg_install and make it a proper shared library.
- Rework the wrapper support to check libpkg version as well as pkg_install
version.
- Add libfetch to _prebuild_libs.
- There are no new features introduced.

Notes: the API is not stable, so basically, do not use libpkg in your
projects for now. Also there's no manpage for libpkg yet, because the API
will change drastically. I repeat, do not use libpkg for now.


206973 21-Apr-2010 delphij

When CPUTYPE is defined to any value, on amd64 platform "mmx" is
available through MACHINE_CPU, indicating the CPU supports that
feature, as done by revision 138685.

This changeset adds "mmx" into the default amd64 MACHINE_CPU list
when no CPUTYPE is specified to provide consistent behavior.

PR: amd64/145593
Submitted by: mm
MFC after: 2 weeks


206082 02-Apr-2010 netchild

WITH_CTF can now be specified in src.conf (not recommended, there
are some problems with static executables), make.conf (would also
affect ports which do not use GNU make and do not override the
compile targets) or in the kernel config (via "makeoptions
WITH_CTF=yes").

Additional (related) changes:
- propagate WITH_CTF to module builds
- do not add -g to the linker flags, it's a noop there anyway
(at least according to the man page of ld)
- do not add -g to CFLAGS unconditionally
we need to have a look if it is really needed (IMO not) or if there
is a way to add it only when WITH_CTF is used

Note: ctfconvert / ctfmerge lines will not appear in the build output,
to protect the innocent (those which do not build with WITH_CTF would
see the shell-test and may think WITH_CTF is used).

Reviewed by: imp, jhb, scottl (earlier version)
Discussed on: arch@


205702 26-Mar-2010 delphij

Remove GNU cpio after fix of CVE-2010-0624.

Note that this is actually a no-op for most users, as this GNU
cpio was broken on -HEAD and 8-STABLE since last March until
the recent fix.

FreeBSD 8.0+ uses BSD cpio by default and the code is being
actively maintained.

Blessed by: kientzle
With hat: secteam
MFC after: 3 days


204559 02-Mar-2010 imp

-mabi-calls and -msoft-float aren't needed either

Submitted by: jmallet@


204554 02-Mar-2010 imp

-mno-dsp hasn't been required for a while now.


204311 25-Feb-2010 ru

Fixed missing or broken library dependencies.


204031 18-Feb-2010 neel

Kernel module support for mips.

Reviewed by: gonzo

Tested by: Alexandr Rybalko (ray@dlink.ua)


204027 18-Feb-2010 marcel

Also add DEBUG_FLAGS to CXXFLAGS if defined.


204025 18-Feb-2010 marcel

Allow suppression of -Wcast-align for WARNS>=4 by defining
NO_WCAST_ALIGN. The headers of the standard C++ library are
not 64-bit clean and trigger the warning. This prevents use
of WARNS>=4 on ia64 for example.


204024 18-Feb-2010 marcel

Unbreak WARNS=6 builds for C++ code: -Wold-style-definition is not accepted
by the C++ compiler. Filter it out.


202807 22-Jan-2010 sepotvin

Introduce two new flags PO_CFLAGS and PO_CXXFLAGS to make it possible
to have different flags when building profiled objects.

MFC after: 1 month


202596 18-Jan-2010 trasz

Undo r169961, removing WITH_GCC3, added as a temporary workaround three
years ago.


202579 18-Jan-2010 ru

Allow the CTAGS to be set to something other than "gtags" or "ctags",
but assume it supports a ctags(1)-compatible syntax.

PR: 46676
Submitted by: Lyndon Nerenberg
MFC after: 3 days


202578 18-Jan-2010 ru

If CTAGS is not set or set to something other than "ctags" or "gtags",
"cleandepend" was not removing the .depend file; fixed.

PR: 126747
MFC after: 3 days


202440 16-Jan-2010 antoine

Unbreak world WITHOUT_NETGRAPH.

PR: 137487
Submitted by: bf (previous version)
No objections: net@
MFC after: 2 weeks


201920 09-Jan-2010 antoine

libusb20 was renamed libusb several months ago.

MFC after: 1 month


201300 31-Dec-2009 ed

Disable K&R style function definitions for WARNS=6.

Unfortunately there are two slight problems with that:

- Yacc and lex might generate code that generates warnings because of
this. Require yacc and lex to be rebuilt during bootstrap. I'm not
incrementing __FreeBSD_version here, because I assume someone else
will do this eventually.

- When running `make buildkernel', it uses share/mk from the source
treeo to build aicasm. Because aicasm also depends on lex, this would
break. Lower WARNS to 5 for now. We should just increment it to 6
again somewhere in the very far future.


200178 06-Dec-2009 ed

Make `make cleanilinks' work in /sys/modules.

cleanilinks wasn't listed in <bsd.subdir.mk>. Instead of adding it to
/sys/modules/Makefile, we'd better just add it to <bsd.subdir.mk>
directly, so we don't need to change files like /sys/modules/sound/Makefile
as well. This means you can finally clean up all those dangling symlinks
created by individual module compilation at once.


200062 03-Dec-2009 ed

Add a new library: libulog.

One of the things I really want to do, is to get rid of the limitations
of our current utmp(5) mechanism:

- It only allows 8 byte TTY device names.
- The hostname only allows 16 bytes of storage.

I'm not a big fan of <utmpx.h>, but I think we should at least try to
add parts of it. Unfortunately we cannot implement <utmpx.h>, because we
miss various fields, such as ut_id, ut_pid, etc. The API provided by
libulog shares some similarities with <utmpx.h>, so it shouldn't be too
hard to port these applications eventually. In most simple cases, it
should just be a matter of removing the ulog_ prefix everywhere.

As a bonus, it also implements a function called ulog_login_pseudo(),
which allows unprivileged applications to write log entries, provided
they have a valid file descriptor to a pseudo-terminal master device.

libulog will allow a smoother transition to a new file format by adding
a library interface to deal with utmp/wtmp/lastlog files. I initially
thought about adding the functionality to libutil, but because I'm not
planning on keeping this library around forever, we'd better keep it
separated.

Next items on the todo list:

1. Port applications in the base system (and ports) to libulog, instead
of letting them use <utmp.h>.
2. Remove <utmp.h>, implement <utmpx.h> and reimplement this library on
top.
3. Port as many applications as possible back to <utmpx.h>.


198365 22-Oct-2009 ru

Unbreak NO_WARNS, keeping CSTD effect on CFLAGS out of its control.
Unbreak compiles with icc.


198335 21-Oct-2009 rdivacky

Set CSTD in all cases except when CC=icc and NO_WARNS is set. This
way we can set desired C standard even for cross tools etc.

Tested by: make universe
Approved by: ed (maintainer)
OK by: das


195697 14-Jul-2009 kan

Second attempt at eliminating .text relocations in shared libraries
compiled with stack protector.

Use libssp_nonshared library to pull __stack_chk_fail_local symbol into
each library that needs it instead of pulling it from libc. GCC
generates local calls to this function which result in absolute
relocations put into position-independent code segment, making dynamic
loader do extra work every time given shared library is being relocated
and making affected text pages non-shareable.

Reviewed by: kib
Approved by: re (kib)


194869 24-Jun-2009 jamie

Add libjail, a (somewhat) simpler interface to the jail_set and jail_get
system calls and the security.jail.param sysctls.

Approved by: bz (mentor)


193280 01-Jun-2009 dougb

Add support for the build options that are currently in the port:
WITH_BIND_IDN
WITH_BIND_LARGE_FILE
WITH_BIND_SIGCHASE
WITH_BIND_XML


190751 05-Apr-2009 ed

Remove if_ppp(4) and if_sl(4).

Not only did these two drivers depend on IFF_NEEDSGIANT, they were
broken 7 months ago during the MPSAFE TTY import. if_ppp(4) has been
replaced by ppp(8). There is no replacement for if_sl(4).

If we see regressions in for example the ports tree, we should just use
__FreeBSD_version 800045 to check whether if_ppp(4) and if_sl(4) are
present. Version 800045 is used to denote the import of MPSAFE TTY.

Discussed with: rwatson, but also rwatson's IFF_NEEDSGIANT emails on the
lists.


190681 04-Apr-2009 nwhitehorn

Add support for 64-bit PowerPC CPUs operating in the 64-bit bridge mode
provided, for example, on the PowerPC 970 (G5), as well as on related CPUs
like the POWER3 and POWER4.

This also adds support for various built-in hardware found on Apple G5
hardware (e.g. the IBM CPC925 northbridge).

Reviewed by: grehan


189801 14-Mar-2009 rdivacky

Switch over to gnu99 compilation on default for userland.

Tested by: make universe
Tested by: ports exp build (done by pav)
Reviewed by: ru
Reviewed by: silence on arch
Approved by: ed (mentor)


188923 22-Feb-2009 nwhitehorn

Explicitly disable generation of Altivec instructions in the kernel on PowerPC,
and add support to allow users to set their CPUTYPE in make.conf.


186894 08-Jan-2009 bz

Document that with r186854 we started using KMODOWN/KMODGRP
for the kernel as well and no longer only for modules.

Reviewed by: kib, antoine
MFC after: 26 days


186647 31-Dec-2008 rwatson

Merge OpenBSM alpha 4 from OpenBSM vendor branch to head, both
contrib/openbsm (svn merge) and src/sys/{bsm,security/audit} (manual
merge). Add libauditd build parts and add to auditd's linkage;
force libbsm to build before libauditd.

OpenBSM history for imported revisions below for reference.

MFC after: 1 month
Sponsored by: Apple Inc.
Obtained from: TrustedBSD Project

OpenBSM 1.1 alpha 4

- With the addition of BSM error number mapping, we also need to map the
local error number passed to audit_submit(3) to a BSM error number,
rather than have the caller perform that conversion.
- Reallocate user audit events to avoid collisions with Solaris; adopt a
more formal allocation scheme, and add some events allocated in Solaris
that will be of immediate use on other platforms.
- Add an event for Calife.
- Add au_strerror(3), which allows generating strings for BSM errors
directly, rather than requiring applications to map to the local error
space, which might not be able to entirely represent the BSM error
number space.
- Major auditd rewrite for launchd(8) support. Add libauditd library
that is shared between launchd and auditd.
- Add AUDIT_TRIGGER_INITIALIZE trigger (sent via 'audit -i') for
(re)starting auditing under launchd(8) on Mac OS X.
- Add 'current' symlink to active audit trail.
- Add crash recovery of previous audit trail file when detected on audit
startup that it has not been properly terminated.
- Add the event AUE_audit_recovery to indicated when an audit trail file
has been recovered from not being properly terminated. This event is
stored in the new audit trail file and includes the path of recovered
audit trail file.
- Mac OS X and FreeBSD dependent code in auditd.c is separated into
auditd_darwin.c and auditd_fbsd.c files.
- Add an event for the posix_spawn(2) and fsgetpath(2) Mac OS X system
calls.
- For Mac OS X, we use ASL(3) instead of syslog(3) for logging.
- Add support for NOTICE level logging.

OpenBSM 1.1 alpha 3

- Add two new functions, au_bsm_to_errno() and au_errno_to_bsm(), to map
between BSM error numbers (largely the Solaris definitions) and local
errno(2) values for 32-bit and 64-bit return tokens. This is required
as operating systems don't agree on some of the values of more recent
error numbers.
- Fix a bug how au_to_exec_args(3) and au_to_exec_env(3) calculates the
total size for the token. This buge.
- Deprecated Darwin constants, such as TRAILER_PAD_MAGIC, removed.


185087 19-Nov-2008 alfred

src/sys/dev/usb2/controller/uss820dci_pccard.c
src/sys/dev/usb2/core/usbdevs
src/sys/dev/usb2/include/urio2_ioctl.h
src/sys/dev/usb2/storage/ustorage2_fs.h

These files are not used any more.

src/usr.sbin/Makefile
src/etc/mtree/BSD.include.dist
src/include/Makefile
src/lib/Makefile
src/share/man/man7/hier.7
src/share/mk/bsd.libnames.mk
src/etc/mtree/BSD.include.dist

Make "usbconfig" and "libusb20" a part of the default build.

src/sys/dev/usb/rio500_usb.h
src/sys/dev/usb2/storage/urio2.c

Use common include file.

src/sys/dev/usb2/bluetooth/ng_ubt2.c

Make USB bluetooth depend on "ng_hci" module.

src/sys/dev/usb2/controller/ehci2.c
src/sys/dev/usb2/controller/ehci2.h

Patches for Marvell EHCI.

src/sys/dev/usb2/core/usb2_busdma.c

Bugfix for 64-bit platforms. Need to unload the previously loaded DMA
map and some cleanup regarding some corner cases.

src/sys/dev/usb2/core/usb2_core.h
src/sys/dev/usb2/core/usb2_dev.c
src/sys/dev/usb2/core/usb2_dev.h

Bugfix for libusb filesystem interface.

New feature: Add support for filtering device data at the expense of the
userland process.

Add some more comments.

Some minor code styling.

Remove unused function, usb2_fifo_get_data_next().

Fix an issue about "fifo_index" being used instead of "ep_index".

src/sys/dev/usb2/core/usb2_device.c
src/sys/dev/usb2/core/usb2_generic.c

Bugfix for Linux USB compat layer. Do not free non-generic FIFOs when
doing an alternate setting.

Cleanup USB IOCTL and USB reference handling.
Fix a corner case where USB-FS was left initialised after
setting a new configuration or alternate setting.

src/sys/dev/usb2/core/usb2_hub.c

Improvement: Check all USB HUB ports by default at least one time.

src/sys/dev/usb2/core/usb2_request.c

Bugfix: Make sure destination ASCII string is properly zero terminated
in all cases.

Improvement: Skip invalid characters instead of replacing with a dot.

src/sys/dev/usb2/core/usb2_util.c
src/sys/dev/usb2/image/uscanner2.c

Spelling.

src/sys/dev/usb2/include/Makefile

Share "usbdevs" with the old USB stack.

src/sys/dev/usb2/include/usb2_devid.h
src/sys/dev/usb2/include/usb2_devtable.h

Regenerate files.

Alfred: Please fix the RCS tag at the top.

src/sys/dev/usb2/include/usb2_ioctl.h

Fix compilation of "kdump".

src/sys/dev/usb2/serial/ubsa2.c
src/sys/dev/usb2/serial/ugensa2.c

Remove device ID's which will end up in a new 3G driver.

src/sys/dev/usb2/sound/uaudio2.c

Correct a debug printout.

src/sys/dev/usb2/storage/umass2.c

Sync with old USB stack.

src/lib/libusb20/libusb20.3

Add more documentation.

src/lib/libusb20/libusb20.c

Various bugfixes and improvements.

src/usr.sbin/usbconfig/dump.c
src/usr.sbin/usbconfig/usbconfig.c

New commands for dumping strings and doing custom USB requests from
the command line.

Remove keyword requirements from generated files:
"head/sys/dev/usb2/include/usb2_devid.h"
"head/sys/dev/usb2/include/usb2_devtable.h"


183736 09-Oct-2008 imp

ata module additions now nest ata modules one deeper than any prior module.
Increase heuristic used to find them by one.


183242 21-Sep-2008 sam

add new build knobs and jigger some existing controls to improve
control over the result of buildworld and installworld; this especially
helps packaging systems such as nanobsd

Reviewed by: various (posted to arch)
MFC after: 1 month


180731 23-Jul-2008 imp

Turn of SSP for mips for now until support is added to the base
architecture.


180605 19-Jul-2008 cognet

Disable SSP on arm for the time being.
The segfaults when using SSP seem to be a gcc bug, a patch is available
in the gcc bugzilla, and will be imported once it's committed
into the official gcc tree.


180012 25-Jun-2008 ru

Enable GCC stack protection (aka Propolice) for userland:
- It is opt-out for now so as to give it maximum testing, but it may be
turned opt-in for stable branches depending on the consensus. You
can turn it off with WITHOUT_SSP.
- WITHOUT_SSP was previously used to disable the build of GNU libssp.
It is harmless to steal the knob as SSP symbols have been provided
by libc for a long time, GNU libssp should not have been much used.
- SSP is disabled in a few corners such as system bootstrap programs
(sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves.
- It should be safe to use -fstack-protector-all to build world, however
libc will be automatically downgraded to -fstack-protector because it
breaks rtld otherwise.
- This option is unavailable on ia64.

Enable GCC stack protection (aka Propolice) for kernel:
- It is opt-out for now so as to give it maximum testing.
- Do not compile your kernel with -fstack-protector-all, it won't work.

Submitted by: Jeremie Le Hen <jeremie@le-hen.org>


179989 25-Jun-2008 ale

Fix links to online gcc docs.

Reported by: Andre Guibert de Bruet <andy@siliconlandmark.com>
MFC after: 1 day


179815 16-Jun-2008 dougb

Properly alphabetize the BSD_CPIO option


179813 16-Jun-2008 dougb

1. Make the BSD version of cpio the default [1]
a. The BSD version will be built and installed unless
WITHOUT_BSD_CPIO is defined.
b. The GNU version will not be built or installed unless
WITH_GNU_CPIO is defined. If this is defined, the symlink
in /usr/bin will be to the GNU version whether the BSD
version is present or not.

When these changes are MFCed the defaults should be flipped.

2. Add a knob to disable the building of GNU grep. This will
make it easier for those that want to test the BSD version in
the ports.

Approved by: kientzle [1]


179315 26-May-2008 bz

Remove ISDN4BSD (I4B) from HEAD as it is not MPSAFE and
parts relied on the now removed NET_NEEDS_GIANT.
Most of I4B has been disconnected from the build
since July 2007 in HEAD/RELENG_7.

This is what was removed:
- configuration in /etc/isdn
- examples
- man pages
- kernel configuration
- sys/i4b (drivers, layers, include files)
- user space tools
- i4b support from ppp
- further documentation

Discussed with: rwatson, re


179184 22-May-2008 jb

Add support for the Compact C Type (CTF) conversions throughout FreeBSD's
system makefiles.

Note that the CTF conversion defaults to off. We may choose to change this
default later if DTrace proves popular and people are prepared to wear
the compilation performance impact of compiling with debug symbols all the
time.

Setting NO_CTF in the make args or user environment turns off CTF conversion.
Even if we choose to default CTF generation to on later, we still need
NO_CTF so that the buildworld process can bootstrap the tools without
needlessly generating CTF data for temporary tools.

Setting WITH_CTF in the make args or user environment (and _NOT_ in
/etc/make.conf) is the only way to enable CTF data conversion. Nore that
this can't be implemented the same way that the WITH_ and WITHOUT_ stuff
is implemented throughout the buildworld because the CTF conversion needs
to work when building a simple object without a Makefile, using the
default rules in sys.mk.

Typing 'make test.o' with no makefile and just a source file test.c
should work. Also, typing 'make WITH_CTF=1 test.o without a makefile and
just a source file test.c should work and produce an object with a CTF
elf section. Typing 'make WITH_CTF=1 CFLAGS=-g test.o' without a makefile
and just a source file test.c should produce an object with both a CTF
elf section and the debug elf sections.

In the FreeBSD build where more .mk files are used than just sys.mk
which is included my make by default, the use of DEBUG_FLAGS is the
correct way to enable a debug build. The important thing to note here
is that it is the DEBUG_FLAGS setting that prevents libraries and
programs from being stripped on installation. So, for the addition of
CTF data conversion, setting DEBUG_FLAGS to contain -g, without NO_CTF,
will cause the ctfconvert and ctfmerge build programs to be executed
also with the -g arg so that debug symbols are retained rather than
being removed after the CTF data elf section has been added.

Add DTrace libraries to the list of libnames.


178828 07-May-2008 dfr

Fix conflicts after heimdal-1.1 import and add build infrastructure. Import
all non-style changes made by heimdal to our own libgssapi.


178633 28-Apr-2008 gonzo

Handle endianness for mips

Approved by: cognet (mentor)


178047 09-Apr-2008 kan

Fix spelling mistake in comment.


177925 04-Apr-2008 imp

MFp4 (mips2-jnpr):
o Default to -O on mips as well as arm. -O2 has been strongly implicated
in many problems in the past, so we're taking a conservative approach
until the problems are well understood.


177865 02-Apr-2008 obrien

PR ports/121363 (& ports/73797) has been committed, so we can now go back
to JB's revision 1.96 change to remove -fno-strict-aliasing from CFLAGS.

This makes the default CFLAGS to match the simple defaults that the
tinderboxes use. By using -fno-strict-aliasing by default we are
choosing to ignore problems in code which had the potential to
shoot ourselves in the foot.


177714 29-Mar-2008 ru

Remove options MK_LIBKSE and DEFAULT_THREAD_LIB now that we no longer
build libkse. This should fix WITHOUT_LIBTHR builds as a side effect.


177385 19-Mar-2008 imp

Add support for MACHINE_ARCH == mips, plus a few generic CPU types that
will be supported in the forth coming FreeBSD/mips port.


176806 04-Mar-2008 obrien

Temporarily back out revision 1.98 to give Portmgr some time to
address PR ports/121363 (current day re-opening of PR ports/73797)
to make ports CFLAGS more independent of src/'s CFLAGS WRT aliasing.

Discussed with: brooks


176804 04-Mar-2008 obrien

Back out revision 1.97, which backed out part of revision 1.96.
Change the default CFLAGS to match the simple defaults that the
tinderboxes use. By using -fno-strict-aliasing by default we are
choosing to ignore problems in code which had the potential to
shoot ourselves in the foot.


176776 03-Mar-2008 raj

Connect MPC85XX to the PowerPC build.

The kernel config file is KERNCONF=MPC85XX, so the usual procedure applies:

1. make buildworld TARGET_ARCH=powerpc
2. make buildkernel TARGET_ARCH=powerpc TARGET_CPUTYPE=e500 KERNCONF=MPC85XX

This default config uses kernel-level FPU emulation. For the soft-float world
approach:

1. make buildworld TARGET_ARCH=powerpc TARGET_CPUTYPE=e500
2. disable FPU_EMU option in sys/powerpc/conf/MPC85XX
3. make buildkernel TARGET_ARCH=powerpc TARGET_CPUTYPE=e500 KERNCONF=MPC85XX

Approved by: cognet (mentor)
MFp4: e500


176665 29-Feb-2008 jhb

Add a 'c7' CPUTYPE for VIA C7 CPUs that is 'c3-2' with the addition of
i686, sse2, and sse3.

MFC after: 1 week


176439 21-Feb-2008 ru

Add LIBELF.


175980 05-Feb-2008 des

Revert CLEANDEPFILES commit per ru@'s request; it does not really solve
the problem. The correct fix will follow.


175937 03-Feb-2008 des

Normally, when a header file is removed from the build (as i4b headers
were recently), a simple 'make cleandepend; make depend' is sufficient
to keep the tree buildable after a cvs update when doing incremental
builds.

However, kdump and truss use a script which searches for header files
that define ioctls, and generates C code that includes them. This
script will usually not need updating when a header file is removed,
so the normal dependency mechanism will not realize that it needs to
be re-run. One is therefore left with code that references dead files
but will only be removed by a full 'make clean', which defeats the
purpose of incremental builds.

To work around this, modify the cleandepend target in bsd.dep.mk to
also remove any files listed in a new variable named CLEANDEPFILES,
and modify kdump's and truss's Makefiles accordingly.

MFC after: 2 weeks


175617 24-Jan-2008 ru

Cosmetique: sort the list.


175412 17-Jan-2008 brueffer

Remove remnants of old *_FORTRAN build flags.

Approved by: rwatson (mentor)
MFC after: 3 days


175156 08-Jan-2008 harti

Add an additional make variable EXTRAMIBSYMS which allows to specify
definition files that are used only for extracting symbols. This is useful
for inter-module dependencies and files containing only enum-definitions.

MFC after: 4 weeks


174548 12-Dec-2007 ru

- Fix setting of MK_GSSAPI option by bsd.own.mk; its value should
default to the value of MK_KERBEROS unless set explicitly by
WITH_GSSAPI/WITHOUT_GSSAPI. (This introduces another type of
MK_* variables which itself is questionable.)

- Teach tools/build/options/makeman script that generates the
src.conf(5) manpage about the new type of MK_* variables.

- Fix broken logic in lib/Makefile.


174519 10-Dec-2007 dougb

Hide the building and installation of libgssapi behind the
WITHOUT_KERBEROS knob. While GSS can be used for other things
some third party software (most notably ports/x11/kdelibs3)
takes the presence of libgssapi as an indication that kerberos
is available, and attempts to link with the kerberos libs. If
they are not available, the build will fail.

Because you might want to use GSS but not kerberos, add a knob
to re-enable it if WITHOUT_KERBEROS is present.

Document the new knob, and the new behavior of WITHOUT_KERBEROS.

Not objected and/or generally agreed to by: freebsd-arch

Problem discussed/analyzed in:
PR: ports/116484


174409 07-Dec-2007 ru

Make "manlint" recursive.

Prodded by: obrien


173959 26-Nov-2007 jb

Although the entire src tree builds cleanly now without -fno-strict-aliasing
in the default CFLAGS, we're in the middle of a ports freeze, so we can't
really go making the corresponding change to the ports mk files.

I'll take -fno-strict-aliasing out again when the ports freeze ends.


173850 22-Nov-2007 jb

Re-enable -Werror again.

This time, change the default CFLAGS to match the simple defaults that
the tinderboxes use. That is, don't use -fno-strict-aliasing by default.

My last attempt to re-anable -Werror gave me a lesson in what strict
aliasing is all about. There was code in libthr that wasn't 64-bit clean.
The default use of -fno-strict-aliasing hid that.

By using -fno-strict-aliasing by default we were choosing to ignore
problems in code which had the potential to shoot ourselves in the
foot. Sometimes it would be the 64-bit foot. I have both feet. The left
ones are 32 bits and the right ones are 64 bits. Don't ask about my
endian orientation. :-)

The -fno-strict-aliasing compiler arg can still be used if NO_STRING_ALIASING
is define in make.

We are early in the FreeBSD 8 development, so we have the opportunity to
wait and see if this works for us. I am sure that people will complain.
We can easily revert this. All I ask is that we take sides: clean code or
not. YMMV.

Note that by using -fno-strict-aliasing the build won't actually break.
Only where WARNS is set (and -Werror is used) will a compiler warning break
the build. The use of WARNS levels implies (to me at least) that the
developer has taken some care to make the code pass basic checks. This
commit makes those checks just a little bit more strict.


173758 19-Nov-2007 jb

Unfortunately the tinderbox setup uses custom CFLAGS which are a big
obstacle to enabling -Werror. I'll continue to work on cleaning up the
code so that we can keep this enabled.

If the tinderboxes would just use the default CFLAGS set in this file,
all would be fine and we'd be able to make use of -Werror.


173748 19-Nov-2007 jb

Re-enable -Werror ins WARNS as it was roughly 6 months ago before
being disabled while gcc 4.2 was bedded in.

Tested with 'make release' (amd64 arm i386 ia64 pc98 powerpc sparc64 sun4v)


173747 19-Nov-2007 jb

Weed out a warning argument that isn't applicable to C++ code.


173375 05-Nov-2007 cognet

Switch arm to -O until the -O2 issues are resolved.

MFC After: 3 days


173075 27-Oct-2007 yar

Allow the shell used by make(1) to be changed early via the
__MAKE_SHELL variable. This feature isn't supposed to be in wide
use, but it's needed now to make `installworld' independent of the
stock binaries and libs so that radical ABI changes can go in safely.

Reviewed by: ru


172832 20-Oct-2007 ru

- Convert NO_INSTALLLIB option to a new syntax: makefiles should
test MK_INSTALLLIB, users can set WITHOUT_INSTALLLIB. The old
NO_INSTALLLIB is still supported as several makefiles set it.

- While here, fix an install when instructed not to install libs
(usr.bin/lex/lib/Makefile).

PR: bin/114200
Submitted by: Henrik Brix Andersen


172831 20-Oct-2007 ru

Align the warning message with the one in bsd.own.mk.


172755 18-Oct-2007 yar

Explicitly verify if we have found the VERSION_GEN script
instead of passing the possibly null argument to awk(1) and
getting an obscure error from it.


172747 18-Oct-2007 yar

Distinguish the cases when a dup symbol is in different versions
(evil, needs a error) or in the same version (harmless, deserves
a mere warning).

Noticed by: grehan@, tinderbox


172729 17-Oct-2007 yar

MFp4:

- Check for duplicated symbols and suggest moving them to ObsoleteVersions.
- Improve and unify error handling.
- Make the regular expressions more uniform, robust, and less sensitive
to harmless variations in the input such as those to whitespace amount.

Reviewed by: deischen
Tested with: md5 (Version.map files in /usr/obj stay the same)


172706 16-Oct-2007 cognet

Backout rev 1.62, and revert to use -march=armv5te -D__XSCALE__ instead
of -mcpu=xscale for XScale.
gcc still has issues with -mcpu=xscale, and now crashes while building
systat.

Reported by: sam
MFC After: 3 days


172571 12-Oct-2007 ru

Though it was possible to configure our BIND to build even when
libpthread support isn't present, our maintainer felt it's an
overkill, so instead enforce the BIND dependency on libpthread.


172500 09-Oct-2007 obrien

Tweak the handling of "WITHOUT_LIBPTHREAD". Also remove the accidental
treatment of 'LIBKSE' as an "old style" knob.

Submitted by: ru
Approved by: re(kensmith)


172491 09-Oct-2007 obrien

Repo copy libpthreads to libkse.
This introduces the WITHOUT_LIBKSE nob,
and changes WITHOUT_LIBPTHREADS to mean with neither threading libs.
Approved by: re(kensmith)


172401 01-Oct-2007 ru

Fixed "make checkdpadd" (missing library dependencies).

Approved by: re (kensmith)


171837 14-Aug-2007 delphij

Restore -O2 optimization after gcc 4.2.1 import, which has
fixed the issue raised by gcc 4.2.0.

Tested with: test case found in gcc bug 32500
Approved by: re (kensmith), ache, kan


171530 21-Jul-2007 kan

Put local symbol suppression rule into most recent (e.g. last) version
block.

Approved by: re (kensmith)


171134 01-Jul-2007 ache

Switch to "-O1 -pipe" as cross-build compatible gcc workaround.

"Looks like Alexander chimed in with "I'm comfortable with that until we
can import a fixed GCC"."

Approved by: re (kensmith)


171077 28-Jun-2007 ache

Back out gcc workaround per re@ request. Details:
"There seems to be some continuing discussion about how this is best fixed,
and we'd like to get Alexander (as our gcc guru) to opine on a final
solution before picking one. In the mean time, could you back out the
original commit (sys.mk:1.89)?"

Approved by: re (rwatson)


171050 26-Jun-2007 remko

Make zoneinfo optional so that a filesystem upgrade/update does not overwrite
possibly installed thirdparte zoneinfo databases (from ports for example).

PR: bin/104713
Submitted by: Mark Andrews <Mark_Andrews at isc dot org> (original patch
rewritten by me to be more consistent with the new practise).
Approved by: re (kensmith)
Approved by: imp (mentor)
Reviewed by: ru (some time ago already)


171049 26-Jun-2007 ache

This is temp workaround of nasty gcc 4.2.0 -O2 bug which may skip the rest
of the loop when arrays used inside.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32500

Approved by: re (kensmith)


170644 13-Jun-2007 sepotvin

Options spring cleanup:
- Add and document the KVM and KVM_SUPPORT options that
are needed for the ifmcstats(3) makefile
- Garbage collect unused variables
- Add missing inclusion of bsd.own.mk where needed

Approved by: kan (mentor)
Reviewed by: ru


170187 01-Jun-2007 pav

Break long line

Submitted by: ru


170185 01-Jun-2007 pav

Add bsd.port.options.mk, a stub to include parts of bsd.port.mk that handle
OPTIONS resolving. This will allow us to load bsd.port.mk in port Makefiles in
three steps (options, pre, post), allowing us to manipulate USE_* flags
conditionally on OPTIONS values.

With hat: portmgr
Reviewed by: ru
MFC after: 1 week


169961 24-May-2007 obrien

Temporarily add 'WITH_GCC3' that removes -Wno-pointer-sign from the
compiler invocation. This is just to help get over the hump of people
tracking down bugs that may cross the GCC 4.2 upgrade.
It is envisioned that this option goes away after a suitable amount
of time.


169822 21-May-2007 ru

Style: remove redundant parentheses.


169820 21-May-2007 cognet

GCC doesn't segfault anymore while building world with -mcpu=xscale, so use it.


169724 19-May-2007 kan

Introduce WITHOUT_SSP option that allows users to exclude LGPLed
libssp from the build.


169723 19-May-2007 kan

Universally disable -Werror until src/ is in better shape for GCC 4.2.
There are new warnings that kill the build otherwise.

Disable pointer destination sign mismatch warning alltogether. Our tree
is in no shape to have that enabled yet.


169524 13-May-2007 deischen

Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.
Warning, after symbol versioning is enabled, going back is not easy
(use WITHOUT_SYMVER at your own risk).

Change the default thread library to libthr.

There most likely still needs to be a version bump for at least the
thread libraries. If necessary, this will happen later.


169089 29-Apr-2007 deischen

Use CPP to preprocess version map files so we can conditionalize symbols.


168963 23-Apr-2007 deischen

When generating the version map file, order versions oldest
first to make it easier for rtld to choose the oldest version
of a symbol.

Sumbitted by: kan


168418 06-Apr-2007 pjd

Oops, keep things sorted.

Found by: ru


168409 06-Apr-2007 pjd

Connect ZFS to the build.


168407 06-Apr-2007 pjd

Add new libraries. We may want to rename libumem to not colide with
ports/devel/umem.


168322 03-Apr-2007 kan

Add entry for bsd.symver.mk.

Pointed out by: ru


168317 03-Apr-2007 kan

Break out Version.map generation code from bsd.lib.mk into a
separate bsd.symver.mk file. Include bsd.symver.mk in bsd.lib.mk
to maintain the status quo.


167486 12-Mar-2007 ru

Stop clobberring the application namespace with local
variables such as "sect", "page", and "target"; use
underscored versions instead.

Discussed with: kan
MFC after: 3 days


167359 09-Mar-2007 rafan

Enable ncurses wide character support

Approved by: delphij (mentor)
Tested by: kris on pointyhat (early version), current@


166389 01-Feb-2007 rafan

Remove old libmytinfo link.

Approved by: delphij (mentor)
Requested by: ache


166255 26-Jan-2007 delphij

Replace the GNU gzip with a slightly modified NetBSD gzip. The
NetBSD version is a feature-to-feature re-implementation of GNU
gzip using the freely-redistributable zlib and this version is
expected to be mostly bug-to-bug compatible with the GNU
implementation.

- Because this is a piece of mature code and we want to make
changes so it is added directly rather than importing to
src/contrib.
- Connect newly added code to src/usr.bin/ and rescue/rescue
build.
- Disconnect the GNU gzip code from build for now, they will
be eventually removed completely.
- Provide two new src.conf(5) knobs, WITHOUT_BZIP2_SUPPORT and
WITHOUT_BZIP2.

Tested by: kris (full exp-7 pointyhat build)
Approved by: core (importing a 4-clause BSD licensed file)
Approved by: re (adding new utility during -HEAD code slush)


166072 17-Jan-2007 des

"If I only had a brain..."

MFC after: 3 weeks


166071 17-Jan-2007 des

Correct errors in previous commit. I didn't realize that ${CPUTYPE} is
passed unmodified to gcc. Therefore, "prescott" should be used for Prescott,
Nocona, Core and Core 2 CPUs when building 32-bit code, and "nocona" should
be used for Prescott, Nocona and Core 2 CPUs when building 64-bit code.

MFC after: 3 weeks


166069 17-Jan-2007 des

On i386, make "prescott" an alias for "nocona" (instead of the other way
around), and introduce "core", along with the alias "core2". All of these
enable SSE3.

On amd64, add "core2" (enables SSE3).

MFC after: 3 weeks


164411 19-Nov-2006 ru

Try harder to not leak src/ build stuff into ports/ environment
by not exposing the MK_* variables that were designed for src/.

Requested by: many


164000 05-Nov-2006 cognet

Change one more ARM_BIG_ENDIAN to TARGET_BIG_ENDIAN.


163971 04-Nov-2006 jb

Allow a makefile to set IGNORE_PRAGMA so that OpenSolaris code can
be built with other gcc warnings enabled.

Every Solaris source file has a #pragma ident in it. We can just
ignore those definitions.


163861 01-Nov-2006 jb

Add a build option to support WITH_CDDL and WITHOUT_CDDL, defaulting
to WITH_CDDL.

This option enables building code that is licensed under Sun's CDDL.
The DTrace code is licensed that way, so by default it will get built
unless the WITHOUT_CDDL option is used.

There is another build toggle, NO_CTF, which turns off execution of
ctfconvert and ctfmerge in sys.mk, but this can't be implemented as
WITH_/WITHOUT because bsd.own.mk isn't included in all Makefiles and
sys.mk is included automatically by make.


163683 25-Oct-2006 ru

- Don't pass an empty ``NM='' to lorder(1) when NM is unset.
- Don't redundantly use "env".
- Protect NM value with quotes, just in case.


163513 19-Oct-2006 cognet

Use TARGET_BIG_ENDIAN instead of ARM_BIG_ENDIAN


163064 06-Oct-2006 lesi

Remove X11BASE from here so the one from bsd.port.mk has a chance to set
default. Grepping through src shows only gnu/usr.bin/groff which doesn't
use it in src build and OpenSSH for which this was a NOOP.

Discussed with: des, ru
Approved by: ru


162846 30-Sep-2006 ru

Removed libc_r build support.


162793 29-Sep-2006 ru

Don't run install-info under lockf if not installing in parallel.

Requested by: rwatson


162293 13-Sep-2006 obrien

When building WITHOUT_ASSERT_DEBUG, we need to disable -Werror as its easy
to see "warning: unused variable `foo'".


162210 11-Sep-2006 imp

Add a knob for compiling the tree -DNDEBUG. This turns off all the
asserts and makes binaries smaller. The binaries also become
repeatable again. As it was, without this md5's of binaries built
with different paths differed.

# Where do I document this?


161627 25-Aug-2006 imp

Pass whatever the value of NM down to lorder. This allows one to
override NM in Makefiles when, for example, cross compiling and have
that value be used by lorder. NM normally isn't defined, so we pass a
null value to lorder. lorder says 'NM=${NM-nm}' which causes it to
pickup the default value.


161583 24-Aug-2006 obrien

Don't read in /etc/src.conf when building ports.

Reported by: obrien
Submitted by: ru


161526 22-Aug-2006 ru

Remove alpha left-overs.


161259 13-Aug-2006 des

Revert previous commit. Pre-Nehemiah C3 CPUs do have 3DNow!; it doesn't
show up in dmesg because identcpu.c only looks for it on Intel and AMD
processors.


161242 12-Aug-2006 des

I don't know where I got the idea that the VIA C3 has 3DNow!; it doesn't.
It does have MMX (though MMX support is reputed to be incomplete in early
generations), and later generations have SSE.

MFC after: 2 weeks


161214 11-Aug-2006 des

Reintroduce CSTD, which allows a Makefile to specify the precise dialect
of C in which the program or library is written.

Note that this is *not* intended to be used across the whole tree. It
is intended to be used for individual libraries or programs which use
specific language features which the compiler must know about in order
to produce correct warnings at high WARNS levels.

MFC after: 1 month


160544 21-Jul-2006 cognet

Grr we also need to set -mbig-endian to LDFLAGS. Now I can build a
big-endian arm world.


160536 20-Jul-2006 imp

Remove ALPHA optimization pointer for gcc flags.
Add ARM optimization pointer for gcc flags.


160535 20-Jul-2006 cognet

Oops LDFLAGS can be used to invoke gcc, so directly add -EB to {LD}.


160534 20-Jul-2006 cognet

Honor ARM_BIG_ENDIAN by adding -mbig-endian to CFLAGS and -EB to LDFLAGS if
it is defined.


160497 19-Jul-2006 des

Add CPUTYPE support for Via C3 and C3-2 processors.

MFC after: 2 weeks


159721 18-Jun-2006 yar

"clean" of <bsd.prog.mk> no longer removes a.out, Errs,
errs, mklog, and ${PROG}.core .

MFC after: 1 week


158687 17-May-2006 phk

Send the pcvt(4) driver off to retirement.


158115 28-Apr-2006 ume

- Extend the nsswitch to support Services, Protocols and Rpc
databases.
- Make nsswitch support caching.

Submitted by: Michael Bushkov <bushman__at__rsu.ru>
Sponsored by: Google Summer of Code 2005


157378 01-Apr-2006 phk

Have WITHOUT_BIND_MTREE imply WITHOUT_BIND_ETC


157115 25-Mar-2006 ru

Revert last delta, it breaks cross-compiles.


157083 24-Mar-2006 ru

Option MK_LIB32 only exists on amd64.


157054 23-Mar-2006 des

Add proper dependencies for the version map, and make sure 'make clean'
removes it if it was generated.

Reviewed by: ru


156936 21-Mar-2006 ru

Folded WITH_HESIOD_SUPPORT into WITH_HESIOD.


156935 21-Mar-2006 ru

Desupport the *_COLLECT2 no-op.


156905 20-Mar-2006 ru

Extend coverage of the MK_IPX build option to the following:

- <netipx> headers [1]
- IPX library (libipx)
- IPX support in ifconfig(8)
- IPXrouted(8)
- new MK_NCP option

New MK_NCP build option controls:

- <netncp> and <fs/nwfs> headers
- NCP library (libncp)
- ncplist(1) and ncplogin(1)
- mount_nwfs(8)
- ncp and nwfs kernel modules

User knobs: WITHOUT_IPX, WITHOUT_IPX_SUPPORT, WITHOUT_NCP.

[1] <netsmb/netbios.h> unconditionally uses <netipx> headers
so they are still installed. This needs to be dealt with.


156869 19-Mar-2006 ru

Commit a forgotten part of NO_PROFILE/NO_LIB32 conversion.


156866 19-Mar-2006 phk

Add default for MK_PROFILE


156854 18-Mar-2006 ru

Convert NO_PROFILE and NO_LIB32 to new style.


156836 18-Mar-2006 ru

Replace .sinclude by .if exists()/.include/.endif so that older make(1)'s can
handle it as well.


156813 17-Mar-2006 ru

Reimplementation of world/kernel build options. For details, see:

http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html

The src.conf(5) manpage is to follow in a few days.

Brought to you by: imp, jhb, kris, phk, ru (all bugs are mine)


156776 16-Mar-2006 deischen

Add version_gen.awk to the installed files.


156772 16-Mar-2006 deischen

Teach bsd.lib.mk to auto generate a version map file based on
a set of symbol definitions (VERSION_DEF) and symbol mappings
(SYMBOL_MAPS).

Add an awk script to generate the version map.

Suggested by: ru
Helped by: ru
Reviewed by: ru


156743 15-Mar-2006 ru

Fix the spelling of MAN to a modern syntax.


156502 09-Mar-2006 imp

Revert last change, per ru@'s objection. I misunderstood consensus


156465 09-Mar-2006 imp

Now that we now spell NO_MAN=xxx MAN=, update the docs.

Submitted by: John Hein


155264 03-Feb-2006 ru

Handle NO_INCS solely inside bsd.incs.mk.


155211 02-Feb-2006 rwatson

Define $LIBBSM.

Obtained from: TrustedBSD Project


153169 06-Dec-2005 ru

Add a MACHINE_CPU entry for "ev67".


152602 19-Nov-2005 ru

Add the NO_INCS knob to bsd.prog.mk and bsd.lib.mk to not include
bsd.incs.mk, and use it when installing 32-bit compat libraries
on amd64. This causes it to *not* overwrite native headers with
i386 versions, which was the case with <fenv.h> and <vgl.h>.

PR: amd64/83806
Prodded by: bde
MFC after: 1 week


152277 10-Nov-2005 harti

Don't include bsd.init.mk so early - it's just not needed here.
Use . instead of ${.OBJDIR}.
Move DEFSDIR and BMIBSDIR under the resp. .if clauses so that they
get defined only if DEFS and BMIBS are defined.

Submitted by: ru


152265 10-Nov-2005 harti

Add a .mk file for building modules for the SNMP daemon. This may be
use in-tree as well as for 3rd party modules. This file is more or less
what was in usr.sbin/bsnmpd/modules/Makefile.inc with some modifications
and omissions. Usage examples can be found under usr.sbin/bsnmpd/modules/*.

Idea by: phk


152006 03-Nov-2005 ru

Serialize access to the info/dir file; needed for parallel installs.

Reported by: scottl

I'm not very fond of using the non-standard lockf(1) here, but I
have no better idea at the moment. NetBSD uses ln(1) to create a
lock file, but this approach can result in a deadlock if make is
interrupted, leaving an orphaned lock file.


150674 28-Sep-2005 ru

We bootstrap make(1) if necessary during an upgrade, so checking
if MACHINE_ARCH is defined is no longer needed.


148725 05-Aug-2005 phk

Don't install ${LIB}_pic.a if NO_TOOLCHAIN


148676 03-Aug-2005 phk

Don't install includes if NO_TOOLCHAIN


148100 17-Jul-2005 rwatson

Add LIBMEMSTAT tp bsd.libnames.mk.

MFC after: 1 week


146817 31-May-2005 ru

For ${SUBDIR} targets, change the type of dependency operator from `::'
to `:', so that it stays compatible with a stale dependency recorded in
.depend when the type of "foo" changes from file to directory or back.
Compensate for the loss of the "If no sources are specified, the target
is always re-created" feature by marking these targets with the .PHONY
attribute. While here, fix a bug in the target's script (nobody uses
these targets apparently).


146589 24-May-2005 cognet

Use -march=armv5te for Xscale.


145681 29-Apr-2005 harti

Toggle on warnings. This resolves the problem with building old releases
(getting zillions of warnings). Building an old release uses that release's
sys.mk which does not switch on these warnings, so make will be silent.
They can be switch on on the command line with the -x option to make.
This has been tested by building RELENG_5_4 on CURRENT.


145644 28-Apr-2005 darrenr

IPFIlter problems that prevented building should all now be resolved so
remove this temporary measure.


145597 27-Apr-2005 scottl

Disable the IPFILTER bits until they compile again. This can be overriden
by adding WANT_IPFILTER to /etc/make.conf. Note that this is only a partial
hack and only works when building the world and kernel the 'sanctioned' way.
I hope that this hack is only temporary and can be reverted soon.


145256 19-Apr-2005 jkoshy

Bring a working snapshot of hwpmc(4), its associated libraries, userland utilities
and documentation into -CURRENT.

Bump FreeBSD_version.

Reviewed by: alc, jhb (kernel changes)


144893 11-Apr-2005 harti

Make sure the only thing that follows .endif or .else is a comment.


143378 10-Mar-2005 phantom

Update comment to reflect default GENCAT value (changed in previous rev)

Reminded by: Joerg Sonnenberger


143026 02-Mar-2005 trhodes

Wrap BSD r* commands in NO_RCMDS.
Change NO_RCMDNS to NO_RCMDS and do the switch in bsd.compat.mk.

Discussed with: ru, nectar


142766 28-Feb-2005 obrien

Accept the old user interface for NO_CLEAN as it is a POLA violation as
we've eventually changed the user interface of a common command.


142711 27-Feb-2005 obrien

style.Makefile(5): remove trailing spaces.


142666 27-Feb-2005 phantom

There's no '-new' argument for gencat(1) anymore


142410 25-Feb-2005 cognet

Handle endianness for arm.


142262 22-Feb-2005 ru

Add endianness support to cap_mkdb(1), useful for cross builds.


141912 14-Feb-2005 ru

Add a SUBDIR_TARGETS variable which can be set to a list of
additional targets that will cause descending into subdirs.
Example:

cd /sys/modules; make load SUBDIR_TARGETS=load

(But don't try it with your pet.)

Submitted by: Alexey Klimov
PR: 47601


141503 08-Feb-2005 phantom

Allow building/installing of NLS catalogs while building of libraries

MFC after: 3 days


140838 26-Jan-2005 jmallett

Linkage with -lobjc requires -lpthread nowadays.


140361 16-Jan-2005 obrien

Move -Wunused-parameter from WARNS level 3 level 4.

Also break long lines -- note that the '\' must be up against the last
character of a line to keep command-line spacing proper.

Requested by: rwatson


140359 16-Jan-2005 obrien

Use >= so we can use the actual WARNS levels.


139938 09-Jan-2005 ru

Revert previous revision. Including bsd.compat.mk is necessary
both from sys.mk (to handle old knobs set in /etc/make.conf),
and from here (to handle old knobs set in individual makefiles).


139761 06-Jan-2005 krion

Remove trailing spaces.


139232 23-Dec-2004 ru

Include bsd.compat.mk early from sys.mk, enough for makefiles
using conditional statements to see the new spellings of NO_*
knobs (in case user still uses old spellings).

Reported by: kris


139126 21-Dec-2004 ru

NOPAM -> NO_PAM


139123 21-Dec-2004 ru

NOFORTH -> NO_FORTH


139122 21-Dec-2004 ru

NOCLEAN -> NO_CLEAN
NOCLEANDIR -> NO_CLEANDIR


139120 21-Dec-2004 ru

NOSHARE -> NO_SHARE


139119 21-Dec-2004 ru

NOHTML -> NO_HTML


139115 21-Dec-2004 ru

NOINET6 -> NO_INET6


139114 21-Dec-2004 ru

NOGAMES -> NO_GAMES


139113 21-Dec-2004 ru

NOCRYPT -> NO_CRYPT


139112 21-Dec-2004 ru

NOSHARED -> NO_SHARED


139111 21-Dec-2004 ru

NOFSCHG -> NO_FSCHG


139110 21-Dec-2004 ru

NOINSTALLLIB -> NO_INSTALLLIB


139109 21-Dec-2004 ru

NOMLINKS -> NO_MLINKS


139108 21-Dec-2004 ru

NOTAGS -> NO_TAGS


139107 21-Dec-2004 ru

NOEXTRADEPEND -> NO_EXTRADEPEND


139106 21-Dec-2004 ru

NODOCCOMPRESS -> NO_DOCCOMPRESS
NOINFO -> NO_INFO
NOINFOCOMPRESS -> NO_INFOCOMPRESS
NOLINT -> NO_LINT
NOPIC -> NO_PIC
NOPROFILE -> NO_PROFILE


139105 21-Dec-2004 ru

NOATM -> NO_ATM


139104 21-Dec-2004 ru

NOLIBC_R -> NO_LIBC_R
NOLIBPTHREAD -> NO_LIBPTHREAD
NOLIBTHR -> NO_LIBTHR


139103 21-Dec-2004 ru

Start the dreaded NOFOO -> NO_FOO conversion.

OK'ed by: core


139068 20-Dec-2004 paul

If PORTNAME is set in a system Makefile then hook into the ports
mechanisms to allow a package to be created. This paves the way
for packaging the main tree.


138685 11-Dec-2004 obrien

Rev 1.44 was a little over-zealous for FreeBSD/AMD64, trim.


137789 16-Nov-2004 jhb

No need to add I386_CPU to CFLAGS here for 80386 systems as they are no
longer supported.


137675 13-Nov-2004 bz

Add knob NO_NIS (fka NO_YP_LIBC) and make world compileable when set.
If turned on no NIS support and related programs will be built.

Lost parts rediscovered by: Danny Braniss <danny at cs.huji.ac.il>
PR: bin/68303
No objections: des, gshapiro, nectar
Reviewed by: ru
Approved by: rwatson (mentor)
MFC after: 2 weeks


137614 12-Nov-2004 ru

Install precious programs with -S.


137562 11-Nov-2004 obrien

Compiling with 'strict-aliasing' optimization breaks some [notable] ports.
GCC turns on 'strict-aliasing' optimization at all levels above -O[1], so
explicitly turn it off when using compiling with the -O2 optimization level.


137164 03-Nov-2004 ru

Introduce the PRECIOUSPROG knob in bsd.prog.mk, similar
to PRECIOUSLIB from bsd.lib.mk. The side effect of this
is making installing the world under jail(8) possible by
using another knob, NOFSCHG.

Reviewed by: oliver


136954 25-Oct-2004 des

Switch the default CFLAGS to -O2 -pipe.

Submitted by: obrien


136910 24-Oct-2004 ru

For variables that are only checked with defined(), don't provide
any fake value.


136697 19-Oct-2004 obrien

Define "I386_CPU" if CPUTYPE is 'i386'. Userland bits can check for "I386_CPU"
to determine if they should select code paths suitable for the 80386 CPU.

Suggested by: ru


136607 17-Oct-2004 obrien

Embellish the AMD64 sections a little. Including supporting 'nocona'.


136606 17-Oct-2004 obrien

+ Simplify by treating the standard x86 CPU names as the CPUTYPE vs.
treating them as an alias. Treat the shorthand versions as aliases.
+ Separate the x86 GCC CPU CFLAGS from the ICC CFLAGS. This greatly
simplifies the GCC section. It also makes it more clear which CPU's
have the same ICC CPU CFLAGS.
+ Remove redundancy in the alpha section.
+ Add forgotten ICC CPU CFLAGS for the mobile Intel CPU's added in rev. 1.42.


136211 07-Oct-2004 des

Add support for Pentium M, Pentium 3M and Pentium 4M.

PR: i386/72340
Submitted by: Rong-En Fan <rafan@infor.org>
MFC after: 2 weeks


136019 01-Oct-2004 ru

Install precious shared libraries with -S.

Prodded by: Xin LI


135771 24-Sep-2004 trhodes

Fix build in the !NOATM case by using the begemot library in place of
using libisc which was a part of BIND8.

Discussed with: des, re, dougb
Submitted by: harti (one part)
Reviewed by: harti (previous version)


135752 24-Sep-2004 dougb

Fix the WANT_BIND_LIBS knob by correctly spelling it as WITH_BIND_LIBS
to match how similar syntax is used in the ports system. Thanks to kris
for pointing out my mistake here.

Install the lwres library unless the user defines NO_BIND, or the new
knob, NO_BIND_LIBS_LWRES. There is at least one potential customer
for this library in the wings. Thanks to nectar for the reminder.


135739 24-Sep-2004 ru

Don't expose BIND libraries and their headers to the public by default,
but have a knob (WANT_BIND_LIBS) to build and install them in /usr/lib
and /usr/include. Rumors are that this may be useful at a later point,
let's see.

What this really means is that all BIND libraries are now internal to
buildworld (by default, unless WANT_BIND_LIBS is defined), and linked
statically into various BIND executables.

While here, removed redundant -I's from CFLAGS in lib/bind makefiles.

Sponsored by: des
OK'ed by: dougb


135678 23-Sep-2004 cognet

Add CPUCFLAGS for the strongarm and xscale CPUs.


135599 23-Sep-2004 ru

- Wrapped BIND 9 libraries defines into !defined(NO_BIND).

- Added forgotten LIBLWRES to fix missing dependencies
revealed by "make checkdpadd".


135549 21-Sep-2004 des

Switch from BIND 8 to BIND 9.

Submitted by: (in part) dougb@, trhodes@
Reviewed by: dougb@, trhodes@, re@
MFC after: 5 days


134903 07-Sep-2004 imp

Although 'Unanimous Consent' appears to be a well defined and used in
the US Senate, Canadian Parliament and Australian Senate, it was
causing some confusion. After some consultation with Mark Murray,
change this to 'without objection' since often times a plain-speaking
term is preferable to a regionally used term.

Also, clarify that this procedure is to be used when for more mundane
matters that need a sanity check, but don't need the whole, ponderous
voting proceedure that more difficult issues require. Core members
that read email in any given 48 hour period are trusted enough to know
the difference and to provide the sanity check as necessary.

Reviewed by: markm


133653 13-Aug-2004 ru

Removed COPTS support from kmod.mk and kern.pre.mk.
COPTS support in bsd.prog.mk is preserved but discouraged.


133525 11-Aug-2004 obrien

Add more aliases for common CPUTYPE spellings


133516 11-Aug-2004 obrien

The last commit had one too many libs.


133369 09-Aug-2004 harti

Use the '+' flag to make make recurse into sub-directories even when
given -n. For POLA reasons this behaviour is switched on only when
at least two -n flags are given to make. One -n flag keeps the old behaviour
of showing the shell command that would recurse into the sub-directories.

Discussed with: ru


133362 09-Aug-2004 obrien

Bmake the library containing and processing the magic.


133000 02-Aug-2004 obrien

Consistently list _CPUCFLAGS.


131482 02-Jul-2004 eik

Enable testing of customized variants of bsd.port.mk and
bsd.port.subdir.mk, without the overhead of an additional ports tree.

Use
make BSDPORTMK='${PORTSDIR}/My.Mk/bsd.port.mk' target
and
make BSDPORTSUBDIRMK='${PORTSDIR}/My.Mk/bsd.port.subdir.mk' target

to build with the alternate versions.

MFC after: 3 days


130854 21-Jun-2004 bde

Fixed style bugs in previous commit (151 characters of trailing whitespace).


130835 21-Jun-2004 pjd

- Missing trailing slash for a kern directory check.
- Check in both places if ${_dir}/conf/kmod.mk exists.
- Style fixes (lines too long).

Submitted by: bde


130693 18-Jun-2004 pjd

Check if ${_dir}/kern exists as well, because if it doesn't exists
we will fail later and we can miss good kernel source tree directory.
I found this trying to compile kld module and it finds 'conf/kmod.mk'
in '../..', but it fails later, because there is no 'kern' directory,
but there is valid kernel source tree still in /usr/src/sys/.


129217 14-May-2004 cognet

Define MACHINE_CPU for arm.


129163 12-May-2004 bde

Moved FreeBSD build pollution (/etc/make.conf) and zombie aout support
(OBJFORMAT) into a non-POSIX section.


129162 12-May-2004 bde

Removed conditional include of /etc/make.conf.local and the error for the
existence of this file. This stopped working more than 4 years ago when
the generation of the error was added in rev.1.44. The .error directive
gives fatal errors, so stale /etc/make.conf.local files must have been
gone away more than 4 years on systems where make(1) works.


129086 10-May-2004 des

-W{missing,strict}-prototypes do not make sense for C++, and gcc34 will
complain about them, so remove them from CXXFLAGS.


129024 07-May-2004 des

Add SHLIB as a shortcut for shared-only libraries.

Not objected to by: bde, ru


128480 20-Apr-2004 ru

g++(1) is unhappy with -Wnested-externs.

Prodded by: des


128188 13-Apr-2004 ru

Mark the "obj" target with the .PHONY attribute.


127888 05-Apr-2004 dfr

Add ${CPUTYPE} support for crusoe processors (cribbed from Linux kernel
settings). Pretend that a crusoe is an i686 which doesn't like alignment
padding.


127258 21-Mar-2004 marcel

Add a reference to the ia64 options to gcc. While here, sort the list.


127027 15-Mar-2004 trhodes

Remove whitespace at EOL.


126938 14-Mar-2004 trhodes

Fix some style bugs in previous commit.
Fix 'broken' ifdefs.
icc does not support profiling yet so remove unfinished code which was
supposed to help.

Submitted by: netchild (original version)
Reviewed by: ru


126890 12-Mar-2004 trhodes

This are the build infrastructure changes to allow to use the
Intel C/C++ compiler (lang/icc) to build the kernel.

The icc CPUTYPE CFLAGS use icc v7 syntax, icc v8 moans about them, but
doesn't abort. They also produce CPU specific code (new instructions
of the CPU, not only CPU specific scheduling), so if you get coredumps
with signal 4 (SIGILL, illegal instruction) you've used the wrong
CPUTYPE.

Incarnations of this patch survive gcc compiles and my make universe.
I use it on my desktop.

To use it update share/mk, add
/usr/local/intel/compiler70/ia32/bin (icc v7, works)
or
/usr/local/intel_cc_80/bin (icc v8, doesn't work)
to your PATH, make sure you have a new kernel compile directory
(e.g. MYKERNEL_icc) and run
CFLAGS="-O2 -ip" CC=icc make depend
CFLAGS="-O2 -ip" CC=icc make
in it.

Don't compile with -ipo, the build infrastructure uses ld directly to
link the kernel and the modules, but -ipo needs the link step to be
performed with Intel's linker.

Problems with icc v8:
- panic: npx0 cannot be emulated on an SMP system
- UP: first start of /bin/sh results in a FP exception

Parts of this commit contains suggestions or submissions from
Marius Strobl <marius@alchemy.franken.de>.

Reviewed by: silence on -arch
Submitted by: netchild


126657 05-Mar-2004 bde

Fixed indentation of conditionals.

Submitted by: Rostislav Krasny <rosti_bsd@yahoo.com>


125884 16-Feb-2004 des

Remove -Wbad-function-cast. Its main purpose is to catch bugs that we
already catch with -Wstrict-prototypes, and it causes spurious warnings
for some perfectly legitimate constructs.


125762 13-Feb-2004 kientzle

Register libarchive in bsd.libnames.mk and mdoc.local

Submitted by: ru


125620 09-Feb-2004 ru

Two changes to aid in cleaning up sys/boot/ makefiles:

- Don't put libc.a as a dependency if program is linked with -nostdlib.

- Added INTERNALPROG (by analogy to INTERNALLIB) for programs which are
built only for its side effect and shold not be installed.


125537 06-Feb-2004 ru

First round of cleanups to sys/boot/ makefiles:

- do not use PROG for what's not a real C program,
- use sys.mk transformation rules where possible,
- only create the "machine" symlink on AMD64,
- removed MAINTAINER lines in individual makefiles,
- added the LIBSTAND defitinion to <bsd.libnames.mk>,
- somewhat better contents in .depend files.

Tested on: i386, amd64
Prodded by: bde


125494 05-Feb-2004 ru

Temporarily put STRIP back; bsd.port.mk still needs it.


125493 05-Feb-2004 ru

Don't define STRIP in bsd.own.mk.


125474 05-Feb-2004 ru

make(1) can now handle spaces surrounding parenthesis correctly.


125462 05-Feb-2004 des

GC port.mkversion.


125445 04-Feb-2004 bde

Fixed breakage of POSIX support in rev.1.31. -pipe was added to
CFLAGS in all cases, but POSIX requires a default of -O. Adding
-pipe unconditionally still is still broken for non-gcc compilers
in the non-POSIX case.


125427 04-Feb-2004 ru

Nothing in libypclnt depends on librpcsvc.

Reported by: lorder(1) (modified to work with libraries)


125382 03-Feb-2004 ru

A shorter version of keeping all -std= options out of CXXFLAGS.


125381 03-Feb-2004 ru

Fixed MINUSLPAM:

- Added missing NOCRYPT and NO_OPENSSL checks for Kerberos.

- Don't depend on -lcrypto and -lcrypt in pam_ssh to resolve
dependencies in pam_krb5 and pam_ksu -- the former may not
be compiled at all if NO_OPENSSH knob is enabled.

- Added missing -lcrypt to pam_ssh dependencies.

- Moved librpcsvc after libypclnt.

(The last two aren't strictly speaking necessary to resolve
the dependencies of static versions of pam_ssh and pam_unix,
respectively, but they correspond to dynamic dependencies
of libssh and libypclnt, and are put here for consistency.)

In collaboration with: bde
Reviewed by: des


125344 02-Feb-2004 ru

GC LIBPC and LIBPLOT: they never existed in unencumbered BSD versions.

Reviewed by: bde


125269 31-Jan-2004 marcel

Add LIBPTHREAD.


125257 31-Jan-2004 bde

1. Garbage-collected LIBDES (now in a different library), LIBPERL (banished
to ports) and LIBRESOLV (now in a different library.

2. Added comments about nonexistent libraries LIBPC and LIBPLOT.

Submitted by: ru (1)


125256 31-Jan-2004 bde

Fixed insertion sort errors for LIBBLUETOOTH and LIBSDP.


125255 31-Jan-2004 bde

Removed XXX comments about some libraries only being in the secure
distribution. This is not the place to document this, especially
now that the secure distribution is the normal one.

Reviewed by: ru


125254 31-Jan-2004 bde

Fixed some style bugs (long lines).


125252 30-Jan-2004 jhb

Drop -mcpu=pentiumpro from the default CPU flags for i386 as it doesn't
perform better than the default setting for most i386 CPUs.

Requested by: bde


125119 27-Jan-2004 ru

Fixed bogus ${FOO:Mbar} tests where the actual intent is to check
if the result set is empty. While here, replaced non-bogus empty
string comparisons with equivalent empty() checks.


124637 17-Jan-2004 ru

Guess better the source for object files in case .depend file is
missing and there are multiple choices using multiple inference
(suffix transformation) rules.

This is known to fix compilation of s_log1p.o in lib/msun on i386,
as otherwise it attempted to use s_log1p.S as the source (which is
marked broken) instead of legal s_log1p.c which is in CFLAGS. The
normal case where .depend file exists is not affected.

Reviewed by: bde


124490 13-Jan-2004 ru

Introduce DPSRCS, that holds the list of source files which are
needed for generating dependencies. SRCS are always part of it,
and normally only they.

This can be useful in some random cases where it's necessary to
have something in .depend that isn't part of SRCS. This will be
used to replace a hack in lib/libpam/libpam/Makefile.


124435 12-Jan-2004 ru

- Replaced several := ops with their += equivalents; the old
form became unnecessary with the bsd.prog.mk,v 1.69 change.

- Eliminated duplicate y.tab.h in SRCS.

Reviewed by: bde

- Complementary to the said bsd.prog.mk change, use the fact
that inner .for loops are not real loops but a tricky form
of a local macro for the outer loop's variable, and switch
to using faster variable modifiers to replace extensions.


124372 11-Jan-2004 ru

Put the warning flags to where they belong (into CWARNFLAGS).
This allows us to easily override them when necessary, e.g.,
to selectively disable warnings in libc/ contributed sources.


124347 10-Jan-2004 ru

Keep up with sys/conf/ changes.


124061 02-Jan-2004 green

Fix a very corner case when you want to make cleandir SUBDIRs which
are built using a ${MAKE} that's not just "make".

Test by: make universe (followed by cleandirs)


122404 10-Nov-2003 harti

Add a define for libbsnmp.


121615 27-Oct-2003 harti

Add a definition for libngatm.

Reviewed by: ru


121054 12-Oct-2003 emax

Update Bluetooth code.

Reviewed by: M. Warner Losh <imp@bsdimp.com>; John Hay <jhay@freebsd.org>
Approved by: M. Warner Losh <imp@bsdimp.com> (mentor)


120949 09-Oct-2003 nectar

Update build infrastructure for Heimdal 0.6.


120713 03-Oct-2003 ru

Removed the ancient .LIBS setting that causes non-existent
libraries to be reported as up-to-date.

Before:

# make -f /dev/null nonexistent.a
`nonexistent.a' is up to date.

After:

# make -f /dev/null nonexistent.a
make: don't know how to make nonexistent.a. Stop

PR: bin/44137 (part of)


120492 26-Sep-2003 fjoe

- Support for multibyte charsets in LIBICONV.
- CD9660_ICONV, NTFS_ICONV and MSDOSFS_ICONV kernel options
(with corresponding modules).
- kiconv(3) for loadable charset conversion tables support.

Submitted by: Ryuichiro Imura <imura@ryu16.org>


120485 26-Sep-2003 markm

Separate out userland linting and kernel linting a bit more. This
make things a bit easier for folks using lints other than the
"base" lint.


119846 07-Sep-2003 ru

- No need to create libfoo.so -> libfoo.so.X symlinks in /lib,
as it was decided that our toolchain will revert to looking
for libraries in /usr/lib only.

- Make /usr/lib/libfoo.so -> /lib/libfoo.so.X symlinks absolute
so that they still work if /usr is symlinked.

- Remove stale /usr/lib/libfoo.so.X libraries during install.

Discussed with: gordon, obrien, peter


119838 07-Sep-2003 ru

Implement sed(1) commands using the make(1)'s RE variable modifier.
(This almost eliminates the need of a sed(1) during installworld.)


119730 04-Sep-2003 peter

Emergency backout of rev 1.152. This is a 100% guaranteed way to totally
hose your system. You end up with just about everything statically linked
(except for libpam.so), which then causes all the pam users to fail.
eg: login, sshd, su etc all stop working because dlopen no longer works
because there is no libc.so in memory anymore.

gcc passes -L/usr/lib to ld. The /usr/lib/libxxx.so symlink is *not* a
compatability link. It is actually the primary link. There should be no
symlinks in /lib at all. Only /lib/libXX.so.Y.

peter@daintree[9:27pm]/usr/bin-104> file yppasswd
yppasswd: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.1.1, dynamically linked (uses shared libs), stripped
peter@daintree[9:27pm]/usr/bin-105> ldd yppasswd
yppasswd:
libpam.so.2 => /usr/lib/libpam.so.2 (0x280d1000)
peter@daintree[9:28pm]/usr/bin-106>

Note no libc.so.5. Hence libpam.so.2 has unresolved dependencies.

I believe this is also the cause of the recent buildworld failures when
pam_krb5.so references -lcrypto stuff etc and when librpcsvc.so references
des_setparity() etc.

This change could not possibly have worked, unless there are other missing
changes to the gcc configuration. It won't work with ports versions of
gcc either.


119710 03-Sep-2003 ru

As ld(1) was taught to look into /lib, there's no longer a reason
for having compatibility .so symlinks.

Submitted by: obrien
Reviewed by: gordon


119607 31-Aug-2003 ru

Whitespace diff reduction between bsd.prog.mk and bsd.lib.mk outputs.


119057 18-Aug-2003 obrien

Fix typo.

Submitted by: Ulrich Spoerlein <q@uni.de>


119056 17-Aug-2003 gordon

When creating .so symlinks, use SHLIBDIR instead of LIBDIR so symlinks
are created in the correct location. Always make them. For libraries
that live in /lib, this causes a /lib/libfoo.so and a compatibility
/usr/lib/libfoo.so to be created. We may want to drop the
/usr/lib/libfoo.so symlink at some future point.


119009 17-Aug-2003 gordon

Handle the case where SHLIBDIR != LIBDIR. When creating links, we
need relative pathing to work correctly. This is s necessary step
for putting libraries in /lib while the .so symlinks still live
in /usr/lib.

This should be a big NOOP in the case where SHLIBDIR == LIBDIR.


117514 13-Jul-2003 mux

Since -march=pentium4 is supposed to be fixed with GCC 3.3, and
since people have been reporting success with it, re-enable the
pentium4 optimization.


117195 03-Jul-2003 bde

Use make(1) instead of a shell script to implement the checkdpadd target.
This is simpler, and is easy to do now that make(1) supports substituting
regexps. Fixed missing '$' anchor in the regexp. Use less cryptic names
for temporary variables.

Submitted by: ru (early version)
Reviewed by: ru


117184 02-Jul-2003 ru

Libraries come.


117183 02-Jul-2003 ru

Sort.


117173 02-Jul-2003 ru

Don't trust sys.mk,v 1.61 commit log, and make .asm alias for .S.


117171 02-Jul-2003 ru

The .s files do not have to be preprocessed with cpp(1).


117159 02-Jul-2003 ru

Revert to using as(1) to compile plain assembler source files.
All .s files that need cpp(1) processing (see gcc(1) manpage's
DESCRIPTION section) have been repo-copied to .S files. This
is mostly to bring bsd.lib.mk in agreement with sys.mk.

Desired by: obrien


117122 01-Jul-2003 ru

There's no reason to keep separate AINC knob anymore.
The only real use of it (lib/libc/Makefile) has been
fixed, and if necessary, the contents of AINC should
be added to CFLAGS.

Explained by: bde


117084 30-Jun-2003 ru

Propagate the ${AINC} knob (assembler include) to sys.mk,
and remove the .S.o transformation rule from bsd.lib.mk.


117083 30-Jun-2003 ru

Removed suffix-transformation rules that are duplicates
(or are subsets) of the corresponding rules in sys.mk.


117080 30-Jun-2003 ru

The use of ld(1) to strip compiler local and non-global
symbols from object files has bitrotted over the last
thirteen years, and it now does more harm than good.

An attempt to work around the problems caused by using
ld(1) for stripping was to pass LDFLAGS to the ld(1)
command, but this was not right either as ${LDFLAGS}
should, by design, be used with cc(1) and not ld(1).

One of the proposed solutions was to use the objcopy(1)
utility to do the strip work, and the other would be to
use strip(1), but Bruce Evans suggested not stripping
any symbols at all. This works by leaving the grunt
work to the final strip(1) command (when installing the
binary).

Submitted by: bde


117034 29-Jun-2003 gordon

Add ${CRUNCH_CFLAGS} support for adding compile options to crunch
components. This is generally considered a non-optimal solution but
it gets the job done for the /rescue case.

Submitted by: Tim Kientzle <kientzle@acm.org>


116855 26-Jun-2003 peter

Be consistent about the use of ${LDFLAGS} for the internal rules. Some
were missing. This made it difficult to add backend ABI overrides when
building shared libs.


116342 14-Jun-2003 imp

Put on the core hat and back out all of the CSTD= changes. Core will
deal with working with the parties to define a coherent definition for
CSTD that doesn't break things.

Core hat seconded by: markm


116330 14-Jun-2003 des

Revert to a known-good state. Anyone desiring to experiment with stricter
global settings is free to do so in his or her own source tree.


116318 13-Jun-2003 peter

Build/install the PIC version of libgcc (libcc_pic.a) for use by shared
libraries that do exception unwinding.


116316 13-Jun-2003 peter

We cannot use c99 on amd64 either due to lack of alloca(). libc:strptime()
uses alloca() and alloca is impossible to implement as a callable function
on amd64. It has to be a compiler builtin. Note that the bigger problem
is that libc is not c99 clean internally.


116144 10-Jun-2003 obrien

Remove NOSHLIBS, users can get by with NOPIC.

Desired by: ru


115942 07-Jun-2003 obrien

Be C std strict on i386 and amd64 as we can. Be loose on Alpha and ia64.


115902 06-Jun-2003 obrien

Compile our code as C99 w/GNU extensions by default.
We can't use straight "c99" due to the lack of alloca.S for non-i386 platforms.


115832 04-Jun-2003 markm

Update some library names. Libraries come, libraries go.


115686 02-Jun-2003 obrien

I got a bazzar bug report


115682 02-Jun-2003 obrien

Turn back on c99, the tree should be ready for it now.


115661 02-Jun-2003 obrien

To quote Tony Maher <tonymaher@optushome.com.au>, "maybe 3rd time lucky ;-)"
*sigh* Just can't get a brake when trying to react too quickly and fix the build.


115656 02-Jun-2003 obrien

Temperarly turn off building the tree with c99.
I swore this made it thru a 'make world', but I don't know what happened.


115645 01-Jun-2003 obrien

Use a bigger hammer -- keep all -std= out of CXXFLAGS.
Also allow for "CSTD=" in a Makefile.


115640 01-Jun-2003 obrien

Do not set a C standard for the C++ compiler.


115629 01-Jun-2003 obrien

Compile our code as C99 by default.


115455 31-May-2003 obrien

CSTD is virtually worthless for WARNS=2-5. Return -pedantic to WARNS=6+.


115453 31-May-2003 obrien

Make CSTD style match the rest of file.


115229 22-May-2003 anholt

Change -march=pentium4 to -march=pentium3 when CPUTYPE==p4, because gcc 3.2 is
known to produce broken code with -march=pentium4. Add a note explaining this.
This should be removed when we update to gcc 3.3 or the bug is otherwise fixed.

Approved by: re


115205 21-May-2003 ru

Fixed typo in a comment.

PR: misc/52486
Submitted by: "Simon L. Nielsen" <simon@nitro.dk>
Approved by: re (jhb)


115175 20-May-2003 peter

s/x86[-_]64/amd64/ for MACHINE_ARCH and MACHINE_CPU .ifdefs.

Noticed by: ru
Approved by: re (amd64-specific low risk stuff)


115103 17-May-2003 trhodes

Apply the first in a series of patches which will bring bsd.README up to date.

PR: 35652
Submitted by: "Simon L. Nielsen" <simon@nitro.dk> (original version)
Approved by: re (bmah)


114752 05-May-2003 des

Whitespace cleanup (1.15 had spaces instead of tabs)


114751 05-May-2003 des

Don't use -pedantic unless we also set -std of some kind.


114709 05-May-2003 markm

Turn MAKE_KERBEROS5 into NO_KERBEROS by negating the logic. Some extra
cleanups were necessary in release/Makefile, and the tinderbox code
was syntax checked, not run checked.


114580 03-May-2003 markm

Remove some games/ cruft that is no longer of relevance.


114419 01-May-2003 des

Add a mechanism to allow Makefiles to specify the particular C dialect
in which the source code is written. This is controlled by the CSTD
variable, which can have one of the following values:

- "k&r" => -traditional
- "c89" or "c90" => -std=iso9899:1990
- "c94" or "c95" => -std=iso9899:199409
- "c99" => -std=iso9899:1999

The corresponding option is added to CFLAGS regardless of WARNS level.
This also removes -ansi from WARNS level 6, but adds -Wno-long-long to
work around a weird gcc bug (-ansi, which is supposedly equivalent to
-std=iso9899:1990, seems to turn long long warnings off instead of on)

If CSTD is undefined, CFLAGS are unchanged except for the -ansi /
-Wno-long-long change mentioned above for WARNS level 6.


114135 27-Apr-2003 obrien

Add NOSHLIBS.
If one is using NOSHARED, why build the libs.


113851 22-Apr-2003 ru

Axe CXXINCLUDES from CXXFLAGS, it serves no useful purpose anymore.

Reviewed by: bde


113481 14-Apr-2003 obrien

Add CPUTYPE support for "athlon-tbird", as GCC makes the distinction.

PR: 50801
Submitted by: Glenn Johnson <glennpj@charter.net>


113374 11-Apr-2003 obrien

Default the userland to 486 capabilities.


113136 05-Apr-2003 imp

Migrate to a new way of dealing with building from old revisions of
FreeBSD. This method attempts to centralize all the necessary hacks
or work arounds in one of two places in the tree (src/Makefile.inc1
and src/tools/build). We build a small compatibility library
(libbuild.a) as well as selectively installing necessary include
files. We then include this directory when building host binaries.

This removes all the past release compatibilty hacks from various
places in the tree. We still build on tip of stable and current. I
will work with those that want to support more, although I anticipate
it will just work.

Many thanks to ru@, obrien@ and jhb@ for providing valuable input at
various stage of implementation, as well as for working together to
positively effect a change for the better.


113066 04-Apr-2003 ru

-Wall implies -Wuninitialized if -O is also in effect.
-Wuninitialized does not work without -O.

This fixes the ${WARNS} > 4 compilations with -O0.

Spotted by: marcel


112869 31-Mar-2003 ru

Enable cpp(1) warnings in system headers. GCC is oriented on
glibc which is externally maintained, so GCC ships with these
warnings turned off by default. This is also consistent with
the src/contrib/gcc/c-lex.c,v 1.2 change.


112769 29-Mar-2003 obrien

Globally use -mieee in /usr/src for Alpha.


112768 29-Mar-2003 obrien

Reduce "code duplication" for AMD CPU's.


112461 21-Mar-2003 ru

Added GEOM library to the bsd.libnames.mk namespace.


112145 12-Mar-2003 ru

Record the sudden death of bsd.kern.mk and bsd.sgml.mk.


111994 08-Mar-2003 markm

KerberosIB deorbit: Remove library references.


111853 03-Mar-2003 ru

If we carry our MODULES_WITH_WORLD, we probably also do not want
for installkernel to wipe them out later. So install them under
/boot/modules if that is the case.


111764 02-Mar-2003 ru

Fixed sys/boot/pc98/boot2/Makefile to use kern.mk and
get rid of bsd.kern.mk completely.

OK'ed by: bde


111686 28-Feb-2003 ru

Initiate the de-orbit burn sequence for <bsd.kern.mk>.
Always use sys/conf/kern.mk when building kernel/modules.
<bsd.kern.mk> is only preserved for sys/boot/pc98/boot2
for now, but this will be fixed. If there are other
users of <bsd.kern.mk>, please let me know.

Reminded by: bde


111650 27-Feb-2003 jake

- Removed various cruft from before we had a hosted toolchain (!).
- Moved special compiler flags to bsd.kern.mk so they get used for modules
too.


109725 23-Jan-2003 ru

Added UFS library to the bsd.libnames.mk namespace.


107256 26-Nov-2002 ru

NOSHARED is meaningless in the bsd.lib.mk context, so check LDFLAGS
for the -static flag instead when constructing LIBPAM.

(This fixes false warnings from ``make checkdpadd -DNOSHARED'' in
lib/libpam/modules/.)

Submitted by: bde, ru
Approved by: re


106852 13-Nov-2002 ru

Take __FreeBSD_version into account when BOOTSTRAPPING.


106211 30-Oct-2002 ru

Document most of bsd.doc.mk variables.


106209 30-Oct-2002 ru

All uses of CD_HACK have been eliminated.


106151 29-Oct-2002 ru

PRINTERDEVICE can now take multiple values.


106143 29-Oct-2002 ru

bsd.doc.mk changes:

Don't gratuitously pipe thru a cat(1) if NODOCCOMPRESS.

Only create _stamp.extra when necessary.

Get rid of SOELIMPP and OBJS.

Use Groff version of soelim(1); we need its -I option
for the following to work.

Don't needlessly chdir to SRCDIR. Only a few documents
need CD_HACK, and those that need it either use refer(1)
or .PSPIC macro which internally uses the .psbb call.


105388 18-Oct-2002 ru

Revert last delta. SGR support in grotty(1) is disabled system-wide
in /usr/share/tmac/troffrc pending the issue resolution on -arch.


105327 17-Oct-2002 ru

Added the new variable CTAGS which, if set to "ctags", reverts
to creating the tags file using ctags(1). Defaults to "gtags".
Made GTAGSFLAGS and HTAGSFLAGS overrideable, added CTAGSFLAGS.
Folded bsd.prog.mk version of `tags' into bsd.dep.mk.

PR: bin/42852


105019 13-Oct-2002 marcel

ia64 specific CFLAGS change:
Fix the "@gprel relocation against dynamic symbol xxx" linker error.

Variables defined in the link unit and small enough to be put in the
short data section will have a gp-relative access sequence (using the
@gprel relocation). It is invalid to have @gprel relocations in shared
libraries, because they are to be resolved by the static linker and
not the dynamic linker. The -fpic option will cause @ltoff relocations
for @gprel relocations, but the side-effects are untested (if any).
Instead, disable/eliminate the short data section to achieve the same.


104874 11-Oct-2002 ru

Groff 1.18.1 comes in with ANSI color support, enabled by default.
In "nroff" mode, italic font renders as an underlined text, which
makes it indistinguishable from the bold text on color monitors
(cons25 terminal type), yet it requires the less(1)'s -R option.
(Refer to the new grotty(1) manpage for details.)

So turn off the color support for now (when generating catpages),
until we figure out what do we do with this new feature. I have
a patch for grotty(1) that tells it to use the "reverse video"
attribute to render the italic font. Once this is accepted, we
can turn color support back on (if there won't be any objections
from the community).


104465 04-Oct-2002 ru

Sort in ``phone directory'' order (except for LIBC_*).


104457 04-Oct-2002 phk

Reflect the fact that we install our libexpat as libbsdxml.


104455 04-Oct-2002 bde

Use the -mno-align-long-strings on i386's to debloat the kernel a little.
This reduces the size of GENERIC's text space by 73999 bytes (about 2%).
The bloat is from approximately 3437 strings longer than 31 characters
being padded to a 32-byte boundary.


104353 02-Oct-2002 phk

Add LIBEXPAT definition.


103713 20-Sep-2002 markm

Extend the lint handling a bit.

o Make it possible to prevent parts of the tree from being linted
(say) during a 'make world' by setting NOLINT in a leaf Makefile.

o Make "make lint" work (better) for executable programs.

o Clean up (nuke!) a syntax damaged pipeline.


103562 18-Sep-2002 jhb

Whitespace-only indention fixups for revision 1.20. This lets the 1.20
diff actually be readable.


103561 18-Sep-2002 jhb

Oops, fix userland _CPUCFLAGS. Move adding of _CPUCFLAGS to bottom of
file after end of empty CPUTYPE else clause.


103560 18-Sep-2002 jhb

For the default case of CPUTYPE not being set, don't define CPUTYPE to the
lowest value in order to get the right MACHINE_CPU values since setting
CPUTYPE can result in problems later in the buildkernel case. Instead,
set MACHINE_CPU directly and leave CPUTYPE alone.

Tested by: mbr


103436 17-Sep-2002 peter

Initiate deorbit burn for the i386-only a.out related support. Moves are
under way to move the remnants of the a.out toolchain to ports. As the
comment in src/Makefile said, this stuff is deprecated and one should not
expect this to remain beyond 4.0-REL. It has already lasted WAY beyond
that.

Notable exceptions:
gcc - I have not touched the a.out generation stuff there.
ldd/ldconfig - still have some code to interface with a.out rtld.
old as/ld/etc - I have not removed these yet, pending their move to ports.
some includes - necessary for ldd/ldconfig for now.

Tested on: i386 (extensively), alpha


103211 11-Sep-2002 obrien

Add support for the AMD x86-64 Hammer platform.


103048 07-Sep-2002 kris

Add support for ev67 and ev45 CPUTYPEs (new in gcc3)


103045 07-Sep-2002 mux

Update to use all the new CPU optimizations of GCC3.

Reviewed by: kris


103003 06-Sep-2002 peter

Bump the -mev56 to -mev6. Otherwise, when you compile with gcc using
ev6 or pca56 etc this downgrades the cpu specification passed to gas.
As a result, gas will fail when gcc generates media instructions (in
uipc_usrreq.c). This only affects what gas will accept, not what gcc
generates or what our *.s file contain.


102660 31-Aug-2002 kris

test -h is deprecated; use -L instead.

Submitted by: april <april@oublinet.net>
PR: misc/38724 (part of)
MFC after: 3 days


102407 25-Aug-2002 bde

Turned format checking back on. It was left turned off for too long after
the gcc lossage that caused it to be turned off was fixed.

Tested with: i386/{GENERIC,LINT,...}, alpha/GENERIC


102173 20-Aug-2002 ru

Allow one to override ${MINSTALL} in /etc/make.conf.

Prompted by: Andre Albsmeier <andre.albsmeier@mchp.siemens.de>


101232 02-Aug-2002 ru

TARGET_CPUTYPE should exist solely in Makefile.inc1, similar to
TARGET_ARCH and TARGET. This is problematic when one has the =
(unconditional) type of assigment for CPUTYPE in /etc/make.conf.
(This would override what was set on the command line to "make
buildworld".)

Add a (horrible) kludge to Makefile.inc1 to check the type of
assignment for CPUTYPE (only for those who attempts to set it to
a different value). Fix an example make.conf. Fix the kernel's
build-tools target (aicasm only at the moment) to catch up with
bsd.cpu.mk,v 1.15 (BOOTSTRAPPING replaced with NO_CPU_CFLAGS in
Makefile.inc1's BMAKE).

Reviewed by: jhb


101224 02-Aug-2002 rwatson

Add a libnames entry for libugidfw.
Add a DPADD line for ${LIBUGIDFW} for ugidfw.

Submitted by: ru


101015 31-Jul-2002 jhb

- Define NO_CPU_CFLAGS during BMAKE and TMAKE (and thus XMAKE) so that
bsd.cpu.mk doesn't have to worry about compilers other than the current
version.
- Allow TARGET_CPUTYPE to override CPUTYPE in bsd.cpu.mk.
- Treat an empty CPUTYPE the same as an undefined CPUTYPE.
- For buildworld, buildkernel, etc., define TARGET_CPUTYPE to CPUTYPE for
native builds and define it to be empty for cross-builds.
TARGET_CPUTYPE is only defined if it is not already defined via the
commandline or environment.


100872 29-Jul-2002 ru

Drop support for COPY, -c has been the default mode of install(1)
for a long time now.

Approved by: bde


100773 27-Jul-2002 jhb

- Fixup whitespace after previous commit.
- To minimize whitespace changes, remove a test that didn't define
_CPUCFLAGS if both NO_CPU_CFLAGS and NO_CPU_COPTFLAGS were defined
since it is redundant (we don't use _CPUCFLAGS if those are defined).


100772 27-Jul-2002 jhb

If there is not a CPUTYPE defined by default, then allow for _CPUCFLAGS
to tune for more advanced processors while still supporting the minimum
processor in an architecture. We can do this with the '-mtune=' option
to gcc for alpha, sparc64, and powerpc and with the mis-named '-mcpu='
option for i386.

This defaults to tuning i386 builds for i686 machines though not using
any instructions that aren't found on an 80386. For alpha it defaults
to tuning for an EV5.

Approved by: peter
Peril sensitive sunglasses borrowed from: peter


100457 21-Jul-2002 ru

Moved `clean:' below, just before the inclusion of bsd.obj.mk,
so that CLEANFILES from bsd.man.mk and bsd.dep.mk are honored.


100375 19-Jul-2002 ru

Only define SHLIB_LINK if SHLIB_NAME matches the *.so.* pattern.
(Useful for RELENG_4's lib/libpam/modules.)


100332 18-Jul-2002 ru

Correction to the previous revision: define SHLIB_LINK if SHLIB_NAME
is defined (whether or not LIB is defined).


100253 17-Jul-2002 ru

Sort FILES.


99875 12-Jul-2002 ru

Moved the `distribute' target from bsd.obj.mk to bsd.subdir.mk,
to make it call `install' in the bsd.subdir.mk-driven makefiles
too. (share/examples/Makefile,v 1.29 changed the bsd.prog.mk
to bsd.subdir.mk and many stuff was lost during "make release".
I then merged this change in rev. 1.28.2.2 to work around the
namespace pollution (FILES) in this makefile.)

There was an added complexity here. Both the `distribute' and
`install' targets are recursive (they propagate to SUBDIRs).
So `distribute' first calls `install' in the ${.CURDIR}, then
calls `distribute' in each SUBDIR, etc. The problem is that
`install' (being also recursive) causes the stuff from SUBDIR
to be installed twice, first time thru `install' in ${.CURDIR}
triggered by `distribute', second time by `distribute' run in
the SUBDIR. This problem is not new, but it became apparent
only after I moved the `distribute' target from bsd.obj.mk to
bsd.subdir.mk. My first attempt testing the fix failed due to
this, because the whole world was distributed twice, causing
all the imaginable mess (kerberos5 stuff was installed into both
"base" and "krb5" dists, there was /sbin/init.bak, etc.)
I say the problem is not new because bsd.prog.mk and bsd.lib.mk
makefiles with SUBDIR (even without this fix) had this problem
for years. Try e.g. running ``make distribute DISTDIR=/foo''
from usr.bin/bzip2 or from lib/libcom_err (without the fix) and
watch the output.

So the solution was to make `install' behave non-recursive when
executed by `distribute'. My first attempt in passing SUBDIR=
to the `install' in the `distribute' body failed because of the
way how src/Makefile and src/Makefile.inc1 communicate with each
other. SUBDIR='s assignment precedence on the "make install
SUBDIR=" command line is lowered after src/Makefile wrapper calls
"make ... -f ${.CURDIR}/Makefile.inc1 install" because SUBDIR=
is moved into environment, and Makefile.inc1's assignments now
take higher precedence. This may be fixed someday when we merge
Makefile with Makefile.inc1. For now, this is implemented as a
NO_SUBDIR knob.

Spotted by: Dmitry Pryanishnikov <dmitry@atlantis.dp.ua>
Prodded by: des
MFC after: 3 days


99542 07-Jul-2002 obrien

Be more strict with WARNS now -- the GCC 3.1 turmoil is behind us.


99495 06-Jul-2002 ru

Part 1/2 of kerberos5/doc/ "make release" breakage fix:

Finish the fix of rev. 1.28 changes in rev. 1.47 (removed
gross dir file bootstrap rule again).


99362 03-Jul-2002 ru

Make it possible (again) to build and install shared library only.
One needs to define SHLIB_NAME for this to work.

Prodded by: mi


99344 03-Jul-2002 ru

Moved checkdpadd target to where it logically belongs.


99343 03-Jul-2002 ru

Try really hard to fix parallel installs. Add a bunch of .ORDER
directives to ensure that all realinstall sub-tasks are executed
after beforeinstall, similarly ensure that all afterinstall sub-
tasks are executed after realinstall. Demonstration:

all: task1 task2
.ORDER: task1 task2

task2: task2_subtask
.ORDER: task1 task2_subtask

task1 task2 task2_subtask:
@sleep `jot -r 1 0 1.0`
@echo ${.TARGET}

Without the second .ORDER directive, task2_subtask can be run in
parallel with task1.

Spotted by: Andrea Campi <andrea@webcom.it>


99257 02-Jul-2002 ru

Reimplemented bsd.nls.mk using bsd.files.mk and bsd.links.mk.

Provided the (previously missing) dependency on source files
for intermediate .msg files.

Provided the default for NLSSRCDIR (defaults to .CURDIR).

Slightly changed the API: NLS should now list plain locale
names, without the .msg suffix.

When included from bsd.prog.mk, NLSNAME defaults to PROG.


99256 02-Jul-2002 ru

Handle installation of hard and symbolic links via a seperate .mk file.


99216 01-Jul-2002 ru

bsd.subdir.mk already has these dependencies coded.


99215 01-Jul-2002 ru

Get rid of the bogus dependencies between beforeinstall, realinstall,
and afterinstall targets. Make sure they are run in sequence in the
-j case.

This fixes the recent breakage with beforeinstall being run _after_
realinstall.

Reported by: knu


99202 01-Jul-2002 ru

Fixed typos.


98870 26-Jun-2002 jmallett

If CLEANFILES is nil or not defined, do not try to remove it. This happens
when SRCS is entirely files which produce only one compiled form, and when
NOMAN is defined. This does not seem to happen in STABLE.

Approved by: ru


98546 21-Jun-2002 ru

Quiet ``make objlink'' when NOOBJ is defined.

PR: bin/21142
Submitted by: Craig Leres <leres@ee.lbl.gov>


98159 13-Jun-2002 sobomax

In gcc 3.1 Pentium/MMX now has its own -march=XXX option.


97769 03-Jun-2002 ru

Reimplement FILES support using bsd.files.mk with the
same set of features as in recently added bsd.incs.mk
(FILESGROUPS, accessibility from both bsd.prog.mk and
bsd.lib.mk, de-pessimized typical installation path,
etc.) New standard targets: buildfiles, installfiles,
and files (buildfiles + installfiles).


97661 31-May-2002 ru

Bootstrapping aid for those with Athlon upgrading from gcc 2.95.x.

Prodded by: gordon


97197 24-May-2002 peter

For now, make the .ifdef GCC3 case default. We should change -Wno-format
back to -fformat-extensions (or whatever) when we have the functionality.
We are gaining warnings again that should be fixed but the are being hidden
by NO_WERROR and all the -Wformat noise.


97101 22-May-2002 ru

Revision 1.39 made filtering of CFLAGS unnecessary.


96949 19-May-2002 obrien

Tweak the WARNS levels a tad.


96680 15-May-2002 obrien

Default Alpha compiles to ev5.
EV5 binaries will run on EV4[5], but the timing assumptions do pessimize
running on EV4[5].

Tested by: ticso


96668 15-May-2002 ru

Rename `includes' to `buildincludes'.
Rename `incsinstall' to `installincludes'.
Make `includes' a -j safe shortcut for `buildincludes' + `installincludes'.
`buildincludes' and `installincludes' are SUBDIR friendly, if run directly.


96529 13-May-2002 ru

CLEANFILES are too long for libc.


96524 13-May-2002 ru

Ensure manpages are built with the all-man in the
NOMANCOMPRESS && !MANFILTER && !MANBUILDCAT case.

PR: bin/37360
Prodded by: cjc


96512 13-May-2002 ru

Major cleanup of bsd.lib.mk.

Get rid of the INTERNALSTATICLIB knob and just use plain INTERNALLIB.
INTERNALLIB now means to build static library only and don't install
anything. Added a NOINSTALLLIB knob for libpam/modules. To not
build any library at all, just do not set LIB.


96462 12-May-2002 ru

Added new bsd.incs.mk which handles installing of header files
via INCS. Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files. Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.

Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1. Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):

kerberos5/lib/libtelnet/Makefile
lib/libbz2/Makefile
lib/libdevinfo/Makefile
lib/libform/Makefile
lib/libisc/Makefile
lib/libmenu/Makefile
lib/libmilter/Makefile
lib/libpanel/Makefile

Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.

Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD. Similarly for INCOWN, INCGRP,
and INCMODE.

Consistently use INCLUDEDIR instead of /usr/include.

gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.

These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".


96453 12-May-2002 obrien

Back out rev 1.118.


96421 11-May-2002 obrien

Add pointers to GCC's allowable values for -march, and restore structure
of rev 1.7 until someone can sit down and think thru all the GCC 3.1
related changes.


96419 11-May-2002 obrien

With GCC 3.1, we can now treat AMD Athlon and an Athlon.

Submitted by: Steven G. Kargl <kargl@troutmask.apl.washington.edu>


96343 10-May-2002 obrien

[Ab]use LDFLAGS rather than CFLAGS.
BDE tells me POSIX pretends `ld' as a directly callable entity does not exist.


96316 10-May-2002 obrien

Gcc 3.1 has different -Wx flags.


96312 10-May-2002 obrien

Add the beginnings of Sparc64 support.


96311 10-May-2002 obrien

Pass CFLAGS to {CC} when using it as an `ld' replacement.


96258 09-May-2002 obrien

Pay attention to LDFLAGS when linking.


96237 09-May-2002 obrien

Get rid of the INTERNALSTATICLIB knob and just use plain INTERNALLIB.
INTERNALLIB now implies NOPROFILE, NOMAN, and don't install anything.
Add a NOLIB knob.


96164 07-May-2002 ru

Added internal, non-recursive (SUBDIR) versions of the `all-man'
and `maninstall' targets. This fixes the issue where each subdir
was descended into twice during "make all", and also resurrects
the standardization of `maninstall'.

Urged by: bde


96163 07-May-2002 ru

Install PROG before SCRIPTS and FILES, but make sure
LINKS are still processed last. This backs out part
of the backout in previous revision.

Install the manpages before descending into SUBDIRs.


96162 07-May-2002 ru

Install the manpages before descending into SUBDIRs.


96132 07-May-2002 bde

Fixed missing quotes in the default for MKDEPCMD in the CC != cc case.
"CC='cc -Dfoo' make depend" was very broken.


96041 04-May-2002 obrien

Use -ffreestanding for kernel bits unconditionally.


95734 29-Apr-2002 ru

Splitting "realinstall" into parts was a (failed) part of the work
in progress, and should not have been committed in revision 1.114.
This broke gnu/usr.bin/binutils/strip and usr.bin/strip makefiles;
they were now attempting to install and strip "strip" from objdir.

Pointed out by: bde

This has nothing to do with PR misc/37516.


95509 26-Apr-2002 ru

Milestone #1 in cross-arch make releases.

Do not install games and profiled libraries to the ${CHROOTDIR}
with the initial installworld.

Eliminate the need in the second installworld. For that, make sure
_everything_ is built in the "world" environment, using the right
tool chain.

Added SUBDIR_OVERRIDE helper stuff to Makefile.inc1. Split the
buildworld process into stages, and skip some stages when
SUBDIR_OVERRIDE is set (used to build crypto, krb4, and krb5
dists).

Added NO_MAKEDB_RUN knob to Makefile.inc1 to avoid running
makewhatis(1) at the end of installworld (used when making crypto,
krb4, and krb5 dists).

In release/scripts/doFS.sh, ensure that the correct boot blocks are
used.

Moved the creation of the "crypto" dist from release.5 to
release.2.

In release.3 and doMFSKERN, build kernels in the "world"
environment. KERNELS now means "additional" kernels, GENERIC is
always built.

Ensure we build crunched binaries in the "world" environment.
Obfuscate release/Makefile some more (WMAKEENV) to achieve this.

Inline createBOOTMFS target.

Use already built GENERIC kernel modules to augment mfsfd's
/stand/modules. GC doMODULES as such.

Assorted fixes:

Get rid of the "afterdistribute" target by moving the single use
of it from sys/Makefile to etc/Makefile's "distribute".

Makefile.inc1: apparently "etc" no longer needs to be last for
"distribute" to succeed.

gnu/usr.bin/perl/library/Makefile.inc: do not override the
"install" and "distribute" targets, do it the "canonical" way.

release/scripts/{man,cat}pages-make.sh: make sure Perl manpages and
catpages appear in the right dists. Note that because Perl does
not respect the MANBUILDCAT (and NOMAN), this results in a loss of
/usr/share/perl/man/cat* empty directories. This will be fixed
soon.

Turn MAKE_KERBEROS4 into a plain boolean variable (if it is set it
means "make KerberosIV"), as documented in the make.conf(5)
manpage. Most of the userland makefiles did not test it for "YES"
anyway.

XXX Should specialized kerberized libpam versions be included into
the krb4 and krb5 dists? (libpam.a would be incorrect anyway if
both krb4 and krb5 dists were choosen.)

Make sure "games" dist is made before "catpages", otherwise games
catpages settle in the wrong dist.

Fast build machine provided by: Igor Kucherenko <kivvy@sunbay.com>


95371 24-Apr-2002 ru

GC bsd.docb.mk. It has never apparently been used.


95368 24-Apr-2002 ru

Abuse bsd.obj.mk for defining default distribute target.


95365 24-Apr-2002 ru

GC bsd.sgml.mk. Nothing in the src/ tree uses it, and two doc/
instances that still use it are unconnected from the build and
have corresponding DocBook replacements.


95356 24-Apr-2002 ru

The install.debug and reinstall.debug targets are needed solely
to build kernel and kernel modules so stop supporting them in
bsd.subdir.mk and reimplement them in kern.post.mk and kmod.mk
as special versions of the install and reinstall targets, and
only define them if DEBUG is also defined (when debug versions
are really built).

Prompted by: bde


95327 23-Apr-2002 obrien

Change the name of the 'bin' distribution to 'base'.
This is done since it contains much more than /bin, and also gets in the
way when making a combined install+fixit CD.

OK'ed by: jkh


95306 23-Apr-2002 ru

Merge bsd.obj.mk's version of the _SUBDIR target with bsd.subdir.mk.

Ensure all standard targets honor SUBDIR. Now `make obj' descends into
SUBDIRs even if NOOBJ is set (some descendants may still need an object
directory, but we do not have such precedents). Now `make install' in
non-bsd.subdir.mk makefiles runs `afterinstall' target _after_ `install'
in SUBDIRs, like we do in bsd.subdir.mk. Nothing depended on the wrong
order anyway.

Fixed `distribute' targets (except for the bsd.subdir.mk version) so that
they do not depend on _SUBDIR; `distribute' calls `install' which already
depends on _SUBDIR.

De-standardize `maninstall', otherwise manpages would be installed twice.
(To be revised later.)


95303 23-Apr-2002 ru

Provide the real `distribute' target so that NLS catalogs are
installed with `make release'.


95255 22-Apr-2002 ru

Prohibit the direct inclusion of bsd.dep.mk.


95254 22-Apr-2002 ru

Fixed _SUBDIR.

Obtained from: bsd.subdir.mk


95251 22-Apr-2002 ru

Make .asm transformation rules synonyms to the .s rules.


95216 21-Apr-2002 markm

Style. Fix long lines and a <tab> indent that should be 4 spaces.


95114 20-Apr-2002 obrien

reorg a little.


95064 19-Apr-2002 obrien

Add .asm as an alias for .s. .asm is common in contribed sources.

Helps with: gcc31 build.


95029 19-Apr-2002 ru

Style.


95028 19-Apr-2002 ru

Fix the type of .include.


95027 19-Apr-2002 ru

Fix the bsd.port.mk breakage caused by sys.mk,v 1.60 commit.

Submitted by: fenner


94987 18-Apr-2002 ru

Optimize for i486 better (-m486 is just another deprecated
synonym for -mcpu=i486).

PR: i386/37212
Submitted by: Matthias Andree <matthias.andree@web.de>
MFC after: 3 days


94986 18-Apr-2002 ru

Install bsd.init.mk.

Submitted by: "Peter S. Housel" <housel@acm.org>


94982 18-Apr-2002 ru

In rare cases, we might want to include bsd.own.mk directly.
So protect it from being included twice.


94954 17-Apr-2002 ru

${INSTALLFLAGS} aren't suitable for installing ${SCRIPTS} and ${FILES}.


94940 17-Apr-2002 ru

Don't include bsd.own.mk from sys.mk, this makes it impossible
to use ``.if defined()'' inside bsd.own.mk to test for defines
in individual makefiles. For example, setting DEBUG_FLAGS in
Makefile didn't take the desired effect on the STRIP assignment.

Added bsd.init.mk (like in NetBSD) that handles the inclusion
of ../Makefile.inc and bsd.own.mk from all bsd.*.mk files that
"build something".

Back out bsd.own.mk,v 1.15: moved OBJFORMAT initialization back
to sys.mk (several source tree makefiles want to check it early)
and removed MACHINE_ARCH initialization (it's hard to see from
looking at the commitlogs what the problem was at the time, but
now it serves no purpose).

Prohibit the direct inclusion of bsd.man.mk and bsd.libnames.mk.

Protect bsd.obj.mk from repetitive inclusion. Prohibiting the
direct inclusion of bsd.obj.mk might be a good idea too.


94924 17-Apr-2002 ru

Revert to the ordinary `:' dependency operator for `mainstall'.
Revision 1.7 had "maninstall::" inside a loop. Revision 1.36
unrolled the loop.

Reviewed by: bde


94922 17-Apr-2002 ru

Doh, previous revision made .depend to be almost always out of date.

Spotted by: bde

Fortunately, we have a powerful make(1). Apply some black magic to
make it DTRT. (Better viewed as diff to revision 1.30.)


94841 16-Apr-2002 ru

Don't spawn extra make(1) process to execute _EXTRADEPEND.


94768 15-Apr-2002 ru

Only pass our idea of `CC' down to mkdep(1) if it's non-default.


94747 15-Apr-2002 ru

Fix all-man to look into the SUBDIR subdirs as well.


94746 15-Apr-2002 ru

Added glue for the all-man and maninstall targets.


94714 15-Apr-2002 des

Add a dependency on libypclnt to libpam, in preperation for making pam_unix
use it to update NIS passwords.


94578 13-Apr-2002 des

Add libypclnt.


94518 12-Apr-2002 ru

Back out second part of the previous change. While this was
indeed a good change, I shouldn't have made it after testing
with the -DNOCLEAN buildworld. There are far too many users
of this misfeature under sys/boot/. I will reapply the change
after I fix these.

This change has been tested with the clean buildworld.


94501 12-Apr-2002 ru

Fixed the fatal breakage I introduced in the last commit.

Make the defined(SRCS) case similar to the !defined(SRCS)
case - only define ${PROG}: ${OBJS} if the ${PROG} target
does not exist. This has only one precedence in the entire
source tree, usr.bin/doscmd, and its Makefile is horribly
broken. I will temporarily unconnect it from build until
I'm working on the fix.


94497 12-Apr-2002 ru

Don't add -lstdc++ to LDADD, just let c++(1) link C++ programs.
Record the dependency on ${LIBSTDCPLUSPLUS} similar to ${LIBC}.

Suggested by: imp, obrien, peter


94424 11-Apr-2002 ru

Implement PROG_CXX for <bsd.prog.mk>.

Obtained from: NetBSD (with some mods)
Reviewed by: peter


94410 11-Apr-2002 ru

Really finish the removal of ${LDDESTDIR} in bsd.lib.mk,v 1.55.
bsd.lib.mk,v 1.101 only did that partly.


94332 10-Apr-2002 obrien

Add WARNS levels 5 and 6:
5 gives us -Wuninitialized rather than -Wno-uninitialized
6 gives us full BDECFLAGS


94280 09-Apr-2002 ru

Fixed broken dependency in lib/libpam/modules/pam_krb5.


94127 07-Apr-2002 ru

FreeBSD prior to 4.5-RELEASE and older versions of 5.0-CURRENT do not
have the __FBSDID() macro in <sys/cdefs.h>. Fix this once and for all
for tools that need to be bootstrapped.

PR: bin/36747
MFC after: 3 days
Prodded by: obrien


94113 07-Apr-2002 ru

Fixed the nasty bug where .depend file that exists somewhere in
the .PATH (but not in the ${.OBJDIR}) would result in a leak of
the ${OBJS}: ${SRCS:M*.h} dependency hint.

Spotted by: fixing the broken gnu/usr.bin/cc/cc1obj build
MFC after: 1 day


93351 28-Mar-2002 joe

Install libusbhid, and use it instead of libusb.

MFC after: 6 days


92980 22-Mar-2002 des

Install static and profiled libraries with -C.


92813 20-Mar-2002 ru

Make lint(1) a cross-tool.

(See commit log for usr.bin/xlint/Makefile,v 1.11 for what was wrong
with enabling build of lint libraries in rev. 1.12.)

This fixes cross-arch compiles (running binaries for a different arch
when generating lint.7 and lint libraries) and cross-branch compiles
(4.x -> 5.0 buildworld should be working again).


92648 19-Mar-2002 bde

Removed bogus env(1) commands. make(1) uses a real shell, so
"env name=value ... cmd ..." was just a pessimized way of doing
"name=value ... cmd ...". Note that make(1) can't optimize
either of these to an exec of env(1) or "cmd" even if the second
"..." is simple, since it can't tell that the shell metacharacter
in "name=value" is actually handled by env(1).


92553 18-Mar-2002 ru

lint the previous lint commit.

Reviewed by: markm


92546 18-Mar-2002 imp

__MAKE_CONF?=/etc/make.conf
Use this where we are now using /etc/make.conf.

This allows people to override the current default of always including
/etc/make.conf. Setting __MAKE_CONF to /dev/null disables it
completely, while setting it to something else allows one to override
what is on the system. This can be desirable in situations where a
machine has many users and some of them want different defaults, or
defaults appropriate to cross building to be different than those for
normal building.

Not objected to by: arch@


92491 17-Mar-2002 markm

Allow "make lint" to mostly work. Our sources are very unclean WRT
lint, so this is turned off by default. Setting WANT_LINT will turn
on generation of lint libraries for /usr/libdata/lint/*.ln.

Reviewd by: silence in -audit.


92361 15-Mar-2002 obrien

Pass our idea of `CC' down to mkdep.

Tested on: sparc64


92129 12-Mar-2002 obrien

Consistently use $PICFLAG.


92128 12-Mar-2002 obrien

Spell pic "PIC" for sparc64.


91632 04-Mar-2002 phantom

. Add support for making NLS links
. Target definitions tweaks


91628 04-Mar-2002 phantom

Slightly relax requirements to set per-file variables


91621 04-Mar-2002 phantom

Add basic infrastructure for building and installing Message Catalogs (NLS Catalogs)

Idea obtained from: NetBSD
Reviewed by: silence at -hackers


91011 21-Feb-2002 ru

Obviate the need to set the COMPILER_PATH and LIBRARY_PATH in Makefile.inc1
to pick up the correct cross-tools (the compiler executables and binutils)
and special linker files (crt*.o). This is now controlled by a single knob,
TOOLS_PREFIX, when building cross-tools.

Fixed regression in Makefile.inc1,v 1.203 (-nostdinc). This clobbered target
architecture's CFLAGS with building host's CPUTYPE setting in /etc/make.conf,
and had a nice but nasty side effect of exposing some (normally hidden) bugs
in system headers.

(Attempt to move the "-nostdinc -I..." part of CFLAGS into the new CINCLUDES
(modeled after a similar CXXINCLUDES) eventually failed because hard-coding
${WORLDTMP}/usr/include to be the first in the include list does not always
work, e.g. lib/libbind.)

Compensate the -nostdinc removal by making cpp(1) built in the cross-tools
stage to not look for <> header files in the building host's /usr/include
(already committed as gnu/usr.bin/cc/cc_tools/freebsd-native.h, revisions
1.10-1.12, STANDARD_INCLUDE_DIR).

: $ /usr/obj/usr/src/i386/usr/bin/cpp -v /dev/null
:
: Before:
:
: #include <...> search starts here:
: /usr/obj/usr/src/i386/usr/include
: /usr/include
: End of search list.
:
: After:
:
: #include <...> search starts here:
: /usr/obj/usr/src/i386/usr/include
: /usr/obj/usr/src/i386/usr/include

(Disabling the use of GCC_INCLUDE_DIR in the FREEBSD_NATIVE case would fix
the duplicate above.)

Get rid of the (now unneeded) -I${DESTDIR}/usr/include magic in bsd.prog.mk
and bsd.lib.mk. Finish the removal of LDDESTDIR in bsd.lib.mk,v 1.55 -- we
no longer have users of it.

The required changes to gcc were already committed as contrib/gcc.295/gcc.c,
revisions 1.23 and 1.24.

Basically, this allows for the changes above plus makes gcc(1) persistent
about path configuration, whether it's configured as a native or a cross
compiler:

: $ /usr/obj/usr/src/i386/usr/bin/cc -print-search-dirs
: install: /usr/obj/usr/src/i386/usr/libexec/(null)
: programs: /usr/obj/usr/src/i386/usr/libexec/elf/:/usr/obj/usr/src/i386/usr/libexec/
: libraries: /usr/obj/usr/src/i386/usr/lib/
:
: $ /usr/obj/alpha/usr/src/i386/usr/bin/cc -print-search-dirs
: install: /usr/obj/alpha/usr/src/i386/usr/libexec/(null)
: programs: /usr/obj/alpha/usr/src/i386/usr/libexec/elf/:/usr/obj/alpha/usr/src/i386/usr/libexec/
: libraries: /usr/obj/alpha/usr/src/i386/usr/lib/

Reviewed by: bde, obrien


90796 17-Feb-2002 gshapiro

Add two new libraries which are part of sendmail 8.12. libsm is used only
for building sendmail and the associated utilities. libmilter is a new
mail filtering API for sendmail.


90627 13-Feb-2002 phantom

Correct comment: mklocale(1) and NLS are absolutely independent


90626 13-Feb-2002 phantom

Correct NLSOWN and NLSGRP values.


90312 06-Feb-2002 ru

Neither .depend nor ${DEPENDFILE} depend on _SUBDIR.
(One step closer to _SUBDIR <-> _SUBDIRUSE merge.)


90311 06-Feb-2002 ru

Back out revision 1.23 (SUBDIR_CHANGE).

Not objected to by: bde, eivind


89705 23-Jan-2002 ru

Add pam_ssh support to the static PAM library, libpam.a:

- Spam /usr/lib some more by making libssh a standard library.
- Tweak ${LIBPAM} and ${MINUSLPAM}.
- Garbage collect unused libssh_pic.a.
- Add fake -lz dependency to secure/ makefiles needed for
dynamic linkage with -lssh.

Reviewed by: des, markm
Approved by: markm


89626 21-Jan-2002 des

Add the necessary dependencies and linker flags for linking with a
static PAM library that includes pam_ssh.

Sponsored by: DARPA, NAI Labs


88936 05-Jan-2002 dwmalone

Put -Wno-uninitialized at the end of the warns flags as it may be enabeled
by several flags (in this case -W and -Wall).

Reviewed by: bde


88142 18-Dec-2001 ru

Add LIBSMB.


88055 17-Dec-2001 ru

FILES support for bsd.prog.mk. See bsd.README for details.

Stolen from: NetBSD


88052 17-Dec-2001 ru

Removed a no-op FILES from bsd.doc.mk.


87976 15-Dec-2001 obrien

Add some granularity to the WARNS levels.
1: add -Werror
2: -Wall [only], as this is the most used warnings setting by developers
3: our old `1'
4: our old `2'


87307 03-Dec-2001 bde

Unbreak "make lint" for programs and "make llib-l${LIB}.ln" for
libraries a little by not passing all of ${CFLAGS} to lint. Pass
only options matching -[DIU]*. The important -nostdinc option can't
be passed like I first thought because lint misinterprets as
"-n -o stdinc". The unimportant -B* option can't be passed because
lint doesn't support it. Otherwise, we pass the same options as
to mkdep, exept for a bug in the latter: -U* is not passed. All
this depends on option args not being separated from option flags
by a space.


85570 27-Oct-2001 des

Support the "install.debug" and "reinstall.debug" targets for kernel modules.
Small tweaks to kldxref may be necessary to avoid the surprising (but harm-
less) behaviour of 'kldload foo' loading foo.ko.debug instead of foo.ko if
it is present in the kernel directory.

Approved by: a week of silence on -arch
MFC after: 2 weeks


84136 29-Sep-2001 ru

Fix cross-building, etc:

1. To cross-build, one now needs to set TARGET_ARCH, and not the
MACHINE_ARCH. MACHINE_ARCH should never be changed manually!

2. Initialize DESTDIR= explicitly for bootstrap-tools, build-tools,
and cross-tools stages. This fixes broken header and library
dependencies problem. We build them in the host environment,
and obviously want them to depend on host headers and libraries.
The problem with broken header dependencies for bootstrap-tools
and cross-tools was already partially solved (see BOOTSTRAPPING
tests in bsd.prog.mk and bsd.lib.mk), but it was still there for
build-tools if the user ran "make world DESTDIR=/foo". Also,
for all of these stages, the library dependencies were broken
because of how bsd.libnames.mk define DPADD members.

We still provide a glue to install bootstrap- and cross-tools
under the ${WORLDTMP}.

Removed PATH overrides for bootstrap-, build-, and cross-tools
stages. There is just no reason why we would need to override
it, and the hacks to clean up the ${WORLDTMP} in the -DNOCLEAN
case are no longer needed with fixes from this step.

That is, we now never use ${WORLDTMP} headers and libraries,
and we don't use any ${WORLDTMP} installed binaries during
these stages. Again, these stages depend solely on the host
environment, including compiler, headers, and libraries.

3. Moved "miniperl" back from cross-tools (it has nothing to do
with a cross-compiler) to build-tools where it belongs. The
change from step 1 let to do this. Also, to make this work,
build-tools targets of "cc_tools" and "miniperl" were modified
to call "depend". Here follow the detailed explanations.

There are two categories of build tools, for now. In the first
category there are "cc_tools" and "miniperl". They occupy the
whole (sub)directory, and nothing needs to be done in this
subdirectory later during the "all" stage. They are also
constructed using system makefiles. We must build the .depend
early in the build-tools stage because:

1) They use (and depend on) the host environment.

2) If we don't do this in build-tools, the "depend" stage of
buildworld will do this for us; wrong library and header
dependencies will be recorded (DESTDIR=${WORLDTMP}) and,
what's worse, the "all" stage may then clobber the
build-architecture format tools (that we built in the
build-tools stage) with the target-architecture format
ones, breaking cross build.

In the second category there are all other build-tools. They
share their directory with the "main" module that needs them
in the "all" stage, and they don't show up themselves in the
.depend file. The portion of this fix was already committed
in gnu/usr.bin/cc/cc_tools/Makefile,v 1.52.

4. "libperl" is no longer a build tool, and "miniperl" is the
stand-alone application. I had to make this change because
build-tools and "all" stages share the same object directory.
Without this change, if we cross compile, libperl.a is first
built for the build architecture during the build-tools stage
(for the purposes of immediate linkage with "miniperl").
Later on, the "all" stage sees this library as up-to-date,
and doesn't rebuild it. The effect is that the wrong format
static libperl library is installed with installworld.

5. Fixed "includes" to install secure/lib/libtelnet headers if
required.

Reviewed by: bde


83762 21-Sep-2001 ru

When bootstrapping (build-tools and cross-tools), avoid
including the ${WORLDTMP}/usr/include headers that may
not match the installed host libraries.

This should fix the 20010919 UPDATING entry.


83277 10-Sep-2001 peter

This will have to be revised, but allow putting 'makeoptions GCC3=true'
in a kernel config file. This should minimize the tearing-out-hair process
while updating the kernel for gcc-3 compliance.


83080 05-Sep-2001 ru

There is a better way to suppress groff(1) output.

Submitted by: okazaki


83075 05-Sep-2001 ru

Implement the `manlint' target, for minimal validity checking of
the manual pages. Mostly useful with mdoc(7) formatted manuals.

Requested by: murray


82650 31-Aug-2001 alex

Final way: Don't include /etc/defaults/make.conf at all. It wasn't
supposed to be edited by the user and didn't define important things,
thus we can just skip it (that's where it differs from the make.conf.local
change).

Submitted by: ru


82648 31-Aug-2001 alex

Don't .error, if /etc/defaults/make.conf exists. This breaks -CURRENT
buildworlds on a -STABLE machine.

Reminded by: ru


82604 30-Aug-2001 alex

Move /etc/defaults/make.conf to /usr/share/examples/etc/make.conf as
discussed on the arch@ mailinglist (after repo-copy).

sys.mk will .error if it finds /etc/defaults/make.conf but include
it anyways (this is the same behaviour as with the make.conf.local
removal).

/usr/share/examples/etc/make.conf has BDEFLAGS commented out now,
since it's only an example file.

Adjust all textes that talk about make.conf or defaults/make.conf to
match the new situation.


82489 29-Aug-2001 bde

Fixed world breakage in ftpd, rshd, login, su, telnetd and telnet. LIBPAM
and MINUSLPAM must be kept in sync with the libraries linked to by libpam
to support static linkage.

Moved libmd to the end of LIBPAM and MINUSLPAM. It was before libopie,
but libopie references it, so static linkage only worked accidentally.


82486 29-Aug-2001 bde

Removed some garbage (LIBGMP, LIBSKEY). Using LIBSKEY in LIBPAM should
have been fatal since it gave a dependency on a nonexistent file, but it
worked because of an undocumented bugfeature in make(1): missing source
files named *.a are silently assumed to be up to date.

Fixed some style bugs (formatting).


81921 19-Aug-2001 kris

Zap LIBSS


80115 22-Jul-2001 assar

revert previous accidental commit


80114 22-Jul-2001 assar

get rid of some printf and pointer type warnings


79613 12-Jul-2001 ru

Always preprocess manpages with tbl(1).


79495 09-Jul-2001 obrien

Add LIBBZ2.


78347 16-Jun-2001 obrien

Add the ".FreeBSD" symbol so we can do things like ".if define(.FreeBSD)"
in Makefile's shared with NetBSD.


78203 14-Jun-2001 ru

Style nits:

GBINDIR -> ORIGBINDIR
GBINGRP -> ORIGBINGRP

Submitted by: bde


78174 13-Jun-2001 ru

Games ownership cleanup.

Urged by: bde


77866 07-Jun-2001 markm

Clean up the PAM lib lists. Particularly relevant to the KRB5 case.


77818 06-Jun-2001 obrien

Add the single suffix rules for FORTRAN.


77817 06-Jun-2001 obrien

Add the single suffix rules for C++.
(While there, I also moved the single suffix C rules beside the double
suffix ones so they are easier to find)

PR: 24438
Submitted by: Georg-W. Koltermann <gwk@sgi.com>


77527 31-May-2001 ru

Change the ownership of the symbolic link for hidden game
rather than /usr/games/dm wrapper.

Spotted by: bde
Reviewed by: bde


77470 30-May-2001 ru

Do not clobber COPY, it may be set differently in /etc/make.conf.

This is not the problem for NOMANCOMPRESS, as install(1) does not
delete the originals anymore (-c is the default now).


76896 20-May-2001 ru

Fixed `objwarn' so that it doesn't issue spurious warnings,
especially now that ${.OBJDIR} is canonicalized by make(1).

Urged by: bde
Reviewed by: bde


76863 19-May-2001 kris

Only add -Werror if in fact we have set WARNS or WFORMAT to >0


76861 19-May-2001 kris

Bring in the WARNS directive from NetBSD, localized in a new bsd.sys.mk
to avoid polluting sys.mk. This directive controls the addition of
compiler warning flags to CFLAGS in a relatively compiler-neutral manner.

The idea is that WARNS can be set in Makefile.inc or in individual
Makefiles as they become clean, to prevent the introduction of new
warnings in the code. -Werror is added by default


76576 14-May-2001 markm

Kerberos updates for PAM.


76515 12-May-2001 bde

Fixed some bitrot:
- the changes that renamed libf2c to libg2c had not reached here
- there were no definitions for LIBDEVINFO, LIBMENU, LIBPANEL, LIBTINFO,
LIBUSB or LIBVGL. LIBUSB was used without it being defined, and
LIBDEVINFO and LIBVGL should have been used.
- the definitions of LIBDESCRYPT, LIBGCC_PIC, LIBGPLUSPLUS, LIBKZHEAD,
LIBKZTAIL, LIBSCRYPT and LIBSCSI were garbage.

Fixed some old bugs:
- LIBC_PIC and LIBCOM_ERR were assigned to using "=" instead of "?=".
- the definition of LIBC_R was disordered.
- LIBFORM was misspelled LIBFORMS (but not actually used).


76106 28-Apr-2001 markm

Cleaner method of making PAMable apps static (in the optional case of
wanting static apps).


76021 26-Apr-2001 ru

... and do it make(1) way.


75867 23-Apr-2001 ru

Fix the fix in rev.1.34.

Makes `cleandir' DTRT if MAKEOBJDIRPREFIX set and not empty,
like in `buildworld' case.


75713 19-Apr-2001 asmodai

Who ever came up with the ${CFLAGS} need to be passed to lint?

We can now run make lint on src/bin at least.

I am sure Mark Murray has way more interesting fixes up his sleeve.


75655 18-Apr-2001 ru

Add missing -mtty-char for MANBUILDCAT.


75284 07-Apr-2001 ru

Introduce SCRIPTS for bsd.prog.mk. See bsd.README for details.
Idea stolen from NetBSD.

Reviewed by: bde


75234 05-Apr-2001 jedgar

Remove the recently-depricated LIBPOSIX1E


75083 02-Apr-2001 ru

Introduce ${PROGNAME}, the name that the program will be installed as,
if different from ${PROG}. (The name PROGNAME was stolen from NetBSD.)

Reviewed by: bde


74942 28-Mar-2001 ru

- Document recent MAN[1-9] -> MAN changes.
- Backout part of revision 1.4 (../Makefile.inc -> bsd.inc.mk change).


74941 28-Mar-2001 ru

Define MAN to ${PROG}.1 if no manpages were specified, but still
provide MAN1 for backwards compatibility. Third party software
may still have dependancy lines of this form:

${MAN1}: foo.man


74939 28-Mar-2001 ru

- Removed `n' from the list of manpage sections.

- Only support the old syntax for manpage declarations
(MAN1...MAN9) if no MAN is defined.


74928 28-Mar-2001 ru

Bye-bye /usr/lib/libtelnet.a. This should fix ``make release'' brokeness.

Approved by: markm


74842 27-Mar-2001 ru

Make it possible to build manpages for the entire source tree.


74840 27-Mar-2001 ken

Rewrite of the CAM error recovery code.

Some of the major changes include:

- The SCSI error handling portion of cam_periph_error() has
been broken out into a number of subfunctions to better
modularize the code that handles the hierarchy of SCSI errors.
As a result, the code is now much easier to read.

- String handling and error printing has been significantly
revamped. We now use sbufs to do string formatting instead
of using printfs (for the kernel) and snprintf/strncat (for
userland) as before.

There is a new catchall error printing routine,
cam_error_print() and its string-based counterpart,
cam_error_string() that allow the kernel and userland
applications to pass in a CCB and have errors printed out
properly, whether or not they're SCSI errors. Among other
things, this helped eliminate a fair amount of duplicate code
in camcontrol.

We now print out more information than before, including
the CAM status and SCSI status and the error recovery action
taken to remedy the problem.

- sbufs are now available in userland, via libsbuf. This
change was necessary since most of the error printing code
is shared between libcam and the kernel.

- A new transfer settings interface is included in this checkin.
This code is #ifdef'ed out, and is primarily intended to aid
discussion with HBA driver authors on the final form the
interface should take. There is example code in the ahc(4)
driver that implements the HBA driver side of the new
interface. The new transfer settings code won't be enabled
until we're ready to switch all HBA drivers over to the new
interface.

src/Makefile.inc1,
lib/Makefile: Add libsbuf. It must be built before libcam,
since libcam uses sbuf routines.

libcam/Makefile: libcam now depends on libsbuf.

libsbuf/Makefile: Add a makefile for libsbuf. This pulls in the
sbuf sources from sys/kern.

bsd.libnames.mk: Add LIBSBUF.

camcontrol/Makefile: Add -lsbuf. Since camcontrol is statically
linked, we can't depend on the dynamic linker
to pull in libsbuf.

camcontrol.c: Use cam_error_print() instead of checking for
CAM_SCSI_STATUS_ERROR on every failed CCB.

sbuf.9: Change the prototypes for sbuf_cat() and
sbuf_cpy() so that the source string is now a
const char *. This is more in line wth the
standard system string functions, and helps
eliminate warnings when dealing with a const
source buffer.

Fix a typo.

cam.c: Add description strings for the various CAM
error status values, as well as routines to
look up those strings.

Add new cam_error_string() and
cam_error_print() routines for userland and
the kernel.

cam.h: Add a new CAM flag, CAM_RETRY_SELTO.

Add enumerated types for the various options
available with cam_error_print() and
cam_error_string().

cam_ccb.h: Add new transfer negotiation structures/types.

Change inq_len in the ccb_getdev structure to
be "reserved". This field has never been
filled in, and will be removed when we next
bump the CAM version.

cam_debug.h: Fix typo.

cam_periph.c: Modularize cam_periph_error(). The SCSI error
handling part of cam_periph_error() is now
in camperiphscsistatuserror() and
camperiphscsisenseerror().

In cam_periph_lock(), increase the reference
count on the periph while we wait for our lock
attempt to succeed so that the periph won't go
away while we're sleeping.

cam_xpt.c: Add new transfer negotiation code. (ifdefed
out)

Add a new function, xpt_path_string(). This
is a string/sbuf analog to xpt_print_path().

scsi_all.c: Revamp string handing and error printing code.
We now use sbufs for much of the string
formatting code. More of that code is shared
between userland the kernel.

scsi_all.h: Get rid of SS_TURSTART, it wasn't terribly
useful in the first place.

Add a new error action, SS_REQSENSE. (Send a
request sense and then retry the command.)
This is useful when the controller hasn't
performed autosense for some reason.

Change the default actions around a bit.

scsi_cd.c,
scsi_da.c,
scsi_pt.c,
scsi_ses.c: SF_RETRY_SELTO -> CAM_RETRY_SELTO. Selection
timeouts shouldn't be covered by a sense flag.

scsi_pass.[ch]: SF_RETRY_SELTO -> CAM_RETRY_SELTO.

Get rid of the last vestiges of a read/write
interface.

libkern/bsearch.c,
sys/libkern.h,
conf/files: Add bsearch.c, which is needed for some of the
new table lookup routines.

aic7xxx_freebsd.c: Define AHC_NEW_TRAN_SETTINGS if
CAM_NEW_TRAN_CODE is defined.

sbuf.h,
subr_sbuf.c: Add the appropriate #ifdefs so sbufs can
compile and run in userland.

Change sbuf_printf() to use vsnprintf()
instead of kvprintf(), which is only available
in the kernel.

Change the source string for sbuf_cpy() and
sbuf_cat() to be a const char *.

Add __BEGIN_DECLS and __END_DECLS around
function prototypes since they're now exported
to userland.

kdump/mkioctls: Include stdio.h before cam.h since cam.h now
includes a function with a FILE * argument.

Submitted by: gibbs (mostly)
Reviewed by: jdp, marcel (libsbuf makefile changes)
Reviewed by: des (sbuf changes)
Reviewed by: ken


74817 26-Mar-2001 ru

Backout botched attempt to introduce MANSECT feature; it
doesn't work in "developer" mode (single module checkout).


74806 26-Mar-2001 ru

Removed _MANPAGES, MANDEPEND and MANSRC.

Added MAN which will eventually replace MAN[0-9] and MAN1aout.
For now, the old syntax is still supported.

Reviewed by: bde


74805 26-Mar-2001 ru

Do not depend on ``all-man'' if -DNOMAN.


74553 21-Mar-2001 kris

Pentium II's do not support SSE, that came in with the PIII

Submitted by: sf


74535 20-Mar-2001 des

List libfetch.

Submitted by: bde


74527 20-Mar-2001 ru

If the MANSECT variable is specified, it will override the default
manual section. If, for example, MANSECT is set to 8, the default
MAN1=${PROG}.1 feature of bsd.prog.mk becomes MAN8=${PROG}.8.
Useful for games, libexec, sbin and usr.sbin subtrees.

Reviewed by: bde


74504 20-Mar-2001 jedgar

Add LIBPOSIX1E


74146 12-Mar-2001 kris

Use CPUTYPE to add appropriate compiler flags to COPTFLAGS for kernel
builds. This may be disabled using the NO_CPU_COPTFLAGS variable.

Reviewed by: arch


74069 10-Mar-2001 sobomax

AMD K6/K6-2/Duron/Athlon CPUs support MMX too.

Missed by: kris


73145 27-Feb-2001 kris

Add definitions and support for the AMD k6-2, Pentium MMX (i586/MMX),
and Pentium II, III and IV processors (p2, p3, p4), as well as 'mmx' and
'3dnow' MACHINE_CPU tags as appropriate. In the near future this will
be used to control various ports which have MMX/3dNow optimizations,
instead of the ad-hoc methods currently used.

Reviewed by: peter


72942 23-Feb-2001 ru

Make ``groff -man'' work again for both man(7) and mdoc(7) manpages.
The new Groff release will support this feature.

Requested by: peter


72880 22-Feb-2001 kris

Overhaul the MACHINE_CPU behaviour:

* Rip out MACHINE_CPU stuff from sys.mk and include a new <bsd.cpu.mk>
after we pull in /etc/make.conf. We need to do it afterwards so we can
react to the user setting of the:

* CPUTYPE variable, which contains the CPU type which the user wants to
optimize for. For example, if you want your binaries to only run on an
i686-class machine (or higher), set this to i686. If you want to support
running binaries on a variety of CPU generations, set this to the lowest
common denominator. Supported values are listed in make.conf.

* bsd.cpu.mk does the expansion of CPUTYPE into MACHINE_CPU using the
(hopefully) correct unordered list of CPU types which should be used on
that CPU. For example, an AMD k6 CPU wants any of the following:
k6 k5 i586 i486 i386
This is still an unordered list so the client makefile logic is simple -
client makefiles need to test for the various elements of the set in
decreasing order of priority using ${MACHINE_CPU:M<foo>}, as before.
The various MACHINE_CPU lists are believed to be correct, but should be
checked.

* If NO_CPU_CFLAGS is not defined, add relevant gcc compiler optimization
settings by default (e.g. -karch=k6 for CPUTYPE=k6, etc). Release
builders and developers of third-party software need to make sure not to
enable CPU-specific optimization when generating code intended to be
portable. We probably need to move to an /etc/world.conf to allow the
optimization stuff to be applied separately to world/kernel and external
compilations, but it's not any worse a problem than it was before.

* Add coverage for the ia64/itanium MACHINE_ARCH/CPUTYPE.

* Add CPUTYPE support for all of the CPU types supported by FreeBSD and gcc
(only i386, alpha and ia64 first, since those are the minimally-working
ports. Other architecture porters, please feel free to add the relevant
gunk for your platform).

Reviewed by: jhb, obrien


72878 22-Feb-2001 kris

Overhaul the MACHINE_CPU behaviour:

* Rip out MACHINE_CPU stuff from sys.mk and include a new <bsd.cpu.mk>
after we pull in /etc/make.conf. We need to do it afterwards so we can
react to the user setting of the:

* CPUTYPE variable, which contains the CPU type which the user wants to
optimize for. For example, if you want your binaries to only run on an
i686-class machine (or higher), set this to i686. If you want to support
running binaries on a variety of CPU generations, set this to the lowest
common denominator. Supported values are listed in make.conf.

* bsd.cpu.mk does the expansion of CPUTYPE into MACHINE_CPU using the
(hopefully) correct unordered list of CPU types which should be used on
that CPU. For example, an AMD k6 CPU wants any of the following:
k6 k5 i586 i486 i386
This is still an unordered list so the client makefile logic is simple -
client makefiles need to test for the various elements of the set in
decreasing order of priority using ${MACHINE_CPU:M<foo>}, as before.
The various MACHINE_CPU lists are believed to be correct, but should be
checked.

* If NO_CPU_CFLAGS is not defined, add relevant gcc compiler optimization
settings by default (e.g. -karch=k6 for CPUTYPE=k6, etc). Release
builders and developers of third-party software need to make sure not to
enable CPU-specific optimization when generating code intended to be
portable. We probably need to move to an /etc/world.conf to allow the
optimization stuff to be applied separately to world/kernel and external
compilations, but it's not any worse a problem than it was before.

* Add coverage for the ia64/itanium MACHINE_ARCH/CPUTYPE.

* Add CPUTYPE support for all of the CPU types supported by FreeBSD and gcc
(only i386, alpha and ia64 first, since those are the minimally-working
ports. Other architecture porters, please feel free to add the relevant
gunk for your platform).

Reviewed by: jhb, obrien


72751 20-Feb-2001 kris

Turns out we do need to do bootstrapping of MACHINE_CPU here: make(1) won't
set the variable until you rebuild it, and the alternative is to be stuck
playing games with ``.if defined(MACHINE_CPU) && ... '' for all eternity.
We now set up the reasonable default for i386 and alpha here -- given this
it probably makes sense to remove the corresponding code from make(1).


72719 19-Feb-2001 kris

Remove bogus setting of MACHINE_CPU here. There is no need for it.

Submitted by: bde


72679 19-Feb-2001 kris

Introduce support for using OpenSSL ASM optimizations. This is done
through the use of a new build directive, MACHINE_CPU, which contains a
list of the CPU generations/features for which optimizations are desired.
This feature will be extended to cover the ports tree in the future.

Currently OpenSSL provides optimizations for i386, i586 and i686-class
CPUs. Currently it has not been tested on an i386 or i486.

Teach make(1) to provide sensible defaults for MACHINE_CPU if it is not
defined (namely, the lowest common denominator CPU we support for each
architecture). Currently this is i386 for the i386 architecture and ev4
for the alpha. sys.mk also sets the variable as a last resort for
consistency with MACHINE_ARCH and bootstrapping from very old versions of
make.

Benchmarks show a significant speed increase even in the i386 case, with
additional improvements for i586 and i686 systems. For maximum performance
define MACHINE_CPU=i686 i586 i386 in /etc/make.conf.

Based on a patch submitted by: Mike Silbersack <silby@silby.com>
Reviewed by: current


72649 18-Feb-2001 kris

Zap LIBTCL, it's been superfluous for several years.


70459 29-Dec-2000 peter

Add $FreeBSD$


69775 08-Dec-2000 jasone

Do not check for existence of ${_dir}/kern/ , because for modules that set
.PATH to ${.CURDIR}/[...]/kern , the "exists" expression will fail for the
form exists(${.CURDIR}/[...]/kern/). This appears to be happening because
make is searching for the argument to "exists" by using .PATH rather than a
relative search, because .PATH and the argument match at the beginning.
Additionally, make appears to consider a path that starts with ${.CURDIR}
as relative, even though it expands to an absolute path.

The reason that most people aren't seeing this problem is that the absolute
paths of /usr/src/sys and /sys are also searched, so as long as the kernel
source can be found in at least one of those places, no problems surface.
This problem was inadvertently introduced on 1 December 2000, with the
addition of the sysvipc modules.


69679 06-Dec-2000 ru

Install the stock (as supplied by groff(1) distribution) tmac.an
and tmac.andoc files. The man(1), catman(1) and bsd.man.mk have
been modified to call groff(1) with -mandoc argument.


69634 05-Dec-2000 ru

groff does not use MANDEPEND anymore.


69227 26-Nov-2000 brian

Add ${LIBC_R}


68151 01-Nov-2000 obrien

Use test -z rather than -n.

Submitted by: bde


67523 24-Oct-2000 archie

Build the ISC library as libisc. This library comes as part of the
bind distribution, but until now was not being built as a separate
entity. For documentation, see these man pages:

assertions(3), eventlib(3), heap(3), logging(3), memcluster(3), tree(3).

Reviewed by: jdp


67229 16-Oct-2000 dfr

Add section for building ia64 kernels.


66913 10-Oct-2000 gshapiro

Remove LIBRSAGLUE, add LIBSSL

Reviewed by: kris


66534 02-Oct-2000 peter

Change "building the standard ${LIB} library" to "building the static
${LIB} library". "standard" tends to imply the one that is normally
used... but by default it is not the case - the .so would be the
"standard" library. Therefore, change this to 'static'. Another option
might be "conventional ${LIB} library".


65916 16-Sep-2000 ache

Replace ${LIBMYTINFO} with warning


65501 05-Sep-2000 obrien

The kernel is now known as `kernel.ko' and it and its matching modules
live in ``/boot/kernel/''.


64843 19-Aug-2000 markm

Fix the arguments to [(1) (AKA test(1)). If the string being tested
by -n is nonexistant, then the following -d was misinterpreted with
a strange error. By putting double quotes (") around the argument,
we can be sure there is _something_ there that we can check a zero
length against.


64784 17-Aug-2000 sheldonh

The previous delta was wrong; an empty MAKEOBJDIRPREFIX should
cause the working directory to be used. Make it so.

When we're more convinced that it'll work, we might try this
to avoid a shell invocation:

.if defined(MAKEOBJDIRPREFIX) && !empty(MAKEOBJDIRPREFIX) &&
exists(${CANONICALOBJDIR}/)

Reported by: bde


64712 16-Aug-2000 sheldonh

Do not allow the cleandir target to blow away the entire source
directory when MAKEOBJDIRPREFIX is defined but empty.

Reported by: Vernon Schryver <vjs@calcite.rhyolite.com>


62748 07-Jul-2000 imp

Add ${.CURDIR}/../../../.. to the list of places we look for the
kernel. The new moudles/sound/drivers/foo pushes us down one more
level.


61462 09-Jun-2000 ghelmer

NONBINMODE -> NOBINMODE for NLSMODE.

PR: bin/8811
Submitted by: Naohiko Tsuji <yakisoba@osaka.interq.or.jp>
Prompted by: Nathan Ahlstrom <nrahlstr@winternet.com>


61423 08-Jun-2000 bde

When dubiously reprogramming .SUFFIXES, don't screw up the order of .S
relative to .s. This fixes wrong sources being preferred after
"gcc -save-temps" creates .s files from .S files.


60965 27-May-2000 peter

Sigh. Use the correct path to bsd.conf.mk. It's times like this that I
regret giving up coffee.


60964 27-May-2000 peter

Add bsd.kmod.mk back.


60963 27-May-2000 peter

Revive a skeleton for bsd.kmod.mk (which will be in the make search path)
that merely locates and includes sys/conf/kmod.mk.


60749 21-May-2000 hoek

Typo in comments explaining what MAN_FILTER is.


60597 15-May-2000 bde

Don't create a garbage file named "install" for the NOINFO case when
there happens to be a source file named install.sh. The null rule
for "install" in the NOINFO case must not be completely null, since
then it may be overridden by the implicit .sh rule.


59993 04-May-2000 peter

Oops. I forgot to remove bsd.kmod.mk from the list of files installed. :-(

Submitted by: Scott Flatman <sf@aracnet.com>


59952 04-May-2000 peter

Repocopied to src/sys/conf/kmod.mk


59858 01-May-2000 peter

Remove KMODDEPS support. All our existing dependencies are specified
via the MODULE_VERSION() and MODULE_DEPEND() macros that both the loader
and kld system know how to deal with. The old DT_NEEDED tag is still
supported by the loader (and will remain supported for a while) - but the
kernel side presently doesn't know how to deal with DT_NEEDED.


59770 30-Apr-2000 bde

Fixed world breakage for the NOSHARED=yes case. libpam now depends on
libopie.

Don't say that libpam.a doesn't exist.


59722 28-Apr-2000 dfr

Reserve register t7 on alpha to point at per-cpu global variables.


59582 24-Apr-2000 mpp

Fix the grammar in my previous commit "lose" -> "loss".
I should have done it that way in the first place.

Pointed-out-by: bde


59557 23-Apr-2000 mpp

Fix a typo in the comments.

Submitted by: Allen Campbell <allenc@verinet.com>


59474 21-Apr-2000 kris

Correct a typo


59097 08-Apr-2000 imp

Add support for compiling kernel modules outside of the tree. If you
do not have the kernel you wish to compile against in either
/usr/src/sys or /sys, then you will need to set SYSDIR to point to the
sys directory of the source tree that contians the source.

Also, minor tweaks to the load/unload targets from Bruce.

I've had this through several make worlds, as well as using it on a
daily basis for the past couple of weeks to build modules needed for
testing at Timing Solutions.

Reviewed and revised by: bde
Work sponsored by: Timing Solutions


59094 08-Apr-2000 dfr

Use makeobjops.pl instead of makedevops.pl.


59032 05-Apr-2000 dfr

Allow the calling Makefile to specify a list of device interfaces instead
of relying on the default list provided here.


58494 23-Mar-2000 ru

Correct instructions/examples about manual pages.


58493 23-Mar-2000 ru

Check for MAN9 for consistency.


58321 20-Mar-2000 peter

Use an intermediate file containing the module binary before converting
it into a ``shared'' .ko file. This intermediate file can be directly
linked into a static kernel. This isn't all that useful yet but will
become much more interesting shortly.


57538 27-Feb-2000 shin

Add libipsec.

Approved by: jkh


57461 24-Feb-2000 markm

We have some new libraries; give them names.


56971 03-Feb-2000 ru

Unbroke PRECIOUSLIB feature (broken in rev 1.88).

Original version submitted by: Jim Bloom <bloom@acm.org>
Reviewed by: bde
Approved by: jkh


56735 28-Jan-2000 bde

Add ${DEBUG_FLAGS} to CFLAGS in bsd.kmod.mk, not in scattered module
makefiles. Bad examples in fxp/Makefile keep getting copied to new
makefiles.


56537 24-Jan-2000 ru

o Use --defsection and --defentry options of install-info(1) instead of
"fancy substitutions".
o Invoke install-info(1) with --quiet to automatically remove duplicate
Info dir entries.

Reviewed by: bde


56464 23-Jan-2000 peter

oops, nearly forgot to commit the addition of ppbus_if.m to the list.


55954 14-Jan-2000 rgrimes

Introduce the new mk internal target _includeinstall and add the
controlling knob defaults INCOWN, INCGRP, INCMODE, and INCDIR.

Reviewed by: marcel, and make world


55670 09-Jan-2000 bde

Removed NOEXTRADEPEND hack. This was only for an old version of makeworld.


55624 08-Jan-2000 bde

Add "-I@/../include" and/or "-I${DESTDIR}/usr/include" to CFLAGS,
essentially as in kernel makefiles, so that module sources can include
<stddef.h> and other standard headers. Only add the second path when
the first path can't be found, instead of when DESTDIR is defined.
Adding it used to be just an obfuscation.

Use "${.OBJDIR}" instyead of "." in -I paths. Using "${.OBJDIR}" just
gave more verbose command lines and depend files.


55337 03-Jan-2000 marcel

Fix typo.

Submitted by: Richard Wackerbarth <rkw@dataplex.net>


55206 29-Dec-1999 peter

Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot). This is consistant with the other
BSD's who made this change quite some time ago. More commits to come.


55157 27-Dec-1999 bde

Fixed breakage of static linkage of rlogind. Someone added -lutil and
-lcom_err to some libpam modules without updating LIBPAM here.


54978 22-Dec-1999 peter

Update vnode_if.sh location. This was deliberately left a while after
the repo copy as the kernel src/sys/modules stuff uses
/usr/share/mk/bsd.kmod.mk which often gets out of sync with the kernel
source.


54501 12-Dec-1999 peter

Use the -c and -h args of vnode_if.sh to generate only the .h file that
we use. The .c half is statically compiled into the kernel. It's kinda
silly to generate a .h file on the fly that has inlines to call the
.c stuff when the .c code is fixed.

Also, zap the special treatment for VFS_KLD modules. This treatment
applies to lots of things, not just VFS's.


53965 30-Nov-1999 mharo

If SRCS is not defined assume ${PROG}.c, not when PROG isn't defined.


53848 28-Nov-1999 imp

Add two modules for the pccard work: dev/pccard/card_if.m and
dev/pccard/power_if.m.

XXX There has got to be a better way to deal with this.


53843 28-Nov-1999 bde

Build and clean device interface files (foo_if.[ch]) and empty options
files (opt_*.h) automatically (if they are in ${SRCS}).

Clean vnode_if.[ch] automatically (if one of them is in ${SRCS}, not just
if VFS_KLD is defined).

There are some complications to avoid using the "@" symlink before it
is built.


53638 23-Nov-1999 marcel

Add .ORDER which is needed for the previous commit to work with -jN.

Pointed out by: bde


53628 23-Nov-1999 marcel

vnode_if.sh makes both vnode_if.c and vnode_if.h. Add vnode_if.c to
the LHS of the rule for vnode_if.h. This solves a "dunno how to make"
error.


53265 17-Nov-1999 obrien

Make "-mpreferred-stack-boundary=2" the default on the i386.
This reduces the size of the kernel and modules when compiled with GCC 2.95.


53152 14-Nov-1999 marcel

${MACHINE} -> ${MACHINE_ARCH}

All Makefiles now use MACHINE_ARCH for the target architecture.
Unification is required for cross-building.

Tags added to:
sys/boot/Makefile
sys/boot/arc/loader/Makefile
sys/kern/Makefile
usr.bin/cpp/Makefile
usr.bin/gcore/Makefile
usr.bin/truss/Makefile

usr.bin/gcore/Makefile:
fixed typo: MACHINDE -> MACHINE_ARCH


53033 09-Nov-1999 phantom

Fix comments: LKM -> KLD, /etc/objectformat -> /etc/objformat


52572 27-Oct-1999 dillon

make.conf is being made to conform to the /etc/defaults/ standard that
was settled on a few months ago.

Approved by: "Jordan K. Hubbard" <jkh@zippy.cdrom.com>


52419 21-Oct-1999 julian

Whistle's Netgraph link-layer (sometimes more) networking infrastructure.
Been in production for 3 years now. Gives Instant Frame relay to if_sr
and if_ar drivers, and PPPOE support soon. See:
ftp://ftp.whistle.com/pub/archie/netgraph/index.html
for on-line manual pages.

Reviewed by: Doug Rabson (dfr@freebsd.org)
Obtained from: Whistle CVS tree


52251 15-Oct-1999 bp

Add libncp to the list of known libraries.


51034 06-Sep-1999 n_hibma

1) s/mod(un)?load/kld$1load/

2) s/MODLOAD/KMODLOAD/ to be consistent with the rest of the variables
(KMOD, KMODOWN, KMODGRP, etc) and definition of MODLOAD/UNLOAD in the
Makefile of the ATAPI module

3) textual fixups


50476 28-Aug-1999 peter

$Id$ -> $FreeBSD$


49328 31-Jul-1999 hoek

Add variable INSTALLFLAGS_EDIT used to remove arbitrary INSTALLFLAGS.

Specifically intended for removing -fschg ("INSTALLFLAGS_EDIT=:S/schg/uchg/")
this makes the NOFSCHG flag redundant. NOFSCHG will still be honoured by
bsd.lib.mk but is valid for buildworld only. NOFSCHG is still implemented in
the old way (ie. _not_ ".if NOFSCHG then { INSTALLFLAGS_EDIT+=:S/schg/,/ }"
to emphasize the fact that NOFSCHG is only supported in a limited
fashion and for buildworld.

The interface and implementation are such that future use of flags such
as sappnd can also be easily removed or altered (perhaps to uappnd).

This commit brought to you by the letters B, D, and E, and the numbers six,
one, thirteen, and three.


48204 24-Jun-1999 jmg

add support to buildworld as a normal user:
-DNOFSCHG disables installation of libs with flag schg
GAMEGRP change the group with which games are installed

also organize the binary section into alphebetical order some what..


47570 28-May-1999 ache

add libhistory


46541 06-May-1999 bde

"Fixed" missing dependency of ${PROG} on ${LIBC} in the elf case.


45961 23-Apr-1999 peter

s/lkm(4)/kld(4)/


45873 20-Apr-1999 peter

Clean out most of the LKM stuff, the build support left a little while ago.


45870 20-Apr-1999 peter

Default KMODDIR = /modules now, not /lkm


45696 15-Apr-1999 obrien

Create /var/db/port.mkversion rather than /var/db/pkg/.mkversion to be in
sync with bsd.port.mk rev 1.309.

Submitted by: make world


45204 31-Mar-1999 asami

Add ${DESTDIR} to installation path. Move target to under beforeinstall:.

Submitted by: bde


45197 31-Mar-1999 sada

I'm sorry, this was already fixed in etc/mtree/BSD.var.dist.
Submitted by: asami@FreeBSD.ORG


45183 31-Mar-1999 sada

Sometimes we have to make `/var/db/pkg' directory before we create
`.mkversion' :)
Submitted by: YAMAMOTO Shigeru <shigeru@bremen.or.jp>


45124 29-Mar-1999 asami

Create /var/db/pkg/.mkversion file with datestamp.


44946 23-Mar-1999 bde

Removed all traces of LN_FLAGS. It was only used to produce a link
/usr/sbin/sysctl -> ${DESTDIR}/sbin/sysctl in some versions of 2.2,
and this link was broken if DESTDIR was set.

Added a SYMLINKS macro. This works the same as LINKS, except it
creates symlinks and the linked-to pathname may be relative. This
is more flexible than LN_FLAGS, since it supports installing
symlinks independently of hard links.

Use `ln -f[s] ...' instead of `rm -f ...; ln [-s] ...' for LINKS and
SYMLINKS. This is equivalent if the target is neither a directory nor
a symlink to a directory.

PR: 8279


44922 21-Mar-1999 bde

Restored objlink. The previous commit was confused about the difference
between OBJLINK and objlink.


44757 14-Mar-1999 markm

New names for the list; the DES crypt and libwrap for tcp_wrappers.


44755 14-Mar-1999 markm

Bitrot. Remove objlink as it is not pleasant to be downwind.

PR: 8071
Reviewed by: Sheldon Hearn <sheldonh@iafrica.com>


43430 30-Jan-1999 bde

Rewrote the changes in rev.1.53. Don't ignore errors from makeinfo.
Use fancy substitutions instead of a huge if statement to handle the
rather delicate quoting.


43390 29-Jan-1999 bde

Fixed comment and whitespace lossage in recent commits. The -W flag
is not implied by -Wall as claimed by gcc.1. Adding it causes a
measly 7193 new warnings for LINT, mostly for "unused parameter" and
"comparison between signed and unsigned".


43376 29-Jan-1999 dillon

Cleanup bsd.kern.mk after last commit.


43308 27-Jan-1999 dillon

Turn on -Wall and -Wcast-qual


43211 26-Jan-1999 asami

Move bsd.port.*mk to under ${PORTSDIR}/Mk (already repository copied).
There are only skeletons left here; they merely serve as a backup to
include the real versions under ${PORTSDIR}/Mk while we update the ports
tree to include them directly.


43055 22-Jan-1999 jdp

Introduce a new variable NEED_LIBNAMES. If it is defined,
<bsd.libnames.mk> is included regardless of the object file format.

This is needed to fix the a.out PAM breakage that manifests itself
when trying to build login.


42916 20-Jan-1999 jdp

Change the definition of LIBPAM to support the static PAM library.
When linking statically, LIBPAM is augmented with the extra libraries
that the PAM modules require. The idea is to centralize this
information rather than scattering it about in the Makefiles of
all the applications that use (OK, will use) PAM.

There is a new variable MINUSLPAM that should be used instead of
"-lpam". In the static case, it gets -l flags for the extra required
libraries.

This approach was suggested by <bde>, but he didn't actually review
my changes.


42915 20-Jan-1999 jdp

Add some capabilities to <bsd.lib.mk> so that it can be used for
building dlopen-able modules, and add features needed to build a
static PAM library. I think I cleaned it up some, too, but beauty
is in the eye of the beholder.

You can now build a shared library without version numbers, by
defining SHLIB_NAME to something like "pam_unix.so". If SHLIB_MAJOR
and/or SHLIB_MINOR are set, SHLIB_NAME gets the usual default value,
but it can be overridden if desired. If none of these symbols are
set, no shared library is built.

SHLIB_LINK controls the name of the symbolic link that points to
the library. If it is unset, no link is made. In the usual case,
it gets the right default: e.g., "libc.so" for ELF, nothing for
a.out. This can be overridden.

STATICOBJS can be set to a list of extra object files that should
be added to the static library but not to the shared library.
These objects are added to the profiled library too.

These changes should make it easy to use <bsd.lib.mk> for building
things such as PAM modules and dynamic linkers, for which <bsd.prog.mk>
has been abused until now.


42901 20-Jan-1999 ache

remove - before __entry, it is not make conmmand but shell continuation line


42886 20-Jan-1999 markm

Texinfo has been upgraded. This needs to catch up.
Submitted by: lkoeller@cc.fh-lippe.de


42874 20-Jan-1999 asami

(1) Add gnome master sites.
Submitted by: Jeremy Lea <reg@shale.csir.co.za>

(2) Change backup distfiles dir to reflect change in ftp.freebsd.org's
reorganization.


42793 18-Jan-1999 simokawa

Clean new index file(GPATH) of global.

Submitted by: Shigio Yamaguchi <shigio@wafu.netgate.net>


42666 14-Jan-1999 markm

Option names have changes for texinfo-3.12


42521 11-Jan-1999 asami

(1) Add ONLY_FOR_ARCHS and NOT_FOR_ARCHS. They are list of architecture names
(as given by "uname -m") by which you can specify which
architectures the port is appropriate for.
Idea borrowed from: NetBSD, OpenBSD
Reviewed by: simokawa

(2) New variable PERL_ARCH (value: ${ARCH}-freebsd) that is also
passed to ${PLIST_SUB}. Use it to simplify PLISTs.
Submitted by: simokawa

(3) Check OSVERSION as well as existence of /usr/bin/perl5 before
assuming USE_PERL5 is to be a no-op. Basically to allow building
of 2.2-INDEX on a 3.0 machine.

(4) Change USE_QT definition to use new shlib version (2) and
directory (qt142).

(5) Uncomment temporary Motif dependency for parallel package
building. We still need to figure out a way to install the pkg
database files, but it's a start.

(6) Move EXTRACT_SUFX up into the pre.mk area so it can be used in
exists() tests.

(7) Add MASTER_SITE_COMP_SOURCES. Note that this is defined like
"/pub/usenet/comp.sources.%SUBDIR%/" so you can specify something
like "SUBDIR=x/volume18" to select the newsgroup as well as
subdirectory name.
Submitted by: "distfiles" fenner

(8) Other misc. master site cleanup.
Submitted by: "distfiles" fenner

(9) New target "maintainer". I intend to use it to auto-mail failure
build failure notices to the maintainer.


42450 09-Jan-1999 jdp

Switch to using ".So" as the extension for PIC object files rather
than ".so". The old extension conflicted with well-established
naming conventions for dynamically loadable modules.

The "clean" targets continue to remove ".so" files too, to deal with
old systems.


42366 07-Jan-1999 peter

OBJFORMAT=elf in the absense of an override for both alpha and i386 by
default now.


41911 17-Dec-1998 dfr

Move some compile flags from the kernel makefile to bsd.kern.mk so that
kernel modules are built with the right flags.

Suggested by: Andrew Gallatin <gallatin@cs.duke.edu>


41801 14-Dec-1998 archie

Add -Wunused to kernel build flags.
Reviewed by: cvs-committers@freebsd.org


41691 12-Dec-1998 asami

(0) Fast INDEX generation. Only print out the directory name and
don't recurse in "make describe". The new INDEX target in
ports/Makefile invokes a perl script to recurse and convert them
into package names.

While I'm here, change the name of targets and move them around a
little bit for the sake of consistency.

It is also probably worth noting here that the meaning of the
"build dependency" list in INDEX has been changed slightly
changed. The old list was "build depends and its build depends"
-- not particularly useful if you had things like autoconf, which
run-depend on gm4 (you install all the things listed here and
you'll get an autoconf that won't run).

It is now "build depends and its run depends" -- you install
everything listed here, and you'll be able to build the port.
Submitted by: steve

(0') Fast README.html generation. It uses ports/INDEX to find
dependencies instead of embarking on to a recursive loop.
Submitted by: steve

(1) Remove NO_WRKDIR and NO_EXTRACT. Their functionality are easily
replacable with NO_WRKSUBDIR=t and EXTRACT_ONLY= (nothing on right
side), and they get in the way of read-only port trees.

(2) Surround first few variable definitions with ".if !defined()".
This will make cross-compilation easier and also speed up make
processes.

(3) Call sysctl with absolute path. Prefer the one in /sbin over the
one in /usr/sbin.

(4) Add four new variables

PKGINSTALL?= ${PKGDIR}/INSTALL
PKGDEINSTALL?= ${PKGDIR}/DEINSTALL
PKGREQ?= ${PKGDIR}/REQ
PKGMESSAGE?= ${PKGDIR}/MESSAGE

and use them in PKG_ARGS. Frobbing with PKG_ARGS directly is
strongly discouraged.

(5) Change PKG_SUFX to ".tar" (instead of ".tgz") if PKG_NOCOMPRESS is
defined. This is intended only for our own use.

(6) Add more sites to MASTER_SITE_GNU.
Submitted by: billf

(7) Override MANUAL_PACKAGE_BUILD if PARALLEL_PACKAGE_BUILD is
defined. This is intended only for our own use.

(8) Add new target "ignorelist" which will print out the package name
if the port is not going to be built on this machine. This is
intended only for our own use.

(9) Make mtree a little quieter.


41563 06-Dec-1998 bde

Backed out previous commit. It was for bug for bug compatibility with
2.2's .mk files.

Fixed spelling and placement of '$Id$'.


41562 06-Dec-1998 bde

Removed bitrotted code for setting OBJFORMAT.


41319 25-Nov-1998 asami

Change USE_QT to use version 1.41. I know this is a little premature,
but I'd like as many people to test this before the release.


41261 20-Nov-1998 asami

(1) Remove LOOP_VAR and LOOP_OPTIONS. It's a hack and just too many things
break one way or another. With it goes the package-loop and the
describe loop.

(2) Add new variable MASTERDIR to make it easier to share files between ports.
bsd.port.mk will find things like ${PKGDIR} underneath
${MASTERDIR} (which defaults to ${.CURDIR}).

(3) Do not allow MD5_FILE to be renamed. Funny things can happen if
you do that.

(4) Use a few more absolute paths in the bsd.port.pre.mk part. I
can't use absolute paths for sysctl because it moved recently.


41231 18-Nov-1998 jdp

Add LIBPAM, LIBRADIUS, and LIBTACPLUS.


41218 18-Nov-1998 jdp

For ELF, create a symbolic link libfoo.so -> libfoo.so.NNN in the
object tree too. This makes it possible to link against a shared
library that hasn't been installed yet.


41147 14-Nov-1998 asami

Add EXTRA_PKG_FLAGS to PKG_FLAGS. You can now add arguments to pkg_create
without redefining PKG_FLAGS after bsd.port.mk.


41083 11-Nov-1998 peter

Use a name less likely to collide with source files without an obj dir.


41073 11-Nov-1998 asami

Make bsd.port.mk includable in two phases. bsd.port.pre.mk defines only
a few variables that could be used in the port Makefile for ".if exists()"
tests. bsd.port.post.mk defines the rest.

Note: if you define USE_X_PREFIX or USE_IMAKE, put it before including
bsd.port.pre.mk. These are the only two variables used in the first part.

In reality, bsd.port.pre.mk and bsd.port.post.mk just include bsd.port.mk
with special variables to turn part of it off.


41001 08-Nov-1998 asami

(1) New variable MAKE_ARGS: will be appended to build/install make argument
list. The old MAKE_FLAGS was a little hard to use since it had a weird
default ("-f").
Suggested by: Shigeyuki FUKUSHIMA <shige@kuis.kyoto-u.ac.jp>

(2) Add new targets clean-restricted and clean-for-cdrom, which will
delete RESTRICTED and NO_CDROM packages and distfiles from the top.
Reviewed by: jkh

(3) Add depends to list of things to recurse on. It will help people
who are trying to fetch some ports plus their dependencies.

Requested by: Chris Dillon <cdillon@wolves.k12.mo.us>


40919 05-Nov-1998 peter

Do not add ${KMOD} to the CLEANFILES list. We want ${PROG} which is either
${KMOD}.o or ${KMOD}.ko. Otherwise we can delete the source shell script
for linux, joy and ibcs2.


40754 30-Oct-1998 asami

(1) Add new variables LOOP_VAR and LOOP_OPTIONS to implement building several
packages from a single port. LOOP_VAR is the name of the variable
and LOOP_OPTIONS is a space-separated list of values it should
take. When these are set, the target "package-loop" will go
through a clean and package loop for all the options. The
"package-loop" target is defined as "package" when LOOP_VAR is not
defined, so if you are in the business for building packages, you
should use "package-loop" all the time. (This target is added to
bsd.port.subdir.mk too.)

Also, the "describe" target prints out multiple lines so that all
options will go into the INDEX. (In other words, if you define
these variables, INDEX is going to look real silly if you don't
put ${${LOOP_VAR}} in PKGNAME.)

Seconded by: obrien ("ANYTHING")

(2) Turn off regexp support for LIB_DEPENDS. It is a fixed string of
the form <NAME>.<VER> now.
Tested by: several rounds of complete package builds

(3) Check checksum even if NO_EXTRACT is defined.

(4) Cosmetic fix for message in MANUAL_PACKAGE_BUILD case.


40526 19-Oct-1998 imp

Default to aout only on i386. Before we defaulted to elf only on
Alpha. This is a minor, but important distinction. Should be a no-op
to the install base. If OBJFORMAT is set elsewhere, things work
exactly as they did before.


40505 18-Oct-1998 obrien

Allow ``make BINDIR=/foo/games'' to work.


40433 16-Oct-1998 peter

Update the kld glue

Pre-Approved by: jkh


40335 14-Oct-1998 peter

Support encapsulating ELF linker sets for KLD modules via gensetdefs.
Support name based dependencies at build time. This is a hack.
These only affect KLD modules.


40092 09-Oct-1998 asami

Add new variable NO_FILTER_SHLIBS -- it will disable ELF <-> a.out shlib
name conversion. Use it for binary ports that come with its own private
shlib dirs, ports that install linux compatibility libraries (thus following
their naming conventions and not ours), etc.

Reviewed by: Martin Cracauer <cracauer@FreeBSD.ORG>


40009 06-Oct-1998 asami

(1) Add new variable ${PERL} which is equal to ${PERL5} but without the
version number part (i.e., "<directory>/perl"). Use this to
substitute #! lines in your perl5 scripts.

Requested and reviewed by: ache

(2) Add new variable WRKDIRPREFIX (defaults to ""). The "work"
directories are now in ${WRKDIRPREFIX}${.CURDIR}/work by default.
You can have a read-only ports tree (modulo any broken ports that
write something to places other than ${WRKDIR}) by setting this to
a writable location.

Ports that set WRKDIR explicitly should append this to front so
they will work when the user has WRKDIRPREFIX set.

Reviewed by: Toshihiko Kodama <kodama@ayame.mfd.cs.fujitsu.co.jp>


39883 02-Oct-1998 msmith

Define KLD_MODULE if building a KLD module.

Forgot to mention that the previous commit was
Submitted by: Doug Rabson <dfr@freebsd.org>


39882 02-Oct-1998 msmith

Changes to support building of KLD modules. This includes the possibly
to be removed KMODDEPS define.


39576 22-Sep-1998 asami

(1) Add BROKEN_ELF variable, similar to BROKEN. (There is no BROKEN_AOUT,
since ports are not supposed to be broken during the process of
conversion to ELF -- please proceed with caution.)

(2) Support for checking file size before fetching. The essential
parts are commented out for now, so I won't lose the submission
while we discuss how to do it.
Submitted by: se (mostly)

(3) Don't run "fetch" twice. It was due to the change in checksum
target chaining. It used to be fetch -> checksum -> extract,
after 1.285 it was fetch -> checksum and checksum was also
explicitly called from extract. Fix it by not calling fetch from
checksum when it's invoked by extract.
Noticed by: pre-fetch target of lesstif being run twice

(4) Don't try to remove non-existent distfiles and patchfiles in
distclean.
Submitted by: anto@netscape.net
PR: 7988


39525 20-Sep-1998 obrien

Change lib specification in `clean' target to match ELF shared libs too.

Reported by: Kris Kennaway <kkennawa@physics.adelaide.edu.au>


39418 17-Sep-1998 jkh

This goes in doc distribution now.


39412 17-Sep-1998 phk

Two patches from the HARP people:

Various Makefile related fixes.

-Wformat fixes.

Submitted by: Mike Spengler <mks@networkcs.com>


39398 17-Sep-1998 asami

Yikes, put .endif in wrong place.


39396 17-Sep-1998 asami

Remove shlib minor if PORTOBJFORMAT=elf.


39358 16-Sep-1998 asami

(1) Pass PORTOBJFORMAT in SCRIPTS_ENV too.
Submitted by: "Eugene M. Kim" <gene@nttlabs.com>

(2) Check for exact version of perl5 in /usr/bin and exit with error
message if USE_PERL5 is defined and version does not match
${PERL_VERSION}.

(3) Note LIB_DEPENDS should not have any regular expressions. Remove
those in USE_XLIB and USE_QT.


39259 15-Sep-1998 gibbs

Define LIBCAM and LIBDEVSTAT.


39208 15-Sep-1998 obrien

Revert to rev 1.41.
Some didn't like it.


39163 14-Sep-1998 obrien

Add ${RM} for compatability with SunOS.
Many use ${RM} in their ``clean'' targets.


39161 14-Sep-1998 obrien

Change file ownership from bin.bin to root.wheel.


39143 13-Sep-1998 wosch

`make clean' depend on the inclunde file bsd.dep.mk


39037 10-Sep-1998 asami

(1) Add MLINKS support.
Submitted by: hoek

(2) ELF support.
2a. Variable PORTOBJFORMAT specifies the object format of the system.
It is passed down to configure/make via CONFIGURE_ENV/MAKE_ENV,
and is given to generate-plist via PLIST_SUB.
2b. In PLIST, substitute lines that end with "/libFOO.so.X" with
"/libFOO.so.X.0". (This means PLISTs should only list ELF
libraries.)
Reviewed by: jb, jdp, hoek, jseger, steve

(3) Perl5-in-system support. Basically turns USE_PERL5 into a no-op
if there exists a "/usr/bin/perl5". Also fix prior breakage by
dima (${PREFIX} => ${LOCALBASE} in perl5 path).
Reviewed by: markm (sort of)

(4) Install requirement file as "+REQUIRE" so it will be executed
correctly by pkg_delete.
Reported by: Shigeyuki FUKUSHIMA <shige@kuis.kyoto-u.ac.jp>

(5) Do not disable checksum and makesum when NO_EXTRACT is set.
Pointed out by: hoek and kiri, among other people


39020 09-Sep-1998 markm

Add libperl for Perl5.


38988 09-Sep-1998 bde

Fixed disordering and misformatting in previous commit.

Don't override correct default targets.

Don't use afterinstall for installing things; it is for fixups after
installing things.


38987 09-Sep-1998 bde

Backed out rev.1.28. It was bogus because bsd.man.mk is only used
(and only usable) by other .mk files that have their own multiple
inclusion protection.


38986 09-Sep-1998 bde

Turned on -Wformat -fformat-extensions. -fformat-extensions requires a
-current version of gcc. Without it, -Wformat would complain about all
the nonstandard %[Dbrz] formats in the kernel.


38898 07-Sep-1998 jb

Add a man section 1aout for the legacy man files to avoid them being
installed over the ones from binutils.


38749 02-Sep-1998 bde

Add -aout to CFLAGS and LDFLAGS in bsd.kmod.mk, not in
src/lkm/Makefile.inc. This fixes broken builds of the syscons LKMs
when OBJFORMAT=elf. Removed src/lkm/Makefile.inc since it became
empty and is worse than useless.


38713 31-Aug-1998 jb

Oops, I missed the update from /etc/objectformat to /etc/objformat
which caused a port-ELF upgrade to continue to build aout.


38656 30-Aug-1998 jb

Remove BINFORMAT which is only set when building tools that need to have
a default format.

Include /etc/objformat to get the installed object type if it exists
and if OBJFORMAT is not already defined.


38655 30-Aug-1998 jb

BINFORMAT -> OBJFORMAT ready for E-day.


38617 29-Aug-1998 wosch

bsd.docb.mk handles installing SGML/docbook documents.


38614 29-Aug-1998 dillon

add support for /etc/make.conf.local


38609 28-Aug-1998 dima

Introduce PERL5 variable.
It's gonna be used in all p5- ports.

Reviewed by: asami


38569 27-Aug-1998 asami

Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)

The changes are (roughly in order of appearance):

(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)

(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon

(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)

"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.

Add "compress-man" target and move manpage {,de}compression there.

Reviewed by: hoek etc. and a full build of the ports tree

(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)

(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve

(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek

(7) Move checksum into real-extract.

(8) Change way rules are chained. Instead of:

build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build

we now have

build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build

Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.

The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.

(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.

(10) Change some messages so we can tell where "make index" failed.

(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>


38566 26-Aug-1998 asami

Add "deinstall" to list of targets. This is only fair since "install" and
"reinstall" are already here. :)


38413 18-Aug-1998 jb

Add default OBJFORMAT so that the build process can test for this
without having to run objformat to determine it.


38338 15-Aug-1998 markm

Bump version number for latest perl


38277 12-Aug-1998 asami

Merge 1.227.2.45 (perl version substitution in PLIST).


38252 12-Aug-1998 asami

Merge 1.227.2.44.


38209 10-Aug-1998 obrien

I presume Satoshi wanted ``uname -r'' for OSREL not ``uname -s''

Found by: gcc28 port


38187 08-Aug-1998 peter

Clean up all temporaries that we can generate.


38186 08-Aug-1998 peter

Use more standard ld commands when stripping symbols out; ld -O is a
freebsd-aout extension. The binutils ld doesn't understand it.
Essentially this is backing out rev 1.33 for elf and other toolchain
support..


38183 08-Aug-1998 peter

Make ../Makefile.inc handling more consistant to prevent multiple includes
when certain .mk files include other .mk files. This will remove the
need for multiple include protection in some other makefiles around the
tree (and helps some elf conditionals).


38177 08-Aug-1998 jb

Remove the alpha specific __NETBSD_SYSCALLS from CFLAGS. This can still
be added in /etc/make.conf. Yes folks, the alpha kernel is coming to
a screen (and hopefully a disk) near you. Thanks to Doug.


38143 06-Aug-1998 markm

Update for Perl 5.005_01


38122 05-Aug-1998 asami

(1) Rename variable "USE_X11" to "USE_X_PREFIX" to make clearer what it
means (change PREFIX to ${X11BASE}) and add a new variable USE_X11
which means "this port requires the X window system (actually the
library)". USE_X_PREFIX implies USE_X11. USE_X11 adds a
LIB_DEPENDS to libX11 with the x11/XFree86 port.
Reviewed by: the ports list, hoek in particular

(2) Remove NO_CONFIGURE and NO_PATCH, which never meant anything.
Yell if they are defined.
Reviewed by: the ports list

(3) Add new variable OSREL, which is automatically set to the
numeric OS version (e.g., 2.2.1, 3.0). It can be used to refer to
files in gcc installations, for instance.

(4) Finally remove EXEC_DEPENDS hack after all these years.
Submitted by: hoek

(5) Put quotes around some echo ${*_DEPENDS} statements so they won't
blow up when the variables include regular expressions like
"qt\\.1\\.\\\(33\\\|40\\\):${PORTSDIR}/x11/qt140".


38042 03-Aug-1998 bde

Fixed building -current under 2.2.6 using `make world'. Moved some
recently added definitions from sys.mk to bsd.own.mk. Include the
src-relative bsd.own.mk in src/Makefile to pick up all new definitions.
Don't check that MACHINE_ARCH is defined in src/Makefile, since it is
(and should have been) guaranteed to be defined.


38014 02-Aug-1998 bde

Use a different hack in the ${DFILE} rule to keep indirect dependencies
(mostly for includes) separate from direct dependencies (so that ${.ALLSRC}
can be used to find full paths to the sources for the direct dependencies
only). The `::' hack just forgot the indirect dependendencies. This
broke building doc/usd/13.viref with `make -jN' - the index got corrupted
by being built twice concurrently.

Cleaned up the ${DFILE} rule. There was a .else clause with dead code in
it following a .else clause (make accepts this bad syntax). ${.ALLSRC}
now works in the USE_SOELIMPP case. Some client Makefiles no longer need
the SRCDIR=${.OBJDIR} hack.


37948 29-Jul-1998 bde

Honor NOSHARED for tools. All tools should be built static for
`make world' to avoid problems with picking up (new) target or (stale)
host shared libraries.

Don't honor -static in LDFLAGS for linking LKMs. LDFLAGS is not
actually for ld, but we use it anyway, and must prevent -static being
misinterpreted as -s.

Don't hide any of the link steps.


37929 28-Jul-1998 obrien

Add var "CD_MOUNTPT" set to /cdrom by default.
Ok'ed by: discussed with Satoshi at USENIX


37627 13-Jul-1998 se

Add US Mirror site to MASTER_SITE_KDE.


36911 12-Jun-1998 peter

Move bsd.own.mk after make.conf, this allows BINFORMAT to be set in
/etc/make.conf - it changes LIBDIR in bsd.own.mk. Note that there are
still problems with this, individual Makefiles cannot override BINFORMAT.


36780 09-Jun-1998 bde

Fixed `make depend', which I broke here about a month ago by moving
the null default for `depend' from bsd.dep.mk to bsd.obj.mk.
bsd.kmod.mk included these files in a bad order, so it picked up
the null default.


36673 05-Jun-1998 dt

Recognize ".cpp" as a C++ suffix.

PR: 3476


36641 04-Jun-1998 peter

Make the whereobj target print it's output without the overhead of
starting another make..
Besides, make -V is broken, since it will print unexpanded variables.


36640 04-Jun-1998 peter

Hard coded /usr/lib reference


36618 03-Jun-1998 jb

Fix my last commit which got caught in the cvs/cvsup cycle.
I'm told that I botched the tabs too. I'm not sure they are fixed now
because I find that rather tedious.


36609 03-Jun-1998 jb

Uh, the NetBSD syscall define spam for alpha has to go after /etc/make.conf
so that it works all the time.


36606 03-Jun-1998 jb

In the case of alpha (only), more than just libc needs to know that
NetBSD syscalls are being used, so spam all compiles with the define
that indicates this.


36575 01-Jun-1998 peter

add libcipher, and update comments about libdes, libkdb, libkrb etc
which do exist but are in the secure dist rather than the base.


36494 31-May-1998 bde

Fixed double slashes in pathnames.


36397 26-May-1998 sos

ELF preparation step 2:

Move a.out libraries to /usr/lib/aout to make space for ELF libs.
Make rtld usr /usr/lib/aout as default library path.
Make ldconfig reject /usr/lib as an a.out library path.
Fix various Makefiles for LIBDIR!=/usr/lib breakage.

This will after a make world & reboot give a system that no
longer uses /usr/lib/*, infact one could remove all the old
libraries there, they are not used anymore.

We are getting close to an ELF make world, but I'll let this
all settle for a week or two...


36264 20-May-1998 jkh

Complete back-out of the bsd.locale.mk change.
OK'd by: asami


36244 20-May-1998 mph

Add rcsid.


36243 20-May-1998 mph

If LOCALE is not defined, default to USA. Otherwise, bsd.locale.mk
blows up with errors.


36241 20-May-1998 mph

Add bsd.locale.mk to the list of files. Whether bsd.locale.mk is
the right solution or not, bsd.port.mk is broken unless bsd.locale.mk
is installed.

Note that if LOCALE is not defined, port-building explodes:

"/usr/share/mk/bsd.locale.mk", line 135: if-less elif
"/usr/share/mk/bsd.locale.mk", line 135: Need an operator
(For each .if testing LOCALE)


36189 19-May-1998 thepish

PR: misc/6031
Patch applied as per PR - enables preferential fetch from local mirrors


36188 19-May-1998 thepish

PR: misc/6031

Patch applied as per PR - enables preferential fetch from local mirrors


36158 18-May-1998 wosch

Add rules to generate PDF files.


36055 15-May-1998 bde

Oops, forgot references in previous commit.

Submitted by: Brian Cully <shmit@erols.com>
PR: 6178


36054 15-May-1998 bde

Support Objective C almost as well as C++.

Notes:
- We no longer use -fgnu-runtime in bsd.lib.mk, since it is the default
and bsd.lib.mk is the wrong place to override it.
- Gnu C doesn't have a special compiler driver for Objective C like it
does for C++. The defaults are suitable for Gnu C. Use `OBJCLIBS='
in /etc/make.conf for POC.


35951 11-May-1998 bde

Oops, the lex and yacc sources must be added to SRCS before ${SRCS}
is used in the dependency list for ${DEPENDFILE}. `make depend' was
broken for a few days. `make world' only uses `make depend' when
NOCLEAN is defined, so only a few people noticed the bug.

Submitted by: mostly by jmg


35838 08-May-1998 bde

Moved lex and yacc source handling from bsd.prog.mk to bsd.dep.mk
so that it applies to libraries (and lkms) as well as programs.


35789 06-May-1998 bde

Only include bsd.dep.mk in `mk'files that handle C sources. Abuse
bsd.obj.mk instead of bsd.dep.mk for defining the _SUBDIR target
and a default tags target. Abuse bsd.obj.mk for defining default
cleandepend and depend targets.


35784 06-May-1998 wosch

Delete stale comment.
Pointed out by: bde


35780 06-May-1998 bde

Regress to generating foo.c from foo.y via y.tab.c for crufty applications
that want a y.tab.h file. This want must be specified by putting y.tab.h
in SRCS (and defaulting to or putting -d in YFLAGS). This only works if
there is only one yacc parser, of course. One improvement: copy y.tab.c
to foo.c instead of renaming it, so that `#line...y.tab.c' statements in
it refer to an existing file.

Regress to not generating explicit rules for .l and .y sources containing
slashes. This case is unusual and hard to handle properly.

Don't generate an unused dependency when -d is not in YFLAGS.


35731 05-May-1998 bde

Oops, the symlink from y.tab.h doesn't work until its target exists.


35695 04-May-1998 bde

Fudge local variables better in the yacc rules so that multiple yacc
sources are handled properly.


35689 04-May-1998 bde

Generate explicit rules and other infrastructure for lex and yacc
sources. This will be used to fix `make -jN' races in many
Makefiles in /usr/src, and to simplify these and other Makefiles.

To get the fixes and simplifications, application Makefiles should
put the raw lex and yacc source names (foo.l and bar.y) in SRCS and
not put the names of any generated files in SRCS or CLEANFILES. A
few Makefiles already do this, although it didn't actually work before
(mkdep couldn't create complete dependencies because there is no
intermediate .c file for the .y.o and .l.o implicit rules).

Complications: if bar.y is in SRCS and -d is in YFLAGS, then bar.h
will be generated whether or not it is used, even if this clobbers a
real source file. This is so that bar.c can be generated using the
-j-safe and debugger-friendly -o option to YACC. There are smaller
warts for handling y.tab.h. y.tab.c and lex.yy.c are not supported.


35670 04-May-1998 steve

Change a couple 'make' to '${MAKE}'.

PR: 6341
Submitted by: Niall Smart <rotel@indigo.ie>


35598 01-May-1998 bde

Added -ansi to CWARNFLAGS so that ANSI errors don't come back.


35578 01-May-1998 jkh

Add -pipe to default CFLAGS. The optimization it provides is cheap
and does not require any special action on the part of the user to
take advantage of it. And no, it probably won't work with c89. Cry me
a river!


35478 27-Apr-1998 bde

Don't include ../Makefile.inc here. bsd.man.mk is always included
in another .mk file which has already included ../Makefile.inc, so
including ../Makefike.inc again mainly messed up `+=' definitions.


34934 29-Mar-1998 eivind

Support for fine-grained external control of subdir building.


34892 26-Mar-1998 eivind

Remove special handling of 'tags' for complex subdir systems
(presently only used in tip; should have been used by e.g. pkg_add).

Submitted by: bde


34858 24-Mar-1998 asami

Don't delete "Latest" link if NO_LATEST_LINK is set.


34829 23-Mar-1998 eivind

Support new version of global.

Submitted by: Shigio Yamaguchi <shigio@wafu.netgate.net>
Tested by: make buildworld


34678 19-Mar-1998 bde

Use gzip's -n flag so that simple regression tests of `make world'
work better.


34677 19-Mar-1998 bde

Fixed CLEANFILES. Some temporary files were missing.


34576 14-Mar-1998 bde

Improved comparison of ${DPADD} with ${LDADD} for the checkdpadd target.
`BINFORMAT=foo make checkdpadd' in /usr/src now reports only 2 false
negatives (in libss and init). (BINFORMAT=foo is to turn off better
handling of the a.out case.)


34528 12-Mar-1998 eivind

Introduce the 'regress' target.

Silently approved by: -hackers, -current


34181 07-Mar-1998 bde

Pass -nostdinc to mkdep for assembler and C files (it was already
passed for C++ files).

Don't pass -nostdlib to mkdep for C++ files.

Don't use temporary variables to obfuscate the main rule.


34179 07-Mar-1998 bde

Fixed generation of extra dependencies:
- the two `_EXTRADEPEND::' targets potentially clobbered each other for
`make -jN'. In practice, the output for the second target sometimes
disappeared.
- bogus dependencies were generated for static libraries.


34144 07-Mar-1998 asami

Add ${CXX} to list of variables passed in the environment when
invoking configure.

Submitted by: obrien


34092 06-Mar-1998 bde

If .depend doesn exist, then pretend that all objects depend on all
headers in ${SRCS}, as in bsd.lmod.mk and bsd.prog.mk. This helps
`make [-j]' work when .depend doesn't exist. Even plain `make'
sometimes only worked because of magic ordering in ${SRCS}.


34087 06-Mar-1998 bde

Removed support for now-unused FreeBSD misfeature DPSRCS.


34081 06-Mar-1998 bde

Fixed dependency of ${PROG} on ${DPSRCS}. There were various races
for `make -j'. There are one-off fixes for the problem in a few
Makefiles, e.g., amd/amq/Makefile.


34078 06-Mar-1998 bde

Fixed dependencies of ${PROG} on ${DPSRCS} and `all' on ${_ILINKS}.
There were various races for `make -j'. Half-built versions of
vnode_if.h were sometimes #included...

Removed a null dependency.


33816 25-Feb-1998 bde

Removed clean target. Simply add to CLEANFILES so that the default target
in bsd.obj.mk works.


33815 25-Feb-1998 bde

Remove ${CLEANDIRS} in the default clean rule, so that bsd.prog.mk can
use the default without losing any (currently unused) features.
(CLEANDIRS is only used by for libgmp and libmp via bsd.lib.mk, and
only documented everywhere it is supported except of course where it
is actually used.)


33801 25-Feb-1998 bde

Don't add ${DOC}.ascii* to CLEANFILES twice.


33688 20-Feb-1998 bde

Removed default tags target. It was identical to the central one in
bsd.dep.mk.


33687 20-Feb-1998 bde

Removed default tags target. PROG is always defined here, so ifdefing
it was bogus, and without the ifdef the default is identical to the
central one in bsd.dep.mk.


33685 20-Feb-1998 bde

Don't pass the undocumented flags `-se' to gtags (gtags ignores them for
compatibility).


33681 20-Feb-1998 bde

Fixed cleaning of tags files. GSYMS was forgotten.


33624 19-Feb-1998 eivind

Limit check for target to smaller section of makefile.


33607 19-Feb-1998 asami

(1) Don't disable "deinstall" if IGNORE is set.
I don't know what the hell I was thinking in: rev. 1.268

(2) Create ${PREFIX} before calling mtree if it doesn't exist. This
may not be the best solution, but pre-install is called after
mtree so there really isn't any way to fix this from the port
Makefiles and thus has to be done here.


33600 19-Feb-1998 eivind

Don't create a ${PROG} target if it already exists.


33153 07-Feb-1998 helbig

Postpone the test for non-emptiness of $PROG, $OBJS and $CLEANFILES
to ``shell time''. The previous version didn't work in
/usr/src7share/man/man4.
Reviewed by: bde


33085 04-Feb-1998 asami

(1) Improve the obsolete tcl/tk detection and dignosis.
Reviewed by: the lists

(2) Change MASTER_SITE_CTAN to reflect current reality.
Submitted by: fenner

(3) Add new port variable NO_LATEST_LINK. When this is set, the
"Latest" package symlink is not created. Use this for ports that
are betas when there is also a port for an older, more stable,
version.

(4) Don't be too stupid about "make deinstall".
Submitted by: fenner


32985 01-Feb-1998 bde

Restrict the include search path using -nostdinc -I- in $(CFLAGS} as
in kernel Makefiles. Nothing in /usr/include is used (provided
relative paths for sys/* and <machine> can be found), so there is
no need for the -I/usr/include kludge as in kernel Makefiles.


32947 31-Jan-1998 obrien

Allow package building in current directory again.


32813 26-Jan-1998 bde

Generate symlinks to the "sys" and <machine> directories and put
them in the include path. This fixes recent breakage of the syscons
LKMs and general brokenness of the include paths (headers under
/usr/include were used in many cases).


32715 23-Jan-1998 jkh

DISTRIBUTION=bin - we separate it out later.


32661 21-Jan-1998 jb

FreeBSD's make knows about the MACHINE, but not the MACHINE_ARCH unless
it is built with this defined (which it isn't by default). This change
to sys.mk treats the absence of MACHINE_ARCH as i386 on the assumption
that it will be appropriately defined (as something else) on any other
architecture. When building FreeBSD's make with NetBSD tools, both
MACHINE and MACHINE_ARCH are correctly set (e.g. when bootstrapping
FreeBSD's make on NetBSD/mvme68k, MACHINE=mvme68k and
MACHINE_ARCH=m68k). This isn't really needed for the alpha which
has both defined as 'alpha', but I thought it was worth getting the
distinction between a MACHINE and a MACHINE_ARCH correct now.

Now, shouldn't PC98 have MACHINE=pc98 and MACHINE_ARCH=i386 ??!!


32495 13-Jan-1998 jb

Choose the default binary format based on machine type.
Alpha is elf, not aout.


32226 04-Jan-1998 steve

Add a couple of ?='s missed in the previous commit.

Noticed by: Paul Allenby <pallenby@zibbi.mikom.csi.co.za>


32216 03-Jan-1998 wosch

Add new variables:

LIBCOMPATDIR [/usr/lib/compat]
LIBDATADIR [/usr/libdata]
INCLUDEDIR [/usr/include]
LIBEXECDIR [/usr/libexec]


32211 03-Jan-1998 wosch

Undo rev 1.11, the cd is null since NOOBJ is set.
444 -> ${SHAREMODE}


32182 02-Jan-1998 asami

About one month worth of bsd.port.mk improvements.

(1) Allow multiple checksums of same file.
Submitted by: hoek

(2) Add "deinstall" target as an alias to "pkg_delete $(make package-name)"
(well, something like that, see diff for details).

(3) Add new port variable USE_AUTOCONF. It appends BUILD_DEPENDS to
devel/autoconf and runs autoconf before configure.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)

(4) Clarify USE_X11 and USE_IMAKE usage.

(5) Add new user-overridable variable MASTER_SITE_KDE.
Submitted by: vanilla

(6) Add support for "Latest" package links.
Idea by: Terry Lambert

(7) Try to catch obsolete tcl/tk installations that could cause problems.
Annoyed by various bogus commits by: you-know-who


31994 26-Dec-1997 jkh

DISTRIBUTION is bin (we'll make the info dist another way).


31859 19-Dec-1997 bde

Only remove ${CLEANFILES} in the default clean rule. In particular,
don't remove a.out explicitly. a.out should only be generated for
libraries and is removed in the non-default rule in bsd.lib.mk.

Removed undocumented cleanfiles target. It was the same as the
default clean target except it didn't descend into subdirs. It was
different from special clean targets in other ways. This feature
hasn't been missed for more important targets.

Removed unused default cleandepend target. bsd.dep.mk has a better
version which is always used.

Use a better rule for checkdpadd in the BINFORMAT=aout case. This
mainly checks that ld -f is working correctly. The old rule is
still available via `make BINFORMAT=foo checkdpadd' and should be
used to check for regressions under 2.2 where ld -f is not available.


31842 18-Dec-1997 bde

Oops, the previous patch was botched.


31815 17-Dec-1997 bde

Oops, rm -f can't handle empty lists.


31813 17-Dec-1997 bde

Oops, rm -f can't handle empty lists.


31810 17-Dec-1997 bde

Don't clean files that we don't create.

Fixed style of empty test.

Include <bsd.libnames.mk> if `checkdpadd' is being made, so that it can
:e checked until it goes away.


31809 17-Dec-1997 bde

Normally don't include <bsd.libnames.mk>. Include it in the !aout case
(as in bsd.prog.mk). Include it if `checkdpadd' is being made, so that
it can be checked until it goes away.

Don't clean files that we don't create.

Fixed style of empty test.


31782 16-Dec-1997 bde

Removed gross dir file bootstrap rule again. It would break building
when there is no /usr/src/share/info if it were actually used.

Added comments to explain duplicated tex commands.

Use substitution in IFILENS to simplify some things.

Removed /g from many substitutions. It is bogus for anchored matches.

Don't echo nothing.

Don't add things that wouldn't be built with the current options to
CLEANFILES (except for some cases involving tex).
Reviewed by: wosch


31741 15-Dec-1997 helbig

Add libcalendar


31717 14-Dec-1997 wosch

Optimize rm(1) usage.


31657 09-Dec-1997 wosch

Add LIBZ


31302 20-Nov-1997 asami

Define MASTER_SITE_SUBDIR and PATCH_SITE_SUBDIR to default to "." so
we won't have double-slashes.

Add support for new port variable MANUAL_PACKAGE_BUILD. If this is
defined as well as the user variable PACKAGE_BUILDING, the port will
be ignored. This is used to mark ports that can be built normally
except on a machine that has a lot of conflicting ports (i.e., our
package building machine).


31301 20-Nov-1997 asami

Add new target "checksubdirs". It will warn about any subdirectories that
are not in the SUBDIR list. It also knows about the "standard" directories
that are to be ignored ("CVS", "distfiles", etc.).


31177 15-Nov-1997 wosch

target(__target) -> target(${__target})

PR: bin/4736
Submitted by: Martin Kammerhofer <dada@sbox.tu-graz.ac.at>

Index: bsd.subdir.mk
===================================================================
RCS file: /usr/cvs/src/share/mk/bsd.subdir.mk,v
retrieving revision 1.18
diff -u -r1.18 bsd.subdir.mk
--- bsd.subdir.mk 1997/06/21 15:40:34 1.18
+++ bsd.subdir.mk 1997/11/09 18:04:33
@@ -59,7 +59,7 @@

.for __target in all checkdpadd clean cleandir depend lint \
maninstall obj objlink
-.if !target(__target)
+.if !target(${__target})
${__target}: _SUBDIRUSE
.endif
.endfor


31136 12-Nov-1997 markm

Upgrade perl to perl5.004_04


31086 10-Nov-1997 wosch

target(__target) -> target(${__target})

PR: bin/4736
Submitted by: Martin Kammerhofer <dada@sbox.tu-graz.ac.at>


31074 09-Nov-1997 wosch

Remove the comments hat just list the nested includes.
The lists don't provide significantly more information than
grep '\.include', and grep gives lists that are actually correct.
Submitted by: Bruce


31072 09-Nov-1997 wosch

target(__target) -> target(${__target})

PR: bin/4736
Submitted by: Martin Kammerhofer <dada@sbox.tu-graz.ac.at>


30975 06-Nov-1997 fenner

Convert <, > and & into &lt;, &gt; and &amp; in port names, COMMENT and
DESCR files when building README.html .
Don't use control characters in sed statement.

Problems reported by "Chris G. Demetriou" <cgd@pa.dec.com> in NetBSD PR
pkg/4341.


30896 02-Nov-1997 wosch

Inlucde ../Makefile.inc if exists. This make it easier to
build the Unix Seventh Edition Manual volumes 2.


30888 01-Nov-1997 wosch

Undo rev 1.33 and 1.34: Build the HTML files in .CURDIR and
not in .OBJDIR so the hyper links will work again.


30629 21-Oct-1997 bde

Oops, comment lines can't be indented either.


30628 21-Oct-1997 bde

Oops, comment lines can't be continued.


30620 21-Oct-1997 bde

Added -Wuninitialized to CWARNFLAGS. Warnings about uninitialialized
variables were lost when we removed -W, and 23 new ones including at
least one serious one have crept in for LINT.

Restored -Winline to CFLAGS. This gives only 3 old warnings and 1 new
for LINT.


30350 12-Oct-1997 wosch

Support output format html.
Add make variables INFO2HTML, TEX, DVIPS, DVIPS2ASCII.


30308 11-Oct-1997 wosch

Do not use an intermediate file. The intermediate filename will go
into the info output which may breaks other programs (e.g. info2html).


30251 09-Oct-1997 wosch

Bugfix for rev 1.41:
makeinfo does not understand the tex command \input


30213 08-Oct-1997 asami

Install ${PKGDIR}/MESSAGE as /var/db/pkg/${PKGNAME}/+DISPLAY if it exists.

Reviewed by: kiri


30113 05-Oct-1997 jkh

Changes to support full make parallelism (-j<n>) in the world
target.
Reviewed by: <many different folks>
Submitted by: Nickolay N. Dudorov" <nnd@nnd.itfs.nsk.su>


30105 04-Oct-1997 wosch

Delete redundant entries.
Run tex twice due cross references.
Cleanup many tex generated files in `make clean'
Format latin1 output in 80 characters column (was ~110 characters).


30046 01-Oct-1997 wosch

Support output formats dvi, ps, latin1.


29141 05-Sep-1997 peter

Restore the BINFORMAT?= in sys.mk, or it's painfully difficult to use
.if in Makefiles. bsd.prog.mk and bsd.lib.mk do not depend on it however.

Allow overriding of the -soname arg when building the lib*crypt.so* libs
since libdescrypt.so and libscrupt.so both need a -soname of libcrypt.so
so that the symlink is obeyed at runtime rather than at compile time.


29129 05-Sep-1997 peter

Change the BINFORMAT definitions so that they do not depend on sys.mk,
since 2.1.x make(1) apparently does not have the -m switch to set both
the the bsd.*.mk and sys.mk location, and this breaks 'make world' from a
2.1.x system.


28945 30-Aug-1997 peter

A first cut at some rules for building elf shared libs. Of particular
note, using "-Wl,-f" to generate a library objects list doesn't work
anymore since the hack to ld hasn't been incorporated into binutils-2.8.
(and the -f switch is used for something else already)

This is disabled by default, don't panic! :-)


28806 26-Aug-1997 bde

Fixed cleandepend target. Subdirectories weren't handled unless SRCS
was defined.


28580 22-Aug-1997 asami

Add "distclean" to list of targets to descend into subdirs for.


28438 20-Aug-1997 asami

(1) Be nicer about mtree file missing. (Actually, just suggest where
you can get one from.)

(2) Use "reinstall" as DEPENDS_TARGET if target is "reinstall". In
particular, this will make it possible to do a "make reinstall" on
several NFS clients and have them install all dependencies
correctly.
Tested by: davidn


27910 05-Aug-1997 asami

Merge buildworld/installworld patch to Makefile from RELENG_2_2. Patch
a couple *.mk files to enable -current world building on really old
machines (e.g., 2.1.5).

Reviewed by: too many many people to list here, special thanks to bde


27782 31-Jul-1997 asami

Do not set the application variable LDDESTDIR. Note that it is still honored
in a few places (in bsd.lib.mk and bsd.prog.mk); this merely fixed part of
the brokenness by not setting it here.

This fixes building of secure telnetd when DESTDIR is defined.
(Otherwise, it will try to link libtelnet from ${DESTDIR}/usr/lib.)

Reviewed by: bde, jkh


27673 25-Jul-1997 bde

Don't use !empty() on the potentially unset variable MANBUILDCAT. Using
it broke "everything" unless MANBUILDCAT was set.


27672 25-Jul-1997 bde

Removed a stray `.if' that broke everything.


27659 24-Jul-1997 pst

Allow optional building of preformatted manual pages.
Reviewed by: wosch


27582 21-Jul-1997 bde

Added ${KMOD} to CLEANFILES. ${KMOD} gets created if you run `make load'.


27482 17-Jul-1997 markm

Changes for perl-5.004_01


27304 10-Jul-1997 asami

(1) Add preliminary support for architecture/operating system-dependent
patches and files. Note this is just for testing -- I don't
expect "patches.OpenBSD" or "Makefile.alpha" start cropping up on
our ports tree just yet!
Pretty much ignored by: the ports/committers list

(2) Add "SH?=/bin/sh" to the list of command-name macros. Use it.
Checked by: recompiling all packages


27120 30-Jun-1997 bde

Removed temporary SMP header fix.


27058 29-Jun-1997 obrien

``-C ${WRKDIR} -xzf'' are no longer the default args for EXTRACT_BEFORE_ARGS


27028 28-Jun-1997 pst

Make NOSHARED = no / NOSHARED = NO do what you'd expect.


26884 24-Jun-1997 asami

Add new variable USE_PERL5. It is similar to USE_GMAKE, except that
it also sets RUN_DEPENDS (USE_GMAKE is BUILD_DEPENDS only).

The (immediate) purpose of this is to avoid having to change 70
zillion ports when the version of perl changes. Also, when perl5 is
pulled into -current, this will become a no-op in -current's
bsd.port.mk.

Reviewed by: jfitz


26760 21-Jun-1997 jkh

Change the distribute targets so that a given item in our source tree
can place itself into n distributions, where n >= 1.


26715 18-Jun-1997 asami

Add `B' to list of flags to pass through from C*FLAGS when using mkdep
(bsd.dep.mk) and compiling assembly language sources (bsd.lib.mk).
This doesn't change anything for our current source tree, but if you
want to use the -B switch in C*FLAGS to specify the location of
compiler subprograms, now you can do it.

Reviewed by: bde (implicitly)


26713 18-Jun-1997 asami

Move the "umask ?= 0022" check (a warning only) from the default
"do-install" target to the beginning of the "install" meta-target, so
that ports that define their own do-install will also run it without
having to duplicate it themselves.

Tested by: rebuilding all packages


26711 18-Jun-1997 asami

Add "-I${DESTDIR}/usr/include" to CFLAGS if DESTDIR is defined, just
like bsd.lib.mk and bsd.prog.mk. It doesn't add it to CXXINCLUDES, I
don't think anybody has written a kernel module with C++. (Not that I
think DavidG will allow it anyway. :)

Reviewed by: bde


26428 04-Jun-1997 asami

(1) Use the new BSD.x11.dist mtree file to create directories under
/usr/X11R6 if USE_IMAKE or USE_X11 is set. It is mostly designed
after the XFree86 distribution, but also includes some of our own
goodies (libexec, share/doc, etc/rc.d).

(2) Full support for per-port dependency target. An optional
":<target>" can be added to any of the *_DEPENDS variables. Do
not attempt to print out anything about dependencies if NO_DEPENDS
is set (there was already too much code duplication, and this
extra colon has really pushed it over the limit).
Requested by: jfitz

(3) Make "reinstal" pmake-safe.
Reminded in an e-mail from: jkh


26117 25-May-1997 wosch

Add a `strip' target which remove the ^H from plain text files.


26073 23-May-1997 dfr

Add "-assert pure-text" to the link line. The warnings about RRS
relocations in text sections are now dependant on this flag.


26051 23-May-1997 asami

Change CXXINCLUDES to use "g++" explicitly. CXXINCLUDES was defined
with ${CXX} at the end; the only problem was, the directory name is
"g++" and ${CXX} is defined as "c++" in sys.mk.


26030 23-May-1997 brian

Add LIBALIAS.


25710 11-May-1997 wosch

Add variable LPR for printer command.

Murphy's Law: define LPR=true in /etc/make.conf if you don't want
tomorrow find 3 paper copies (ascii, latin1, postscript) of the
handbook in your printer (or someone else printer on the other half of
the world).


25692 11-May-1997 wosch

Support compressed output. Default is uncompressed output format.
Fix print target.


25508 06-May-1997 dfr

Add SMPHDRS to CLEANFILES instead of replacing its current value.


25468 04-May-1997 jdp

Use "gcc -shared" instead of "ld -Bshareable" for building shared
libraries. Remove the now-unneeded CPLUSPLUSLIB hack. I will also
remove the CPLUSPLUSLIB definitions from the Makefiles that use it,
after the dust settles.

Use gcc's LIBRARY_PATH environment variable to handle DESTDIR,
instead of -L flags in LDDESTDIR. LIBRARY_PATH is documented in
the gcc info pages. It is better than using -L flags, because it
modifies the search for start-up files as well as for libraries.
A new variable LDDESTDIRENV is used to contain the normally-empty
LIBRARY_PATH environment setting.

LDDESTDIR is no longer set in <bsd.lib.mk>. It is still honored for
the time being, because a couple of userland Makefiles still (wrongly)
set it. These should be fixed, and LDDESTDIR should vanish.

Removed the commented-out "LDDESTDIR+=-nostdlib", because "gcc -shared"
doesn't link in any standard libraries anyway.

Removed the ".if defined(LDADD)" around the _EXTRADEPEND target for
shared libraries. This target is always necessary now, because
c++rt0.o is linked into every shared library.

Don't merge this into -2.2 without first merging the support for
"gcc -shared".


25382 02-May-1997 ache

Add ascii to comment describing default FORMATS value too
(see previous commit)


25381 02-May-1997 ache

Add ascii to default formats list.

latin1 looks very ugly on Russian screens/printers and users should
be able to print/view handbook first without inner knowledge of
bsd.sgml.mk tuning.


25334 01-May-1997 jkh

Put the "grossness" back; it had a purpose and anyone screwing around
with these files MUST understand what a `make release' does before
making changes like this or get nasty-grams from me when my builds start
falling over. In fact, if they can't test "make release" after making
such changes then they *should leave these files completely alone*.
Thank you.


25324 30-Apr-1997 fsmp

removed:
opt_smp_invltlb.h
from:
SMPHDRS= opt_smp.h opt_smp_invltlb.h

SMP_INVLTLB is no longer a valid config option, the invalidation of the TLB
via inter-CPU IPIs is now standard when APIC_IO is used.


25323 30-Apr-1997 bde

Fixed the SMP fixes:
- fixed dependencies so that `make depend' isn't necessary.
- added new files to CLEANFILES.
- fixed style.


25316 30-Apr-1997 bde

Added trailing slash to ${CANONICALOBJDIR} in tests for directories,
so that /usr/obj can be a symlink to an existing directory.


25315 30-Apr-1997 bde

Oops. The previous change duplicated the grossness instead of removing it.


25314 30-Apr-1997 bde

Removed gross dir file bootstrap rule. Keep depending on the dir
file so that we fail if it isn't already installed. The bootstrap
is now done by `make install' in the top-level src directory. As
well as being gross, the rule didn't actually work for src trees
other than /usr/src, and this is difficult to fix since the whole
src tree may not exist.


25302 30-Apr-1997 ache

bugfix: 'make depend' cause all LKMs rebuild


25295 30-Apr-1997 asami

(1) Change logic for dependency: instead of defining "is_depended"
(default: IS_DEPENDED?=install) target on the depended port, call
DEPENDS_TARGET (default: install) from the depending port.

Other than being more flexible (some ports don't require the
dependency to be fully installed: see ghostscript4), this seems
like a more natural thing to do. (I never understood the
convoluted logic that was used before.)

By building packages with "DEPENDS_TARGET=package", I can avoid
file-sharing problems (like gs3 binary going into the gs4
package).

(2) Add new variable PATCH_SITE_SUBDIR and separate it from
MASTER_SITE_SUBDIR. Fixes linuxls port and is a correct thing to
do anyway.
Initially suggested and reviewed by: fenner

(3) Add new variable MASTER_SITE_LOCAL for local ports. Defaults to
LOCAL_PORTS subdir on ftp.freebsd.org's distfiles dir.
Submitted by: jkh


25212 28-Apr-1997 fsmp

Submitted by: Wolfgang Helbig <helbig@MX.BA-Stuttgart.De>
make world fails when it tries to build LKMs because the files
opt_smp.h
opt_smp_invltbl.h
are missing.

This patch to /usr/src/share/mk/bsd.kmod.mk is a temporary workaround.

Note that LKMs built in this way may or may NOT work properly with an
SMP kernel.


25110 23-Apr-1997 bde

Pass everything in ${LDADD} directly to the linker for `make depend'
to prevent complaints from the compiler about nonexistent libraries.


25104 23-Apr-1997 bde

Fixed missing strip step in .S.o and .S.po rules.

Fixed back to front -X and -x strip flags in .m.o and .m.po rules.
Fixed disordered .m.o and .m.po rules. What is .m?

Stripping probably should be removed. It makes problems in library
functions hard to debug...


25064 21-Apr-1997 asami

Merge from 2.2.


25027 19-Apr-1997 bde

Updated comment about MANDEPEND (it was misplaced in bsd.prog.mk).


25024 19-Apr-1997 bde

Removed unused (and almost unusable) support for LDONLY. See ld/rtld
for how to use gcc to invoke the linker only.

Removed `.if 0'ed support for not creating intermediate object files.

Removed unused include of bsd.libnames.mk (LDONLY had the last reference
to it).

Removed stale misplaced comment about MANDEPEND.


24954 15-Apr-1997 asami

(1) Change comment for USE_X11 to be more explicit about what it
means.

(2) Change MASTER_SITE_GNU etc. to use += instead of ?=, so users can
specify a local mirror in /etc/make.conf and still get the full
fallback in case something is missing.
Submitted by: Narvi <narvi@haldjas.folklore.ee>

(3) Skip port if USE_X11 or USE_IMAKE is defined and /usr/X11R6
doesn't exist.
Submitted by: imp

(4) Add "-" in front of rmdir of ${DISTDIR}/${DIST_SUBDIR} in
distclean target; the directory might not be empty because the
subdir is shared with some other ports' distfiles.


24861 13-Apr-1997 jkh

Support GLOBAL style tags.


24761 09-Apr-1997 jdp

Use "-pg" instead of "-p" for generating profiled object files.
The two options differ only when linking, but "-p" is incorrect
because it is associated with the old-style "prof" command, which we
do not support.


24750 09-Apr-1997 bde

Use `ld -f' (actually `cc -Wl,-f') at `make depend' time to generate
almost perfect dependencies on crt0's and libraries. DPADD and
bsd.libnames.mk should go away soon. Use a new _EXTRADEPEND target
to implement this and to avoid editing of .depend when .depend isn;t
being rebuilt. The afterdepend target doesn't seem to be good for
anything and is now unused.

Fixed LDDESTDIR for the DESTDIR case when ${SHLIBDIR} != /usr/lib.

Added commented-out -nostdlib to LDDESTDIR for the DESTDIR case.
The wrong libraries may be used without this; however it breaks
linkage to crt0 and libc.


24704 07-Apr-1997 bde

Include ${CURDIR}/../Makefile.inc as in most other `.mk' files. This
is most useful for centralizing the definitions of paths to contrib
directories.

Removed useless subshell and evil-hiding @ in the the rule for
initializing the info dir.


24601 04-Apr-1997 mpp

Fix a typo that prevented the proper flag from being set
when USE_REFER is set.

Submitted by: Sandro Sigala <ssigala@globalnet.it>


24431 31-Mar-1997 scrappy

Remove ${MAKEFLAGS} on recommendation by Bruce, mainly because the reason
for adding it was so that -j3 carried through on a make -j3 world, but found
at least one circumstance where it breaks 'make depend'


24421 30-Mar-1997 scrappy

Add ${MAKEFLAGS} to ${MAKE} in _SUBDIRUSE so that something like
'make -j3 world' works

Jordan points out that this may not be the only place this is required to be
added, but so far, its the only one I've found to break -j3


24380 29-Mar-1997 peter

Fix some bugs from bde's list (long lines)


23763 12-Mar-1997 peter

makeinfo can fail but still leave behind zero length files which cause
interesting problems because the resulting file is newer than the source
and this stops 'make' from rebuilding it. Go via an intermediate file
and rename to make sure this doesn't happen.


23762 12-Mar-1997 peter

Move the conditional declarations of ICOMPRESS_CMD and ICOMPRESS_EXT
to before they are used in .for loops and .SUFFIXES lists, or it
doesn't work! Without this, 'make all' doesn't gzip the result as the
generated 'all' target doesn't seem to be defined completely.


23593 09-Mar-1997 wosch

Add comments.


23578 09-Mar-1997 wosch

Add reference to `PMake - A Tutorial'


23559 09-Mar-1997 wosch

Add table of contents. Remove stale comments.


23549 09-Mar-1997 wosch

Add comments.


23546 08-Mar-1997 wosch

Add new variables COMPRESS_CMD and COMPRESS_EXT.

bsd.doc.mk:
rename GZIPCMD to DCOMPRESS_CMD, add DCOMPRESS_EXT
bsd.info.mk:
rename GZIPCMD to ICOMPRESS_CMD, add ICOMPRESS_EXT
set INFOTMPL to ${INFODIR}/dir-tmpl
bsd.man.mk
rename ZEXTENSION to MCOMPRESS_EXT, MCOMPRESS to MCOMPRESS_CMD


23542 08-Mar-1997 bde

Don't use dot in a chown command. The chown command has been a no-op
for years since it is for a symlink.


23438 06-Mar-1997 asami

Make COMMENT and DESCR variables (just like PLIST). Will be useful
when you want to share all of PKGDIR except for one file. (See upcoming
multilingual nvi ports.)


23288 02-Mar-1997 wosch

Cosmetic change: remove a redundant ${.OBJDIR} in the html realinstall
target. The current dir is ${.OBJDIR} so ${.OBJDIR} shouldn't be in
the rule.

Pointed out by: bruce


23249 02-Mar-1997 wosch

Put html output into the obj directory and not into the source directory.


23045 23-Feb-1997 asami

(1) Define ${LDCONFIG} and ${MV} to be full pathnames to ldconfig and
mv, respectively. This will make Warner's life easier.

(2) Add new variable ${PLIST}, which defaults to ${PKGDIR}/PLIST.
If you need to have different PLISTs for different configurations,
you can either

@ pre-fabricate all of them and switch ${PLIST} to point to the
appropriate one, or

@ use sed/awk/perl/whatever to create the correct one from
pkg/PLIST and set ${PLIST} to it.

It is still recommended to have a file called "pkg/PLIST" so
people can do "grep badprog /usr/ports/*/*/pkg/PLIST" and such.

(3) Move /var/db/pkg/${PKGNAME} clash detection to before the
installation (instead of after) and make it fatal, with an error
message suggesting a workaround.

(4) Don't make distclean fail if DIST_SUBDIR is set and the
subdirectory does not exist.

(5) Don't put "@pkgdep Error code 2. Stop." kind of garbage into
packing list if depended port's directory doesn't exist. Instead,
print out a message to stderr.


22988 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


22829 17-Feb-1997 obrien

Submitted by: Dave Cornejo <dave@dogwood.com>
ftp.shsu.edu is no longer maintained - they refer you to the mirror I
maintain at ftp.cdrom.com


22828 17-Feb-1997 bde

Removed bogus NOOBJ ifdef which was added in rev.1.18-1.19. SRCS is
for C sources only and must not be set if you don't want C objects.

This should fix PR2748.

This should go in 2.2.


22811 16-Feb-1997 wosch

Bugfixes for HTML output:
- use ${MACROS} for macro package and not hard-coded -ms
Note: -me is currently not supported by unroff(1).
- use only ${SRCS} as input files.


22789 16-Feb-1997 wosch

Remove unsupported man section 3f


22778 16-Feb-1997 obrien

Fixed URL for ftp.tex.ac.uk in MASTER_SITE_TEX_CTAN.
Added ftp.shsu.edu and ftp.dante.de used by jmz in the latex port.


22700 14-Feb-1997 jdp

In the "cleanobj" target, always remove the old-style "${.CURDIR}/obj"
links if they exist. The old-style links confused make and caused
problems when upgrading from a 2.1.5 or 2.1.6 system.

I will merge this into -2.2.


22689 14-Feb-1997 jmz

Fix a typo in the .s.o rule: asssembler -> assembler


22621 13-Feb-1997 wosch

Support PRINTERDEVICE "html" using the troff translator unroff(1).
It works in most cases, but not all (e.g. nvi).


22585 12-Feb-1997 asami

Change $FreeBSD$ back to $Id$. I'm sorry, but it's been too long and
it's getting too hard to diagnose people's problems with this.


22403 07-Feb-1997 pst

Put libopie.a in libnames


22011 26-Jan-1997 pst

Don't use /tmp for afterdepend cleanup target


21994 25-Jan-1997 asami

(1) Add ${DESTDIR} to ${LOCALBASE} and ${X11BASE}, and remove it from
${PORTSDIR}. This undoes the changes done in rev. 1.38 and 1.59
(part of the bsd.port.mk pre-dawn ages I've never understood).
Requested by: jkh

(2) Add new variable NO_IGNORE that will override any IGNORE causes.
This is just a little hack to allow building of REQUIRES_MOTIF
ports and its dependencies only etc., so don't document it.

(3) Update +REQUIRED_BY files as necessary. Now you should be able to
delete ports that have runtime dependencies without pkg_delete
complaining about this file missing.


21680 14-Jan-1997 wosch

Move gzip(1) option -c from commandline into variable GZIPCMD. Not
all compress programs (e.g. cat(1)) support the option -c.


21676 14-Jan-1997 asami

Move $FreeBSD$ up right next to $NetBSD$ (oh, the solidarity! :).


21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


21669 13-Jan-1997 jkh

Make sure dir file exists before we call install-info, which requires it.
Sorry, I know it's a gross fix to call share/info's install target as
a side-effect, but that's less gross than propagating the work-around
changes to files which have nothing to do with the info system.


21636 13-Jan-1997 asami

Skip non-existent subdirectories. The diff is rather large because
the original logic went into a section of code assuming some
incarnation is there, but it's basically a "test -d" fix. Closes PR
ports/2082.

Reviewed by: max ("although I didn't test it, it looks fine")


21612 12-Jan-1997 wosch

Add comments about variables and targets. Incomplete, see '???'.


21611 12-Jan-1997 wosch

Add a general comment about this include file.


21604 12-Jan-1997 asami

Add OpenBSD support. Change some comments to reflect the fact. Also:

(1) Change commented out MAINTAINER to FreeBSD_MAINTAINER and
OpenBSD_MAINTAINER. These are not comments anymore, so we may
even use it in the future.

(2) Instead of the ".if ${OPSYS} = "NetBSD" hack, use ".if exists()"
to find the location of md5 an tar. Play similar trick for fetch
(OpenBSD uses /usr/bin/ftp which groks http: addresses).

This commit includes most of the changes made in 1.242 (although many
of them are done differently after more discussion). One thing that
is conspicuously missing is NOMANCOMPRESS, which has been postponed
until Warner figures out what exactly the situation is on the OpenBSD
ports paradigm. (In a nutshell, we can't just define NOMANCOMPRESS in
this file even if uncompressed manpages is the default for OpenBSD,
because that will take away the ability of individual users to select
manpage compression.)

Reviewed by: imp@openbsd.org


21602 12-Jan-1997 asami

(1) New variable, SCRIPTS_ENV, which is passed to scripts/configure
and scripts/{pre,post}-* as environment vars. Also, if BATCH is
set, "BATCH=yes" is automatically added to SCRIPTS_ENV.
(Requested by: max)

(2) The INSTALL_* macros are added to SCRIPTS_ENV and MAKE_ENV as
BSD_INSTALL_*. (Requested by: obrien)

(3) New variable MOTIF_ONLY, which will only build ports with
REQUIRES_MOTIF defined. This doesn't do dependencies right (what
if the depended port doesn't need Motif) yet.

(4) Try not to clean the same port twice in clean-depends when (for
instance) it's defined in both BUILD_DEPENDS and INSTALL_DEPENDS.
Note that it won't check chained dependencies so you may still see
the same port cleaned multiple times, but checking that far will
surely make this run slower than the un-"optimized" case so I left
it as is. (Requested by: jkh)

(5) Ignore *.rej files in patches/ directory in addition to *~ and
*.orig.


21593 12-Jan-1997 peter

one more tweak to make it fly without INFO defined. (like bsd.prog.mk)


21590 12-Jan-1997 peter

oops, missed a ${BINDIR} -> ${INFODIR}. Also remove the slash between
${DESTDIR}/${INFODIR}.


21588 12-Jan-1997 peter

recover spammed revisions 1.20 and 1.21. This fixes the breaks in the
builds when INFO is commented out.

Pointed out by: bde


21582 12-Jan-1997 steve

Revert changes to make the .y.c rule 'make -j n' safe.


21535 11-Jan-1997 jmacd

In an attempt to make the new info rules bootstrap themselves, make
the rules conditional on NOINFO not being defined, just like NOMAN.


21502 11-Jan-1997 jmacd

Change the installation rules. It now copies an empty dir file
into the DESTDIR in the beforeinstall rule in src/share/info/Makefile.
Then each info file that gets installed into the dir file using
install-info.

It has struck me that there's going to be a problem bootstrapping
this change, since parts of install will fail until install-info
is installed. Maybe someone who knows best how to deal with this can
fix it.


21494 10-Jan-1997 wosch

if !(command) -> if ! (command)

the ksh and I guess some other shells want a space
between '!' and the next command. This problem exist since rev 1.207


21355 06-Jan-1997 ache

FIx typing error .SRCDIR -> SRCDIR
Submitted by: bde


21354 06-Jan-1997 steve

Make the .y.c rule 'make -j n' friendly.

Inspired by: bde and brian@mediacity.com


21340 05-Jan-1997 ache

Use SRCDIR to handle non-current directory docs
Use INFO* macros from bsd.own.mk


20935 26-Dec-1996 wosch

add new variable NOMLINKS
NOMLINKS If you do not want install manual page links. [not set]


20912 26-Dec-1996 asami

I'm sorry, this kind of commits need to be reviewed by me, espicially
in a time like this (i.e., right before the release).

Back out rev 1.242, also add a stronger note above the MAINTAINER.


20908 25-Dec-1996 imp

Integrate changes from OpenBSD's efforts to use the FreeBSD ports system.
Generalize the selection of programs to run based on the existance of files
rather than the OS names that we find. Add comments about me being the
keeper of the OpenBSD mods of this file. Use ftp on OpenBSD rather than
fetch since OpenBSD's FTP supports urls and there is no fetch.

Reviewed by: Joerge Wunch, Jordan Hubbard, and others in ports I've forgotten
Obtained from: OpenBSD with changes from me.


20843 23-Dec-1996 asami

Suggested by: msmith
Add a little more sophistication to the md5 grep command.

Change the md5 checksum logic a bit. Now, the message is printed
out for every successfully/unsuccessfully matched checksum, and it
aborts at the end if there was a mismatch. Also, make missing checksum
and IGNORE file inconsistency fatal, as there is now no reason to have
a missing checksum.


20811 22-Dec-1996 wosch

Do not use variable PRINTERDEVICE as printer name.


20697 19-Dec-1996 mpp

Change bsd.doc.mk to use the variable PRINTERDEVICE instead
of PRINTER for defining the default output device when formatting
documents for installation. This prevents problems if the
user has defined PRINTER for use by lpr.

Closes PR# 1437.


20620 18-Dec-1996 asami

Add missing targets (extract, patch) in the IGNORE (INTERACTIVE &
PATCH, etc.) section. Also sort them in order of execution like other
parts of this file.


20583 17-Dec-1996 asami

Add new variable IGNOREFILES, to be set to list of files that you don't
want md5 checksum calculated. (It will create an entry in files/md5
with rhs "IGNORE".) Now it's safe to do a "make makesum" on all ports.


20574 17-Dec-1996 wosch

update comments


20350 12-Dec-1996 asami

Change delimiter of substitution that uses MANLANG from `.' to `%', so
things like `ja_JP.EUC' will work.

Suggested by: max


20320 11-Dec-1996 asami

Extend the manpage compression handling a bit.

(1) MANLANG is now a list (defaulting to ""), so if you have English
and Japanese-EUC versions of the manpages, you can say something
like `MANLANG= "" ja_JP.EUC' and manpage compression will DTRT.

(2) Add new variables MAN%cPREFIX (where %c=[1-9LN]) which default to
MANPREFIX (which defaults to PREFIX), to specify per-section
prefixes. In particular, this handles the cases in many perl
ports, which install man1pages into man/man1 and man3pages into
lib/perl5/man/man3.

Note these modifications won't change the behavior of existing
variables used in previously-approved ways, so any Makefile that
worked before will still continue to work.


20309 11-Dec-1996 asami

Add support for uncompressing manpages that are already installed
compressed.

Requested by: obrien
Change name of -D option (to pkg_create) file to MESSAGES. (More
friendly to filename completion.)


20239 09-Dec-1996 asami

Submitted by: fenner
(1) Print out reason when port is ignored because of NO_CDROM,
RESTRICTED, IS_INTERACTIVE, (not) IS_INTERACTIVE, BROKEN,
REQUIRES_MOTIF or NO_PACKAGE.

Submitted by: obrien
(2) Add new special file in pkg/: DISPLAY. (Cf. man pkg_create)

(3) Minor bugfix in clean-depends target, which sometimes executed
"make clean" in the current directory. (Which is probably ok, but
is wrong nonetheless.)


20204 08-Dec-1996 obrien

Was using new URL (ftp://ftp://) before the RFC has been voted on. :-)

Obtained from: make fetch


20130 04-Dec-1996 asami

Optimize by changing "sort | uniq" -> "sort -u". "make index" is now
412 secs instead of 498 secs on my machine!

Submitted by: fenner


20041 30-Nov-1996 asami

Merge from RELENG_2_2 (duh). See rev 1.227.2.4 for details.


19742 14-Nov-1996 asami

Just realized that the spacing after "==>" is not consistent. I'm
terribly sorry, please merge this into 2.2 as well.


19740 14-Nov-1996 asami

Oops, forgot to silencethe gzip command to compress manpages.

It will be nice if this went into 2.2, I guess.

Reminded by: max


19704 13-Nov-1996 asami

(1) There is no default "orphans" for CATEGORIES, it simply fails if
you have a Makefile without one.

(2) Fix case when user had DISTDIR defined elsewhere and DIST_SUBDIR
is also defined. (Submitted by: max)

(3) Add several popular master sites as variables. For instance,
MASTER_SITE_XCONTRIB is defined to be a list of X11R6 contrib sites,
which you can set MASTER_SITES to in your Makefile if you just
want ftp.x.org or any of the mirror sites.

There is also a new variable, MASTER_SITE_SUBDIR, to specify which
subdirectory of the master site your tarball is located.

One nice thing this enables the user to do is to define the
nearest mirror site in /etc/make.conf. This is especially useful
for continents without a full FreeBSD master site.

Eventually, we will probably split this into a separate file
(bsd.port.sites.mk?), and add some more sites from all corners of
the world.

Right now, XCONTRIB, GNU, PERL_CPAN, TEX_CTAN, and SUNSITE are
supported.

(4) COMPRESS_MAN command alias is replaced by MAN[1-9LN] variables.
You just say "MAN1=foo.1 bar.1" and the make rules will
automatically compress it for you if necessary. (Idea by: obrien)

(5) New "distclean" target to delete distfile too. (Submitted by:
obrien)

(6) Chained dependency cleaning, can be turned off by NOCLEANDEPENDS.

Reviewed by: the ports list


19646 11-Nov-1996 bde

Turned off -W and -Winline so that the warnings that should be fixed for
2.2 are more obvious. -Winline is unimportant, but -W gives thousands
of warnings for comparisions. Turning off -W also loses warnings for:
- auto variables clobbered by longjmp. Not much of a problem in the kernel.
- functions returning without a value. I don't like losing this.
- an expression statement or the left side of a comma operand contains no
side effects. Turning this off also stops warnings for the low quality
debugging macros in gsc.c and lpt.c.

Should be in 2.2.


19481 07-Nov-1996 alex

Style changes: $(...) --> ${...}, consistent placement of -c.

Suggested by: bde (via steve)


19353 03-Nov-1996 obrien

Set tabstops to 4 in vi like in emacs.


19343 03-Nov-1996 steve

Add in POSIX 1003.2 mandated rules. NOTE: these
will only be enabled when the first non-comment line
of the Makefile contains the .POSIX directive.

Submitted by: Joerg Wunsch <joerg@freebsd.org>


19307 01-Nov-1996 asami

(1) Add NetBSD support. Closes PR bin/1643.
Submitted by: Jason Thorpe <thorpej@nas.nasa.gov>

(2) Remove the bogus "CAT+=" definition. Closes PR ports/1703.
Submitted by: Peter Childs <pjchilds@imforei.apana.org.au>

(3) Change MKDIR to "/bin/mkdir -p", remove "-p" from ${MKDIR}
invocations. Closes PR ports/1901.
Submitted by: obrien

(4) Add a new macro variable COMPRESS_MAN, which will evaluate to gzip
if NOMANCOMPRESS isn't set (default), or true if it is.

(5) Add a new variable NO_CHECKSUM, which will disable the md5 checksum.
Submitted by: jkh

(6) Also, move NO_PATCH and NO_PACKAGE checks to right place in
invocation order.

(7) Check for LIB_DEPENDS before installation too. (It used to check
only before extraction.)
Forgotten a long time ago by: asami


18841 09-Oct-1996 bde

Oops, this wasn't supposed to have -Wcast-qual yet.

Also disabled -Wunused. It caused too many warnings even for me.
The sign mismatch warnings should be fixed first. They are more
important and harder to disable (they are controlled by -W, which
controls too many things).


18821 08-Oct-1996 bde

Oops, forgot to cvs add bsd.kern.mk.

Centralized the definition of CWARNFLAGS into bsd.kern.mk.


18820 08-Oct-1996 bde

Centralized the definition of CWARNFLAGS into bsd.kern.mk.


18807 08-Oct-1996 jfieber

Generate ISO-8859-1 text by default instead of US-ASCII.


18777 06-Oct-1996 wosch

add variables MODLOAD and MODUNLOAD for modlad/modunload commands


18776 06-Oct-1996 wosch

Create first HTML output and than ASCII. Generating
HTML formatted output is usually faster and we see SGML errors
earlier.


18677 04-Oct-1996 peter

Add LIBSTDCPLUSPLUS
(can't use the '+' char in variable names, same as LIBGPLUSPLUS)


18676 04-Oct-1996 peter

libresolv.a doesn't exist anymore... Hmm, what's the right thing to do
here? Can we just undefine it? What about 3rd party bmakefiles?


18630 01-Oct-1996 jfieber

1) If as link file was created by sgmlfmt, use it during installation.
2) The assignment of CLEANFILES in a .for loop was badly botched. Now fixed.


18566 29-Sep-1996 bde

Don't warn about non-canonical object directories if they have been
forced in any of the standard ways (MAKEOBJDIR was lost in the
previous commit). Simplified the conditionals for this.

Restored comment about MAKEOBJDIR from rev.1.4.

Improved English in comments.


18564 29-Sep-1996 jfieber

Add links file to CLEANFILES.


18545 28-Sep-1996 nate

The warning was triggering off the unused variable MAKEOBJDIR, instead
of the variable OBJLINK which is used in /etc/make.conf to build 'obj'
links in the current directory. This caused lots of useless warnings
since if OBJLINK is defined ./obj will be created and used.


18529 28-Sep-1996 bde

Fixed dependencies on libraries which I broke in rev.1.39 of
bsd.prog.mk and didn't actually fix in rev.1.43 of bsd.lib.mk.
The library names must be defined before they are used in
dependencies.


18484 24-Sep-1996 asami

Back out changes in rev. 1.217 -- ${CONFIGURE_SCRIPT} is not
meant to rename the name of script in ${SCRIPTDIR}.


18483 24-Sep-1996 ache

Back out my brackets change, it is definitely make bug, (recently
introduced) because old make version I check do the right job.


18481 24-Sep-1996 ache

Add brackets to change bogus make expression priority, i.e.
!defined(X) && $(A) != $(B)
parsed as
(!defined(X) && $(A)) != $(B)
and not as
!defined(X) && ($(A) != $(B))
Probably it should be fixed in make


18476 23-Sep-1996 asami

Look on the CDROM for patch files too.
Submitted by: max

While I'm here, add "${DIST_SUBDIR}/" at end of CDROM pathnames. Also
add an empty declaration of PATCH_SITES next to MASTER_SITES to avoid
"variable recursive" error.


18427 20-Sep-1996 bde

Added a `checkdpadd' target to help check that ${DPADD} is consistent with
${LDADD}. It doesn't handle internal libraries very well yet.


18426 20-Sep-1996 bde

Fixed and simplified `whereobj' rule. Use the not-so-new -V feature.
Echoing ${.OBJDIR} would work. but -V is more general.


18374 19-Sep-1996 peter

add -fgnu-runtime to the .m.o and .m.po rules, since we (will) have
the gnu libobjc rather than the NeXT one. I do not understand objc
so I don't know the implications of this, but the gcc-2.7.2 libobjc is
built with this.


18373 19-Sep-1996 peter

disable the objwarn warning if NOOBJ is set.. We have quite a few places
in the tree that use things like bsd.prog.mk just to get the default
targets like install, tags, obj, clean, cleandir, cleandepend, but do not
actually build anything there.


18340 18-Sep-1996 swallace

.TARGETOBJDIR has been removed from make and CANONICALOBJDIR set in
bsd.obj.mk. Also, a make target called objwarn checks to see
if ${.OBJDIR} != ${.CURDIR} and ${.OBJDIR} != ${CANONICALOBJDIR}
and outputs a warning. (No warning for the latter if MAKEOBJDIR or MAKEOBJDIRP
REFIX is set). objwarn is called from all targets in bsd.prog.mk, bsd.kmod.mk,
and bsd.lib.mk.

Reviewed by: bde


18314 16-Sep-1996 peter

Workaround to (hopefully) fix the NOMANCOMPRESS case of the MANFILTER-using
man pages (eg: named/bind/etc). In order to get (say) dig.1 to pass
through the filter and produce a new dig.1 for installing, I used an
intermediate file at build time, similar to the way the .gz man pages are
built.

I've not extensively tested this, but it seems to work for the known
cases where it was failing, and it only affects the NOMANCOMPRESS case
which was already broken.

Pointed out by: "Ph. Charnier" <charnier@xp11.frmug.org>, PR#1612


18052 05-Sep-1996 bde

Moved definitions of library names from bsd.prog.mk to a new central
file bsd.libnames.mk and include this file where necessary. This fixes
null library names in ${DPADD}'s in library makefiles.


18051 05-Sep-1996 bde

Fixed `make objlink' (and `make obj' in the (non-default) OBJLINK case).
Running them twice usually destroyed the target binary. E.g., the
second `make objlink' in `make objlink; make; make objlink' replaced
the `cat' binary by a symlink cat@ -> /usr/obj/usr/src/bin/cat.

`ln -fs' is unusable when the target might be a symlink that resolves
to a directory. Then -f applies to a file in the directory and not
to the symlink. This seems to be the standard (and sometimes useful)
behaviour.


18022 03-Sep-1996 bde

BSD.usr.dist:
Added forgotten share/doc/psd/05.sysman and share/zoneinfo/America/Indiana.

bsd.doc.mk:
Nuked mkdir -p and wrong fixups of the leaf directory's ownerships and
permissions. The doc tree should be well enough established for this
to be safe. Installs to directories should use a trailing slash on
the directory name so installs to non-drectories are fatal, but I
didn't start changing them.

bsd.man.mk:
Nuked mkdir -p and wrong fixups of the leaf directory's ownerships and
permissions. They were overkill to create just /usr/share/info.

zoneinfo/Makefile:
No changes yet. zic creates directories with ordinary 755 permissions.
Why do we use 555 permissions for directories in /usr/share/zoninfo.
Why not for zoneinfo itself? /proc and /dev/fd are the only other
directories in the system with 555 permissions.


17971 31-Aug-1996 bde

Don't depend in the kernel on the gcc feature of doing arithmetic on
pointers of type `void *'. Warn about this in future.


17831 26-Aug-1996 peter

Use MANFILTER everywhere instead of a couple of MANFILT typos..


17823 25-Aug-1996 wosch

/bin/echo -> ${ECHO}
/usr/bin/sed -> ${SED}


17819 25-Aug-1996 jkh

Back out the recent DEPEND changes - as Bruce points out, it's bogus.

I'll leave any future Makefile hackery to him since he's clearly thought
about this a great deal more than I have.


17809 24-Aug-1996 asami

Use the new "file:" URL specification to fetch to check the CDROM
first if /cdrom/ports/distfiles exists. If FETCH_SYMLINK_DISTFILES
is set, symlink the file instead of copying.

Reviewed by: jhk


17800 23-Aug-1996 jkh

Make it possible to turn the depend pass off entirely with a NO_DEPEND
variable.
Requested-By: wollman


17793 23-Aug-1996 jkh

Add depend to all target so that it's explicit. It's only done once,
even if make all is run multiple times, since the depend rule looks for
an existing .depend file.


17708 20-Aug-1996 asami

Update explanation of *_DEPENDS, in particular note that bsd.port.mk
can now check existence of files specified by full pathnames, not only
executables.


17644 18-Aug-1996 asami

(1) Use INSTALL_PROGRAM where we attempt to pass this command line
to configure.

(2) Gently warn user for non-0022 umasks.

Submitted by: "David E. O'Brien" <obrien@Nuxi.cs.ucdavis.edu> (1)


17636 17-Aug-1996 asami

(1) Ignore patches directory without a patch with a message instead of
bombing mercilessly.

(2) If that directory has a directory called CVS, remind the user of
the existence of the "-P" option to cvs co and update.

(3) While I'm here, clean up the PATCH_DEBUG code a bit. In
particular, don't duplicate a whole bunch of code just for adding
a single "echo" statement. ;)

Reviewed by: the ports list


17604 15-Aug-1996 asami

(1) Add myself as MAINTAINER (of this file) -- commented out so it
won't be pulled into individual ports that include this file. ;)

(2) Document MOTIFLIB, it's not set in the ports Makefiles but is
important for Motif ports (already documented in the handbook).

(3) Add INSTALL_PROGRAM, INSTALL_SCRIPT, INSTALL_DATA, INSTALL_MAN as
"aliases" of the appropriate install command line, for use in *-install
targets.

Reviewed by: the ports list (item 3 only)


17511 11-Aug-1996 peter

Add a hook ``MANFILTER''. This optionally specifies a command to
pipe the man page source through before compressing or installing.
This can be used to do do (eg) sed substitution on man pages from
3rd party packages (in particular, ncurses and bind-4.9.4)

This should not affect anything already in the source tree.


17510 11-Aug-1996 peter

Replace some leaky ``cpp | as'' pipelines with ``cc -x <lang>'' commands
to do the preprocessing and assembling.

(I've been running this for months, and had forgotten about it)


17464 07-Aug-1996 asami

Make explanation of BUILD_DEPENDS less confusing.

Requested by: Narvi <narvi@haldjas.folklore.ee>


17400 03-Aug-1996 jkh

Use tsort -q


17310 27-Jul-1996 jkh

The clean rule in here was bogus.


17299 27-Jul-1996 andreas

Fixed bug, that CONFIGURE_SCRIPT in a port's Makefile doesn't have
any effect. The target do-configure used ${SCRIPTDIR}/configure
instead of ${SCRIPTDIR}/${CONFIGURE_SCRIPT}.
-andreas


17168 14-Jul-1996 peter

Fix the recently added whereobj target.

Add missing end-of-line backslash
Remove two extra @ characters


17116 12-Jul-1996 pst

Add whereobj target to find that pesky obj dir


16971 05-Jul-1996 jkh

Remove now-unused SRC_ENCAPSULATION hack.


16860 30-Jun-1996 jkh

Fix the ordering dependency I broke.


16826 29-Jun-1996 phk

Make cleandirs more safe
Suggested by: bde


16784 26-Jun-1996 gpalmer

Add a missing space in a comment


16672 24-Jun-1996 jkh

Add default targets for cleandepend and objlink.
Submitted by: Michael Hancock <michaelh@cet.co.jp>


16663 24-Jun-1996 jkh

Bring in my changes for removing the pestilent obj links (unless you
really want them) from /usr/src. This is the final version of the
patches, incorporating the feedback I've received from -current.


16595 22-Jun-1996 gpalmer

Correct spelling errors (i before e except after c :-) )

Submitted by: James Raynard <jraynard>


16581 22-Jun-1996 phk

Add man-page section 'n' and LIBTCL macro.


16558 20-Jun-1996 jkh

Handle the `distribute' target.


16551 20-Jun-1996 jkh

Whoops - I made `make clean' chatty by mistake.


16508 19-Jun-1996 asami

The changes to go with ncftp -> fetch. Besides changing the names,
standardize the variables a little, and simplify some parts because
we can now trust the fetcher's return value.

Reviewed by: the list


16500 19-Jun-1996 jkh

Spit out the a proper port path for the describe target.
Submitted-By: Chuck Robey <chuckr@Glue.umd.edu>


16495 19-Jun-1996 jkh

Ok, now cleandir: is correct.


16492 19-Jun-1996 jkh

Add some unobtrusive changes to handle sources which aren't ports
(SRC_ENCAPSUATION). Stick in some cd ${.CURDIR} directives which have
been (benignly) missing all this time. Allow more types of targets to be
selectively disabled.


16437 17-Jun-1996 phk

Add support for ${CLEANDIRS} that will be rm -rf'ed during clean & cleandir.


16434 17-Jun-1996 bde

Synced with Makefile.i386: added -Wunused.


16425 17-Jun-1996 jkh

Add LIBFTPIO


16342 13-Jun-1996 asami

Add "MASTER_SITES?=" (no this is not a typo) right before the
"MASTER_SITES:= ..." of defined(MASTER_SITE_OVERRIDE) case, otherwise
it would cause a recursive variable definition error when
MASTER_SITE_OVERRIDE is set and MASTER_SITES is not set.


16097 03-Jun-1996 jfieber

Fix incorrect handling of .cxx files in default rules.


16068 02-Jun-1996 phk

Back out yacc change.


16052 01-Jun-1996 asami

Add some comments to sections to disable targets using NO_* variables.

Remove disabling of "repackage", that thing calls package anyway.

Submitted by: (mostly) jkh


16011 30-May-1996 phk

Make the yacc rules reentrant
Suggested by: peter


16001 30-May-1996 asami

Set MAKE_ENV and CONFIGURE_ARGS with += instead of ?=, it is easier to
add things this way.

Reviewed by: ache


15959 28-May-1996 phk

Avoid a ton of "mv" when making libs by using -O to ld.
Make lex rules reentrant.


15950 27-May-1996 wosch

`make install' do not depend on `make all'
Add some comments for variables and targets.
Include <bsd.obj.mk>, remove targets obj, clean, cleandir.
Replace ${MAN*} with ${DOC*} variables.
Use a .for loop for undefined targets


15948 27-May-1996 wosch

Add a note that MAKEOBJDIR is an enviroment variable
and does work proper only if set as enviroment variable,
not as global or command line variable.


15903 25-May-1996 wosch

Add some comments for variables and targets.


15902 25-May-1996 wosch

speedup MLINKS


15697 09-May-1996 phk

Make some rules reentrant, and mark the onces that cannot be.


15415 27-Apr-1996 jkh

Fix a minor grammatical error (reselled -> resold) I just noticed.


15391 26-Apr-1996 asami

Add CFLAGS=${CFLAGS} to MAKE_ENV, otherwise gmake won't pick it up.


15353 22-Apr-1996 wosch

New variable NOOBJLINK
Create 'obj' directory in current directory instead
a symbolic link to the 'obj' tree if defined. [not set]

Print a warning if 'obj' tree (/usr/obj) does not exist.

Change default 'obj' directory from ``obj.${MACHINE}'' back to
``obj'', unfortunately many Makefiles are wired with the name ``obj''.

Add some comments for variables and targets.


15336 21-Apr-1996 jdp

Add "-x" to the linker command for building shared libraries. This
eliminates many local symbols that could not be removed by the "ld -r -x"
steps on the individual object files. It makes shared libraries
substantially smaller -- almost 11%, in the case of libc.so.3.0.


15213 12-Apr-1996 wosch

install bsd.obj.mk
Submitted by: Asami


15209 12-Apr-1996 asami

Add NO_CDROM, RESTRICTED, BROKEN and Motif support.

(1) The new NO_CDROM Boolean variable means "don't put the distfile/
package on the CDROM you're going to sell". It will basically
turn off everything if FOR_CDROM is set.

Many of the NO_PACKAGE ports are actually "don't sell for profit"
types, which we shouldn't have any problem distributing via ftp.

(2) The new RESTRICTED Boolean variable means don't build this unless
you know what you are doing. It doesn't have any effect unless
NO_RESTRICTED is also set.

(3) BROKEN means this port is broken. At least it will now show up in
INDEX and README.html, and give people more incentive to fix (I
hope).

RESTRICTED and BROKEN are expected to replace the pseudo-targets
in parent Makefiles. (The RESTRICTED and BROKEN list didn't do
anything before, they were solely for grepping purposes.)

(4) The Motif support brings in four new variables: REQUIRES_MOTIF,
which the porter sets for ports that require Motif to build;
HAVE_MOTIF, which the user sets to indicate the system has Motif;
MOTIF_STATIC, which the user sets to indicate that the static
libXm, instead af the default dynamic library, is to be used; and
MOTIFLIB, which is set to "${X11BASE}/lib/libXm.a" or
"-L${X11BASE}/lib -lXm", depending on whether MOTIF_STATIC is set.

The porter is expected to replace all occurrences of libXm in the
{Im,M}akefiles with ${MOTIFLIB}, and this will allow both dynamic
linkage (for users with Motif) and static linkage (for those who
build packages to be used by those withot Motif, i.e., me ;)
automatically.

Original Motif support idea by: graichen


15205 11-Apr-1996 wosch

remove variables KMODGRP?=, KMODOWN?=, KMODMODE?=
replace ${BIN*} variables with ${KMOD*} variables

cleanup manpage code

include bsd.obj.mk
remove targets clean, cleandir, obj (included by bsd.obj.mk)


15168 09-Apr-1996 wosch

Add variable ``_MANPAGES'' This will be replace the
.if !defined(MAN1) && !defined(MAN2) ... orgy in bsd.prog.mk and
bsd.kmod.mk


15167 09-Apr-1996 wosch

use .for loop for common targets


15166 09-Apr-1996 wosch

Add targets cleanfiles/clean, cleandir


15094 07-Apr-1996 asami

Change ${ENV} -> ${SETENV}. The former coincides with startup file
names of bash et al.

Submitted by: Thomas Gellekum <thomas@ghpc8.ihf.rwth-aachen.de>


15061 05-Apr-1996 wosch

remove BINGRP?=, BINOWN?=, BINMODE?=, STRIP?=
use .for loop for common targets


15023 03-Apr-1996 phk

Pick up CWARNFLAGS from /etc/make.conf if defined.


14986 01-Apr-1996 wosch

add MKDEPCMD?= and DEPENDFILE?=
replace sh(1) commands with make(1) builtins


14985 01-Apr-1996 asami

Thanks for the overwhelming response (which can be only summarized by the
word: "zilch"). I guess the only way to get people try and comment on
these kind of things is to shove it down their throat.... ;)

Anyway, here's a set of changes required for auto-generation of READMEs
in ports directories. Necessary changes and additions of templates
to the ports tree will follow shortly.

Eventually I'll commit all the generated READMEs to the tree, but that
will be in the rather distant future. For now, I encourage anyone
with a -current systam and a matching ports tree to do a "make readmes"
at the top level and see what they get.

Next step will be to add pkg/{COMMENT,DESCR} to all the categories.


14968 31-Mar-1996 wosch

add SHAREDIR?=, SHAREOWN?=, SHAREGRP?=, SHAREMODE?=,
INFOOWN?=, INFOGRP?=, INFOMODE?=

set variables recursive, eg. change KMODOWN?=bin to KMODOWN?=${BINOWN}

from NetBSD:
add NLSDIR?=, NLSGRP?=, NLSOWN?=, NLSMODE?=,
BSDSRCDIR?=, BSDOBJDIR?=, NOBINMODE?=


14949 31-Mar-1996 asami

Change name of variable to LOCALBASE, to keep it symmetric with X11BASE,
which has been in the tree for a much longer time.

Sorry for the multiple commits and I know I shouldn't be doing this but
my hamster tells me to be orthogonal...("hey Phoenix, do you think
I should call it LOCALBASE?" "squeak" "ok, if you say so").


14948 31-Mar-1996 asami

Add a variable LOCAL_PREFIX that defaults to "/usr/local", as a
counterpart to X11BASE (default "/usr/X11R6").

Now PREFIX is set to ${X11BASE} or ${LOCAL_PREFIX} depending on
whether USE_IMAKE or USE_X11 is set or not.

This enables us to refer to non-X ports from X ports using
${LOCAL_PREFIX}, thus removing most of the remaining "/usr/local"s
from the ports tree.

This will also allow the system administrator to move the whole
"local" tree to somewhere else, without affecting X ports. (Of course
not all ports are necessarily happy with that, but we're working on
it.)

Based on: an idea that came up while I was watching a football game
several months ago ("hey, maybe I can move that sideline
without disturbing the other!")


14801 24-Mar-1996 wosch

Obtained from: NetBSD

"obj" directory stuff work


14782 24-Mar-1996 wosch

remove BINGRP?= BINOWN?= BINMODE?=


14781 24-Mar-1996 wosch

KMODDIR= -> KMODDIR?=
add INFODIR


14779 24-Mar-1996 wosch

delete LIBDIR?= LINTLIBDIR?= LIBGRP?= LIBOWN?= LIBMODE?= SHLIBDIR?=
BINGRP?= BINOWN?= BINMODE?=


14778 24-Mar-1996 wosch

delete MANGRP?=, MANOWN?=, MANMODE?=, MANDIR?=


14777 24-Mar-1996 wosch

delete ``.if ${MACHINE} == "sparc"''


14701 19-Mar-1996 bde

sysinstall/Makefile:
Fixed DPADD again.

mk/bsd.README
Don't list the LIBXXX identifiers here. Describe them better.

mk/bsd.prog.mk
Updated the list of LIBXXX identifiers.
- recently added library libdisk.a wasn't mentioned (required for sysinstall)
- old objects kz*.o weren't mentioned
- old libraries libc_pic.a, libcom_err.a, libf2c.a, libg++.a, libgcc_pic.a,
libgmp.a, libipx.a, libkeycap.a, libss.a and libxpg4.a weren't mentioned
- old libraries libgnumalloc.a and libftp.a no longer exist
- old library libmp.a was said to not exist
- deprecated links libfl.a and libln.a weren't mentioned


14573 12-Mar-1996 wosch

add DOCDIR, DOCOWN, DOCGRP, DOCMODE for documents
add LIBDIR, LINTLIBDIR, SHLIBDIR, LIBOWN, LIBGRP, LIBMODE for libs
add KMODOWN, KMODGRP, KMODMODE
new variable KMODDIR similar to BINDIR


14455 10-Mar-1996 asami

Replace PATCH_PRFX with a more generic DIST_SUBDIR. If it is set to
"foo", what this does is:

(1) Put all distfiles and patchfiles in /usr/ports/distfiles/foo

(2) Go to ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/foo when the
master site is down

When your port has a lot of dist/patchfiles, or has a file that does
not have a very port-specific name (e.g., "Makefile"), set this
variable instead of redefining DISTDIR. (If you redefine DISTDIR, (1)
will work but (2) will not.)

Agreed that it's a good idea by: adam


14444 09-Mar-1996 wosch

[Ee]rrs -> Errs errs, save one process for make clean


14410 07-Mar-1996 wosch

[Ee]rrs -> Errs errs
save one process for make clean


14400 06-Mar-1996 asami

Delete all references to the variable ${KEYWORD} that never quite flew.
(Sorry Jordan, but your other idea (${CATEGORIES}) was a major hit.)

Also remove the keyword field in the INDEX line and replace it with
two columns: build-time dependencies and run-time dependencies. They
are both list of package names (minus the ".tgz").


14399 06-Mar-1996 asami

Replace absolute pathnames with variables, so that

(1) people can have weird paths and it will still work, and

(2) if you really need to use /usr/local/bin/cp instead of /bin/cp,
you can do that by changing only one line.

Submitted by: wosch


14106 16-Feb-1996 jkh

Add a check for when the user tries to FTP over a symlink in ${DISTDIR}.


13973 08-Feb-1996 mpp

Make sure that the --no-split flag gets passed to makeinfo.
Fixes PR # 1003 (gdb info files don't work).


13962 08-Feb-1996 adam

correct semantic error in the English usage:
distributed patches --> distribution patches


13952 07-Feb-1996 asami

Mention "make reinstall" in the message that gets printed out when
/var/db/pkg/${PKGNAME} exists. ("make install" will do nothing
because this is not a critical error and the installation is
treated as successful.)

Closes PR 870.


13945 06-Feb-1996 ache

Add NCFTP tailer arguments: ${NCFTPTAIL} variable
Since it is empty in normal case, it not affect anything
It is useful for ncftp -c ugly_name > nice_name
^^^^^^^^^^^ ${NCFTPTAIL}


13535 21-Jan-1996 jdp

Back out my previous change, which caused c++rt0.o to be linked into
every shared library, until I can diagnose the problems it is causing
for certain programs such as awk and groff.


13473 17-Jan-1996 jdp

Always link /usr/lib/c++rt0.o into a shared library. CPLUSPLUSLIB is no
longer necessary, and can be removed from Makefiles.


12880 16-Dec-1995 bde

Added `-Wstrict-prototypes -Wmissing-prototypes' to CWARNFLAGS so that
prototypes don't go missing again. Also added -Winline so that some
doubtful (non-)inlines get fixed.

bsd.kmod.mk:
Also added `-Wreturn-type -Wimplicit -Wnested-externs' to catch up
with the kernel.


12828 14-Dec-1995 bde

Added `9' to ${SECTIONS}.


12665 07-Dec-1995 jkh

Add support for ALL_HOOK feature. Lets you replace the `all' target
with something of your own devising.


12526 29-Nov-1995 bde

Added a preprocessor for soelem. If if USE_SOELIMPP is defined, then
1. ${ROFF} is run in ${.OBJDIR}.
2. the preprocessor prefixes ${SRCDIR}/ to relative pathnames in `.so'
statements.
This is useful when running ${ROFF} in the source directory isn't
convenient.

Added dependencies on ${EXTRA} and ${OBJS}. These are usually for files
that are sourced indirectly. ${OBJS} is for files that are built.
4.4lite has decentalized incomplete dependencies on ${EXTRA} and ${DPADD}.
These were broken by are centralized handling of the roff targets.


12487 26-Nov-1995 asami

Make the {FETCH,BUILD,RUN}_DEPEND targets work with non-executable files
too. Basically, if the name starts with a "/", it's tested with "test -e";
otherwise, it's tested with "witch -s".

Reviewed by: the ports list (well at least nobody complained)


12346 17-Nov-1995 asami

Use NO_MTREE, not !USE_X11 && !USE_IMAKE, to determine package args.
NO_MTREE should work as advertised (for both direct installation and
pkg_add) now.


12080 04-Nov-1995 bde

Added `#include "ioconf.h"' to <machine/conf.h> and cleaned up the
misplaced extern declarations (mostly prototypes of interrupt handlers)
that this exposed. The prototypes should be moved back to the driver
sources when the functions are staticalized.

Added idempotency guards to <machine/conf.h>. "ioconf.h" can't be
included when building LKMs so define a wart in bsd.kmod.mk to help
guard against including it.


11623 21-Oct-1995 bde

Fix maninstall target for the NOMANCOMPRESS case. The previous revision
failed when there was an obj directory. Use .PATH.n for installing too
so that make can find the source files. This allows the source files to
be in several directories (the old method using cd only works well for
a single directory). The dependencies are on the source files even for
the compressed case, although it would be more flexible to depend on the
files being installed, so that `make install' doesn't attempt to build
things

Force COPY to -c for the NOMANCOMPRESS case. Then the files to be installed
are always sources, so they must not be moved.


11613 21-Oct-1995 bde

Add `.sh' suffix and rule.

Enable `.c' rule. (Null suffix rules were disabled because of bugs in old
versions of make.)

Add ${LDFLAGS} to all rules that involve linking.


11548 17-Oct-1995 asami

Back out the two latest changes. The -current branch is now equal to
the -stable branch except the change between 1.182 -> 1.183.


11535 16-Oct-1995 ache

Add NO_FETCH handling in the similar way as other NO_* targets does


11534 16-Oct-1995 ache

Fix NO_EXTRACT case: build missing WRKDIR
Previous variant always fails on touch work/.extract_cookie
(or next following touches) because work directory not exists.


11517 15-Oct-1995 phk

An even better idea: The default will be that on _${KMOD} (_nfs_mod...) will
be exported. This breaks the compilation of some lkms, the owners of which
is kindly requested to consider what should be exported.


11512 15-Oct-1995 phk

Automatically DTRT for VFS_LKM


11509 15-Oct-1995 jfieber

Change the default PRINTER from ps to ascii.


11503 15-Oct-1995 phk

Make a rule for cleaning the namelist of lkms.
TXT & DATA symbols not explicitly mentioned will be made local.


11468 14-Oct-1995 bde

Fix the support for MANSRC (it was broken by the compression changes):
use .PATH.n to get the dependencies right and to avoid some shell tests.

Remove bogus dependency of individual compressed man pages on MANDEPEND.

Use for loops to avoid duplicated code.

Combine some rm steps in installation of links. Linking still takes too
long.


11429 11-Oct-1995 asami

Add "--batch" to PATCH_ARGS and PATCH_DIST_ARGS when ${BATCH} is set
to avoid an infinite loop in patch when the patch target is not found and
stdin is redirected from /dev/null (the "skip this patch? [n]" question).


11344 09-Oct-1995 bde

Don't run `ranlib -t' at install time. Our ld has never looked at the
timestamp on __.SYMDEF like ranlib.1 says it does, so changing the
timestamp has no benefits, and changing it breaks smart installs.


11191 04-Oct-1995 ache

Add CONFIGURE_ENV: pass this environment to configure script.
Allows pre-set some variables to eliminate wrong tests


11179 04-Oct-1995 asami

Attempt to sound more civilized by adding a missing period to
"Attempting to fetch from $${site}."

Why it was in PATCHFILES and not in DISTFILES, I have no idea.


11138 02-Oct-1995 asami

Use full pathname for ldconfig (/sbin/ldconfig).

Hinted by: joerg


11136 02-Oct-1995 wollman

Compress manual pages (if desired) in the obj directory rather
than in the installation destination. Should make release-building
substantially faster. The msun Makefile changes simple adapt to the new
scheme.


10874 18-Sep-1995 asami

Split EXEC_DEPENDS into FETCH_DEPENDS, BUILD_DEPENDS and RUN_DEPENDS.
They are called from the fetch, extract and install targets,
respectively.

Also, only RUN_DEPENDS is put into the @pkgdep list of the package.

EXEC_DEPENDS is still supported (for now), it is copied into
BUILD_DEPENDS and RUN_DEPENDS. This will go away after we finish
fixing all the ports Makefiles.

This change fixes the following bug/features:

(1) "make fetch" building and installing all the dependencies

(2) Programs needed for building only (e.g., gmake) put into the
packages' dependency lists ("why does the emacs package depend on
gmake?")

Reviewed by: the ports list


10709 13-Sep-1995 asami

Ignore patchfiles that end with ".orig" or "~".

Suggested by: paul, joerg among others


10667 10-Sep-1995 jfieber

Now works correctly with obj directories.

FORMATS can be defined as an empty string to suppress generation or
installation of any files. Previously setting it to "null" had that
effects.

Now uses MANOWN, MANGRP and MANMODE for installation instead of BINOWN,
BINGRP and BINMODE.


10664 10-Sep-1995 jfieber

Fix a bug with the clean target.


10638 08-Sep-1995 jfieber

Add bsd.sgml.mk


10637 08-Sep-1995 jfieber

A makefile for sgml source files.
Reviewed by: Rod Grimes rgrimes@gndrsh.aac.dev.com


10412 29-Aug-1995 asami

Don't trust ncftp's exit status, they are not indicative of whether
the file is fetched or not. Apparently Jordan fixed it a long time
ago but it was broken again at import of the new version of ncftp.
Which means even if we fix it, it may break again and we may need to
fix it again, and (imagination here, please)....

Instead, move the file existence check into the for loop for
MASTER_SITES/PATCH_SITES and break out with "continue 2" when the file
is found. This is actually a cleaner logic than before if you ask me,
because instead of assuming the file is fetched on a 0 exit status
from ncftp AND checking for the existence of the file after the loop,
the check is done exactly once for each iteration and nowhere else.


10410 29-Aug-1995 asami

Clean up EXTRACT_ONLY logic a bit. Instead of branching in the
do-extract target depending on defined(EXTRACT_ONLY) or not, simply
set EXTRACT_ONLY ?= ${DISTFILES} and always use ${EXTRACT_ONLY} as
the extraction list.


10096 18-Aug-1995 asami

Merge all the "skeleton" target into one macro. This is an enormous
change, but I've been testing this on thud and silvia for quite a
while, also I haven't gotten any bug reports from the ports list, so
I'm going to let it loose!

It cleans up this file quite a bit, now I can go in and start adding
some more "interesting" things.... ;)


10028 11-Aug-1995 dg

Changed default optimization from -O2 back to -O...gcc 2.6.* has serious
bugs when using -O2.


9870 02-Aug-1995 dg

Use lorder/tsort for shared libraries. It might help group things better.
Suggested by Garrett Wollman.


9734 27-Jul-1995 wollman

Use GZIPCMD to hold name of gzip command rather than just GZIP.

Submitted by: Torsten Blum


9725 26-Jul-1995 wollman

Compress `doc' and `info' documents before installing them.


9701 25-Jul-1995 bde

Change `install' to `${INSTALL}' so that default install flags can be
specified in the top level Makefiles.


9678 24-Jul-1995 asami

Let MASTER_SITE_OVERRIDE be prepended to the MASTER_SITES list instead
of replacing it. This way you can point it to a site close to you
that carries many distfiles, and still let it go fetch from the
original site if the distfile is not there.

Original idea by: mmead@Glock.COM


9564 17-Jul-1995 jkh

Simplify the USE_IMAKE stuff considerably.
Suggested by: asami


9529 15-Jul-1995 jkh

A regrettable hack to allow a port to say that it doesn't want its Makefiles
made after the xmkmf run.


9474 11-Jul-1995 asami

Add IS_DEPENDED_TARGET to change the behavior of a port when you want
to do something else than "install". For example,

make IS_DEPENDED_TARGET=fetch fetch

will fetch the required distfiles including those of the dependencies
without actually building and installing dependencies.

Also document ECHO_MSG.

Requested by: paul
Reviewed by: paul, jhs and others


9325 26-Jun-1995 asami

Use

ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/

as our distribution point for distfiles and patches. Other than
cosmetic changes (freebsd.cdrom.com -> ftp.freebsd.org), the
omission of "ports" is important. I would like to move this
directory completely out of the ports tree (on the ftp site),
so that people who do "get ports.tar.gz" won't get a bogus distfiles
-> ../distfiles symlink (which will make "make fetch" fail).

Sometime around the 2.1 release, the distfiles link will be deleted.


9324 26-Jun-1995 asami

Use full pathnames for the commands. Everything except gmake and
xmkmf (i.e., everything in the base distribution) should be referred
to by full pathnames.

Suggested by: rgrimes, originally from one of his customers


9319 26-Jun-1995 asami

Check if uid is 0 before running mtree. If you aren't root, you just
get a message (instead of a bunch of crap from mtree).


9308 25-Jun-1995 asami

Add new option NO_MTREE. If set, bsd.port.mk won't run mtree to
set permissions and ownerships of PREFIX (usually /usr/local). This
is the default if USE_IMAKE or USE_X11 is set.

This should be useful for machines like thud, where we want to keep
the /usr/local subtree writable to a group ("ports" in our case). Anybody
who installs stuff in /usr/local should have this set in the environment.

Note this won't affect anything the pkg_* suite does.


9292 24-Jun-1995 asami

Add a "checkpatch" target that does a "patch -C" instead of a "patch".
Note that the two "touch"s I took out from do-patch shouldn't have
been there in the first place.

This target may give incorrent results if two separate patches deal
with the same file, and their hunks overlap. (But having those kinds
of patches are bad, and they should be merged anyway.)

Reviewed by: hsu


9127 06-Jun-1995 asami

Renamed the default package repository ".../packages/.packages" to
".../packages/All". The "all" category that was automatically added
for every package is gone.

Note that bsd.port.mk requires category names to start with lowercase
names, otherwise it may get confused.

Reviewed by: jkh

By the way, here is a small script to convert your local package
hierarchy. Run it in bash, as /bin/sh not only will bark at the
$(.) command substitution but will also botch the [a-z]*/*.tgz
expansion (long-standing and annoying bug, reported before).

cd /usr/ports/packages
mv .packages All
for i in [a-z]*/*.tgz; do
j=$(basename $i)
/bin/rm $i
ln -s ../All/$j $i
done


8851 29-May-1995 asami

Remove comment about not being able to undefine a variable, as we *can*
do that.


8554 16-May-1995 asami

Fix the indent level. I know we're in code freeze, and this is
one of the key components of the system, but I'm sure that this:
===
- ${ECHO_MSG} "===> Registering installation for ${PKGNAME}"; \
+ ${ECHO_MSG} "===> Registering installation for ${PKGNAME}"; \
===
change has absolutely no chance to screw us up, right? :)


8501 13-May-1995 asami

Don't conditionalize fake-pkg on NO_PACKAGE.


8490 13-May-1995 asami

Add FORCE_PACKAGE, if this is defined, NO_PACKAGE will be turned off.

Ports for which we can't build packages should define NO_PACKAGE but
still prepare pkg/* files. The user who really wants a package and
clear of the legal problems can say FORCE_PACKAGE from the command line
to build a package anyway.


8469 12-May-1995 asami

When NO_PACKAGE is set, "package" and "repackage" don't depend on
"install". In other words, they won't do anything at all.


8468 12-May-1995 asami

Not only deleting the package and package links, also exit with status
1 if pkg_create returns error!


8467 12-May-1995 asami

Delete package and links when pkg_create fails.


8409 10-May-1995 asami

Add new variable to override the "hey foobar-1.2.3 is already installed"
warning from fake-pkg.
# FORCE_PKG_REGISTER - If set, it will overwrite any existing package
# registration information in ${PKG_DBDIR}/${PKGNAME}.


8374 09-May-1995 rgrimes

Change install: to afterinstall: to be more consistent.


8368 09-May-1995 asami

Make the "reinstall" target delete the package cookie as well as
the install cookie.


8321 07-May-1995 bde

Submitted by: charnier@lirmm.fr (Philippe Charnier)

Fix comment on .else to match code.


8276 04-May-1995 adam

added support for distribution patches in a subdir of ${DISTFILES}


8272 04-May-1995 jkh

Put an `@' in front of the mtree command. I don't want to see it.


8223 02-May-1995 jkh

Add an mtree line to the install target.


8185 30-Apr-1995 asami

A bunch of new targets in the package area. Relevent targets are:

package: check installation, build package, create links,
touch cookie
repackage: ditto but don't check cookie
package-noinstall: just build package from installed stuff, no cookies
involved at all
package-links create the symbolic links only
delete-package: delete package and symbolic links
delete-package-links: delete links only

These should make the management of the spaghetti of package links
a little friendlier. :)


8128 28-Apr-1995 jkh

Pass X11BASE to all sub-makes. I need it for a port, and I daresay that
there are a lot of hardwired "/usr/X11R6" paths out there that could stand
to use it as well.


8081 26-Apr-1995 jkh

Add LIBFTP.


8045 24-Apr-1995 asami

(1) Add the chain of dependencies to the targets in the NO_* section
too (otherwise the chain won't work).
(2) If NO_WRKDIR is set, "make clean" removes "./.*_done" (assuming
these are cookies...or should I list all the cookies?)


8044 24-Apr-1995 asami

Move call of fake-pkg from do-install to end of install.


7993 22-Apr-1995 jkh

Ok, this should get the last of the stragglers installed into a new fake-pkg.


7988 22-Apr-1995 jkh

Don't try to run the fake-pkg target if NO_PACKAGE is set.


7987 22-Apr-1995 jkh

Typo: patch -> package


7985 22-Apr-1995 jkh

Instead of copying PLIST over, run pkg_create in a special mode that dumps
the fully-formed PLIST to stdout and uses that.


7960 20-Apr-1995 asami

Major overhaul. The major targets (fetch, extract, patch, configure,
build, install) are now all skeletons and do nothing but

(1) Call pre-* target (if exists)
(2) Call scripts/pre-* script (if exists)
(3) Call do-* target
(4) Call post-* target (if exists)
(5) Call scripts/post-* script (if exists)

The do-* targets do all the work. The pre-* and post-* targets/scripts
don't exist by default. The main targets check for the cookies too, so
porters shouldn't have to worry about them at all.

NOTE: THE MAIN TARGETS IN THE PORTS MAKEFILES SHOULD GO AWAY. We need
to fix this before wcarchive comes back up. Change the names to do-*,
rip out the cookies, rip out the calls to pre-* etc. and most of them
should work.

Also, reorganize the whole thing so that similar targets are together
and add more comments. Surround section header with 64 #'s (C-u C-u
C-u # in emacs :).

Hopefully this will be the last major change to bsd.port.mk. Now let
the Makefile-hacking begin.


7939 19-Apr-1995 jkh

1. Add Satoshi's much-requested "fake pkg_add" option to the installation
rule.

2. Have all non-X11 prefix using packages include the BSD.local.dist mtree
file for initialization of /usr/local. I'm still not sure if this is
A Good Thing(tm) but I'll see what the users say. It's easily overridden.

3. Standardise on ${PKG_DBDIR} as pointer to /var/db/pkg or local preference.


7922 18-Apr-1995 asami

Use PKGNAME in the "describe" target (used to generate INDEX) too.
Didn't make sense to have two ports with the same name.


7921 18-Apr-1995 asami

Use PKGNAME instead of DISTNAME in messages. To avoid things like
"Building for WWW" (pops up in two different ports) "Installing for
web2c-6.1" (ditto), which aren even't reminiscent of the port's real
name.

Sorry jmz, please don't go fix the print Makefiles' own messages.
We are going to take them out after we do the great bsd.port.mk
update anyway.


7900 17-Apr-1995 asami

"package" now depends on "install", so we can do "make -k package" from
the top level and have the build-package sequence of each port work
together.

For the old behavior (i.e, just go ahead and blindly pack everything up,
regardless of the contents of work/), there is a new target "repackage".


7899 17-Apr-1995 asami

"all" now depends on "build", not "extract configure build".

Since "build" depends on "configure", which depends on "patch", etc.,
this shouldn't disrupt any Makefile that doesn't break the dependency
chain.

The old behavior was very annoying because when I did a "make -k",
it would still try to go configure and build even if the extraction
failed.


7866 15-Apr-1995 asami

Yikes...typo (.package/ should have been .packages/).


7734 10-Apr-1995 jkh

Don't pass duplicate pkgdeps to pkg_create


7712 09-Apr-1995 jkh

Add new -P argument to pkg_create.


7711 09-Apr-1995 jkh

Add 2 new targets to facilitate some things I'm thinking about.

1. package-name
Simply echos the associated package name for a port (if any).
2. package-depends
Shows all package names on which this port depends.


7710 09-Apr-1995 jkh

1. Fix the first line (should be a proper comment - silly emacs).
2. KEYWORDS+= CATEGORIES
3. CATEGORIES+= all (always want to be in "all"!)


7709 09-Apr-1995 asami

Add support for categorized subdirectories for packages. By default,
all .tgz files go to /usr/ports/packages/.packages, and a relative
symlink is created for every item in CATEGORIES...i.e., if "CATEGORIES
= foo bar", then /usr/ports/packages/{foo,bar}/pkgname.tgz both point
to /usr/ports/packages/.packages/pkgname.tgz.

Suggested by: jkh


7617 04-Apr-1995 jkh

Add USE_X11 for ports which are X11 users but don't use IMAKE.


7614 04-Apr-1995 gpalmer

Remove a `.' from the end of the echo line
`>> Attempting to fetch from $${site}' as it is misleading


7550 01-Apr-1995 jkh

By default, KEYWORDS is a copy of CATEGORIES.


7549 01-Apr-1995 jkh

Add default values and document them for CATEGORIES and KEYWORDS.


7548 01-Apr-1995 jkh

Add support for new CATEGORIES and KEYWORDS fields.


7444 28-Mar-1995 nate

Do what should have been done in v1.14

*Really* strip out unused local symbols from shared objects.

This was a typo on my part caused by an assumption that the profiled
libraries stripped symbols that same way as the non-profiled libraries.

Cut-n-Paste strikes again.

Obtained from: NetBSD


7423 28-Mar-1995 asami

Add support for "distributed" patches and a little extra cleanup.
New variables:

PATCH_SITES: patch equivalent of MASTER_SITES, overridable with
. MASTER_SITE_OVERRIDE.
PATCHFILES: Additional files to fetch and give to patch before
. applying the ones in patches/patch-*. If name ends
. with ".gz" or ".Z", it will be piped through zcat first.

Plus PATCH_DIST_STRIP and PATCH_DIST_ARGS that serve the same functions
as PATCH_STRIP and PATCH_ARGS for patches in patches/patch-*.

In the documentation and echo messages, I used the term "distributed
patches" and "FreeBSD patches" to refer to ${PATCHFILES} and patches/patch-*.
If you can come up with better names, by all means go ahead and fix them.

"grep PATCH /usr/ports/*/*/Makefile" reveals seven ports (mule, jless,
jtcl, jtk, dgd, less, color_xterm, gee I wonder why I'm the one who
implemented this) that can benefit from this. I'm now diving headlong
into /usr/ports to fix their Makefiles.


7418 27-Mar-1995 asami

Added more standard package suport file names. INSTALL for the
installation script, DEINSTALL for the deinstallation script, and
REQ for the requirement script, will be added with appropriate
flags to PKG_ARGS if they exist under pkg/.


7287 23-Mar-1995 gpalmer

Add a misssing `@' from before echo -n "|${MAINTAINER}"


7255 22-Mar-1995 jkh

Add maintainer to the index line.


7253 22-Mar-1995 jkh

Add new EXTRACT_BEFORE_FLAGS and EXTRACT_AFTER_FLAGS variables to make
complex extraction rules easier.


7231 21-Mar-1995 jkh

Make the fetch message a little more interesting and informative.


7211 21-Mar-1995 jkh

Add fetch-list command for Rod
Use ECHO_MSG macro for printing "===>" line things so that I can now turn
those OFF when I don't want them.


7207 21-Mar-1995 jkh

Make the describe rule generate more thorough information that's actually
of use to a front-end program. Back out my bogus description of the `index'
target! :-)


7206 21-Mar-1995 jkh

Document the index target.


7192 20-Mar-1995 wollman

Add support for pseudo-device LKMs.


7179 20-Mar-1995 ats

Don't do anything if BATCH is specified and the port is interactive for
the package target.The port may is not build and the package fails
otherwise.


7163 19-Mar-1995 ats

Change the xmkmf call to a xmkmf -a call. This should be more correct for
all X11R5 and X11R6 ports. This is the way how it should be normally
used according the manuals. Only pre-X1R5 ( X11R4, X11R3) ports can't
handle it.


6985 10-Mar-1995 rgrimes

Add protected and empty maninstall: targets.
Submitted by: Philippe Charnier <charnier@lirmm.fr>


6954 08-Mar-1995 olah

LIBPCAP -> ${DESTDIR}/usr/lib/libpcap.a


6872 03-Mar-1995 gpalmer

Add support to miss out ``DUDS'' subdirectories. See thread in freebsd-ports
for more.


6850 03-Mar-1995 jkh

Back out my previous change. I need to really think about this.


6849 03-Mar-1995 jkh

A small feature just for my own use.


6716 25-Feb-1995 phk

"make distribute" have changed, beware if you use it.


6516 17-Feb-1995 jkh

Always go to ${WRKDIR} before extraction. Modify the tar extract command
args to take advantage of this.
Pointed-out-by: asami


6392 14-Feb-1995 gpalmer

Make the checksum target not bomb out if there is a mismatch, just
print a warning. A better fix will come along just as soon as I
work out what it is.


6309 11-Feb-1995 phk

Make sure that info files never hit the "bin" dist.


6252 08-Feb-1995 bde

More complete implementation of SUBDIR for programs, libraries and kmods.
`depend' wasn't supported. This seems to have only broken `make depend'
in gnu/usr.bin/ld.

bsd.prog.mk:
Build the man pages in ${MANDEPEND} at build time.


6214 06-Feb-1995 hsu

Allow arbitrarily named configure script for use w/ HAS_CONFIGURE.


6189 04-Feb-1995 phk

Use absolute path to md5 program. It lives in /sbin and people are unlikely
to have $PATH to it.


6175 04-Feb-1995 asami

Add long-awaited (:) support for sophisticated dependency checking. We now
have three variables:

EXEC_DEPENDS - A list of "prog:dir" pairs of other ports this
package depends on. "prog" is the name of an
executable. make will search your $PATH for it and go
into "dir" to do a "make all install" if it's not found.
LIB_DEPENDS - A list of "lib:dir" pairs of other ports this package
depends on. "lib" is the name of a shared library.
make will use "ldconfig -r" to search for the
library. Note that lib can be any regular expression,
and you need two backslashes in front of dots (.) to
supress its special meaning (e.g., use
"foo\\.2\\.:${PORTSDIR}/utils/foo" to match "libfoo.2.*").
DEPENDS - A list of other ports this package depends on being
made first. Use this for things that don't fall into
the above two categories.

DEPENDS behaves exactly like before, so old Makefiles will still work
the same. The two variables are lists of pairs as described above.

For instance, if your program depends on unzip and libjpeg.5.*, use
the following definitions:

EXEC_DEPENDS= unzip:${PORTSDIR}/archivers/unzip
LIB_DEPENDS= jpeg\\.5\\.:${PORTSDIR}/graphics/jpeg

gmake:${PORTSDIR}/utils/gmake is automatically added to EXEC_DEPENDS
if USE_GMAKE is defined.

If NO_DEPENDS is defined, the list will just be printed out one by one.


6117 02-Feb-1995 jkh

Create an obj symlink when necessary.
Submitted by: "Remy CARD" <Remy.Card@masi.ibp.fr>


6097 01-Feb-1995 gpalmer

Start the ball rolling by sticking a
MAINTAINER?= line in here.

Idea by: jkh@FreeBSD.ORG


6033 30-Jan-1995 jkh

Make fetch a bit more forgiving of subdirs.


6032 30-Jan-1995 jkh

Add LN_FLAGS to all the places it makes sense.


6031 30-Jan-1995 jkh

Add new LN_FLAGS variable for making LINKS symbolic and whatnot.


5898 25-Jan-1995 ache

LIBFORMS & LIBSCSI added


5859 24-Jan-1995 jkh

NOOBJS was bogus - use the already extant `NOOBJ'.


5856 24-Jan-1995 jkh

Add the ability to say `NOOBJS' to indicate that the target has no object
files.


5830 24-Jan-1995 jkh

Fix bogus tab in makesum target.


5813 23-Jan-1995 jkh

Whomever put the depend rule in screwed it up. Fix it.


5812 23-Jan-1995 jkh

Eliminate a bogus stray tab.


5804 23-Jan-1995 jkh

Set PREFIX in the build target. Suggested by John Fieber.


5779 22-Jan-1995 gpalmer

Oops. Fix up the checksum routine - my last commit broke it slightly.


5704 17-Jan-1995 ache

Put brackets around EXTRACT_CMD, can be several commands here


5700 17-Jan-1995 ache

Remove -Wall for ascii formatting, we don't need so many
warnings while formatting standard BSD docs


5698 17-Jan-1995 ache

Modify prev. change, pass internal args directly to groff,
if PRINTER == ascii, because nroff shell script strip off
some groff flags


5697 17-Jan-1995 ache

Call nroff, if PRINTER == ascii


5665 16-Jan-1995 gpalmer

Correct a small problem in that when there isn't a checksum for that
particular file, but there is a files/md5, it reports that it failed
the checksum


5621 14-Jan-1995 wollman

Slightly more complete implementation of SUBDIR for libraries.


5620 14-Jan-1995 wollman

Add SUBDIR facility to bsd.lib.mk like in bsd.prog.mk.


5608 14-Jan-1995 jkh

The enclosed patch makes bsd.doc.mk consistent with bsd.prog.mk
when creating the obj link. While bsd.prog.mk inconditionnaly creates
a link in /usr/obj, bsd.doc.mk tests if the source tree is contained in
/usr/src. If so, it creates a link to /usr/obj. If the source tree
is contained in another directory, bsd.doc.mk creates an obj subdirectory.
Submitted by: Remy Card <Remy.Card@masi.ibp.fr>


5607 14-Jan-1995 jkh

The enclosed patch is a cosmetic change to bsd.prog.mk. When
a program directory has subdirectories, make now prints "===> dir/subdir"
instead of "===> subdir". This is modeled after the rules contained in
bsd.subdir.mk.

Submitted by: Remy Card <Remy.Card@masi.ibp.fr>


5585 14-Jan-1995 jkh

Change DISTRIBUTION names. Also make bsd.doc.mk go to doc distribution,
not bin. Hmmm.


5532 12-Jan-1995 jkh

Whoops! Correct cut-and-paste gaffe.


5531 12-Jan-1995 jkh

Add an ID line at the top (this thing still needs some sort of
copyright, Andrew).
Add support for the distribute target.


5525 12-Jan-1995 ache

Use absolute path for install passed to configure
to disallow prepending ../ in second level Makefiles


5518 11-Jan-1995 wollman

Always delete ${DOC}.ps and ${DOC}.ascii in the clean target, no matter what
${PRINTER} is set to.


5509 11-Jan-1995 asami

Typo!


5508 11-Jan-1995 asami

Add missing ! in front of pipeline for extract commands---otherwise
it would exit on *successful* extraction.


5487 11-Jan-1995 wollman

Add .MAIN: all so that extraneous targets don't confuse `make'.


5486 11-Jan-1995 wollman

Add standard before/real/afterinstall support like in bsd.prog.mk.


5485 11-Jan-1995 wollman

Fix last .endif.


5479 11-Jan-1995 wollman

Changes to make /usr/share/doc work somewhat right. (SMM commits
to follow soon.)


5469 10-Jan-1995 jkh

Catch case where extraction fails. Thanks!


5429 07-Jan-1995 ache

Use .MAIN: all


5420 06-Jan-1995 ache

Move pre-extract target inside COOKIE
Add checksum check for extract, if checksum file present


5406 05-Jan-1995 asami

Sort out dependencies. Now they look like:

patch: extract
configure: depends patch
build: configure
install: build

Does this look ok?


5401 05-Jan-1995 jkh

Typo fix from Ollivier Robert.
Submitted by: ollivier


5400 05-Jan-1995 jkh

Rename check-md5 target to checksum.
Submitted by: gpalmer


5390 04-Jan-1995 jkh

Gary Palmer's patches for checksumming and description.
Submitted by: gpalmer


5388 04-Jan-1995 ache

Fix BINMODE to override sys.mk defaults


5386 04-Jan-1995 ache

Remove INSTALL, now into sys.mk


5382 04-Jan-1995 ache

Fix building of target with multiply sources


5381 04-Jan-1995 ache

Fix error in clean target


5380 04-Jan-1995 ache

Much improved variant


5375 04-Jan-1995 jkh

Put depends before configure. No reason that I can see for putting it after,
and it breaks mule the way it is now.


5374 04-Jan-1995 jkh

Some of the doc here was less than adequately fleshed-out. Make some
feeble attempt to do so.


5372 04-Jan-1995 jkh

Document describe target.


5355 03-Jan-1995 jkh

Add describe target support.


5352 03-Jan-1995 bde

Install bsd.info.mk.


5345 02-Jan-1995 bde

A generalized version of revision 1.1 of gnu/libnexex/uucp/doc/Makefile.
Fixes bugs in the latter: the `all' target was never up to date; there
was no `depend' target. Doesn't work for multiple info files because
it leverages bsd.doc.mk and that is broken. Info should be installed
more like man pages...


5339 01-Jan-1995 bde

Remove `MKDEP= -p'. Now I know why lkm compiled so fast after headers
are changed.


5337 01-Jan-1995 ache

Preset ac_cv_path_CC="${CC}" before running ./configure,
needed for Autoconf 2


5259 28-Dec-1994 ache

Oops, forget "" for ${CC} and ${CFLAGS}...


5258 28-Dec-1994 ache

Set proper INSTALL* variables before running ./configure


5257 28-Dec-1994 ache

Move INSTALL?=install line duplicated into each .mk to sys.mk
instead


5256 28-Dec-1994 ache

Use CFLAGS=${CFLAGS} ./configure to avoid picking dumb GNU -g default


5255 28-Dec-1994 ache

Use "CC=${CC} ./configure" to avoid usage of debugging 'gcc'


5253 28-Dec-1994 ache

Remove -T from ar, nm fixed now


5224 24-Dec-1994 ache

Add T option back to ar until nm will be fixed. Sorry, nate.


5212 23-Dec-1994 nate

Strip out unused local symbols from shared objects, and no longer
truncate archive members to 15 characters since it's no longer
necessary.


5188 22-Dec-1994 bde

Don't use `MKDEP= -p' even for the case of a single source file since we
always make an intermediate object file.


5139 17-Dec-1994 gpalmer

Put dummy targets for make-md5 & check-md5 inside a
NO_EXTRACT ifdef so that tcpblast doesn't muck
things up


5138 17-Dec-1994 gpalmer

bsd.port.mk: missing semicolon added
bsd.port.subdir.mk: added check-md5 as target


5130 17-Dec-1994 ache

Automatically add gmake to DEPENDS, if USE_GMAKE


5129 17-Dec-1994 ache

Don't use build: ... pre-build, move pre-build inside
BUILD_COOKIE instead


5106 14-Dec-1994 ache

patch: pre-patch ... is wrong, move pre-patch
inside PATCH_COOKIE


5087 12-Dec-1994 jmz

Added '${GMAKE} install.man' when installing with Imake and gmake


5041 11-Dec-1994 gpalmer

Early md5-checksumming code. This seems to work fine on my machine
but needs more testing on more ports than I have on my box.


5040 11-Dec-1994 gpalmer

Last gremlin-killer of the day. Typo fixed and missing .endif replaced.


5039 11-Dec-1994 gpalmer

<Sigh> Got the placing of a .if wrong. Fix it.


5038 11-Dec-1994 gpalmer

Erk. Damn. A hash perfixing a comment was lost somewhere.
Fixed.


5024 10-Dec-1994 gpalmer

1) Small tidyup

2) Change INSTALL_MANPAGES to NO_INSTALL_MANPAGES and document it

3) Add a PKGNAME variable to allow the package name
not to be dictated by stupid DISTNAMEs

4) Add a PATCH_DEBUG option and a slight change to the default
patch system - add --forward to help ensure correct patching


4812 25-Nov-1994 ache

Change wrong comment: NCFTP_ARGS --> NCFTPFLAGS


4751 21-Nov-1994 ats

Don't use a rm -rf WORKDIR if NO_WRKDIR is defined. You have a good chance
to blow away your current dir, because WRKDIR == CURDIR. This should
help tcpblast to not blow away itself in the clean target :-).


4561 17-Nov-1994 jkh

Add reinstall.


4560 17-Nov-1994 jkh

There seems to be some trouble with install.man working right everywhere.
Conditionalize it off of INSTALL_MANPAGES until I can figure out just
why some X ports seem to like it and others not.


4543 17-Nov-1994 jkh

Whoops! Typo. Correct.


4542 17-Nov-1994 jkh

I found today that making packages for X11 ports wasn't working.
Further investigation showed that prefix was erroneously set to /usr/local
for X11 based ports as well, when the assumption was that they'd really go
into ${X11BASE} (an /etc/make.conf variable that the user's free to set).

Set X11BASE to /usr/X11R6 if the user hasn't already, and assume that
the user really wants prefix to point there when the port is XMKMF based.


4533 17-Nov-1994 jkh

Add support for NO_WRKDIR.


4532 17-Nov-1994 jkh

2 new concepts that just occurred to me:

MASTER_SITE_OVERRIDE - If set in the environment, will override everyone's
MASTER_SITES settings. Useful if you'd prefer to point to a
distfiles repository somewhere closer.

MASTER_SITE_FREEBSD - Sets OVERRIDE to be FreeBSD's own master repository.


4531 16-Nov-1994 jmz

If USE_GMAKE is defined, use ${GMAKE} in ${XMKMF} && ${MAKE} Makefiles


4493 15-Nov-1994 jkh

Make depends a separate target. Now you can select when the dependency
list is traversed.


4453 14-Nov-1994 bde

This change was actually made in the previous revision:

Define SHLIBDIR?= ${LIBDIR} and install shared libraries in
${DESTDIR}${SHLIBDIR} instead of in ${DESTDIR}${LIBDIR}.
SHLIBDIR may be defined in /etc/make.conf to override the
default of /usr/lib (I use /lib). Other changes are required
for non-default shared library directories to actually work
(ld* and crtso have too many hard-coded paths).

Bruce


4450 14-Nov-1994 bde

Define `RANTOUCH?= ${RANLIB} -t' and use it instead of ${RANLIB} -t.

RANTOUCH may be defined in /etc/make.conf as
`${ECHO} skipping ${RANLIB} -t' to help stop `make install' from
changing the timestamps on unchanged libraries, thus making the
uninstalled binaries appear to be out of date... Other changes
are required to stop install from clobbering the timestamps.


4449 14-Nov-1994 bde

Define LIBEDIT, LIBGCC, LIBKVM, LIBSCRYPT and LIBY.

Comment about missing libraries for LIBDES, LIBKDB, LIBKRB, LIBMP, LIBPC
and LIBPLOT.

Don't define LIBDBM since it was replaced by db in libc.

Remove duplication. ${DESTDIR}/usr/lib/... gives /usr/lib/... even when
DESTDIR is not defined.


4442 13-Nov-1994 phk

Add a new "distribute" target. This is a variant of install, which will
put the stuff into the right "distribution". As default things end up
in "bindist".

Normal (ie: most) makefiles know naught of this.

More commits will follow, which will direct various parts of the tree
into the distribution we want them in.

Some of the grief of being release-engineer is supposed to go away with this.


4361 11-Nov-1994 jkh

Add patch cookies. This should prevent gratuitous patch re-application
attempts.


4224 07-Nov-1994 phk

Update make.conf and sys.mk to reflect the most recent advances in
civilization: Use -O2 and MSUN as default, and X11 is in /usr/X11R6


4122 03-Nov-1994 jkh

For submakes, don't do a `${MAKE} ${MAKEFILE} all' or
`${MAKE} ${MAKEFILE} install', indirect the target through ALL_TARGET and
INSTALL_TARGET now, so they can be easily overridden.


4121 03-Nov-1994 jkh

Add reinstall target for Poul-H. This lets you install again from
the same build, ignoring the INSTALL_COOKIE.


4056 01-Nov-1994 jkh

This is what I get for implementing suggestions without really thinking
about them.. :-) The patches/* won't work, it needs to be patches/patch-*
to avoid catching things like CVS files when working with a checked-out
copy of ports! Whoops!


4053 01-Nov-1994 jkh

2 changes:

1. Make build rely on a BUILD_COOKIE now. I'm tired of builds
being redone gratuitously while I'm trying to debug a tree build
problem.

2. Remove all the literal `touch -f' commands and indirect them through
variables. This lets you "leave tracks" in different ways, depending
on the medium. Just part 1 of my planned changes to make builds
directly off the CD work.


4034 31-Oct-1994 jkh

Make patch rule pick up everything in patchdir alphabetically.
No need to call it `patch-aa' if you can simply call it `aa', etc.


3860 25-Oct-1994 bde

Use += instead of ?= for setting LDDESTDIR. Some Makefiles, such as
cc/Makefile.inc use (abuse?) LDDESTDIR for their internal libraries
so "?=" hides non-default external libraries. Adding multiple paths
to LDDESTDIR works except it makes it even harder than usual to
decide which libraries will actually be linked against.


3859 25-Oct-1994 bde

Some profiled/shared objects were being built despite NOPROFILE/NOPIC
being set.


3801 22-Oct-1994 jkh

1. PREFIX has nothing to do with DESTDIR. Remove it finally.
2. Make sure to pass PREFIX to sub-makes when installing. This allows you to
install to places like ${PREFIX}/bin in your own install rule.


3778 22-Oct-1994 jkh

Invoke install.man if USE_IMAKE is set.


3724 19-Oct-1994 bde

Fix typo in description of LIBRPCSVC.


3701 18-Oct-1994 pst

Added libmd.a -> LIBMD


3595 14-Oct-1994 ache

Add ${.MAKEFLAGS} to sub-makes, pointed by Rod


3581 14-Oct-1994 jkh

Add new IS_INTERACTIVE flag. This lets you specify that the port
is an interactive port, and requires user input somewhere along
the way (either fetching, configuring, building or installing).

If the user then sets BATCH in their environment, this port will be
skipped. If the user sets INTERACTIVE, then ONLY those ports marked
interactive are run (allowing one to do all ports in two passes).
If the user sets both BATCH and INTERACTIVE, then a metal claw extends
from the CRT and brutally yanks their nose off.


3556 13-Oct-1994 jkh

Silence the sub-makes.


3554 13-Oct-1994 jkh

Change the way pre-install was done after a suggestion from Andrew.
Now both pre-install and install inherit the INSTALL_COOKIE.


3551 12-Oct-1994 jkh

Re-work the way pre-install was being depended. I couldn't make the
install cookie work any other way (perhaps I'm just being stupid).
In any case, INSTALL_COOKIE now works as advertised, and prevents duplicate
installations. pre-install users will have to keep their own cookies if
they wish to avoid duplicate installations, or tell me how to make the
rules run properly.


3538 12-Oct-1994 ache

Oops, change ${MAKE_FLAGS} to ${MAKEFLAGS} in pre-configure line


3537 12-Oct-1994 ache

Move 'make pre-configure' inside .configure.done: target, or
it issued again and again instead.


3536 12-Oct-1994 ache

configure: pre-configure extract ... must be
configure: extract pre-configure ...


3520 11-Oct-1994 ache

LIBDIALOG added


3493 10-Oct-1994 rgrimes

SHAREDSTRINGS support was no longer used and just clutters things up,
removed.


3470 09-Oct-1994 rgrimes

1. Mark file as seriously out of date with reality.

2. Update the list of library names and variables.

3. Update to reflect forth coming bsd.inc.mk file.

4. Update which .mk files include other .mk files.

Submitted by: Bruce Evans (partial, enhanced by me)


3404 07-Oct-1994 ache

LIBMYTINFO and LIBNCURSES defines added


3381 05-Oct-1994 jkh

Following changes from Robert Withrow (+ a few mods):

1. Make DEPENDS fully qualified, and not implictly assume relative
to ${PORTSDIR}. This allows more arbitrary dependencies to be
specified. This also means that DEPENDS= x11/foo needs to be changed
to DEPENDS= ${PORTSDIR}/x11/foo in any Makefiles. I'll try to do
these changes myself.

2. Add an option NO_DEPENDS to disable the automagic building of depended
ports.
Submitted by: rww


3362 04-Oct-1994 jkh

Add an install prefix for packages, so that they're built by default
to track ${PREFIX} (this will override the PLIST prefix).


3361 04-Oct-1994 jkh

Also make GNU_CONFIGURE a synonym for HAS_CONFIGURE so you don't have
to specify both (looks silly).


3360 04-Oct-1994 jkh

If GNU_CONFIGURE is set, pass `--prefix=${PREFIX}'; this should help
at least the GNU ports play nice with PREFIX.


3359 04-Oct-1994 jkh

Whoops! Forgot to pass PREFIX to the configure subshells. Done.


3358 04-Oct-1994 jkh

Add PREFIX pointing to ${DESTDIR}/usr/local - let's see if we can't
make an entire system work nicely with DESTDIR (to say nothing of being
able to move from /usr/local to somewhere else).


3338 03-Oct-1994 jkh

Prevent duplicate installs with an install cookie.
Make DEPENDS now does a `make is_depended' in the target port.
This defaults to `all install' globally, but can be overriden locally
by a port if it wants to do different things when other ports depend on it.


3336 03-Oct-1994 jkh

May the saints praise Robert Withrow <witr@rwwa.com> for showing me
the light. `env' can be used to pass environment variables to shell
scripts this way, which means that all *configure/post-build scripts
_no longer take any arguments_; everything they should need (and more)
is now available in the environment. I'm working now to adapt the older
shell scripts over, but if you want beat me to it on some of your own
ports, don't let me stop you! :)
Submitted by: witr


3292 02-Oct-1994 rgrimes

Add .S to SUFFIXES and add .S.o: rule.
Submitted by: bde


3162 28-Sep-1994 jkh

Don't hardcode patch and its arguments. Not quite the same patch as submitted
by Robert Withrow, but he prodded me into thinking about it again. Thanks, Rob.


3135 26-Sep-1994 wollman

Lots of kernel code requires vnodE_if.h, so provide code to generate it
if requested. LKMs which need it should use:

SRCS+= vnode_if.h
CLEANFILES+= vnode_if.h vnode_if.c

These rules were already present for VFS LKMs; now they are enabled all
the time. (VFS LKMs do not need the fragment above; it is still done for them.)


2974 22-Sep-1994 swallace

change COOKIE directory from .CURDIR to WRKDIR since a user may not have
write permission to .CURDIR but write permission to WRKDIR.
Also, WRKDIR may be deleted and cookie still exist in CURDIR.


2947 21-Sep-1994 wollman

Make it easier to create filesystem LKMs by doing most of the
work in the Makefile. Just define VFS_LKM and you're off!


2876 19-Sep-1994 jkh

Modified DEPENDS rule so that anything you depend on gets both
made AND installed. Folks, check out DEPENDS if you have one port
that depends on another! With this change, it should be really convenient
to use.


2875 19-Sep-1994 ache

DESTDIR added to PORTSDIR definition


2870 18-Sep-1994 wollman

Emendation to previous commit: only create static INTERNALLIBs if
INTERNALSTATICLIB is also set.


2868 18-Sep-1994 wollman

It turns out that occasionally you want both shared and static versions
of INTERNALLIBs, so generate both.


2827 16-Sep-1994 jkh

Add support for DEBUG_FLAGS. If you say something like:

make DEBUG_FLAGS=-g2

You can compile something for debugging at debugging level 2.
It will also take care not to strip the resulting executable(s).


2765 14-Sep-1994 wollman

A make system file for building LKMs, derived from bsd.prog.mk.


2759 14-Sep-1994 jkh

Remove obsolete bundle target, add new fetch target.


2758 14-Sep-1994 jkh

Don't assume / seperator between site name and dist file in fetch.


2723 13-Sep-1994 jkh

Missing semi-colon after a done statement. Fixed.


2717 13-Sep-1994 jkh

Adjust comments to document MASTER_SITES and remove mention of
HOME_LOCATION.


2716 13-Sep-1994 jkh

Ok, I think I have this whole HOME_LOCATION / MASTER_SITE stuff resolved
to a reasonable compromise:

MASTER_SITES now contains a space seperated list of sites for which each
DISTFILE may be retrieved. This should be a directory spec, which will be
concatenated with each file in DISTFILES. HOME_LOCATION is *gone* now
and isn't used for anything, so you can delete it from your Makefiles.
If you want to force a fetch from a given location, simply do something like:

MASTER_SITES= ftp://fnord.foo.bar/pub/dist
DISTFILES= a.tar.gz b.tar.gz

Your entry in MASTER_SITES will be tried first to fetch a.tar.gz and
b.tar.gz, followed by any master sites we have set up (right now, only
freebsd.cdrom.com).


2676 11-Sep-1994 rgrimes

Change all references to LIBTERM and -ltermlib to LIBTERMCAP and -ltermcap


2663 11-Sep-1994 jkh

More fixes and general cleanup. Add more fine-grained control over what
is fetched and what is actually unpacked.


2662 11-Sep-1994 jkh

Whoops, forgot to stop this lurking typo, too.


2661 11-Sep-1994 jkh

Eliminate a few lurking bogons - this is almost close to being right!


2651 10-Sep-1994 jkh

Annual simplification drive:

1. DISTFILE is gone and replaced by DISTFILES, which can contain one or
more file specifications.
2. MASTER_SITE created, which points to the distfiles directory on
freebsd.cdrom.com (which I'll set up in a moment).
3. HOME_LOCATION is now simply a hint, and is never directly used except
to inform the user when ncftp unable to transfer a file from
MASTER_SITE.
4. ncftp is now assumed to live somewhere in the path, in preparation for
Andrew bringing it in on a more permanant basis.
5. XMKMF defined - it was not before.

Thanks to Andrew (ache) for many helpful suggestions.


2600 09-Sep-1994 jkh

Rearrange this a bit while I think about the whole problem of fetching
multiple targets when dealing with creating a set of distribution files
from scratch. Another problem is *verifying* that a given file fetched
from its HOME_LOCATION is the one we wanted (what if the stupid ftp site
maintainer updated it in place?). Rich Morin pointed this out and suggested
some solutions. I need to think about it some more (suggestions?).

For now, we have a seperate `fetch' and `extract' target.
Submitted by: jkh


2596 09-Sep-1994 jkh

As per suggestion by Michael Reifenberger, make ncftp use the -N flag.
Reviewed by: jkh
Submitted by: mr


2541 07-Sep-1994 rgrimes

Add the installation of bsd.README. Realphabitize the FILES= list.

Reviewed by: rgrimes
Submitted by: bde


2535 07-Sep-1994 rgrimes

The .c: rule added by Bruce, but as yet unused, causes serious problems
for the 1.1.5 FreeBSD make. For now just comment it out until a fix for
make can be found.

Reviewed by: bde
Submitted by: rgrimes


2488 04-Sep-1994 jkh

Add an X11BASE variable that currently points to /usr/X386 but will
be easy to change to /usr/X11R6 if and when the time comes. This is
to deal with things like xditview which otherwise had hardcoded assumptions
about where X lived. Yuck.
Submitted by: jkh


2454 02-Sep-1994 jkh

Fixed a couple of typos. Ok, this works now. Only one significant hurdle
remains, and that's that this does not work with multiple targets, which
sort of throws the tk and fvwm distributions into a mess. tk needs both
a tarball and a patch file from the same site, fvwm needs up to 3 different
files if you want all the options. If anyone wants to take this the last
few steps of the way towards somehow handling cases like this, I'd be very
happy.
Submitted by: jkh


2453 02-Sep-1994 jkh

Ok, I've reviewed this and made it work now. ncftp fetching seems to be
working/closer to working now.
Submitted by: jkh


2451 02-Sep-1994 jkh

Add a few missing >> lines to error echo's.. This is basically my
convention to make searching for error messages easy.
Submitted by: jkh


2450 01-Sep-1994 jkh

Here's my first cut at doing auto-fetch with ncftp. The extract rule
is turning into the original make rule from hell!
Submitted by: jkh


2449 01-Sep-1994 jkh

Geeze, what was I thinking again? Replace all references to:

${DISTDIR}/${DISTNAME}${EXTRACT_SUFX}

With simply `${DISTFILE}' which defaults to the above. This lets you
easily name distribution files that don't cooperate with any rational
naming syntax.

Similarly, make a variable called ${PKGFILE} which fills the same purpose
for packages.

Just trying to make this thing really really general to suit every need.
Now I need somebody to figure out how to make the extract target auto-fetch
things from ${HOME_LOCATION} with ncftp *if* ncftp is installed and it
looks possible to reach the foreign site. That will take some fancy footwork,
but would be slick. I've changed this too so that HOME_LOCATION is no longer
set by default, allowing you to do an .if defined(..) check for it. The
extract rule now does this too.

Submitted by: jkh


2419 31-Aug-1994 paul

Changed g++ to c++
Reviewed by:
Submitted by:


2407 30-Aug-1994 adam

added hook for post-build script
Reviewed by:
Submitted by:


2353 28-Aug-1994 bde

Use ${ECHO} instead of `echo' so that `make -s' is fairly quiet.


2352 28-Aug-1994 bde

Use ${ECHODIR} instead of `echo' for printing directory names so that
`make -ss' is very quiet.


2351 28-Aug-1994 bde

Fix spelling error in little-used target.

Build an intermediate object file even when there is only one source
file. This costs a little space but saves time if the target is rebuilt
a lot, and it stops the target varying with the name of temporary
intermediates.

Use ${ECHO} instead of `echo' so that `make -s' is fairly quiet.

Use ${ECHODIR} instead of echo for printing directory names so that
`make -ss' is very quiet.


2340 28-Aug-1994 bde

Recover improvements in 4.4lite version that were clobbered by the
previous commit:
+ Everything is initialized using ?= instead of =.
+ Nicer formatting (more white space).
+ .c: rule.

Add macros ECHO and ECHODIR. Both are normally `echo', but when
the make flags include -s, ECHO is set to `true' and when the make
flags include two or more -s's ECHODIR is set to `true'. @${ECHO}
should be used instead of @echo in most cases. ${ECHODIR} is
intended to be used mainly for messages about directory names.


2333 28-Aug-1994 jkh

Lots of changes - get the NO_XXX things over, add @'s to the touches for
default extract and configure targets, add a pre-clean since I need it for
pkg_install port.
Submitted by: jkh


2332 28-Aug-1994 bde

Fix filenames for LIBC and LIBTERM.


2326 28-Aug-1994 jkh

Add bsd.port* to the Makefile.
Reviewed by:
Submitted by:


2298 26-Aug-1994 wollman

Add support for two modifier variables which will be useful soon:

PRECIOUSLIB causes the shared library to be installed with the system
immutable flag (schg) set. (You can add other flags for shared-library
installation by modifying SHLINSTALLFLAGS.)

INTERNALLIB disables the generation of non-shared versions of the library.
This may be of use for programs like Taylor UUCP and GCC which have large
internal libraries shared among a number of programs.


2284 25-Aug-1994 jkh

Add a pre-configure rule after all, since it's helpful to be able
to also run a rule before you apply patches and then go into the 3 stage
script configuration. This bit Adam David in his dgd port.
Submitted by: jkh


2282 25-Aug-1994 jkh

Also `make Makefiles' in USE_IMAKE case to catch subdirs.
Submitted by: jkh


2278 25-Aug-1994 jkh

Sigh. I am a hosebrain. I've been using gmake for so long, I've
started using some of its features reflexively.
Submitted by: jkh


2276 25-Aug-1994 jkh

Add a new flag: USE_IMAKE
This will cause the configure pass to do an `xmkmf' if set.
Submitted by: jkh


2262 24-Aug-1994 jkh

Some cosmetic changes.
Add pre-{build,extract,install,...} targets for Torsten, who apparently
needs them. Can't do effective post-* targets without major work, sorry.

Jordan
Reviewed by:
Submitted by:


2211 22-Aug-1994 jkh

Ok, this should work with a centralized package directory now (so you
can elect to dump all finished packages in one directory).
Submitted by: jkh


2210 22-Aug-1994 jkh

Make package target a lot more general.
Submitted by: jkh


2209 22-Aug-1994 jkh

Whoops - left out the package rule!
Submitted by: jkh


2208 22-Aug-1994 jkh

Use proper proper package suffix.
Submitted by: jkh


2207 22-Aug-1994 jkh

Whoops, left out a backslash in my package rule.
Submitted by: jkh


2206 22-Aug-1994 jkh

Ok, now we warn if we're about to recreate the distfile from configured
sources. Configuring doesn't always _do_ anything, which is why it's
a warning and not an error.
Submitted by: jkh


2205 22-Aug-1994 jkh

New bsd.port.subdir.mk file for use by ports. This groks all the
special ports building targets and will recurse properly. Sorry,
Julian E - no fancy prompts, just recursion! :-)

Added a `bundle' target. Purpose is as follows:

You want to give someone a complete tree sans distfiles (for
sticking on CDROM perhaps?) but the difficulty there is that
the first time the user types `make clean', all the unpacked
sources are gone again. Typing `make bundle' recreates the
original distfile if it can, so someone can "back up" their
unpacked tree easily with one command.

Whoops, just thought of something - it should warn if you
configured the working source.
Ok, next commit! :)
Submitted by: jkh


2202 22-Aug-1994 jkh

I had to bite the bullet: There's now a port.subdir.mk that does the right
thing with recursive build, configure, bundle or extract targets.
Reviewed by:
Submitted by:


2191 21-Aug-1994 jkh

Sigh.. Some of these configs are a little hairy. I need to know the
${PORTSDIR} too now - pass it to any and all config scripts.
Submitted by: jkh


2187 21-Aug-1994 jkh

Make things a little more user-friendly
Submitted by: jkh


2186 21-Aug-1994 jkh

Get the .configure_done stuff working - it wasn't in the right place.
Submitted by: jkh


2185 21-Aug-1994 jkh

Start really adding some features here. Let's see:

1. New variable DEPENDS lets you list packages that this depends on,
relative to the top (lang/tcl, x11/tk, etc). These packages will
always get made first.

2. Don't configure again if you've already done so successfully.

3. Add pre-configure and post-configure hooks. You can now do a pre-configure,
a local configure, a port-provided configure and finally a post-configure
if you really really want to. I can't imagine anything this will leave us
not being able to do! :) [ Yes, I have actually found a use for at least
two of these in one port - see x11/tk!].

Submitted by: jkh


2184 21-Aug-1994 jkh

Simplify the whole configuration script business quite a bit. What
was I thinking before..
Submitted by: jkh


2183 21-Aug-1994 jkh

Whoops, the check for a missing distfile was slightly bogus. Now it works.
Submitted by: jkh


2182 21-Aug-1994 jkh

Make any local configuration file unconditional. That is, if one exists
then run it even if GNU configure is to be run later.
Submitted by: jkh


2181 21-Aug-1994 jkh

Commit my new ports make macros. Still not 100% complete yet by any means
but fairly usable at this stage.
Submitted by: jkh


2146 20-Aug-1994 bde

- bsd.dep.mk and bsd.own.mk have been required for some time. Install them.
- Install with group BINGRP, not BINOWN.


1996 10-Aug-1994 wollman

Make the install targets obey the INSTALLFLAGS requests in the new
Makefiles.

DANGER WILL ROBINSON!

This will cause repeat installs of certain programs, such as `init' and
`rcp', to fail unless one of the two conditions is met:

1) You are in single-user mode.
2) Your security level is set to 0 or -1.

If you have compiled a kernel from the latest sources, your kernel
security level is set to -1 by default, which will keep `init' from
fiddling with it. You can increase it, but not decrease it, from the
command line with the command `sysctl -w kern.securelevel=<new value>'.
I believe that -1 is the most appropriate value to use while we are still
developing the code, although when we ship it should be changed back to 0.

See init(8) for more information.


1953 08-Aug-1994 wollman

Don't pass ${LDADD} to ${AR}. Use ${ARADD} for that.


1845 04-Aug-1994 wollman

Add a couple of files we created in 1.x.


1844 04-Aug-1994 wollman

Spplat our 1.1.5 `mk' ifiles over the top of the 4.4 ones. So far
as I can tell, this is ts the right thing to do.


1639 30-May-1994 rgrimes

This commit was generated by cvs2svn to compensate for changes in r1638,
which included commits to RCS files with non-trunk default branches.