Refine USE_RC_SUBR / USE_RCORDER handling. The install-rc-script target
should not be defined for bsd.pre.port.mk, since some ports define the
variables after it.
Another-bug-from: Erik P. Skaalerud <erik@pentadon.com>

Stop exporting OSVERSION variable to enviornment via .makeenv.
This quiets a the warning that OSVERSION is from the commandline
when ports calls make recursively.
OSVERSION is only used by the make infrastructure, so anything that
references that variable would get it from make's global scope, or
would get it from a recursively called make which would have put
it into the env since it is in MAKEFLAGS.
Variables set in the command line and MAKEFLAGS are readonly, those
variables are also exported into the enviornment of make. Nothing
in the makefiles are able to modified thier values. (POSIX)
This is compatible with .makeenv (soon to be .EXPORT:)
o if variable does not exist create it and
export it to the enviornment, as empty string.
o if variable exists, export it to the enviornment
with its value.
o if variable that is exported is set after being
exported, export its new value.
o if variable is from command line or MAKEFLAGS
do net change is value, or modify the enviornment.
Emit a warning.

Don't just undefine USE_RC_SUBR, because it does define the list
of rc scripts if it is defined and not YES. We didn't undefine USE_RCORDER,
which pulled the rc_subr port in.
Fix this by:
(a) save the old value or USE_RCORDER and USE_RC_SUBR to _DF_*.
(b) include the install-rc-script target from ports/Mk/bsd.port.mk,
but use _DF_* for the variables in the actual code.
(c) add _DF_* to the SUB_FILES list and add RC_SUBR to SUB_LIST.
(d) undefine USE_RC_SUBR and USE_RCORDER afterwards.
Problem-reported-by: Erik P. Skaalerud <erik@pentadon.com>

Do not specify the -B option when executing the sub-make. In the BSD
make, -B is a compatibility option to execute shell commands one per line.
In GNU make (as of vers 3.80) -B is --always-make, which forces all targets
to be made regardless of whether they are out of date or not.
Since both GNU make and our make use MAKEFLAGS to pass build flags between
invocations, -B gets propogated down the chain into the gnu make and blows
everything to itsy bitsy little pieces.

Allow "make index" to actually by fixing lots of smaller glitches all over
the (dfports) tree.
- PORTSDIR must be kept for bsd.port.pre.mk, because it is used to include
e.g. bsd.python.mk
- The DFPORTS_WARNING change didn't work as intended and neither did the
old version. We want be quiet about redirections if we have any of the
special targets to process (like describe), which does include the
output of the cd command. We also want to define the .BEGIN rule only
once. This is now protected by the better named _DFPORTS_REDIRECT
- Define another bunch of variables, normally provided by bsd.port.mk.
This should fix the mysterious warnings encountered.

Fix a bug in bsd.port.mk that was causing 'make clean' to fail in some
ports directories with mysterious symptoms like 'cd: can't cd to &&'.
The problem was that the text of the DragonFly port override warning
message was mistakenly being injected into the output of the
'*-depends-list' targets. Although the message was being explicitly
filtered out if the target was 'all-depends-list', the targets
'build-depends-list' and 'run-depends-list', exercised indirectly by
'make clean', still allowed it to slip through.
Encountered-by: walt <wa1ter@myrealbox.com> and others
Detective-work-by: walt <wa1ter@myrealbox.com>
Patch-written-by: cpressey
Approved-by: dillon

DFports cleanup part(1)
This removes the redefinition of PORTSDIR to /usr/dfports. We use the normal
/usr/ports and have a second variable DFPORTSDIR for DragonFly override ports.
Also fix the warning about an undefined command when invocing make for an
overriden port without specifying a target.

Certain port Makefiles expect variables like ARCH or HAVE_GNOME to be set
and use them in .if's. This adds a default value for those currently use
to fix parsing the main Makefile if bsd.port.pre.mk is used.

Change the system name from 'FreeBSD' to 'DragonFly'. We are now officially
DragonFly 1.0-CURRENT. The change is fairly straight forward but involves
adding support for the 'DragonFly' OS type in various gnu contributed pieces
(typically configure based), as well as compiler and BFD support for building
GCC and friends (basically just copied the FreeBSD files for DragonFly).
Additionally, hack the ports makefiles with UNAME_xxx environment variables
so ports builds think its still a FreeBSD-4.8 system. Otherwise most of the
ports will fail.

Add bsd.dport.mk, which Makefile's in /usr/dports will use instead of
bsd.port.mk. Modify bsd.port.mk to check for the existance of the same
port in /usr/dports and, if found, to cd into the dport and run the target
there.
NOTE: /usr/bin/relpath is required (see /usr/src/usr.bin/relpath).