.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.if !\nF .nr F 0
.if \nF>0 \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    if !\nF==2 \{\
.        nr % 0
.        nr F 2
.    \}
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "PERLNETWARE 1"
.TH PERLNETWARE 1 "2018-03-01" "perl v5.26.3" "Perl Programmers Reference Guide"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
perlnetware \- Perl for NetWare
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
This file gives instructions for building Perl 5.7 and above, and also 
Perl modules for NetWare. Before you start, you may want to read the
\&\s-1README\s0 file found in the top level directory into which the Perl source
code distribution was extracted. Make sure you read and understand
the terms under which the software is being distributed.
.SH "BUILD"
.IX Header "BUILD"
This section describes the steps to be performed to build a Perl \s-1NLM\s0
and other associated NLMs.
.SS "Tools & \s-1SDK\s0"
.IX Subsection "Tools & SDK"
The build requires CodeWarrior compiler and linker.  In addition,
the \*(L"NetWare \s-1SDK\*(R", \*(L"NLM &\s0 NetWare Libraries for C\*(R" and
\&\*(L"NetWare Server Protocol Libraries for C\*(R", all available at
<http://developer.novell.com/wiki/index.php/Category:Novell_Developer_Kit>,
are required. Microsoft Visual \*(C+ version 4.2 or later is also
required.
.SS "Setup"
.IX Subsection "Setup"
The build process is dependent on the location of the NetWare \s-1SDK.\s0
Once the Tools & \s-1SDK\s0 are installed, the build environment has to
be setup.  The following batch files setup the environment.
.IP "SetNWBld.bat" 4
.IX Item "SetNWBld.bat"
The Execution of this file takes 2 parameters as input. The first
being the NetWare \s-1SDK\s0 path, second being the path for CodeWarrior
Compiler & tools. Execution of this file sets these paths and also
sets the build type to Release by default.
.IP "Buildtype.bat" 4
.IX Item "Buildtype.bat"
This is used to set the build type to debug or release. Change the
build type only after executing SetNWBld.bat
.Sp
Example:
.RS 4
.IP "1." 4
Typing \*(L"buildtype d on\*(R" at the command prompt causes the buildtype
to be set to Debug type with D2 flag set.
.IP "2." 4
Typing \*(L"buildtype d off\*(R" or \*(L"buildtype d\*(R" at the command prompt causes
the buildtype to be set to Debug type with D1 flag set.
.IP "3." 4
Typing \*(L"buildtype r\*(R" at the command prompt sets it to Release Build type.
.RE
.RS 4
.RE
.SS "Make"
.IX Subsection "Make"
The make process runs only under WinNT shell.  The NetWare makefile is
located under the NetWare folder.  This makes use of miniperl.exe to
run some of the Perl scripts. To create miniperl.exe, first set the
required paths for Visual c++ compiler (specify vcvars32 location) at
the command prompt.  Then run nmake from win32 folder through WinNT
command prompt.  The build process can be stopped after miniperl.exe
is created. Then run nmake from NetWare folder through WinNT command
prompt.
.PP
Currently the following two build types are tested on NetWare:
.IP "\(bu" 4
\&\s-1USE_MULTI, USE_ITHREADS & USE_IMP_SYS\s0 defined
.IP "\(bu" 4
\&\s-1USE_MULTI & USE_IMP_SYS\s0 defined and \s-1USE_ITHREADS\s0 not defined
.SS "Interpreter"
.IX Subsection "Interpreter"
Once miniperl.exe creation is over, run nmake from the NetWare folder.
This will build the Perl interpreter for NetWare as \fIperl.nlm\fR.
This is copied under the \fIRelease\fR folder if you are doing
a release build, else will be copied under \fIDebug\fR folder for debug builds.
.SS "Extensions"
.IX Subsection "Extensions"
The make process also creates the Perl extensions as \fI<Extension\fR.nlm>
.SH "INSTALL"
.IX Header "INSTALL"
To install NetWare Perl onto a NetWare server, first map the Sys
volume of a NetWare server to \fIi:\fR. This is because the makefile by
default sets the drive letter to \fIi:\fR.  Type \fInmake nwinstall\fR from
NetWare folder on a WinNT command prompt.  This will copy the binaries
and module files onto the NetWare server under \fIsys:\ePerl\fR
folder. The Perl interpreter, \fIperl.nlm\fR, is copied under
\&\fIsys:\eperl\esystem\fR folder.  Copy this to \fIsys:\esystem\fR folder.
.PP
Example: At the command prompt Type \*(L"nmake nwinstall\*(R".
          This will install NetWare Perl on the NetWare Server.
          Similarly, if you type \*(L"nmake install\*(R",
          this will cause the binaries to be installed on the local machine.
          (Typically under the c:\eperl folder)
.SH "BUILD NEW EXTENSIONS"
.IX Header "BUILD NEW EXTENSIONS"
To build extensions other than standard extensions, NetWare Perl has
to be installed on Windows along with Windows Perl. The Perl for
Windows can be either downloaded from the \s-1CPAN\s0 site and built using
the sources, or the binaries can be directly downloaded from the
ActiveState site.  Installation can be done by invoking \fInmake
install\fR from the NetWare folder on a WinNT command prompt after
building NetWare Perl by following steps given above.  This will copy
all the *.pm files and other required files.  Documentation files are
not copied.  Thus one must first install Windows Perl, Then install
NetWare Perl.
.PP
Once this is done, do the following to build any extension:
.IP "\(bu" 4
Change to the extension directory where its source files are present.
.IP "\(bu" 4
Run the following command at the command prompt:
.Sp
.Vb 1
\&    perl \-II<path to NetWare lib dir> \-II<path to lib> Makefile.pl
.Ve
.Sp
Example:
.Sp
.Vb 2
\&    perl \-Ic:/perl/5.6.1/lib/NetWare\-x86\-multi\-thread           \e
\&                                \-Ic:\eperl\e5.6.1\elib MakeFile.pl
.Ve
.Sp
or
.Sp
.Vb 2
\&    perl \-Ic:/perl/5.8.0/lib/NetWare\-x86\-multi\-thread           \e
\&                                \-Ic:\eperl\e5.8.0\elib MakeFile.pl
.Ve
.IP "\(bu" 4
nmake
.IP "\(bu" 4
nmake install
.Sp
Install will copy the files into the Windows machine where NetWare
Perl is installed and these files may have to be copied to the NetWare
server manually. Alternatively, pass \fIINSTALLSITELIB=i:\eperl\elib\fR as
an input to makefile.pl above. Here \fIi:\fR is the mapped drive to the
sys: volume of the server where Perl on NetWare is installed. Now
typing \fInmake install\fR, will copy the files onto the NetWare server.
.Sp
Example: You can execute the following on the command prompt.
.Sp
.Vb 3
\&  perl \-Ic:/perl/5.6.1/lib/NetWare\-x86\-multi\-thread             \e
\&                                \-Ic:\eperl\e5.6.1\elib MakeFile.pl
\&  INSTALLSITELIB=i:\eperl\elib
.Ve
.Sp
or
.Sp
.Vb 3
\&  perl \-Ic:/perl/5.8.0/lib/NetWare\-x86\-multi\-thread             \e
\&                                \-Ic:\eperl\e5.8.0\elib MakeFile.pl
\&  INSTALLSITELIB=i:\eperl\elib
.Ve
.IP "\(bu" 4
Note: Some modules downloaded from \s-1CPAN\s0 may require NetWare related
\&\s-1API\s0 in order to build on NetWare.  Other modules may however build
smoothly with or without minor changes depending on the type of
module.
.SH "ACKNOWLEDGEMENTS"
.IX Header "ACKNOWLEDGEMENTS"
The makefile for Win32 is used as a reference to create the makefile
for NetWare.  Also, the make process for NetWare port uses
miniperl.exe to run scripts during the make and installation process.
.SH "AUTHORS"
.IX Header "AUTHORS"
Anantha Kesari H Y (hyanantha@novell.com)
Aditya C (caditya@novell.com)
.SH "DATE"
.IX Header "DATE"
.IP "\(bu" 4
Created \- 18 Jan 2001
.IP "\(bu" 4
Modified \- 25 June 2001
.IP "\(bu" 4
Modified \- 13 July 2001
.IP "\(bu" 4
Modified \- 28 May 2002
