summaryrefslogtreecommitdiff
path: root/targets
diff options
context:
space:
mode:
Diffstat (limited to 'targets')
-rw-r--r--targets/Makefile181
-rw-r--r--targets/Makefile.inc53
-rw-r--r--targets/Makefile.xtras59
-rw-r--r--targets/pseudo/Makefile.inc13
-rw-r--r--targets/pseudo/bootstrap-tools/Makefile79
-rw-r--r--targets/pseudo/bootstrap-tools/Makefile.depend.host10
-rw-r--r--targets/pseudo/clang/Makefile3
-rw-r--r--targets/pseudo/clang/Makefile.depend15
-rw-r--r--targets/pseudo/gcc/Makefile3
-rw-r--r--targets/pseudo/gcc/Makefile.depend24
-rw-r--r--targets/pseudo/hosttools/Makefile3
-rw-r--r--targets/pseudo/hosttools/Makefile.depend24
-rw-r--r--targets/pseudo/kernel/Makefile31
-rw-r--r--targets/pseudo/kernel/Makefile.depend13
-rw-r--r--targets/pseudo/stage/Makefile17
-rw-r--r--targets/pseudo/the-lot/Makefile3
-rw-r--r--targets/pseudo/the-lot/Makefile.depend12
-rw-r--r--targets/pseudo/toolchain/Makefile3
-rw-r--r--targets/pseudo/toolchain/Makefile.depend34
-rw-r--r--targets/pseudo/universe/Makefile73
-rw-r--r--targets/pseudo/universe/Makefile.depend15
-rw-r--r--targets/pseudo/userland/Makefile3
-rw-r--r--targets/pseudo/userland/Makefile.depend780
-rw-r--r--targets/pseudo/userland/Makefile.inc3
-rw-r--r--targets/pseudo/userland/cddl/Makefile3
-rw-r--r--targets/pseudo/userland/cddl/Makefile.depend50
-rw-r--r--targets/pseudo/userland/games/Makefile3
-rw-r--r--targets/pseudo/userland/games/Makefile.depend24
-rw-r--r--targets/pseudo/userland/gnu/Makefile3
-rw-r--r--targets/pseudo/userland/gnu/Makefile.depend116
-rw-r--r--targets/pseudo/userland/include/Makefile3
-rw-r--r--targets/pseudo/userland/include/Makefile.depend16
-rw-r--r--targets/pseudo/userland/kerberos5/Makefile3
-rw-r--r--targets/pseudo/userland/kerberos5/Makefile.depend61
-rw-r--r--targets/pseudo/userland/lib/Makefile3
-rw-r--r--targets/pseudo/userland/lib/Makefile.depend160
-rw-r--r--targets/pseudo/userland/libexec/Makefile3
-rw-r--r--targets/pseudo/userland/libexec/Makefile.depend42
-rw-r--r--targets/pseudo/userland/misc/Makefile3
-rw-r--r--targets/pseudo/userland/misc/Makefile.depend53
-rw-r--r--targets/pseudo/userland/secure/Makefile3
-rw-r--r--targets/pseudo/userland/secure/Makefile.depend35
-rw-r--r--targets/pseudo/userland/share/Makefile3
-rw-r--r--targets/pseudo/userland/share/Makefile.depend155
44 files changed, 2196 insertions, 0 deletions
diff --git a/targets/Makefile b/targets/Makefile
new file mode 100644
index 000000000000..b5be7d245f5a
--- /dev/null
+++ b/targets/Makefile
@@ -0,0 +1,181 @@
+# $FreeBSD$
+
+# This is the top-level makefile - derrived from the Junos version
+#
+# If a subdir that matches the requested target exists, we assume
+# a build target and initialize DIRDEPS, dirdeps.mk does the rest.
+#
+# Otherwise we include Makefile.xtras and hope it knows what to do.
+#
+
+# Copyright (c) 2010-2012, Juniper Networks, Inc.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+.if ${.MAKE.LEVEL} == 0
+
+# this is our top-level makefile
+.if make(pkg-*)
+DIRDEPS_FILTER = Mtargets/*
+.endif
+
+# in theory, this is what we want
+target_dirs = targets targets/pseudo
+# these tweak how we do it
+target_prefix = pkg- build-
+DIRDEPS := ${.TARGETS:Nall:${target_prefix:@p@S,^$p,,@:ts:}:@t@${target_dirs:@d@$d/$t@}@:@d@${exists(${SRCTOP}/$d):?$d:}@}
+
+all_machine_list = ${ALL_MACHINE_LIST} host common
+
+.if ${DIRDEPS:Mtargets/pseudo/*} != ""
+# all bets are off
+PKG_MACHINE_LIST = ${all_machine_list}
+.endif
+
+.if make(check-commit)
+# a special case
+DIRDEPS = targets/pseudo/check-commit
+.if defined(ALL_MACHINES)
+CHECK_MACHINE_LIST = all
+.undef ALL_MACHINES
+.endif
+SHIPDIR = no
+
+.else
+
+.if defined(ALL_MACHINES)
+DIRDEPS := ${DIRDEPS:O:u:@d@${all_machine_list:O:u:@m@${exists(${SRCTOP}/$d/${.MAKE.DEPENDFILE_PREFIX:T}.$m):?$d.$m:}@}@}
+.undef ALL_MACHINES
+PKG_MACHINE_LIST ?= ${DIRDEPS:E:O:u}
+.elif empty(REQUESTED_MACHINE)
+# the above may be insufficient.
+# some packages only support one machine which may not be ${MACHINE}
+# some support multiple, in which case unless ALL_MACHINES is defined
+# we only want ${MACHINE}
+plain := ${DIRDEPS:@d@${exists(${SRCTOP}/$d/${.MAKE.DEPENDFILE_PREFIX:T}):?$d:}@}
+.if ${plain} != ${DIRDEPS}
+qual := ${DIRDEPS:${plain:${M_ListToSkip}}:@d@${all_machine_list:O:u:@m@${exists(${SRCTOP}/$d/${.MAKE.DEPENDFILE_PREFIX:T}.$m):?$d.$m:}@}@}
+DIRDEPS := ${plain} ${qual}
+PKG_MACHINE_LIST ?= ${MACHINE} ${qual:E:O:u}
+.endif
+.else
+# check that a .MAKE.DEPENDFILE exists
+DIRDEPS := ${.MAKE.DEPENDFILE_PREFERENCE:T:@m@${DIRDEPS:@d@${exists(${SRCTOP}/$d/$m):?$d:}@}@:O:u}
+.endif
+.if !empty(PKG_MACHINE_LIST)
+.if ${PKG_MACHINE_LIST:Mdepend} != ""
+PKG_MACHINE_LIST = ${ALL_MACHINE_LIST}
+.endif
+PKG_MACHINE_LIST := ${PKG_MACHINE_LIST}
+.endif
+.endif
+
+# we don't use DIRDEPS_FILTER, since we only want it to
+# apply to this initial list
+.if !empty(REQUESTED_MACHINE) && !empty(DIRDEPS)
+# this is a variant of the logic above, we want plain
+# but need to filter the qualified DIRDEPS to REQUESTED_MACHINE
+plain := ${DIRDEPS:@d@${exists(${SRCTOP}/$d/${.MAKE.DEPENDFILE_PREFIX:T}):?$d:}@}
+.if !empty(plain) && ${plain} != ${DIRDEPS}
+qual := ${DIRDEPS:${plain:${M_ListToSkip}}:M*.${REQUESTED_MACHINE}}
+.if empty(qual)
+qual := ${DIRDEPS:@d@${exists(${SRCTOP}/$d/${.MAKE.DEPENDFILE:T}):?$d.${.MAKE.DEPENDFILE:E}:}@}
+.endif
+DIRDEPS := ${plain} ${qual}
+.endif
+.if empty(DIRDEPS)
+.error ${REQUESTED_MACHINE} is not appropriate for ${.TARGETS}
+.endif
+.endif
+
+.if !empty(build_options)
+build_options := ${build_options:O:u}
+.for v in ${build_options}
+$v = yes
+.endfor
+.export ${build_options}
+.endif
+
+.if !empty(DIRDEPS)
+# This is printed as we read the makefile
+# so provides a useful clue as to when we really started.
+# This allows us to work out how long reading
+# Makefile.depend* takes.
+.if ${.MAKEFLAGS:M-V} == ""
+.if ${BUILD_DIRDEPS_CACHE:Uno} == "no"
+.info ${.newline}${TIME_STAMP} Start ${.TARGETS}
+.endif
+now_utc = ${%s:L:gmtime}
+start_utc := ${now_utc}
+.endif
+
+_begin =
+.if ${BUILD_DIRDEPS_CACHE:Uno} == "no"
+__DEFAULT_YES_OPTIONS+= \
+ CLEAN_ERROR_LOGS
+
+.include <bsd.mkopt.mk>
+
+.if ${MK_CLEAN_ERROR_LOGS} == "yes"
+_begin += clean-error-logs
+.endif
+
+.if !empty(_begin) && !make(clean*)
+dirdeps: ${_begin} .WAIT
+.endif
+.endif
+
+.include "Makefile.inc"
+
+.include <dirdeps.mk>
+
+.for t in ${.TARGETS:Nall:Nclean*:${_begin:Uall:${M_ListToSkip}}}
+$t: dirdeps
+.endfor
+
+elapsed_time= seconds=`expr ${now_utc} - ${start_utc}`
+
+.if ${BUILD_DIRDEPS_CACHE:Uno} == "no"
+.END: _build_finish
+_build_finish: .NOMETA
+ @echo "${TIME_STAMP} Finished ${.TARGETS} ${elapsed_time}"
+.endif
+
+.ERROR: _build_failed
+_build_failed: .NOMETA
+ @echo "${TIME_STAMP} Failed ${.TARGETS} ${elapsed_time}"
+
+.endif # !empty(DIRDEPS)
+
+clean-error-logs: .NOMETA
+ @test ! -d ${meta_error_log:H} || rm -f ${meta_error_log:H}/*log
+
+.if !target(_DIRDEP_USE)
+# we did not read dirdeps.mk above, the target may be here
+.include "Makefile.xtras"
+.endif
+
+.else
+# dirdeps does it all
+all:
+.endif # .MAKE.LEVEL == 0
+
diff --git a/targets/Makefile.inc b/targets/Makefile.inc
new file mode 100644
index 000000000000..2dc3b8155824
--- /dev/null
+++ b/targets/Makefile.inc
@@ -0,0 +1,53 @@
+# $FreeBSD$
+
+.if !target(__${_this}__)
+__${_this}__:
+
+_CURDIR ?= ${.CURDIR}
+_OBJDIR ?= ${.OBJDIR}
+
+.if ${RELDIR:Mtargets/*} != "" || ${RELDIR} == "."
+
+.if ${.MAKE.LEVEL} == 0 && ${RELDIR:Mtargets/*} != ""
+.if make(bootstrap*) || !exists(${_CURDIR}/${.MAKE.DEPENDFILE:T})
+_bootstrap_dirdeps = yes
+.else
+# BUILD_AT_LEVEL0=no tells dirdeps.mk to use a sub-make for .CURDIR
+# This is useful if we need to leverage DIRDEPS
+BUILD_AT_LEVEL0 = no
+# this renders the rest harmless
+PKG_METHOD = no
+.endif
+.endif
+
+# The makefile in subdirs should set this to something useful
+# the default should do nothing.
+PKG_METHOD ?= none
+
+.MAIN: all
+
+.if ${build-*:${M_L_TARGETS}} != ""
+# just build the bits, skip packaging
+all:
+SHIPDIR = no
+.if ${RELDIR} != "."
+PKG_METHOD = no
+.endif
+.endif
+
+.if ${PKG_METHOD:Mno*} != ""
+all: ${PKG_METHOD}
+
+# set this to "no" for manual control
+UPDATE_DEPENDFILE ?= yes
+.endif
+
+.if ${UPDATE_DEPENDFILE:Uno} == "yes"
+.include <meta.autodep.mk>
+.endif
+
+# all the clever packaging methods go here....
+
+.endif # level 0
+
+.endif # _this
diff --git a/targets/Makefile.xtras b/targets/Makefile.xtras
new file mode 100644
index 000000000000..57a04532812c
--- /dev/null
+++ b/targets/Makefile.xtras
@@ -0,0 +1,59 @@
+# $FreeBSD$
+#
+# Makefile.xtras - non-build targets
+
+# Resist the urge to fill this with miscellaneous junk
+
+# We are not building here (shouldn't be), so no meta mode.
+.MAKE.MODE = normal
+
+_here := ${_PARSEDIR}
+
+.MAIN: no-default
+
+.if !empty(SB_NAME)
+# mk wrapper
+MAKE_CMD= mk
+MAKE_MACHINE_CMD= mk --machine <machine>
+.else
+# not using 'mk'
+MAKE_CMD= ${.MAKE:T}
+MAKE_MACHINE_CMD= env MACHINE=<machine> ${.MAKE:T}
+.endif
+
+no-default:
+ @echo "ERROR: there is no supported default target."; \
+ echo "Try '${MAKE_CMD} help'"
+
+
+.if make(show-valid-targets)
+OTHER_TARGETS = \
+ destroy \
+
+BUILD_TARGETS != cd ${_here} && \
+ find . \( -name Makefile.depend -o -name ${.MAKE.DEPENDFILE:T} \) | \
+ sed 's,/Makefile.*,,;s,^./,,' | sort -u
+
+show-valid-targets:
+ @echo "Build targets for ${MACHINE} (leave out the ${target_dirs:S,${_here:T},,:S,^/,,:S,$,/,}):"
+ @echo "${BUILD_TARGETS:ts\n}"
+ @echo; echo "Other targets:"; echo "${OTHER_TARGETS:ts\n}"
+.endif
+
+help: show-help
+show-help:
+ @echo; \
+ echo "You can see the targets which are valid for a given machine"; \
+ echo "by running '${MAKE_MACHINE_CMD} show-valid-targets'"; \
+ echo "For other information, read: ${HELP_DOCS:@d@${.newline}$d@}"; \
+ echo
+
+not-valid-target:
+ @echo "ERROR: '${_TARGETS}' is not a valid target for ${MACHINE}."
+
+
+.for t in ${_TARGETS:Nlove}
+.if !target($t)
+$t: not-valid-target show-help
+.endif
+.endfor
diff --git a/targets/pseudo/Makefile.inc b/targets/pseudo/Makefile.inc
new file mode 100644
index 000000000000..40f3828ec7d4
--- /dev/null
+++ b/targets/pseudo/Makefile.inc
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+# we don't do anything in these dirs
+# they are just for triggering building of other things
+
+UPDATE_DEPENDFILE= no
+
+.if !target(all)
+all:
+ @echo Done!
+.endif
+
+
diff --git a/targets/pseudo/bootstrap-tools/Makefile b/targets/pseudo/bootstrap-tools/Makefile
new file mode 100644
index 000000000000..a267e9573498
--- /dev/null
+++ b/targets/pseudo/bootstrap-tools/Makefile
@@ -0,0 +1,79 @@
+# $FreeBSD$
+
+# building clang is particularly tedious - so avoid re-inventing wheels
+
+all: bootstrap-toolchain
+
+UPDATE_DEPENDFILE= no
+.export UPDATE_DEPENDFILE
+
+# we build for the pseudo machine "host"
+TARGET_MACHINE= host
+
+HOST_MACHINE!= uname -m
+HOST_MACHINE_ARCH!= uname -p
+BTOOLSDIR?= ${HOST_OBJTOP}/tools
+LEGACY_TOOLS?= ${BTOOLSDIR}/legacy
+
+BSENV= \
+ unset MAKEOBJDIR; MAKEOBJDIRPREFIX=${BTOOLSDIR} \
+ MAKESYSPATH=${SRCTOP}/tools/build/mk:${SRCTOP}/share/mk \
+ TARGET=${HOST_MACHINE} TARGET_ARCH=${HOST_MACHINE_ARCH} \
+ WITHOUT_STAGING=1 STAGE_ROOT= BOOTSTRAPPING_TOOLS=1 \
+ WORLDTMP=${BTOOLSDIR} LEGACY_TOOLS=${LEGACY_TOOLS}
+
+.if !defined(OSRELDATE)
+ord_h= /usr/include/osreldate.h
+.if exists(${ord_h})
+OSRELDATE!= sed -n '/define.*__FreeBSD_version/{s,^[^0-9]*,,p;q;}' ${ord_h}
+.endif
+OSRELDATE?= 0
+.endif
+
+# need to keep this in sync with src/Makefile.inc1
+BSARGS= \
+ DESTDIR= \
+ BOOTSTRAPPING=${OSRELDATE} \
+ SSP_CFLAGS= \
+ MK_HTML=no NO_LINT=yes MK_MAN=no \
+ -DNO_PIC MK_PROFILE=no -DNO_SHARED \
+ -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no \
+ MK_CLANG_EXTRAS=no MK_CLANG_FULL=no \
+ MK_LLDB=no MK_TESTS=no \
+ MK_INCLUDES=yes
+
+
+legacy: .MAKE .META
+ mkdir -p ${LEGACY_TOOLS}
+ ${MAKE} -C ${SRCTOP}/etc distrib-dirs DESTDIR=${BTOOLSDIR} > $@2
+ ${MAKE} -C ${SRCTOP}/etc distrib-dirs DESTDIR=${LEGACY_TOOLS} > $@
+ ${BSENV} ${MAKE} -C ${SRCTOP} -f Makefile.inc1 ${BSARGS} $@
+ touch $@
+
+bootstrap-tools: legacy
+build-tools: bootstrap-tools
+cross-tools: build-tools
+
+cross-tools build-tools bootstrap-tools: .MAKE .META
+ ${BSENV} ${MAKE} -C ${SRCTOP} -f Makefile.inc1 ${BSARGS} $@
+ touch $@
+
+# MAKELEVEL=0 so that dirdeps.mk does its thing
+# LEGACY_TOOLS lets us use the bootstaped stuff above
+# TARGET* is so that MK_CLANG gets set correctly.
+BSTCENV= \
+ MAKELEVEL=0 \
+ MACHINE=host \
+ LEGACY_TOOLS=${LEGACY_TOOLS} \
+ TARGET=${HOST_MACHINE} \
+ TARGET_ARCH=${HOST_MACHINE_ARCH}
+
+BSTCARGS= \
+ ${BSARGS} \
+ BUILD_DIRDEPS=yes \
+ -DWITH_STAGING \
+ -DWITH_TOOLSDIR
+
+# finally we build toolchain leveraging the above.
+bootstrap-toolchain: .MAKE cross-tools
+ ${BSTCENV} ${MAKE} -C ${.CURDIR:H:H} ${BSTCARGS} toolchain
diff --git a/targets/pseudo/bootstrap-tools/Makefile.depend.host b/targets/pseudo/bootstrap-tools/Makefile.depend.host
new file mode 100644
index 000000000000..fc65dd39f4f9
--- /dev/null
+++ b/targets/pseudo/bootstrap-tools/Makefile.depend.host
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS =
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/clang/Makefile b/targets/pseudo/clang/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/clang/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/clang/Makefile.depend b/targets/pseudo/clang/Makefile.depend
new file mode 100644
index 000000000000..ae940107414f
--- /dev/null
+++ b/targets/pseudo/clang/Makefile.depend
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ lib/clang/include \
+ share/doc/llvm/clang \
+ usr.bin/clang/clang \
+ usr.bin/clang/clang-tblgen \
+ usr.bin/clang/tblgen \
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/gcc/Makefile b/targets/pseudo/gcc/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/gcc/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/gcc/Makefile.depend b/targets/pseudo/gcc/Makefile.depend
new file mode 100644
index 000000000000..8136da6a0ae3
--- /dev/null
+++ b/targets/pseudo/gcc/Makefile.depend
@@ -0,0 +1,24 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ gnu/usr.bin/cc/cc_tools \
+ gnu/usr.bin/cc/libiberty \
+ gnu/usr.bin/cc/libcpp \
+ gnu/usr.bin/cc/libdecnumber \
+ gnu/usr.bin/cc/cc_int \
+ gnu/usr.bin/cc/cc \
+ gnu/usr.bin/cc/cc1 \
+ gnu/usr.bin/cc/include \
+ gnu/usr.bin/cc/doc \
+ gnu/usr.bin/cc/cpp \
+ gnu/usr.bin/cc/cc1plus \
+ gnu/usr.bin/cc/c++ \
+ gnu/usr.bin/cc/c++filt \
+ gnu/usr.bin/cc/gcov \
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/hosttools/Makefile b/targets/pseudo/hosttools/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/hosttools/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/hosttools/Makefile.depend b/targets/pseudo/hosttools/Makefile.depend
new file mode 100644
index 000000000000..83c884853777
--- /dev/null
+++ b/targets/pseudo/hosttools/Makefile.depend
@@ -0,0 +1,24 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ lib/clang/include.host \
+ lib/libc++.host \
+ lib/libcxxrt.host \
+ share/doc/llvm/clang.host \
+ usr.bin/clang/clang-tblgen.host \
+ usr.bin/clang/clang.host \
+ usr.bin/clang/tblgen.host \
+ usr.bin/lex/lib.host \
+ usr.bin/mkcsmapper_static.host \
+ usr.bin/mkesdb_static.host \
+ usr.bin/mkuzip.host \
+ usr.bin/xinstall.host \
+ usr.sbin/config.host \
+
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/kernel/Makefile b/targets/pseudo/kernel/Makefile
new file mode 100644
index 000000000000..b619eeb2af2c
--- /dev/null
+++ b/targets/pseudo/kernel/Makefile
@@ -0,0 +1,31 @@
+# $FreeBSD$
+
+# Build the kernel ${KERNCONF}
+KERNCONF?= ${KERNEL:UGENERIC}
+
+TARGET?= ${MACHINE}
+# keep this compatible with peoples expectations...
+KERN_OBJDIR= ${OBJTOP}/sys/compile/${KERNCONF}
+KERN_CONFDIR= ${SRCTOP}/sys/${TARGET}/conf
+
+CONFIG= ${STAGE_HOST_OBJTOP}/usr/sbin/config
+
+${KERNCONF}.config: .MAKE .META
+ mkdir -p ${KERN_OBJDIR:H}
+ (cd ${KERN_CONFDIR} && \
+ ${CONFIG} ${CONFIGARGS} -d ${KERN_OBJDIR} ${KERNCONF})
+ (cd ${KERN_OBJDIR} && ${.MAKE} depend)
+ @touch $@
+
+# we need to pass curdirOk=yes to meta mode, since we want .meta files
+# in ${KERN_OBJDIR}
+${KERNCONF}.build: .MAKE ${KERNCONF}.config
+ (cd ${KERN_OBJDIR} && META_MODE="${.MAKE.MODE} curdirOk=yes" ${.MAKE})
+
+.if ${.MAKE.LEVEL} > 0
+all: ${KERNCONF}.build
+.endif
+
+UPDATE_DEPENDFILE= no
+
+.include <bsd.prog.mk>
diff --git a/targets/pseudo/kernel/Makefile.depend b/targets/pseudo/kernel/Makefile.depend
new file mode 100644
index 000000000000..7bcff699ea9d
--- /dev/null
+++ b/targets/pseudo/kernel/Makefile.depend
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ include \
+ include/xlocale \
+ usr.sbin/config.host \
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/stage/Makefile b/targets/pseudo/stage/Makefile
new file mode 100644
index 000000000000..0889ad20208f
--- /dev/null
+++ b/targets/pseudo/stage/Makefile
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+# this makefile gets hooked into everyone's dependencies so that
+# distrib-dirs can be done in STAGE_OBJTOP
+all:
+
+# mtree makes a lot of noise if we are not root,
+# we don't need to see it.
+stage-distrib-dirs: .META
+ mkdir -p ${STAGE_OBJTOP}
+ ${.MAKE} -C ${SRCTOP}/etc distrib-dirs -DWITH_TESTS DESTDIR=${STAGE_OBJTOP} > $@
+
+.include <bsd.prog.mk>
+
+.if ${.MAKE.LEVEL} > 0 && ${MK_STAGING} == "yes"
+all: stage-distrib-dirs
+.endif
diff --git a/targets/pseudo/the-lot/Makefile b/targets/pseudo/the-lot/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/the-lot/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/the-lot/Makefile.depend b/targets/pseudo/the-lot/Makefile.depend
new file mode 100644
index 000000000000..d54c59cc5d5f
--- /dev/null
+++ b/targets/pseudo/the-lot/Makefile.depend
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ targets/pseudo/kernel \
+ targets/pseudo/toolchain \
+ targets/pseudo/userland \
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/toolchain/Makefile b/targets/pseudo/toolchain/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/toolchain/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/toolchain/Makefile.depend b/targets/pseudo/toolchain/Makefile.depend
new file mode 100644
index 000000000000..b15598b87c21
--- /dev/null
+++ b/targets/pseudo/toolchain/Makefile.depend
@@ -0,0 +1,34 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+.if !defined(MK_CLANG)
+.include "${SRCTOP}/share/mk/src.opts.mk"
+.endif
+
+DIRDEPS= \
+ usr.bin/xinstall \
+ gnu/usr.bin/binutils/addr2line \
+ gnu/usr.bin/binutils/ar \
+ gnu/usr.bin/binutils/as \
+ gnu/usr.bin/binutils/ld \
+ gnu/usr.bin/binutils/nm \
+ gnu/usr.bin/binutils/objcopy \
+ gnu/usr.bin/binutils/objdump \
+ gnu/usr.bin/binutils/ranlib \
+ gnu/usr.bin/binutils/readelf \
+ gnu/usr.bin/binutils/size \
+ gnu/usr.bin/binutils/strings \
+ gnu/usr.bin/binutils/strip \
+
+
+.if ${MK_CLANG} == "yes"
+DIRDEPS+= targets/pseudo/clang
+.endif
+.if ${MK_GCC} == "yes"
+DIRDEPS+= targets/pseudo/gcc
+.endif
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/universe/Makefile b/targets/pseudo/universe/Makefile
new file mode 100644
index 000000000000..ef696d330e01
--- /dev/null
+++ b/targets/pseudo/universe/Makefile
@@ -0,0 +1,73 @@
+# $FreeBSD$
+
+# This target is "special".
+#
+# The actual work is done via another target;
+# UNIVERSE_TARGET_RELDIR is used to identify it.
+#
+# We leverage dirdeps.mk to run a sub-make per
+# MACHINE/ARCH to each build ${UNIVERSE_TARGET_RELDIR}
+# in meta mode.
+#
+# We simply override the level at which dirdeps.mk normally does
+# its thing, and give it a DIRDEPS list that corresponds to
+# ${UNIVERSE_TARGET_RELDIR}.${TARGET_SPEC} for each TARGET_SPEC we
+# want.
+#
+# This allows the computation of dependencies for each ${TARGET_SPEC}
+# to happen in parallel - avoiding a very long startup time.
+# We can even export each sub-make to a different machine if using a
+# cluster.
+#
+# The above works fine so long as our sub-makes remain independent.
+# That is; none of them attempts to visit any directory for a machine
+# other than the TARGET_SPEC we gave it.
+# For example; to build some tool for the pseudo machine "host".
+# To avoid that, our Makefile.depend lists all the hosttools we might
+# need and these will thus be built before we launch the
+# ${UNIVERSE_TARGET_RELDIR} sub-makes.
+# Further we add a filter to skip any "host" dirdeps during those
+# sub-makes.
+#
+#
+
+# this is the RELDIR of the target we build
+UNIVERSE_TARGET_RELDIR?= targets/pseudo/the-lot
+
+# the list of machines
+TARGET_MACHINE_LIST = i386 amd64
+# some machines have more than one arch
+TARGET_ARCHES_arm?= arm armeb armv6 armv6hf
+
+# avoid ../Makefile.inc defining this
+all:
+
+.include "../Makefile.inc"
+
+.if ${.MAKE.LEVEL} > 0
+# ok our prerequisites have been built
+.if !defined(UNIVERSE_GUARD)
+# just incase we end up back here,
+# we cannot rely on .MAKE.LEVEL as we normally would
+UNIVERSE_GUARD=1
+.export UNIVERSE_GUARD
+
+# we want to re-use dirdeps
+_DIRDEP_USE_LEVEL = ${.MAKE.LEVEL}
+
+# we want our sub-makes to think they are level 0
+# and we don't want failure of one to stop all.
+DIRDEP_USE_ENV= \
+ MAKELEVEL=0 \
+ MAKE_JOB_ERROR_TOKEN=no
+
+
+_target_specs:= ${TARGET_MACHINE_LIST:@m@${TARGET_ARCHES_$m:U$m:@a@$m,$a@}@:O:u}
+
+DIRDEPS:= ${_target_specs:@t@${UNIVERSE_TARGET_RELDIR}.$t@}
+
+all: dirdeps
+
+.include <dirdeps.mk>
+.endif
+.endif
diff --git a/targets/pseudo/universe/Makefile.depend b/targets/pseudo/universe/Makefile.depend
new file mode 100644
index 000000000000..b55179d01636
--- /dev/null
+++ b/targets/pseudo/universe/Makefile.depend
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+# this is not normally needed, but we are not normal
+.if ${.MAKE.LEVEL} == 0
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+# our role here is to build all the host tools etc.
+DIRDEPS = \
+ targets/pseudo/hosttools.host \
+
+
+.include <dirdeps.mk>
+.endif
diff --git a/targets/pseudo/userland/Makefile b/targets/pseudo/userland/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/Makefile.depend b/targets/pseudo/userland/Makefile.depend
new file mode 100644
index 000000000000..a2b5f445a478
--- /dev/null
+++ b/targets/pseudo/userland/Makefile.depend
@@ -0,0 +1,780 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ bin/cat \
+ bin/chflags \
+ bin/chio \
+ bin/chmod \
+ bin/cp \
+ bin/csh \
+ bin/date \
+ bin/dd \
+ bin/df \
+ bin/domainname \
+ bin/echo \
+ bin/ed \
+ bin/expr \
+ bin/freebsd-version \
+ bin/getfacl \
+ bin/hostname \
+ bin/kenv \
+ bin/kill \
+ bin/ln \
+ bin/ls \
+ bin/mkdir \
+ bin/mv \
+ bin/pax \
+ bin/pkill \
+ bin/ps \
+ bin/pwait \
+ bin/pwd \
+ bin/rcp \
+ bin/realpath \
+ bin/rm \
+ bin/rmail \
+ bin/rmdir \
+ bin/setfacl \
+ bin/sh \
+ bin/sleep \
+ bin/stty \
+ bin/sync \
+ bin/test \
+ bin/uuidgen \
+ sbin/adjkerntz \
+ sbin/atacontrol \
+ sbin/atm/atmconfig \
+ sbin/badsect \
+ sbin/camcontrol \
+ sbin/ccdconfig \
+ sbin/clri \
+ sbin/comcontrol \
+ sbin/conscontrol \
+ sbin/ddb \
+ sbin/devd \
+ sbin/devfs \
+ sbin/dhclient \
+ sbin/dmesg \
+ sbin/dump \
+ sbin/dumpfs \
+ sbin/dumpon \
+ sbin/etherswitchcfg \
+ sbin/ffsinfo \
+ sbin/fsck \
+ sbin/fsck_ffs \
+ sbin/fsck_msdosfs \
+ sbin/fsdb \
+ sbin/fsirand \
+ sbin/gbde \
+ sbin/geom/class/cache \
+ sbin/geom/class/concat \
+ sbin/geom/class/eli \
+ sbin/geom/class/journal \
+ sbin/geom/class/label \
+ sbin/geom/class/mirror \
+ sbin/geom/class/mountver \
+ sbin/geom/class/multipath \
+ sbin/geom/class/nop \
+ sbin/geom/class/part \
+ sbin/geom/class/raid \
+ sbin/geom/class/raid3 \
+ sbin/geom/class/sched \
+ sbin/geom/class/shsec \
+ sbin/geom/class/stripe \
+ sbin/geom/class/virstor \
+ sbin/geom/core \
+ sbin/ggate/ggatec \
+ sbin/ggate/ggated \
+ sbin/ggate/ggatel \
+ sbin/growfs \
+ sbin/gvinum \
+ sbin/hastctl \
+ sbin/hastd \
+ sbin/ifconfig \
+ sbin/init \
+ sbin/ipf/ipf \
+ sbin/ipf/ipfs \
+ sbin/ipf/ipfstat \
+ sbin/ipf/ipftest \
+ sbin/ipf/ipmon \
+ sbin/ipf/ipnat \
+ sbin/ipf/ippool \
+ sbin/ipf/ipresend \
+ sbin/ipf/libipf \
+ sbin/ipfw \
+ sbin/iscontrol \
+ sbin/kldconfig \
+ sbin/kldload \
+ sbin/kldstat \
+ sbin/kldunload \
+ sbin/ldconfig \
+ sbin/md5 \
+ sbin/mdconfig \
+ sbin/mdmfs \
+ sbin/mknod \
+ sbin/mksnap_ffs \
+ sbin/mount \
+ sbin/mount_cd9660 \
+ sbin/mount_fusefs \
+ sbin/mount_msdosfs \
+ sbin/mount_nfs \
+ sbin/mount_nullfs \
+ sbin/mount_udf \
+ sbin/mount_unionfs \
+ sbin/natd \
+ sbin/newfs \
+ sbin/newfs_msdos \
+ sbin/nfsiod \
+ sbin/nos-tun \
+ sbin/pfctl \
+ sbin/pflogd \
+ sbin/ping \
+ sbin/ping6 \
+ sbin/quotacheck \
+ sbin/rcorder \
+ sbin/reboot \
+ sbin/recoverdisk \
+ sbin/resolvconf \
+ sbin/restore \
+ sbin/route \
+ sbin/routed/rtquery \
+ sbin/rtsol \
+ sbin/savecore \
+ sbin/setkey \
+ sbin/shutdown \
+ sbin/spppcontrol \
+ sbin/swapon \
+ sbin/sysctl \
+ sbin/tunefs \
+ sbin/umount \
+ usr.bin/alias \
+ usr.bin/apply \
+ usr.bin/ar \
+ usr.bin/asa \
+ usr.bin/at \
+ usr.bin/atf/atf-config \
+ usr.bin/atf/atf-report \
+ usr.bin/atf/atf-run \
+ usr.bin/atf/atf-version \
+ usr.bin/atm/sscop \
+ usr.bin/awk \
+ usr.bin/banner \
+ usr.bin/basename \
+ usr.bin/bc \
+ usr.bin/biff \
+ usr.bin/bluetooth/bthost \
+ usr.bin/bluetooth/btsockstat \
+ usr.bin/bluetooth/rfcomm_sppd \
+ usr.bin/bmake \
+ usr.bin/brandelf \
+ usr.bin/bsdiff/bsdiff \
+ usr.bin/bsdiff/bspatch \
+ usr.bin/bzip2 \
+ usr.bin/bzip2recover \
+ usr.bin/c89 \
+ usr.bin/c99 \
+ usr.bin/calendar \
+ usr.bin/cap_mkdb \
+ usr.bin/catman \
+ usr.bin/chat \
+ usr.bin/checknr \
+ usr.bin/chkey \
+ usr.bin/chpass \
+ usr.bin/cksum \
+ usr.bin/cmp \
+ usr.bin/col \
+ usr.bin/colcrt \
+ usr.bin/colldef \
+ usr.bin/colrm \
+ usr.bin/column \
+ usr.bin/comm \
+ usr.bin/compile_et \
+ usr.bin/compress \
+ usr.bin/cpio \
+ usr.bin/cpuset \
+ usr.bin/csplit \
+ usr.bin/csup \
+ usr.bin/ctags \
+ usr.bin/ctlstat \
+ usr.bin/cut \
+ usr.bin/dc \
+ usr.bin/dig \
+ usr.bin/dirname \
+ usr.bin/du \
+ usr.bin/ee \
+ usr.bin/elf2aout \
+ usr.bin/elfdump \
+ usr.bin/enigma \
+ usr.bin/env \
+ usr.bin/expand \
+ usr.bin/false \
+ usr.bin/fetch \
+ usr.bin/file \
+ usr.bin/file2c \
+ usr.bin/find \
+ usr.bin/finger \
+ usr.bin/fmt \
+ usr.bin/fold \
+ usr.bin/from \
+ usr.bin/fstat \
+ usr.bin/fsync \
+ usr.bin/ftp \
+ usr.bin/gcore \
+ usr.bin/gencat \
+ usr.bin/getconf \
+ usr.bin/getent \
+ usr.bin/getopt \
+ usr.bin/gprof \
+ usr.bin/grep \
+ usr.bin/gzip \
+ usr.bin/head \
+ usr.bin/hexdump \
+ usr.bin/host \
+ usr.bin/id \
+ usr.bin/indent \
+ usr.bin/ipcrm \
+ usr.bin/ipcs \
+ usr.bin/join \
+ usr.bin/jot \
+ usr.bin/kdump \
+ usr.bin/keylogin \
+ usr.bin/keylogout \
+ usr.bin/killall \
+ usr.bin/ktrace \
+ usr.bin/ktrdump \
+ usr.bin/lam \
+ usr.bin/last \
+ usr.bin/lastcomm \
+ usr.bin/ldd \
+ usr.bin/leave \
+ usr.bin/less \
+ usr.bin/lessecho \
+ usr.bin/lesskey \
+ usr.bin/lex/lib \
+ usr.bin/limits \
+ usr.bin/locale \
+ usr.bin/locate/bigram \
+ usr.bin/locate/code \
+ usr.bin/locate/locate \
+ usr.bin/lock \
+ usr.bin/lockf \
+ usr.bin/logger \
+ usr.bin/login \
+ usr.bin/logins \
+ usr.bin/logname \
+ usr.bin/look \
+ usr.bin/lorder \
+ usr.bin/lsvfs \
+ usr.bin/lzmainfo \
+ usr.bin/m4 \
+ usr.bin/mail \
+ usr.bin/makewhatis \
+ usr.bin/man \
+ usr.bin/mandoc \
+ usr.bin/mesg \
+ usr.bin/minigzip \
+ usr.bin/ministat \
+ usr.bin/mkdep \
+ usr.bin/mkfifo \
+ usr.bin/mklocale \
+ usr.bin/mkstr \
+ usr.bin/mktemp \
+ usr.bin/mkulzma \
+ usr.bin/mkuzip \
+ usr.bin/msgs \
+ usr.bin/mt \
+ usr.bin/nc \
+ usr.bin/ncal \
+ usr.bin/netstat \
+ usr.bin/newgrp \
+ usr.bin/newkey \
+ usr.bin/nfsstat \
+ usr.bin/nice \
+ usr.bin/nl \
+ usr.bin/nohup \
+ usr.bin/nslookup \
+ usr.bin/nsupdate \
+ usr.bin/opieinfo \
+ usr.bin/opiekey \
+ usr.bin/opiepasswd \
+ usr.bin/pagesize \
+ usr.bin/passwd \
+ usr.bin/paste \
+ usr.bin/pathchk \
+ usr.bin/perror \
+ usr.bin/pr \
+ usr.bin/printenv \
+ usr.bin/printf \
+ usr.bin/procstat \
+ usr.bin/quota \
+ usr.bin/rctl \
+ usr.bin/renice \
+ usr.bin/rev \
+ usr.bin/revoke \
+ usr.bin/rlogin \
+ usr.bin/rpcgen \
+ usr.bin/rpcinfo \
+ usr.bin/rs \
+ usr.bin/rsh \
+ usr.bin/rup \
+ usr.bin/ruptime \
+ usr.bin/rusers \
+ usr.bin/rwall \
+ usr.bin/rwho \
+ usr.bin/script \
+ usr.bin/sed \
+ usr.bin/seq \
+ usr.bin/shar \
+ usr.bin/showmount \
+ usr.bin/sockstat \
+ usr.bin/sort \
+ usr.bin/split \
+ usr.bin/ssh-copy-id \
+ usr.bin/stat \
+ usr.bin/stdbuf \
+ usr.bin/su \
+ usr.bin/systat \
+ usr.bin/tabs \
+ usr.bin/tail \
+ usr.bin/talk \
+ usr.bin/tar \
+ usr.bin/tcopy \
+ usr.bin/tee \
+ usr.bin/telnet \
+ usr.bin/tftp \
+ usr.bin/time \
+ usr.bin/timeout \
+ usr.bin/tip/tip \
+ usr.bin/top \
+ usr.bin/touch \
+ usr.bin/tput \
+ usr.bin/tr \
+ usr.bin/true \
+ usr.bin/truncate \
+ usr.bin/truss \
+ usr.bin/tset \
+ usr.bin/tsort \
+ usr.bin/tty \
+ usr.bin/ul \
+ usr.bin/uname \
+ usr.bin/unexpand \
+ usr.bin/unifdef \
+ usr.bin/uniq \
+ usr.bin/units \
+ usr.bin/unvis \
+ usr.bin/unzip \
+ usr.bin/usbhidaction \
+ usr.bin/usbhidctl \
+ usr.bin/users \
+ usr.bin/uudecode \
+ usr.bin/uuencode \
+ usr.bin/vacation \
+ usr.bin/vgrind \
+ usr.bin/vi \
+ usr.bin/vis \
+ usr.bin/vmstat \
+ usr.bin/vtfontcvt \
+ usr.bin/w \
+ usr.bin/wall \
+ usr.bin/wc \
+ usr.bin/what \
+ usr.bin/whereis \
+ usr.bin/which \
+ usr.bin/who \
+ usr.bin/whois \
+ usr.bin/write \
+ usr.bin/xargs \
+ usr.bin/xinstall \
+ usr.bin/xlint/lint1 \
+ usr.bin/xlint/lint2 \
+ usr.bin/xlint/xlint \
+ usr.bin/xlint/llib \
+ usr.bin/xstr \
+ usr.bin/xz \
+ usr.bin/xzdec \
+ usr.bin/yacc \
+ usr.bin/yes \
+ usr.bin/ypcat \
+ usr.bin/ypmatch \
+ usr.bin/ypwhich \
+ usr.sbin/IPXrouted \
+ usr.sbin/ac \
+ usr.sbin/accton \
+ usr.sbin/adduser \
+ usr.sbin/amd/include \
+ usr.sbin/amd/libamu \
+ usr.sbin/amd/amd \
+ usr.sbin/amd/amq \
+ usr.sbin/amd/doc \
+ usr.sbin/amd/fixmount \
+ usr.sbin/amd/fsinfo \
+ usr.sbin/amd/hlfsd \
+ usr.sbin/amd/mk-amd-map \
+ usr.sbin/amd/pawd \
+ usr.sbin/amd/scripts \
+ usr.sbin/amd/wire-test \
+ usr.sbin/ancontrol \
+ usr.sbin/apm \
+ usr.sbin/arp \
+ usr.sbin/arpaname \
+ usr.sbin/audit \
+ usr.sbin/auditd \
+ usr.sbin/auditreduce \
+ usr.sbin/authpf \
+ usr.sbin/bluetooth/ath3kfw \
+ usr.sbin/bluetooth/bcmfw \
+ usr.sbin/bluetooth/bt3cfw \
+ usr.sbin/bluetooth/bthidcontrol \
+ usr.sbin/bluetooth/bthidd \
+ usr.sbin/bluetooth/btpand \
+ usr.sbin/bluetooth/hccontrol \
+ usr.sbin/bluetooth/hcsecd \
+ usr.sbin/bluetooth/hcseriald \
+ usr.sbin/bluetooth/l2control \
+ usr.sbin/bluetooth/l2ping \
+ usr.sbin/bluetooth/rfcomm_pppd \
+ usr.sbin/bluetooth/sdpcontrol \
+ usr.sbin/bluetooth/sdpd \
+ usr.sbin/bootparamd/bootparamd \
+ usr.sbin/bootparamd/callbootd \
+ usr.sbin/bsdinstall/distextract \
+ usr.sbin/bsdinstall/distfetch \
+ usr.sbin/bsdinstall/partedit \
+ usr.sbin/bsdinstall/scripts \
+ usr.sbin/bsnmpd/gensnmptree \
+ usr.sbin/bsnmpd/bsnmpd \
+ usr.sbin/bsnmpd/modules/snmp_atm \
+ usr.sbin/bsnmpd/modules/snmp_bridge \
+ usr.sbin/bsnmpd/modules/snmp_hostres \
+ usr.sbin/bsnmpd/modules/snmp_lm75 \
+ usr.sbin/bsnmpd/modules/snmp_mibII \
+ usr.sbin/bsnmpd/modules/snmp_pf \
+ usr.sbin/bsnmpd/modules/snmp_target \
+ usr.sbin/bsnmpd/modules/snmp_usm \
+ usr.sbin/bsnmpd/modules/snmp_vacm \
+ usr.sbin/bsnmpd/modules/snmp_wlan \
+ usr.sbin/bsnmpd/modules/snmp_netgraph \
+ usr.sbin/bsnmpd/tools/libbsnmptools \
+ usr.sbin/bsnmpd/tools/bsnmptools \
+ usr.sbin/burncd \
+ usr.sbin/cdcontrol \
+ usr.sbin/chkgrp \
+ usr.sbin/chown \
+ usr.sbin/chroot \
+ usr.sbin/ckdist \
+ usr.sbin/clear_locks \
+ usr.sbin/config \
+ usr.sbin/crashinfo \
+ usr.sbin/cron/lib \
+ usr.sbin/cron/cron \
+ usr.sbin/cron/crontab \
+ usr.sbin/crunch/crunchgen \
+ usr.sbin/crunch/crunchide \
+ usr.sbin/ctladm \
+ usr.sbin/ctm/ctm \
+ usr.sbin/ctm/ctm_rmail \
+ usr.sbin/ctm/ctm_smail \
+ usr.sbin/ctm/ctm_dequeue \
+ usr.sbin/daemon \
+ usr.sbin/dconschat \
+ usr.sbin/ddns-confgen \
+ usr.sbin/devinfo \
+ usr.sbin/digictl \
+ usr.sbin/diskinfo \
+ usr.sbin/dnssec-dsfromkey \
+ usr.sbin/dnssec-keyfromlabel \
+ usr.sbin/dnssec-keygen \
+ usr.sbin/dnssec-revoke \
+ usr.sbin/dnssec-settime \
+ usr.sbin/dnssec-signzone \
+ usr.sbin/dumpcis \
+ usr.sbin/editmap \
+ usr.sbin/edquota \
+ usr.sbin/etcupdate \
+ usr.sbin/extattr \
+ usr.sbin/extattrctl \
+ usr.sbin/fdcontrol \
+ usr.sbin/fdformat \
+ usr.sbin/fdread \
+ usr.sbin/fdwrite \
+ usr.sbin/fifolog/lib \
+ usr.sbin/fifolog/fifolog_create \
+ usr.sbin/fifolog/fifolog_writer \
+ usr.sbin/fifolog/fifolog_reader \
+ usr.sbin/flowctl \
+ usr.sbin/freebsd-update \
+ usr.sbin/fwcontrol \
+ usr.sbin/genrandom \
+ usr.sbin/getfmac \
+ usr.sbin/getpmac \
+ usr.sbin/gpioctl \
+ usr.sbin/gssd \
+ usr.sbin/gstat \
+ usr.sbin/i2c \
+ usr.sbin/ifmcstat \
+ usr.sbin/inetd \
+ usr.sbin/iostat \
+ usr.sbin/ip6addrctl \
+ usr.sbin/ipfwpcap \
+ usr.sbin/isc-hmac-fixup \
+ usr.sbin/isfctl \
+ usr.sbin/jail \
+ usr.sbin/jexec \
+ usr.sbin/jls \
+ usr.sbin/kbdcontrol \
+ usr.sbin/kbdmap \
+ usr.sbin/keyserv \
+ usr.sbin/kldxref \
+ usr.sbin/lastlogin \
+ usr.sbin/lmcconfig \
+ usr.sbin/lpr/common_source \
+ usr.sbin/lpr/chkprintcap \
+ usr.sbin/lpr/lp \
+ usr.sbin/lpr/lpc \
+ usr.sbin/lpr/lpd \
+ usr.sbin/lpr/lpq \
+ usr.sbin/lpr/lpr \
+ usr.sbin/lpr/lprm \
+ usr.sbin/lpr/lptest \
+ usr.sbin/lpr/pac \
+ usr.sbin/lpr/filters \
+ usr.sbin/lpr/filters.ru/koi2alt \
+ usr.sbin/lpr/filters.ru/koi2855 \
+ usr.sbin/mailstats \
+ usr.sbin/mailwrapper \
+ usr.sbin/makefs \
+ usr.sbin/makemap \
+ usr.sbin/manctl \
+ usr.sbin/manctl \
+ usr.sbin/memcontrol \
+ usr.sbin/mergemaster \
+ usr.sbin/mfiutil \
+ usr.sbin/mixer \
+ usr.sbin/mld6query \
+ usr.sbin/mlxcontrol \
+ usr.sbin/mountd \
+ usr.sbin/moused \
+ usr.sbin/mptutil \
+ usr.sbin/mtest \
+ usr.sbin/mtree \
+ usr.sbin/named \
+ usr.sbin/named-checkconf \
+ usr.sbin/named-checkzone \
+ usr.sbin/named-journalprint \
+ usr.sbin/ndp \
+ usr.sbin/newsyslog \
+ usr.sbin/nfscbd \
+ usr.sbin/nfsd \
+ usr.sbin/nfsdumpstate \
+ usr.sbin/nfsrevoke \
+ usr.sbin/nfsuserd \
+ usr.sbin/ngctl \
+ usr.sbin/nghook \
+ usr.sbin/nologin \
+ usr.sbin/nscd \
+ usr.sbin/nsec3hash \
+ usr.sbin/ntp/libopts \
+ usr.sbin/ntp/libntp \
+ usr.sbin/ntp/libparse \
+ usr.sbin/ntp/ntpd \
+ usr.sbin/ntp/ntpdc \
+ usr.sbin/ntp/ntpq \
+ usr.sbin/ntp/ntpdate \
+ usr.sbin/ntp/ntptime \
+ usr.sbin/ntp/ntp-keygen \
+ usr.sbin/ntp/sntp \
+ usr.sbin/ntp/doc \
+ usr.sbin/pc-sysinstall/backend \
+ usr.sbin/pc-sysinstall/backend-partmanager \
+ usr.sbin/pc-sysinstall/backend-query \
+ usr.sbin/pc-sysinstall/conf \
+ usr.sbin/pc-sysinstall/doc \
+ usr.sbin/pc-sysinstall/examples \
+ usr.sbin/pc-sysinstall/pc-sysinstall \
+ usr.sbin/pciconf \
+ usr.sbin/periodic \
+ usr.sbin/pkg \
+ usr.sbin/pkg_install/lib \
+ usr.sbin/pkg_install/add \
+ usr.sbin/pkg_install/create \
+ usr.sbin/pkg_install/delete \
+ usr.sbin/pkg_install/info \
+ usr.sbin/pkg_install/updating \
+ usr.sbin/pkg_install/version \
+ usr.sbin/pmcannotate \
+ usr.sbin/pmccontrol \
+ usr.sbin/pmcstat \
+ usr.sbin/portsnap/portsnap \
+ usr.sbin/portsnap/make_index \
+ usr.sbin/portsnap/phttpget \
+ usr.sbin/powerd \
+ usr.sbin/ppp \
+ usr.sbin/pppctl \
+ usr.sbin/praliases \
+ usr.sbin/praudit \
+ usr.sbin/procctl \
+ usr.sbin/pstat \
+ usr.sbin/pw \
+ usr.sbin/pwd_mkdb \
+ usr.sbin/quot \
+ usr.sbin/quotaon \
+ usr.sbin/rarpd \
+ usr.sbin/repquota \
+ usr.sbin/rip6query \
+ usr.sbin/rmt \
+ usr.sbin/rndc \
+ usr.sbin/rndc-confgen \
+ usr.sbin/route6d \
+ usr.sbin/rpc.lockd \
+ usr.sbin/rpc.statd \
+ usr.sbin/rpc.umntall \
+ usr.sbin/rpc.yppasswdd \
+ usr.sbin/rpc.ypupdated \
+ usr.sbin/rpc.ypxfrd \
+ usr.sbin/rpcbind \
+ usr.sbin/rrenumd \
+ usr.sbin/rtadvctl \
+ usr.sbin/rtadvd \
+ usr.sbin/rtprio \
+ usr.sbin/rtsold \
+ usr.sbin/rwhod \
+ usr.sbin/sa \
+ usr.sbin/sendmail \
+ usr.sbin/service \
+ usr.sbin/services_mkdb \
+ usr.sbin/setfib \
+ usr.sbin/setfmac \
+ usr.sbin/setpmac \
+ usr.sbin/smbmsg \
+ usr.sbin/snapinfo \
+ usr.sbin/spray \
+ usr.sbin/syslogd \
+ usr.sbin/tcpdchk \
+ usr.sbin/tcpdmatch \
+ usr.sbin/tcpdrop \
+ usr.sbin/tcpdump/tcpdump \
+ usr.sbin/timed/timed \
+ usr.sbin/timed/timedc \
+ usr.sbin/traceroute \
+ usr.sbin/traceroute6 \
+ usr.sbin/trpt \
+ usr.sbin/tzsetup \
+ usr.sbin/uathload \
+ usr.sbin/ugidfw \
+ usr.sbin/uhsoctl \
+ usr.sbin/usbconfig \
+ usr.sbin/usbdump \
+ usr.sbin/utx \
+ usr.sbin/vidcontrol \
+ usr.sbin/vipw \
+ usr.sbin/wake \
+ usr.sbin/watch \
+ usr.sbin/watchdogd \
+ usr.sbin/wlandebug \
+ usr.sbin/wpa/wpa_supplicant \
+ usr.sbin/wpa/wpa_cli \
+ usr.sbin/wpa/wpa_passphrase \
+ usr.sbin/wpa/hostapd \
+ usr.sbin/wpa/hostapd_cli \
+ usr.sbin/wpa/ndis_events \
+ usr.sbin/yp_mkdb \
+ usr.sbin/ypbind \
+ usr.sbin/yppoll \
+ usr.sbin/yppush \
+ usr.sbin/ypserv \
+ usr.sbin/ypset \
+ usr.sbin/zic/zic \
+ usr.sbin/zic/zdump \
+ ${DEP_RELDIR}/cddl \
+ ${DEP_RELDIR}/games \
+ ${DEP_RELDIR}/gnu \
+ ${DEP_RELDIR}/include \
+ ${DEP_RELDIR}/kerberos5 \
+ ${DEP_RELDIR}/libexec \
+ ${DEP_RELDIR}/secure \
+ ${DEP_RELDIR}/share \
+
+DIRDEPS.amd64= \
+ sbin/bsdlabel \
+ sbin/fdisk \
+ sbin/nvmecontrol \
+ usr.sbin/acpi/acpiconf \
+ usr.sbin/acpi/acpidb \
+ usr.sbin/acpi/acpidump \
+ usr.sbin/acpi/iasl \
+ usr.sbin/apm \
+ usr.sbin/asf \
+ usr.sbin/boot0cfg \
+ usr.sbin/btxld \
+ usr.sbin/cpucontrol \
+ usr.sbin/kgmon \
+ usr.sbin/lptcontrol \
+ usr.sbin/mptable \
+ usr.sbin/ndiscvt \
+ usr.sbin/sicontrol \
+ usr.sbin/spkrtest \
+ usr.sbin/sade \
+ usr.sbin/zzz
+
+DIRDEPS.arm= \
+ sbin/bsdlabel \
+ sbin/fdisk \
+ usr.sbin/ofwdump \
+ usr.sbin/kgmon
+
+DIRDEPS.i386= \
+ sbin/bsdlabel \
+ sbin/fdisk \
+ sbin/nvmecontrol \
+ sbin/sconfig \
+ usr.sbin/apm \
+ usr.sbin/apmd \
+ usr.sbin/asf \
+ usr.sbin/btxld \
+ usr.sbin/cpucontrol \
+ usr.sbin/kgmon \
+ usr.sbin/kgzip \
+ usr.sbin/lptcontrol \
+ usr.sbin/mptable \
+ usr.sbin/ndiscvt \
+ usr.sbin/pnpinfo \
+ usr.sbin/sade \
+ usr.sbin/sicontrol \
+ usr.sbin/spkrtest \
+ usr.sbin/zzz \
+ usr.sbin/acpi \
+ usr.sbin/boot0cfg \
+ usr.sbin/wlconfig
+
+DIRDEPS.ia64= \
+ sbin/mca \
+ usr.sbin/acpi \
+ usr.sbin/kgmon \
+ usr.sbin/zzz
+
+DIRDEPS.mips= \
+ sbin/bsdlabel \
+ sbin/fdisk
+
+DIRDEPS.pc98= \
+ sbin/bsdlabel \
+ sbin/fdisk_pc98 \
+ sbin/sconfig
+
+DIRDEPS.sparc64= \
+ sbin/bsdlabel \
+ sbin/sunlabel \
+ usr.sbin/eeprom \
+ usr.sbin/ofwdump \
+ usr.sbin/sade
+
+DIRDEPS.powerpc= \
+ usr.sbin/nvram \
+ usr.sbin/ofwdump
+
+DIRDEPS+= ${DIRDEPS.${MACHINE}:U}
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/userland/Makefile.inc b/targets/pseudo/userland/Makefile.inc
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/Makefile.inc
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/cddl/Makefile b/targets/pseudo/userland/cddl/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/cddl/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/cddl/Makefile.depend b/targets/pseudo/userland/cddl/Makefile.depend
new file mode 100644
index 000000000000..a4cbff7fbf99
--- /dev/null
+++ b/targets/pseudo/userland/cddl/Makefile.depend
@@ -0,0 +1,50 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+.if !defined(MK_CTF)
+.include "${SRCTOP}/share/mk/src.opts.mk"
+.endif
+
+DIRDEPS = \
+ cddl/lib/drti \
+ cddl/lib/libavl \
+ cddl/lib/libnvpair \
+ cddl/lib/libumem \
+ cddl/lib/libuutil \
+ cddl/usr.bin/sgsmsg \
+
+
+DIRDEPS.CTF = \
+ cddl/lib/libctf \
+ cddl/usr.bin/ctfconvert \
+ cddl/usr.bin/ctfdump \
+ cddl/usr.bin/ctfmerge \
+ cddl/lib/libdtrace \
+ cddl/usr.sbin/dtrace \
+ cddl/usr.sbin/dtruss \
+
+
+DIRDEPS.ZFS = \
+ cddl/lib/libzfs \
+ cddl/lib/libzfs_core \
+ cddl/lib/libzpool \
+ cddl/sbin/zfs \
+ cddl/sbin/zpool \
+ cddl/usr.bin/zinject \
+ cddl/usr.bin/zstreamdump \
+ cddl/usr.bin/ztest \
+ cddl/usr.sbin/lockstat \
+ cddl/usr.sbin/zdb \
+ cddl/usr.sbin/zhack \
+
+
+.for O in CTF ZFS
+.if ${MK_$O} == "yes"
+DIRDEPS+= ${DIRDEPS.$O}
+.endif
+.endfor
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/userland/games/Makefile b/targets/pseudo/userland/games/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/games/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/games/Makefile.depend b/targets/pseudo/userland/games/Makefile.depend
new file mode 100644
index 000000000000..7f5cfa2d8ba1
--- /dev/null
+++ b/targets/pseudo/userland/games/Makefile.depend
@@ -0,0 +1,24 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ games/bcd \
+ games/caesar \
+ games/factor \
+ games/fortune/fortune \
+ games/fortune/strfile \
+ games/fortune/datfiles \
+ games/fortune/unstr \
+ games/grdc \
+ games/morse \
+ games/number \
+ games/pom \
+ games/ppt \
+ games/primes \
+ games/random \
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/userland/gnu/Makefile b/targets/pseudo/userland/gnu/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/gnu/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/gnu/Makefile.depend b/targets/pseudo/userland/gnu/Makefile.depend
new file mode 100644
index 000000000000..a95692b8b58e
--- /dev/null
+++ b/targets/pseudo/userland/gnu/Makefile.depend
@@ -0,0 +1,116 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ gnu/lib/csu \
+ gnu/lib/libdialog \
+ gnu/lib/libgcc \
+ gnu/lib/libgcov \
+ gnu/lib/libgomp \
+ gnu/lib/libreadline/history/doc \
+ gnu/lib/libreadline/readline/doc \
+ gnu/lib/libregex/doc \
+ gnu/lib/libssp/libssp_nonshared \
+ gnu/lib/libstdc++ \
+ gnu/lib/libsupc++ \
+ gnu/usr.bin/binutils/addr2line \
+ gnu/usr.bin/binutils/ar \
+ gnu/usr.bin/binutils/as \
+ gnu/usr.bin/binutils/doc \
+ gnu/usr.bin/binutils/ld \
+ gnu/usr.bin/binutils/libbfd \
+ gnu/usr.bin/binutils/libbinutils \
+ gnu/usr.bin/binutils/libiberty \
+ gnu/usr.bin/binutils/libopcodes \
+ gnu/usr.bin/binutils/nm \
+ gnu/usr.bin/binutils/objcopy \
+ gnu/usr.bin/binutils/objdump \
+ gnu/usr.bin/binutils/ranlib \
+ gnu/usr.bin/binutils/readelf \
+ gnu/usr.bin/binutils/size \
+ gnu/usr.bin/binutils/strings \
+ gnu/usr.bin/binutils/strip \
+ gnu/usr.bin/dialog \
+ gnu/usr.bin/diff/doc \
+ gnu/usr.bin/diff3 \
+ gnu/usr.bin/gdb/doc \
+ gnu/usr.bin/gdb/gdb \
+ gnu/usr.bin/gdb/gdbserver \
+ gnu/usr.bin/gdb/gdbtui \
+ gnu/usr.bin/gdb/kgdb \
+ gnu/usr.bin/gdb/libgdb \
+ gnu/usr.bin/gperf/doc \
+ gnu/usr.bin/grep/doc \
+ gnu/usr.bin/groff/contrib/mm \
+ gnu/usr.bin/groff/doc \
+ gnu/usr.bin/groff/font/devX100 \
+ gnu/usr.bin/groff/font/devX100-12 \
+ gnu/usr.bin/groff/font/devX75 \
+ gnu/usr.bin/groff/font/devX75-12 \
+ gnu/usr.bin/groff/font/devascii \
+ gnu/usr.bin/groff/font/devcp1047 \
+ gnu/usr.bin/groff/font/devdvi \
+ gnu/usr.bin/groff/font/devhtml \
+ gnu/usr.bin/groff/font/devkoi8-r \
+ gnu/usr.bin/groff/font/devlatin1 \
+ gnu/usr.bin/groff/font/devlbp \
+ gnu/usr.bin/groff/font/devlj4 \
+ gnu/usr.bin/groff/font/devps \
+ gnu/usr.bin/groff/font/devutf8 \
+ gnu/usr.bin/groff/man \
+ gnu/usr.bin/groff/src/devices/grodvi \
+ gnu/usr.bin/groff/src/devices/grohtml \
+ gnu/usr.bin/groff/src/devices/grolbp \
+ gnu/usr.bin/groff/src/devices/grolj4 \
+ gnu/usr.bin/groff/src/devices/grops \
+ gnu/usr.bin/groff/src/devices/grotty \
+ gnu/usr.bin/groff/src/libs/libbib \
+ gnu/usr.bin/groff/src/libs/libdriver \
+ gnu/usr.bin/groff/src/libs/libgroff \
+ gnu/usr.bin/groff/src/preproc/eqn \
+ gnu/usr.bin/groff/src/preproc/grn \
+ gnu/usr.bin/groff/src/preproc/html \
+ gnu/usr.bin/groff/src/preproc/pic \
+ gnu/usr.bin/groff/src/preproc/refer \
+ gnu/usr.bin/groff/src/preproc/soelim \
+ gnu/usr.bin/groff/src/preproc/tbl \
+ gnu/usr.bin/groff/src/roff/groff \
+ gnu/usr.bin/groff/src/roff/grog \
+ gnu/usr.bin/groff/src/roff/nroff \
+ gnu/usr.bin/groff/src/roff/psroff \
+ gnu/usr.bin/groff/src/roff/troff \
+ gnu/usr.bin/groff/src/utils/addftinfo \
+ gnu/usr.bin/groff/src/utils/afmtodit \
+ gnu/usr.bin/groff/src/utils/hpftodit \
+ gnu/usr.bin/groff/src/utils/indxbib \
+ gnu/usr.bin/groff/src/utils/lkbib \
+ gnu/usr.bin/groff/src/utils/lookbib \
+ gnu/usr.bin/groff/src/utils/pfbtops \
+ gnu/usr.bin/groff/src/utils/tfmtodit \
+ gnu/usr.bin/groff/tmac \
+ gnu/usr.bin/rcs/ci \
+ gnu/usr.bin/rcs/co \
+ gnu/usr.bin/rcs/ident \
+ gnu/usr.bin/rcs/lib \
+ gnu/usr.bin/rcs/merge \
+ gnu/usr.bin/rcs/rcs \
+ gnu/usr.bin/rcs/rcsclean \
+ gnu/usr.bin/rcs/rcsdiff \
+ gnu/usr.bin/rcs/rcsfreeze \
+ gnu/usr.bin/rcs/rcsmerge \
+ gnu/usr.bin/rcs/rlog \
+ gnu/usr.bin/sdiff \
+ gnu/usr.bin/send-pr/doc \
+ gnu/usr.bin/texinfo/doc \
+ gnu/usr.bin/texinfo/info \
+ gnu/usr.bin/texinfo/infokey \
+ gnu/usr.bin/texinfo/install-info \
+ gnu/usr.bin/texinfo/libtxi \
+ gnu/usr.bin/texinfo/makeinfo \
+ gnu/usr.bin/texinfo/texindex \
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/userland/include/Makefile b/targets/pseudo/userland/include/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/include/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/include/Makefile.depend b/targets/pseudo/userland/include/Makefile.depend
new file mode 100644
index 000000000000..e8e6e09c0ebd
--- /dev/null
+++ b/targets/pseudo/userland/include/Makefile.depend
@@ -0,0 +1,16 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ include/arpa \
+ include/gssapi \
+ include/protocols \
+ include/rpcsvc \
+ include/rpc \
+ include/xlocale \
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/userland/kerberos5/Makefile b/targets/pseudo/userland/kerberos5/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/kerberos5/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/kerberos5/Makefile.depend b/targets/pseudo/userland/kerberos5/Makefile.depend
new file mode 100644
index 000000000000..fe1a4886f624
--- /dev/null
+++ b/targets/pseudo/userland/kerberos5/Makefile.depend
@@ -0,0 +1,61 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ kerberos5/doc \
+ kerberos5/lib/libasn1 \
+ kerberos5/lib/libgssapi_krb5 \
+ kerberos5/lib/libgssapi_ntlm \
+ kerberos5/lib/libgssapi_spnego \
+ kerberos5/lib/libhdb \
+ kerberos5/lib/libheimbase \
+ kerberos5/lib/libheimipcc \
+ kerberos5/lib/libheimipcs \
+ kerberos5/lib/libheimntlm \
+ kerberos5/lib/libheimsqlite \
+ kerberos5/lib/libhx509 \
+ kerberos5/lib/libkadm5clnt \
+ kerberos5/lib/libkadm5srv \
+ kerberos5/lib/libkafs5 \
+ kerberos5/lib/libkdc \
+ kerberos5/lib/libkrb5 \
+ kerberos5/lib/libroken \
+ kerberos5/lib/libsl \
+ kerberos5/lib/libvers \
+ kerberos5/lib/libwind \
+ kerberos5/libexec/digest-service \
+ kerberos5/libexec/hprop \
+ kerberos5/libexec/hpropd \
+ kerberos5/libexec/ipropd-master \
+ kerberos5/libexec/ipropd-slave \
+ kerberos5/libexec/kadmind \
+ kerberos5/libexec/kcm \
+ kerberos5/libexec/kdc \
+ kerberos5/libexec/kdigest \
+ kerberos5/libexec/kfd \
+ kerberos5/libexec/kimpersonate \
+ kerberos5/libexec/kpasswdd \
+ kerberos5/tools/asn1_compile \
+ kerberos5/tools/make-roken \
+ kerberos5/tools/slc \
+ kerberos5/usr.bin/hxtool \
+ kerberos5/usr.bin/kadmin \
+ kerberos5/usr.bin/kcc \
+ kerberos5/usr.bin/kdestroy \
+ kerberos5/usr.bin/kf \
+ kerberos5/usr.bin/kgetcred \
+ kerberos5/usr.bin/kinit \
+ kerberos5/usr.bin/kpasswd \
+ kerberos5/usr.bin/krb5-config \
+ kerberos5/usr.bin/ksu \
+ kerberos5/usr.bin/string2key \
+ kerberos5/usr.bin/verify_krb5_conf \
+ kerberos5/usr.sbin/iprop-log \
+ kerberos5/usr.sbin/kstash \
+ kerberos5/usr.sbin/ktutil \
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/userland/lib/Makefile b/targets/pseudo/userland/lib/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/lib/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/lib/Makefile.depend b/targets/pseudo/userland/lib/Makefile.depend
new file mode 100644
index 000000000000..027f820e7419
--- /dev/null
+++ b/targets/pseudo/userland/lib/Makefile.depend
@@ -0,0 +1,160 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ lib/${CSU_DIR} \
+ lib/atf/libatf-c \
+ lib/atf/libatf-c++ \
+ lib/libalias/libalias \
+ lib/libalias/modules/cuseeme \
+ lib/libalias/modules/dummy \
+ lib/libalias/modules/ftp \
+ lib/libalias/modules/irc \
+ lib/libalias/modules/nbt \
+ lib/libalias/modules/pptp \
+ lib/libalias/modules/skinny \
+ lib/libalias/modules/smedia \
+ lib/libarchive \
+ lib/libauditd \
+ lib/libbegemot \
+ lib/libblocksruntime \
+ lib/libbluetooth \
+ lib/libbsm \
+ lib/libbsnmp/libbsnmp \
+ lib/libbz2 \
+ lib/libc \
+ lib/libc++ \
+ lib/libcalendar \
+ lib/libcam \
+ lib/libcom_err/doc \
+ lib/libcompat \
+ lib/libcompiler_rt \
+ lib/libcrypt \
+ lib/libcuse \
+ lib/libcxxrt \
+ lib/libdevinfo \
+ lib/libdevstat \
+ lib/libdwarf \
+ lib/libedit/edit/readline \
+ lib/libelf \
+ lib/libexecinfo \
+ lib/libexpat \
+ lib/libfetch \
+ lib/libgeom \
+ lib/libgpib \
+ lib/libgssapi \
+ lib/libiconv_modules/BIG5 \
+ lib/libiconv_modules/DECHanyu \
+ lib/libiconv_modules/EUC \
+ lib/libiconv_modules/EUCTW \
+ lib/libiconv_modules/GBK2K \
+ lib/libiconv_modules/HZ \
+ lib/libiconv_modules/ISO2022 \
+ lib/libiconv_modules/JOHAB \
+ lib/libiconv_modules/MSKanji \
+ lib/libiconv_modules/UES \
+ lib/libiconv_modules/UTF1632 \
+ lib/libiconv_modules/UTF7 \
+ lib/libiconv_modules/UTF8 \
+ lib/libiconv_modules/VIQR \
+ lib/libiconv_modules/ZW \
+ lib/libiconv_modules/iconv_none \
+ lib/libiconv_modules/iconv_std \
+ lib/libiconv_modules/mapper_646 \
+ lib/libiconv_modules/mapper_none \
+ lib/libiconv_modules/mapper_parallel \
+ lib/libiconv_modules/mapper_serial \
+ lib/libiconv_modules/mapper_std \
+ lib/libiconv_modules/mapper_zone \
+ lib/libipsec \
+ lib/libipx \
+ lib/libjail \
+ lib/libkiconv \
+ lib/libkvm \
+ lib/libldns \
+ lib/liblzma \
+ lib/libmagic \
+ lib/libmandoc \
+ lib/libmd \
+ lib/libmemstat \
+ lib/libmilter \
+ lib/libmp \
+ lib/libnetgraph \
+ lib/libngatm \
+ lib/libopie \
+ lib/libpam/libpam \
+ lib/libpam/modules/pam_chroot \
+ lib/libpam/modules/pam_deny \
+ lib/libpam/modules/pam_echo \
+ lib/libpam/modules/pam_exec \
+ lib/libpam/modules/pam_ftpusers \
+ lib/libpam/modules/pam_group \
+ lib/libpam/modules/pam_guest \
+ lib/libpam/modules/pam_krb5 \
+ lib/libpam/modules/pam_ksu \
+ lib/libpam/modules/pam_lastlog \
+ lib/libpam/modules/pam_login_access \
+ lib/libpam/modules/pam_nologin \
+ lib/libpam/modules/pam_opie \
+ lib/libpam/modules/pam_opieaccess \
+ lib/libpam/modules/pam_passwdqc \
+ lib/libpam/modules/pam_permit \
+ lib/libpam/modules/pam_radius \
+ lib/libpam/modules/pam_rhosts \
+ lib/libpam/modules/pam_rootok \
+ lib/libpam/modules/pam_securetty \
+ lib/libpam/modules/pam_self \
+ lib/libpam/modules/pam_ssh \
+ lib/libpam/modules/pam_tacplus \
+ lib/libpam/modules/pam_unix \
+ lib/libpcap \
+ lib/libpmc \
+ lib/libproc \
+ lib/libprocstat \
+ lib/libradius \
+ lib/librpcsec_gss \
+ lib/librpcsvc \
+ lib/librt \
+ lib/librtld_db \
+ lib/libsbuf \
+ lib/libsdp \
+ lib/libsm \
+ lib/libsmb \
+ lib/libsmdb \
+ lib/libsmutil \
+ lib/libstand \
+ lib/libstdbuf \
+ lib/libstdthreads \
+ lib/libtacplus \
+ lib/libtelnet \
+ lib/libthr \
+ lib/libthread_db \
+ lib/libufs \
+ lib/libugidfw \
+ lib/libulog \
+ lib/libunbound \
+ lib/libusb \
+ lib/libusbhid \
+ lib/libutil \
+ lib/libvgl \
+ lib/libvmmapi \
+ lib/libwrap \
+ lib/liby \
+ lib/libyaml \
+ lib/libypclnt \
+ lib/libz \
+ lib/msun \
+ lib/ncurses/form \
+ lib/ncurses/formw \
+ lib/ncurses/menu \
+ lib/ncurses/menuw \
+ lib/ncurses/ncurses \
+ lib/ncurses/ncursesw \
+ lib/ncurses/panel \
+ lib/ncurses/panelw \
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/userland/libexec/Makefile b/targets/pseudo/userland/libexec/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/libexec/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/libexec/Makefile.depend b/targets/pseudo/userland/libexec/Makefile.depend
new file mode 100644
index 000000000000..a7c9ee4e8743
--- /dev/null
+++ b/targets/pseudo/userland/libexec/Makefile.depend
@@ -0,0 +1,42 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ libexec/atf/atf-check \
+ libexec/atf/atf-sh \
+ libexec/atrun \
+ libexec/bootpd/bootpgw \
+ libexec/bootpd/tools/bootpef \
+ libexec/bootpd/tools/bootptest \
+ libexec/comsat \
+ libexec/fingerd \
+ libexec/ftpd \
+ libexec/getty \
+ libexec/mail.local \
+ libexec/mknetid \
+ libexec/pppoed \
+ libexec/rbootd \
+ libexec/revnetgroup \
+ libexec/rlogind \
+ libexec/rpc.rquotad \
+ libexec/rpc.rstatd \
+ libexec/rpc.rusersd \
+ libexec/rpc.rwalld \
+ libexec/rpc.sprayd \
+ libexec/rshd \
+ libexec/rtld-elf \
+ libexec/save-entropy \
+ libexec/smrsh \
+ libexec/talkd \
+ libexec/tcpd \
+ libexec/telnetd \
+ libexec/tftp-proxy \
+ libexec/tftpd \
+ libexec/ulog-helper \
+ libexec/ypxfr \
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/userland/misc/Makefile b/targets/pseudo/userland/misc/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/misc/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/misc/Makefile.depend b/targets/pseudo/userland/misc/Makefile.depend
new file mode 100644
index 000000000000..efc3bb7a9446
--- /dev/null
+++ b/targets/pseudo/userland/misc/Makefile.depend
@@ -0,0 +1,53 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ rescue/librescue \
+ rescue/rescue \
+ sys/boot/ficl \
+ etc/sendmail \
+
+
+
+DIRDEPS.x86sys= \
+ sys/boot/i386/mbr \
+ sys/boot/i386/pmbr \
+ sys/boot/i386/boot0 \
+ sys/boot/i386/boot0sio \
+ sys/boot/i386/btx/btx \
+ sys/boot/i386/btx/btxldr \
+ sys/boot/i386/btx/lib \
+ sys/boot/i386/boot2 \
+ sys/boot/i386/cdboot \
+ sys/boot/i386/gptboot \
+ sys/boot/i386/kgzldr \
+ sys/boot/i386/libi386 \
+ sys/boot/i386/libfirewire \
+ sys/boot/i386/loader \
+ sys/boot/i386/pxeldr \
+ sys/boot/i386/zfsboot \
+ sys/boot/i386/gptzfsboot \
+ sys/boot/i386/zfsloader \
+
+
+DIRDEPS.amd64= \
+ ${DIRDEPS.x86sys} \
+ sys/boot/efi/libefi \
+ sys/boot/zfs \
+ sys/boot/userboot/ficl \
+ sys/boot/userboot/libstand \
+ sys/boot/userboot/test \
+ sys/boot/userboot/userboot \
+
+DIRDEPS.arm= sys/boot/fdt sys/boot/uboot
+DIRDEPS.i386= ${DIRDEPS.x86sys} sys/boot/efi/libefi sys/boot/zfs
+DIRDEPS.ia64= sys/boot/efi/libefi sys/boot/zfs
+DIRDEPS.powerpc= sys/boot/fdt sys/boot/ofw sys/boot/uboot
+DIRDEPS.sparc64= sys/boot/ofw sys/boot/zfs
+
+DIRDEPS+= ${DIRDEPS.${MACHINE}:U}
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/userland/secure/Makefile b/targets/pseudo/userland/secure/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/secure/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/secure/Makefile.depend b/targets/pseudo/userland/secure/Makefile.depend
new file mode 100644
index 000000000000..ab046f022697
--- /dev/null
+++ b/targets/pseudo/userland/secure/Makefile.depend
@@ -0,0 +1,35 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ secure/lib/libcrypto \
+ secure/lib/libcrypto/engines/lib4758cca \
+ secure/lib/libcrypto/engines/libaep \
+ secure/lib/libcrypto/engines/libatalla \
+ secure/lib/libcrypto/engines/libchil \
+ secure/lib/libcrypto/engines/libcswift \
+ secure/lib/libcrypto/engines/libgost \
+ secure/lib/libcrypto/engines/libnuron \
+ secure/lib/libcrypto/engines/libsureware \
+ secure/lib/libcrypto/engines/libubsec \
+ secure/lib/libssh \
+ secure/lib/libssl \
+ secure/libexec/sftp-server \
+ secure/libexec/ssh-keysign \
+ secure/libexec/ssh-pkcs11-helper \
+ secure/usr.bin/bdes \
+ secure/usr.bin/openssl \
+ secure/usr.bin/scp \
+ secure/usr.bin/sftp \
+ secure/usr.bin/ssh \
+ secure/usr.bin/ssh-add \
+ secure/usr.bin/ssh-agent \
+ secure/usr.bin/ssh-keygen \
+ secure/usr.bin/ssh-keyscan \
+ secure/usr.sbin/sshd \
+
+
+.include <dirdeps.mk>
diff --git a/targets/pseudo/userland/share/Makefile b/targets/pseudo/userland/share/Makefile
new file mode 100644
index 000000000000..265f86d1ed55
--- /dev/null
+++ b/targets/pseudo/userland/share/Makefile
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include "../Makefile.inc"
diff --git a/targets/pseudo/userland/share/Makefile.depend b/targets/pseudo/userland/share/Makefile.depend
new file mode 100644
index 000000000000..058dfd4685b8
--- /dev/null
+++ b/targets/pseudo/userland/share/Makefile.depend
@@ -0,0 +1,155 @@
+# $FreeBSD$
+
+# This file is not autogenerated - take care!
+
+DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,}
+
+DIRDEPS = \
+ share/atf \
+ share/colldef \
+ share/dict \
+ share/doc/IPv6 \
+ share/doc/atf \
+ share/doc/legal/intel_ipw \
+ share/doc/legal/intel_iwi \
+ share/doc/legal/intel_iwn \
+ share/doc/legal/intel_wpi \
+ share/doc/llvm/clang \
+ share/doc/papers/beyond4.3 \
+ share/doc/papers/bufbio \
+ share/doc/papers/contents \
+ share/doc/papers/devfs \
+ share/doc/papers/diskperf \
+ share/doc/papers/fsinterface \
+ share/doc/papers/hwpmc \
+ share/doc/papers/jail \
+ share/doc/papers/kernmalloc \
+ share/doc/papers/kerntune \
+ share/doc/papers/malloc \
+ share/doc/papers/newvm \
+ share/doc/papers/relengr \
+ share/doc/papers/sysperf \
+ share/doc/papers/timecounter \
+ share/doc/psd/01.cacm \
+ share/doc/psd/02.implement \
+ share/doc/psd/03.iosys \
+ share/doc/psd/04.uprog \
+ share/doc/psd/05.sysman \
+ share/doc/psd/06.Clang \
+ share/doc/psd/12.make \
+ share/doc/psd/13.rcs/rcs \
+ share/doc/psd/13.rcs/rcs_func \
+ share/doc/psd/15.yacc \
+ share/doc/psd/16.lex \
+ share/doc/psd/17.m4 \
+ share/doc/psd/18.gprof \
+ share/doc/psd/20.ipctut \
+ share/doc/psd/21.ipc \
+ share/doc/psd/22.rpcgen \
+ share/doc/psd/23.rpc \
+ share/doc/psd/24.xdr \
+ share/doc/psd/25.xdrrfc \
+ share/doc/psd/26.rpcrfc \
+ share/doc/psd/27.nfsrpc \
+ share/doc/psd/contents \
+ share/doc/psd/title \
+ share/doc/smm/01.setup \
+ share/doc/smm/02.config \
+ share/doc/smm/03.fsck \
+ share/doc/smm/04.quotas \
+ share/doc/smm/05.fastfs \
+ share/doc/smm/06.nfs \
+ share/doc/smm/07.lpd \
+ share/doc/smm/08.sendmailop \
+ share/doc/smm/11.timedop \
+ share/doc/smm/12.timed \
+ share/doc/smm/18.net \
+ share/doc/smm/contents \
+ share/doc/smm/title \
+ share/doc/usd/04.csh \
+ share/doc/usd/05.dc \
+ share/doc/usd/06.bc \
+ share/doc/usd/07.mail \
+ share/doc/usd/10.exref/exref \
+ share/doc/usd/10.exref/summary \
+ share/doc/usd/11.vitut \
+ share/doc/usd/12.vi/summary \
+ share/doc/usd/12.vi/vi \
+ share/doc/usd/12.vi/viapwh \
+ share/doc/usd/13.viref \
+ share/doc/usd/18.msdiffs \
+ share/doc/usd/19.memacros \
+ share/doc/usd/20.meref \
+ share/doc/usd/21.troff \
+ share/doc/usd/22.trofftut \
+ share/doc/usd/contents \
+ share/doc/usd/title \
+ share/dtrace/toolkit \
+ share/examples/atf \
+ share/examples/ipfilter \
+ share/examples/pf \
+ share/i18n/csmapper \
+ share/i18n/csmapper/APPLE \
+ share/i18n/csmapper/AST \
+ share/i18n/csmapper/BIG5 \
+ share/i18n/csmapper/CNS \
+ share/i18n/csmapper/CP \
+ share/i18n/csmapper/EBCDIC \
+ share/i18n/csmapper/GB \
+ share/i18n/csmapper/GEORGIAN \
+ share/i18n/csmapper/ISO-8859 \
+ share/i18n/csmapper/ISO646 \
+ share/i18n/csmapper/JIS \
+ share/i18n/csmapper/KAZAKH \
+ share/i18n/csmapper/KOI \
+ share/i18n/csmapper/KS \
+ share/i18n/csmapper/MISC \
+ share/i18n/csmapper/TCVN \
+ share/i18n/esdb \
+ share/i18n/esdb/APPLE \
+ share/i18n/esdb/AST \
+ share/i18n/esdb/BIG5 \
+ share/i18n/esdb/CP \
+ share/i18n/esdb/DEC \
+ share/i18n/esdb/EBCDIC \
+ share/i18n/esdb/EUC \
+ share/i18n/esdb/GB \
+ share/i18n/esdb/GEORGIAN \
+ share/i18n/esdb/ISO-2022 \
+ share/i18n/esdb/ISO-8859 \
+ share/i18n/esdb/ISO646 \
+ share/i18n/esdb/KAZAKH \
+ share/i18n/esdb/KOI \
+ share/i18n/esdb/MISC \
+ share/i18n/esdb/TCVN \
+ share/i18n/esdb/UTF \
+ share/info \
+ share/man/man1 \
+ share/man/man3 \
+ share/man/man4 \
+ share/man/man5 \
+ share/man/man6 \
+ share/man/man7 \
+ share/man/man8 \
+ share/man/man9 \
+ share/me \
+ share/misc \
+ share/mklocale \
+ share/monetdef \
+ share/msgdef \
+ share/numericdef \
+ share/sendmail \
+ share/skel \
+ share/snmp/mibs \
+ share/syscons/fonts \
+ share/syscons/keymaps \
+ share/syscons/scrnmaps \
+ share/tabset \
+ share/termcap \
+ share/timedef \
+ share/xml/atf \
+ share/xsl/atf \
+ share/zoneinfo \
+
+
+.include <dirdeps.mk>