diff options
Diffstat (limited to 'usr.sbin/crunch/crunchgen')
-rw-r--r-- | usr.sbin/crunch/crunchgen/crunchgen.1 | 43 |
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. |