summaryrefslogtreecommitdiffstats
path: root/usr.sbin/crunch/crunchgen
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2000-11-10 17:46:15 +0000
committerru <ru@FreeBSD.org>2000-11-10 17:46:15 +0000
commita6f5d950d860b642619fd71c1efc1875f906cc17 (patch)
treed290d38e2fe5b5c638aa4cd22f5612eb6b8cd6de /usr.sbin/crunch/crunchgen
parent48c9ea08a6fa4c9c3d612d66b001208c85107546 (diff)
downloadFreeBSD-src-a6f5d950d860b642619fd71c1efc1875f906cc17.zip
FreeBSD-src-a6f5d950d860b642619fd71c1efc1875f906cc17.tar.gz
Avoid use of direct troff requests in mdoc(7) manual pages.
Diffstat (limited to 'usr.sbin/crunch/crunchgen')
-rw-r--r--usr.sbin/crunch/crunchgen/crunchgen.143
1 files changed, 17 insertions, 26 deletions
diff --git a/usr.sbin/crunch/crunchgen/crunchgen.1 b/usr.sbin/crunch/crunchgen/crunchgen.1
index e5ec1f9..e50002e 100644
--- a/usr.sbin/crunch/crunchgen/crunchgen.1
+++ b/usr.sbin/crunch/crunchgen/crunchgen.1
@@ -39,14 +39,12 @@
.Op Fl e Ar exec-file-name
.Op Ar conf-file
.Sh DESCRIPTION
-
A crunched binary is a program made up of many other programs linked
together into a single executable. The crunched binary main()
function determines which component program to run by the contents of
argv[0]. The main reason to crunch programs together is for fitting
as many programs as possible onto an installation or system recovery
floppy.
-
.Pp
.Nm
reads in the specifications in
@@ -63,7 +61,6 @@ uses the companion program
.Nm crunchide
to eliminate link-time conflicts between the component programs by
hiding all unnecessary symbols.
-
.Pp
.Nm
places specific requirements on package
@@ -84,7 +81,6 @@ in the source directory
looks for the file
.Pa Makefile.foo
in the current directory.
-
.Pp
After
.Nm
@@ -95,7 +91,6 @@ run make in each component program's source dir to build the object
files for the user. This is not done automatically since in release
engineering circumstances it is generally not desirable to be
modifying objects in other directories.
-
.Pp
The options are as follows:
.Bl -tag -width indent
@@ -129,7 +124,6 @@ Add ``make obj'' rules to each program make target.
Quiet operation. Status messages are suppressed.
.El
.Sh CRUNCHGEN CONFIGURATION FILE COMMANDS
-
.Nm Crunchgen
reads specifications from the
.Ar conf-file
@@ -171,7 +165,6 @@ whenever
appears in argv[0]. This allows programs that change their behavior when
run under different names to operate correctly.
.El
-
To handle specialized situations, such as when the source is not
available or not built via a conventional Makefile, the following
.Nm special
@@ -236,7 +229,6 @@ This option is to be used as a last resort as its use can cause a
symbol conflict, however in certain instances it may be the only way to
have a symbol resolve.
.El
-
.Pp
Only the
.Nm objpaths
@@ -251,7 +243,6 @@ which are in turn calculated from
so is sometimes convenient to specify the earlier parameters and let
.Nm
calculate forward from there if it can.
-
.Pp
The makefile produced by
.Nm
@@ -272,20 +263,20 @@ Here is an example
input conf file, named
.Dq Pa kcopy.conf :
.Pp
-.nf
- srcdirs /usr/src/bin /usr/src/sbin
+.Bd -literal -offset indent
+srcdirs /usr/src/bin /usr/src/sbin
- progs test cp echo sh fsck halt init mount umount myinstall
- progs anotherprog
- ln test [ # test can be invoked via [
- ln sh -sh # init invokes the shell with "-sh" in argv[0]
+progs test cp echo sh fsck halt init mount umount myinstall
+progs anotherprog
+ln test [ # test can be invoked via [
+ln sh -sh # init invokes the shell with "-sh" in argv[0]
- special myprog objpaths /homes/leroy/src/myinstall.o # no sources
+special myprog objpaths /homes/leroy/src/myinstall.o # no sources
- special anotherprog -DNO_FOO WITHOUT_BAR=YES
+special anotherprog -DNO_FOO WITHOUT_BAR=YES
- libs -lutil -lcrypt
-.fi
+libs -lutil -lcrypt
+.Ed
.Pp
This conf file specifies a small crunched binary consisting of some
basic system utilities plus a homegrown install program ``myinstall'',
@@ -300,13 +291,13 @@ are added to all build targets.
.Pp
The crunched binary ``kcopy'' can be built as follows:
.Pp
-.nf
- % crunchgen -m Makefile kcopy.conf # gen Makefile and kcopy.c
- % make objs # build the component programs' .o files
- % make # build the crunched binary kcopy
- % kcopy sh # test that this invokes a sh shell
- $ # it works!
-.fi
+.Bd -literal -offset indent
+% crunchgen -m Makefile kcopy.conf # gen Makefile and kcopy.c
+% make objs # build the component programs' .o files
+% make # build the crunched binary kcopy
+% kcopy sh # test that this invokes a sh shell
+$ # it works!
+.Ed
.Pp
At this point the binary ``kcopy'' can be copied onto an install floppy
and hard-linked to the names of the component programs.
OpenPOWER on IntegriCloud