summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/bsdbox/Makefile115
-rw-r--r--tools/bsdbox/Makefile.base55
-rw-r--r--tools/bsdbox/Makefile.fs17
-rw-r--r--tools/bsdbox/Makefile.hostapd15
-rw-r--r--tools/bsdbox/Makefile.kld6
-rw-r--r--tools/bsdbox/Makefile.login9
-rw-r--r--tools/bsdbox/Makefile.net32
-rw-r--r--tools/bsdbox/Makefile.telnetd14
-rw-r--r--tools/bsdbox/Makefile.textproc20
-rw-r--r--tools/bsdbox/README12
10 files changed, 295 insertions, 0 deletions
diff --git a/tools/bsdbox/Makefile b/tools/bsdbox/Makefile
new file mode 100644
index 0000000..8656da6
--- /dev/null
+++ b/tools/bsdbox/Makefile
@@ -0,0 +1,115 @@
+#$FreeBSD$
+# @(#)Makefile 8.1 (Berkeley) 6/2/93
+
+NO_MAN=
+
+.include <bsd.own.mk>
+MK_SSP= no
+
+PROG= bsdbox
+BINDIR?=/sbin
+
+#################################################################
+#
+# General notes:
+#
+# A number of Make variables are used to generate the crunchgen config file.
+#
+# CRUNCH_SRCDIRS: lists directories to search for included programs
+# CRUNCH_PROGS: lists programs to be included
+# CRUNCH_LIBS: libraries to statically link with
+# CRUNCH_SHLIBS: libraries to dynamically link with
+# CRUNCH_BUILDOPTS: generic build options to be added to every program
+# CRUNCH_BUILDTOOLS: lists programs that need build tools built in the
+# local architecture.
+#
+# Special options can be specified for individual programs
+# CRUNCH_SRCDIR_$(P): base source directory for program $(P)
+# CRUNCH_BUILDOPTS_$(P): additional build options for $(P)
+# CRUNCH_ALIAS_$(P): additional names to be used for $(P)
+#
+# By default, any name appearing in CRUNCH_PROGS or CRUNCH_ALIAS_${P}
+# will be used to generate a hard link to the resulting binary.
+# Specific links can be suppressed by setting
+# CRUNCH_SUPPRESS_LINK_$(NAME) to 1.
+#
+
+# Define Makefile variable RESCUE
+CRUNCH_BUILDOPTS+= -DRESCUE
+
+# Don't do symlinks as part of the install
+CRUNCH_GENERATE_LINKS= no
+
+# Which sources have local-arch build tools?
+# Define as blank; othrs need to override
+CRUNCH_BUILDTOOLS=
+
+###################################################################
+# Programs from stock /bin
+#
+# WARNING: Changing this list may require adjusting
+# /usr/include/paths.h as well! You were warned!
+#
+CRUNCH_SRCDIRS+= bin
+# These are required to be shared so login and su can run as
+# setuid binaries - they use these libraries. PAM needs to be
+# built dynamically or it tries to build _all_ of the modules
+# statically - and that ends very badly.
+CRUNCH_SHLIBS+= -lc -lutil
+CRUNCH_LIBS+= -lkvm -lmemstat -lnetgraph
+CRUNCH_LIBS+= -lcrypt -ledit -ll -ltermcap
+
+###################################################################
+# Programs from standard /sbin
+#
+# WARNING: Changing this list may require adjusting
+# /usr/include/paths.h as well! You were warned!
+#
+# Note that mdmfs have their own private 'pathnames.h'
+# headers in addition to the standard 'paths.h' header.
+#
+CRUNCH_SRCDIRS+= sbin
+
+CRUNCH_LIBS+= -lalias -lcam -lcurses -ldevstat -lipsec
+# Don't forget this - ifconfig, etc -adrian
+.if ${MK_IPX} != "no"
+CRUNCH_LIBS+= -lipx
+.endif
+CRUNCH_LIBS+= -lgeom -lbsdxml -ljail -lkiconv -lmd -lsbuf -lufs
+
+##################################################################
+# Programs from stock /usr/bin
+#
+CRUNCH_SRCDIRS+= usr.bin
+# grep
+CRUNCH_LIBS+= -lbz2
+
+##################################################################
+# Programs from stock /usr/sbin
+#
+CRUNCH_SRCDIRS+= usr.sbin
+
+##################################################################
+
+CRUNCH_SRCDIRS+= libexec
+
+CRUNCH_LIBS+= -lm
+
+.include "Makefile.base"
+.include "Makefile.net"
+.include "Makefile.hostapd"
+.include "Makefile.textproc"
+.include "Makefile.login"
+.include "Makefile.kld"
+# telnet/telnetd are too broken to include as a crunchgen'ed binary,
+# thanks to some of the horrible layering violations going on.
+# .include "Makefile.telnetd"
+.include "Makefile.fs"
+
+CRUNCH_LIBS+= -lcrypto -lssl -lz
+
+# the crunchgen build environment
+.include <bsd.crunchgen.mk>
+
+# and since it creates a program..
+.include <bsd.prog.mk>
diff --git a/tools/bsdbox/Makefile.base b/tools/bsdbox/Makefile.base
new file mode 100644
index 0000000..5e8e9a3
--- /dev/null
+++ b/tools/bsdbox/Makefile.base
@@ -0,0 +1,55 @@
+#
+# This builds a variety of "base" tools, useful for an embedded
+# system.
+#
+# $FreeBSD$
+#
+CRUNCH_PROGS_sbin+= dmesg sysctl init reboot
+CRUNCH_PROGS_bin+= ls cat dd df cp hostname kill mkdir sleep ps ln rm hostname
+CRUNCH_PROGS_usr.bin+= true false hexdump tail nc w head uname tset
+CRUNCH_PROGS_usr.sbin+= gpioctl
+CRUNCH_ALIAS_w= uptime
+CRUNCH_ALIAS_tset= reset
+
+CRUNCH_PROGS_usr.bin+= vmstat systat
+CRUNCH_LIBS+= -ldevstat -lncursesw -lncurses -lmemstat -lkvm
+
+CRUNCH_PROGS_usr.bin+= tar cpio
+# XXX SSL ?
+CRUNCH_LIBS+= -larchive -lbz2 -lz -llzma -lbsdxml -lssl -lcrypto
+
+# Clear requires tput, and it's a shell script so it won't be crunched
+CRUNCH_PROGS_usr.bin+= tput
+
+# sh
+CRUNCH_PROGS_bin+= sh
+CRUNCH_ALIAS_sh= -sh
+CRUNCH_SUPPRESS_LINK_-sh= 1
+CRUNCH_BUILDTOOLS+= bin/sh
+
+# chown
+CRUNCH_PROGS_usr.sbin+= chown
+CRUNCH_ALIAS_chown= chgrp
+
+# Basic filesystem stuff
+CRUNCH_PROGS_sbin+= mount umount
+
+# grep
+# grep doesn't yet work -adrian
+CRUNCH_PROGS_usr.bin+= grep
+
+# less/more
+CRUNCH_PROGS_usr.bin+= less
+CRUNCH_ALIAS_less= more
+
+# passwd
+CRUNCH_PROGS_usr.bin+= passwd
+# These need to be shared, or PAM wants to include _all_ of the libraries
+# at runtime.
+CRUNCH_SHLIBS+= -lpam -lbsm
+
+# gzip/gunzip
+CRUNCH_PROGS_usr.bin+= gzip
+CRUNCH_ALIAS_gunzip= gzip
+CRUNCH_ALIAS_gzcat= gzip
+CRUNCH_LIBS+= -lz -llzma -lbz2
diff --git a/tools/bsdbox/Makefile.fs b/tools/bsdbox/Makefile.fs
new file mode 100644
index 0000000..03fe4b5
--- /dev/null
+++ b/tools/bsdbox/Makefile.fs
@@ -0,0 +1,17 @@
+#
+# Filesystem related tools
+#
+# $FreeBSD$
+
+# mfs
+CRUNCH_PROGS_sbin+= mdmfs mdconfig newfs
+CRUNCH_ALIAS_mdmfs= mount_mfs
+
+# UFS
+CRUNCH_PROGS_sbin+= fsck_ffs
+CRUNCH_LIBS+= -lgeom
+CRUNCH_LIBS+= -lufs
+
+# msdos
+# CRUNCH_PROGS_sbin+= mount_msdosfs
+# CRUNCH_LIBS+= -lkiconv
diff --git a/tools/bsdbox/Makefile.hostapd b/tools/bsdbox/Makefile.hostapd
new file mode 100644
index 0000000..e16a0d1
--- /dev/null
+++ b/tools/bsdbox/Makefile.hostapd
@@ -0,0 +1,15 @@
+#
+# Build hostap/wpa_supplicant and supporting utilities.
+#
+# $FreeBSD$
+#
+CRUNCH_PROGS_usr.sbin+= hostapd hostapd_cli
+CRUNCH_SRCDIR_hostapd= $(.CURDIR)/../../usr.sbin/wpa/hostapd
+CRUNCH_SRCDIR_hostapd_cli= $(.CURDIR)/../../usr.sbin/wpa/hostapd_cli
+
+CRUNCH_PROGS_usr.sbin+= wpa_supplicant wpa_cli
+CRUNCH_SRCDIR_wpa_supplicant= $(.CURDIR)/../../usr.sbin/wpa/wpa_supplicant
+CRUNCH_SRCDIR_wpa_cli= $(.CURDIR)/../../usr.sbin/wpa/wpa_cli
+
+CRUNCH_LIBS+= -lpcap
+
diff --git a/tools/bsdbox/Makefile.kld b/tools/bsdbox/Makefile.kld
new file mode 100644
index 0000000..96be779
--- /dev/null
+++ b/tools/bsdbox/Makefile.kld
@@ -0,0 +1,6 @@
+#
+# This builds the kld related programs.
+#
+# $FreeBSD$
+#
+CRUNCH_PROGS_sbin+= kldload kldunload kldstat
diff --git a/tools/bsdbox/Makefile.login b/tools/bsdbox/Makefile.login
new file mode 100644
index 0000000..a4574ec
--- /dev/null
+++ b/tools/bsdbox/Makefile.login
@@ -0,0 +1,9 @@
+#
+# This builds login and friends.
+#
+# $FreeBSD$
+#
+
+CRUNCH_PROGS_libexec+= getty
+CRUNCH_PROGS_usr.bin+= cap_mkdb
+CRUNCH_PROGS_usr.sbin+= pwd_mkdb
diff --git a/tools/bsdbox/Makefile.net b/tools/bsdbox/Makefile.net
new file mode 100644
index 0000000..1b9bc78
--- /dev/null
+++ b/tools/bsdbox/Makefile.net
@@ -0,0 +1,32 @@
+#
+# This builds network tools.
+#
+# $FreeBSD$
+#
+
+CRUNCH_PROGS_sbin+= route ping
+CRUNCH_PROGS_usr.sbin+= arp
+
+# inetd
+CRUNCH_PROGS_usr.sbin+= inetd
+CRUNCH_LIBS+= -lwrap
+
+#.if ${MK_INET6_SUPPORT} != "no"
+#CRUNCH_PROGS_sbin+= ping6
+#.endif
+
+# netstat
+CRUNCH_PROGS_usr.bin+= netstat
+CRUNCH_LIBS+= -lmemstat -lnetgraph
+CRUNCH_BUILDOPTS_netstat=-DMK_IPX_SUPPORT=no
+
+# ifconfig
+CRUNCH_PROGS_sbin+= ifconfig
+CRUNCH_BUILDOPTS_ifconfig=-DMK_IPX_SUPPORT=no
+
+# wlan stuff
+CRUNCH_PROGS_usr.sbin+= wlandebug
+
+# tcpdump
+CRUNCH_PROGS_usr.sbin+= tcpdump
+# CRUNCH_LIBS+= -lpcap -lcrypto
diff --git a/tools/bsdbox/Makefile.telnetd b/tools/bsdbox/Makefile.telnetd
new file mode 100644
index 0000000..c0d6c4b
--- /dev/null
+++ b/tools/bsdbox/Makefile.telnetd
@@ -0,0 +1,14 @@
+# Build telnetd
+# Question - why is telnetds objects ending up in the srcdir? -adrian
+
+# This won't work yet - because telnetd relies on libtelnet.a which includes
+# kerberos support by default; building telnetd without kerberos support
+# requires the cross-build world to be built the same.
+# -adrian
+
+# $FreeBSD$
+
+CRUNCH_PROGS_libexec+= telnetd
+CRUNCH_PROGS_usr.bin+= telnet
+CRUNCH_LIBS+= -lkrb5 -lhx509 -lasn1 -lcom_err -lroken -ltelnetd
+# CRUNCH_BUILDOPTS_telnetd= WITHOUT_KERBEROS_SUPPORT=yes
diff --git a/tools/bsdbox/Makefile.textproc b/tools/bsdbox/Makefile.textproc
new file mode 100644
index 0000000..a913d46
--- /dev/null
+++ b/tools/bsdbox/Makefile.textproc
@@ -0,0 +1,20 @@
+#
+# This builds a variety of text processing tools that
+# may be useful on an embedded device.
+#
+# $FreeBSD$
+#
+
+# Sed
+CRUNCH_PROGS_usr.bin+= sed
+
+# Awk
+# Disable - it's big! -adrian
+#CRUNCH_PROGS_usr.bin+= awk
+#CRUNCH_BUILDTOOLS+= usr.bin/awk
+
+# vi
+# Disable - it's big! -adrian
+#CRUNCH_PROGS_usr.bin+= vi
+
+CRUNCH_PROGS_usr.bin+= ee
diff --git a/tools/bsdbox/README b/tools/bsdbox/README
new file mode 100644
index 0000000..2f63652
--- /dev/null
+++ b/tools/bsdbox/README
@@ -0,0 +1,12 @@
+$FreeBSD$
+
+This is a very cut down implementation of a "busybox" style binary
+for FreeBSD.
+
+It's based on the rescue build system, which uses the crunchgen functionality
+to build binaries.
+
+It's a work in progress.
+
+ -- adrian
+
OpenPOWER on IntegriCloud