.\" Copyright (c) 1991, 1996  Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH nlmconv 1 "March 1996" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..

.SH NAME
nlmconv \- converts object code into an NLM

.SH SYNOPSIS
.hy 0
.na
.TP
.B nlmconv
.RB "[\|" \-I\ \fIbfdname\fB\ |\ \-\-input\-target=\fIbfdname\fR "\|]" 
.RB "[\|" \-O\ \fIbfdname\fB\ |\ \-\-output\-target=\fIbfdname\fR "\|]" 
.RB "[\|" \-T\ \fIheaderfile\fB\ |\ \-\-header\-file=\fIheaderfile\fR "\|]" 
.RB "[\|" \-V\ |\ \-\-version\fR "\|]" 
.RB "[\|" \-\-help\fR "\|]" 
.B infile
.B outfile
.SH DESCRIPTION
.B nlmconv
converts the relocatable object file 
.B infile
into the NetWare Loadable Module 
.BR outfile ,
optionally reading 
.I headerfile
for NLM header information.  For instructions on writing the NLM
command file language used in header files, see 
.IR "The NetWare Tool Maker Specification Manual" ,
available from Novell, Inc.
.B nlmconv
currently works with i386 object files in 
.BR COFF ,
.BR ELF ,
or
.B a.out
format, and with SPARC object files in
.B ELF
or
.B a.out
format.
.br
.B nlmconv
uses the GNU Binary File Descriptor library to read 
.IR infile .
.SH OPTIONS
.TP
.B \-I \fIbfdname\fR, \fB\-\-input\-target=\fIbfdname
Consider the source file's object format to be 
.IR bfdname ,
rather than attempting to deduce it.
.TP
.B \-O \fIbfdname\fR, \fB\-\-output\-target=\fIbfdname
Write the output file using the object format 
.IR bfdname .
.B nlmconv
infers the output format based on the input format, e.g. for an i386
input file the output format is
.IR nlm32\-i386 .
.TP
.B \-T \fIheaderfile\fR, \fB\-\-header\-file=\fIheaderfile
Reads 
.I headerfile
for NLM header information.  For instructions on writing the NLM
command file language used in header files, see 
.IR "The NetWare Tool Maker Specification Manual" ,
available from Novell, Inc.
.TP
.B \-V\fR, \fB\-\-version
Show the version number of
.B nlmconv
and exit.
.TP
.B \-h\fR, \fB\-\-help
Show a summary of the options to
.B nlmconv
and exit.
.SH "SEE ALSO"
.RB "`\|" binutils "\|'" 
entry in 
.B
info\c
\&; 
.I
The GNU Binary Utilities\c
\&, Roland H. Pesch (June 1993).

.SH COPYING
Copyright (c) 1993 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.
