1##
2## Makefile to build Perl on NetWare using Microsoft NMAKE and CodeWarrior tools
3##
4## This will build perl.nlm, perl.lib and extensions called NLMs
5##
6
7##
8## Please read README.netware before starting
9##
10
11##
12## Build configuration.  Edit the values below to suit your needs.
13##
14
15## This file is created by using the makefile that creates Windows Perl as the reference
16## Author:
17## Date Created: 13th July 2000
18## Date Modified: 21st March 2002
19# Name of the NLM
20
21
22NLM_NAME		= perl.nlm
23NLM_NAME8		= Perl
24
25MAKE_ACTION		= Build
26
27# Flags
28DBG_FLAG	= -DDEBUGON
29
30NW_FLAGS	= -DNETWARE -DNLM_PLATFORM -DNETDB_USE_INTERNET
31
32REL_DIR	= Release
33DEB_DIR = Debug
34
35
36!ifndef NLMSDKBASE
37!message "Run bat\SetNWBld.bat to set the NetWare SDK before continuing.\n"
38!error
39!endif											# !ifndef NLMSDKBASE
40
41!ifndef CODEWAR									# !ifdef CODEWAR
42!message "CodeWarrior tools base directory is not defined. Run bat\setnwbld.bat before proceeding"
43!error
44!endif											# !ifdef CODEWAR
45
46!ifndef MAKE_TYPE
47!message "Run bat\buildtype.bat to set the build type before continuing.\n"
48!error
49!endif											# !ifndef MAKE_TYPE
50
51!ifdef USE_MPK
52MPKFLAGS	= -DMPK_ON -DIAPX386
53MPKMESSAGE = MPK Build...
54XDCTOOL	= mpkxdc
55!ifndef MPKBASE
56!message "Run bat\setmpksdk.bat to set the NetWare MPK SDK before continuing.\n"
57!error
58!endif											# !ifndef MPKBASE
59NLM_INCLUDE_MP		= -I$(MPKBASE)\include
60MPKTOOL = $(MPKBASE)\$(XDCTOOL)
61!else											# !ifdef USE_MPK
62MPKMESSAGE = Non MPK Build...
63NLM_INCLUDE_MP =
64MPKTOOL =
65!endif											# !ifdef USE_MPK
66
67#!ifndef SECURITYBASE
68#!message "Run bat\SetSecSdk.bat to set the Security path before continuing.\n"
69#!error
70#!endif											# !ifndef SECURITYBASE
71
72#!ifndef UCSINC
73#!message "Run bat\BldNWExt.bat to set the UCS Include path before continuing.\n"
74#!error
75#!endif											# !ifndef UCSINC
76
77NLMIMPORTS			= $(NLMSDKBASE)\imports
78
79!ifdef SECURITYBASE
80SECURITY_IMPORTS	= $(SECURITYBASE)\imports
81!endif											# !ifdef SECURITYBASE
82
83!ifndef NLM_VERSION
84NLM_VERSION    = 3,20,0
85!endif
86
87
88# Here comes the CW tools - TO BE FILLED TO BUILD WITH CW -
89MODULE_DESC     = "Perl 5.30.3 for NetWare"
90CCTYPE          = CodeWarrior
91C_COMPILER		= mwccnlm -c
92CPP_COMPILER	= mwccnlm
93LINK		    = mwldnlm
94LD              = mwldnlm
95NLM_LIB	    	= mwldnlm -type library
96TOOL_HEADERS	=
97TOOL_PATH		=
98CWCPPFLAGS      = -cpp_exceptions on -wchar_t off -bool on -w on -ansi off
99CCFLAGS			= -maxerrors 25 -processor Pentium -align packed \
100                  -w nounusedarg -msext on \
101                  -DN_PLAT_NLM -DNLM=1 -D__NO_MATH_OPS -msgstyle gcc
102COMPILER_FLAG	= -d NETWARE
103ERROR_FLAG		= -sym on -sym codeview4 -sym internal
104LDFLAGS         = -type generic -stacksize 16384 -zerobss \
105                  -nofail -msgstyle gcc -nostderr -w on \
106                  -nlmversion $(NLM_VERSION) \
107                  -copy "Copyright (C) 2000-01\, 2002 Novell\, Inc. All Rights Reserved."
108
109# Debug flags comes here - Not mandatory - required only for debug build
110!if "$(MAKE_TYPE)"=="Debug"
111BLDDIR          = $(DEB_DIR)
112BLDMESG	    = Debug version,
113!ifdef USE_D2
114BS_CFLAGS	= -opt off -inline off -sym on -sym codeview4 -sym internal -DDEBUGGING -DDKFBPON
115BLDMESG		= $(BLDMESG) Using /d2 option
116!ifdef NLM_NAME8
117LDFLAGS		= $(LDFLAGS) -sym on -sym codeview4 -sym internal -osym $(MAKE_TYPE)\$(NLM_NAME8).sym
118!else												# !ifdef NLM_NAME8
119LDFLAGS		= $(LDFLAGS) -sym on -sym codeview4 -sym internal -osym $(MAKE_TYPE)\$(NLM_NAME).sym
120!endif												# !ifdef NLM_NAME8
121!else												# !ifdef USE_D2
122BS_CFLAGS	= -opt off -inline off -sym on -sym codeview4 -sym internal -DDEBUGGING -DDKFBPON
123BLDMESG		= $(BLDMESG) Using /d1 option
124!ifdef NLM_NAME8
125LDFLAGS		= $(LDFLAGS) -sym on -sym codeview4 -sym internal -osym $(MAKE_TYPE)\$(NLM_NAME8).sym
126!else												# !ifdef NLM_NAME8
127LDFLAGS		= $(LDFLAGS) -sym on -sym codeview4 -sym internal -osym $(MAKE_TYPE)\$(NLM_NAME).sym
128!endif												# !ifdef NLM_NAME8
129!endif												# !ifdef USE_D2
130!else												# !if "$(MAKE_TYPE)"=="Debug"
131BLDDIR      = $(REL_DIR)
132BLDMESG		= Release version
133##BS_CFLAGS	= -opt speed -inline smart -inline auto -sym off
134BS_CFLAGS	=
135!endif									 			# !if "$(MAKE_TYPE)"=="Debug"
136
137
138ADD_LOCDEFS =	-DPERL_CORE
139
140NLM_INCLUDE			= -I$(NLMSDKBASE)\include
141NLM_INCLUDE_NLM		= -I$(NLMSDKBASE)\include\nlm
142NLM_INCLUDE_NLM_SYS = -I$(NLMSDKBASE)\include\nlm\sys
143NLM_INCLUDE_OBSLETE = -I$(NLMSDKBASE)\include\nlm\obsolete
144
145!ifdef SECURITYBASE
146SECURITY_INCLUDE	= -I$(SECURITYBASE)\include
147!endif											#!ifdef SECURITYBASE
148
149!ifdef UCSINC
150NLM_INCLUDE_UCS     = -I$(UCSINC)
151!endif											#!ifndef UCSINC
152
153!if "$(NW_EXTNS)"=="yes"
154INCLUDE_NW          = -I.\include
155!endif
156
157
158INC_PREV			= -I..
159INC_THIS			= -I.
160
161
162NLM_INCLUDE_PATH = $(NLM_INCLUDE) $(NLM_INCLUDE_NLM) $(NLM_INCLUDE_NLM_SYS) $(NLM_INCLUDE_OBSLETE) \
163                   $(NLM_INCLUDE_MP) $(TOOL_HEADERS)
164
165!ifdef SECURITYBASE
166NLM_INCLUDE_PATH = $(NLM_INCLUDE_PATH) $(SECURITY_INCLUDE)
167!endif											#!ifdef SECURITYBASE
168
169!ifdef UCSINC
170NLM_INCLUDE_PATH = $(NLM_INCLUDE_PATH) $(NLM_INCLUDE_UCS)
171!endif											#!ifndef UCSINC
172
173INCLUDE = $(INC_THIS) $(INC_PREV) -I- $(NLM_INCLUDE_PATH)
174
175PATH = $(PATH);$(TOOL_PATH)
176
177NLM_INCLUDES	= -I$(COREDIR) $(INCLUDE_NW)
178
179CCFLAGS     = $(CCFLAGS) $(INCLUDE)
180
181COMPLER_FLAGS	=  $(BS_CFLAGS) $(ADD_BUILDOPT) $(NW_FLAGS) $(COMPILER_FLAG) $(MPKFLAGS) $(CCFLAGS)
182
183
184# Source file list
185NW_H_FILES			=	\
186						.\iperlhost.h	\
187						.\interface.h	\
188						.\netware.h \
189						.\nw5iop.h	\
190						.\nw5sck.h	\
191						.\nwpipe.h	\
192						.\nwplglob.h	\
193						.\nwtinfo.h	\
194						.\nwutil.h	\
195						.\nwhashcls.h \
196
197NW_HOST_H_FILES		=	\
198						.\iperlhost.h	\
199						.\interface.h	\
200						.\netware.h	\
201						.\nw5sck.h	\
202						.\nwperlhost.h	\
203
204
205CLIB_H_FILES		=	\
206						.\clibsdio.h	\
207						.\clibstr.h		\
208						.\clibstuf.h	\
209						.\stdio.h	\
210						.\string.h	\
211
212NW_SRC				=	\
213						.\CLIBstuf.c	\
214						.\sv_nw.c		\
215						.\nw5.c		\
216						.\nw5sck.c	\
217						.\nw5thread.c \
218						.\nwmain.c	\
219						.\nwpipe.c  \
220						.\nwplglob.c	\
221						.\nwtinfo.c \
222						.\nwutil.c  \
223
224NW_CPP_SRC          =   \
225						.\nwhashcls.cpp \
226						.\interface.cpp \
227						.\perllib.cpp   \
228
229EXT_MAIN_SRC		=	\
230						.\Main.c	\
231
232PERL_IO_SRC			=	\
233						..\perlio.c
234
235CLIBSTUF_OBJ		=	\
236						.\CLIBstuf.obj
237
238#PERL_TMP_OBJ       = $(PERL_TEMP_SRC:.c=.obj)
239NW_SRC_OBJ			= $(NW_SRC:.c=.obj)
240NW_CPP_SRC_OBJ      = $(NW_CPP_SRC:.cpp=.obj)
241NLM_MICROCORE_OBJ	= $(MICROCORE_SRC:.c=.obj)
242PERL_LIB_OBJ		= $(PERL_LIB_SRC:.c=.obj)
243PERL_IO_OBJ			= $(PERL_IO_SRC:.c=.obj)
244NLM_CORE_OBJ	    = $(NLM_MICROCORE_OBJ)
245EXT_MAIN_OBJ		= $(EXT_MAIN_SRC:.c=.obj)
246
247# For dependency checking
248# $(BLDDIR) in place of Release or Debug is not working, should look into this - sgp
249!if "$(BLDDIR)"=="Release"
250NLM_OBJ				= $(NLM_CORE_OBJ:..\=.\Release\)
251NEWTARE_OBJ_DEP		= $(NW_SRC_OBJ:.\=.\Release\)
252NEWTARE_CPP_OBJ_DEP	= $(NW_CPP_SRC_OBJ:.\=.\Release\)
253PERL_LIB_OBJ_DEP	= $(PERL_LIB_OBJ:.\=.\Release\)
254PERL_IO_OBJ_DEP		= $(PERL_IO_OBJ:..\=.\Release\)
255!else
256NLM_OBJ				= $(NLM_CORE_OBJ:..\=.\Debug\)
257NEWTARE_OBJ_DEP		= $(NW_SRC_OBJ:.\=.\Debug\)
258NEWTARE_CPP_OBJ_DEP	= $(NW_CPP_SRC_OBJ:.\=.\Debug\)
259PERL_LIB_OBJ_DEP	= $(PERL_LIB_OBJ:.\=.\Debug\)
260PERL_IO_OBJ_DEP		= $(PERL_IO_OBJ:..\=.\Debug\)
261!endif
262
263# Symbol base_import & version added for NETWARE
264NW_CFG_VARS = \
265		"INST_DRV=$(INST_DRV)"			\
266		"INST_TOP=$(INST_TOP)"			\
267		"INST_VER=$(INST_VER)"			\
268		"INST_ARCH=$(INST_ARCH)"		\
269		"INST_NW_TOP1=$(INST_NW_TOP1)"	\
270		"INST_NW_TOP2=$(INST_NW_TOP2)"	\
271		"INST_NW_VER=$(INST_NW_VER)"	\
272		"archname=$(ARCHNAME)"			\
273		"cc=$(C_COMPILER)"				\
274		"ar=$(LINK)"				\
275		"ccflags=$(COMPLER_FLAGS)"	\
276		"cf_email=$(EMAIL)"			\
277		"d_crypt=$(D_CRYPT)"			\
278		"d_mymalloc=$(PERL_MALLOC)"		\
279#		"libs=$(LIBFILES)"			\
280		"incpath=$(NLM_INCLUDE_PATH)"	\
281		"libperl=$(PERLIMPLIB:..\=)"		\
282		"libpth=$(LIBPATH)"	\
283#		"libc=$(LIBC)"				\
284		"make=nmake"				\
285		"static_ext=$(STATIC_EXT)"		\
286		"dynamic_ext=$(DYNAMIC_EXT)"		\
287		"nonxs_ext=$(NONXS_EXT)"		\
288		"useithreads=$(USE_ITHREADS)"		\
289		"usemultiplicity=$(USE_MULTI)"		\
290		"ld=$(LINK)"			\
291		"base_import=$(BASE_IMPORT_FILES)"	\
292		"LINK_FLAGS=$(LINK_FLAGS:"=\")"		\
293		"optimize="		\
294		"d_stdio_cnt_lval=undef"		\
295		"d_stdio_ptr_lval=undef"		\
296		"d_stdiobase=undef"				\
297		"d_stdstdio=undef"				\
298		"d_times=undef"					\
299		"direntrytype=DIR"				\
300		"nlm_version=$(NLM_VERSION)"		\
301		"d_archname=NetWare"	\
302		"mpktool=$(MPKTOOL) $(XDCFLAGS)"	\
303		"toolpath=$(TOOL_PATH)"
304
305
306NW_CFGSH_TMPL	= config.wc
307NW_CFGH_TMPL	= config_H.wc
308
309SOCKET_NLM	= $(AUTODIR)\Socket\Socket.NLM
310FCNTL_NLM	= $(AUTODIR)\Fcntl\Fcntl.NLM
311IO_NLM		= $(AUTODIR)\IO\IO.NLM
312OPCODE_NLM	= $(AUTODIR)\Opcode\Opcode.NLM
313SDBM_FILE_NLM = $(AUTODIR)\SDBM_File\SDBM_File.NLM
314POSIX_NLM	= $(AUTODIR)\POSIX\POSIX.NLM
315ATTRIBUTES_NLM	= $(AUTODIR)\attributes\attributes.NLM
316B_NLM		= $(AUTODIR)\B\B.NLM
317DUMPER_NLM	= $(AUTODIR)\Data\Dumper\Dumper.NLM
318PEEK_NLM	= $(AUTODIR)\Devel\Peek\Peek.NLM
319RE_NLM		= $(AUTODIR)\re\re.NLM
320BYTELOADER_NLM	= $(AUTODIR)\ByteLoader\ByteLoader.NLM
321GLOB_NLM	= $(AUTODIR)\File\Glob\Glob.NLM
322HOSTNAME_NLM	= $(AUTODIR)\Sys\Hostname\Hostname.NLM
323CWD_NLM			= $(EXTDIR)\Cwd\Cwd.NLM
324STORABLE_NLM		= $(EXTDIR)\Storable\Storable.NLM
325LISTUTIL_NLM		= $(EXTDIR)\List\Util.NLM
326MIMEBASE64_NLM		= $(EXTDIR)\MIME\Base64\Base64.NLM
327XSAPITEST_NLM		= $(EXTDIR)\XS\APItest\APItest.NLM
328XSTYPEMAP_NLM		= $(EXTDIR)\XS\Typemap\Typemap.NLM
329UNICODENORMALIZE_NLM 	= $(EXTDIR)\Unicode\Normalize\Normalize.NLM
330UNICODECOLLATE_NLM 	= $(EXTDIR)\Unicode\Collate\Collate.NLM
331
332EXTENSION_NLM	= 		\
333		$(FCNTL_NLM)	\
334		$(BYTELOADER_NLM)	\
335		$(IO_NLM)		\
336		$(SOCKET_NLM)	\
337		$(OPCODE_NLM)	\
338		$(B_NLM)		\
339		$(ATTRIBUTES_NLM)	\
340		$(SDBM_FILE_NLM)	\
341		$(POSIX_NLM)	\
342		$(DUMPER_NLM)	\
343		$(GLOB_NLM)		\
344		$(PEEK_NLM)		\
345		$(RE_NLM)	\
346		$(HOSTNAME_NLM)		\
347		$(CWD_NLM)		\
348		$(STORABLE_NLM)		\
349		$(LISTUTIL_NLM)		\
350		$(MIMEBASE64_NLM)	\
351		$(XSAPITEST_NLM)	\
352		$(XSTYPEMAP_NLM)	\
353		$(UNICODENORMALIZE_NLM)  \
354		$(FILTER_NLM)
355
356# Begin - Following is required to build NetWare specific extensions CGI2Perl, Perl2UCS and UCSExt
357CGI2PERL		= CGI2Perl\CGI2Perl
358PERL2UCS		= Perl2UCS\Perl2UCS
359UCSExt			= Perl2UCS\UCSExt
360
361CGI2PERL_NLM = \CGI2Perl\CGI2Perl.NLM
362PERL2UCS_NLM = $(AUTODIR)\Perl2UCS\Perl2UCS.NLM
363UCSExt_NLM = $(AUTODIR)\UCSExt\UCSExt.NLM
364
365NETWARE_EXTNS =	\
366		$(CGI2PERL_NLM) \
367		$(PERL2UCS_NLM)	\
368		$(UCSExt_NLM)
369# End
370
371
372ECHO_SRC			= TestNLM\echo\echo.c
373TYPE_SRC			= TestNLM\type\type.c
374ECHO_SRC_OBJ			= $(ECHO_SRC:.c=.obj)
375TYPE_SRC_OBJ			= $(TYPE_SRC:.c=.obj)
376ECHO_NLM	= TestNLM\echo\echo.nlm
377TYPE_NLM	= TestNLM\type\type.nlm
378
379TEST_NLMS	=	\
380			$(ECHO_NLM)	\
381			$(TYPE_NLM)	\
382
383
384!ifndef SCREEN
385SCREEN          = 'none'
386!endif
387
388!ifndef NLM_DESCRIPTION
389NLM_DESCRIPTION = $(NLM_NAME8) for NetWare
390!endif
391
392!ifndef NLM_VERSION
393NLM_VERSION    = 3.1.0
394!endif
395
396!ifndef NLM_EXT
397NLM_EXT         = NLM
398!endif
399
400!ifndef BUILT
401BUILT     = $(BLDDIR)\$(NLM_NAME8).$(NLM_EXT)
402!endif
403
404!ifndef BASE_IMPORT_FILES
405BASE_IMPORT_FILES = Import @$(NLMIMPORTS)\clib.imp, @$(NLMIMPORTS)\nlmlib.imp, @$(NLMIMPORTS)\threads.imp, @$(NLMIMPORTS)\nit.imp, @$(NLMIMPORTS)\socklib.imp, \
406@$(NLMIMPORTS)\fpsm.imp, @$(NLMIMPORTS)\lib0.imp
407!endif
408
409!ifdef SECURITYBASE
410BASE_IMPORT_FILES = $(BASE_IMPORT_FILES), @$(SECURITY_IMPORTS)\nwsec.imp
411!endif											# !ifdef SECURITYBASE
412
413!ifdef USE_MPK
414BASE_IMPORT_FILES = $(BASE_IMPORT_FILES), @$(MPKBASE)\import\mpkorg.imp
415!endif
416
417!ifndef BASE_IMPORT_FNS
418BASE_IMPORT_FNS = Import ImportSymbol, GetSystemConsoleScreen, LoadModule
419!endif
420
421!ifdef CODEWAR
422NWLIBPATH  =
423LIBPATH386 =
424LIBPATH =
425!else											# !ifdef CODEWAR
426!error Please define the tools base directory before proceeding
427!endif											# !ifdef CODEWAR
428
429!ifndef BASE_LIBRARIES
430!ifdef WATCOM
431BASE_LIBRARIES = Library plib3s.lib, math3s.lib, clib3s.lib
432!endif											# !ifdef WATCOM
433!ifdef CODEWAR
434BASE_LIBRARIES =
435!endif											# !ifdef CODEWAR
436!endif											# !ifndef BASE_LIBRARIES
437
438
439COPYRIGHT = Copyright (C) 2000-01, 2002 Novell, Inc. All Rights Reserved.
440
441EXPORTS = Export @perl.imp
442
443#
444# Set these to wherever you want "nmake install" to put your
445# newly built perl.
446#
447INST_DRV	= C:
448INST_TOP	= $(INST_DRV)\perl
449
450INST_NW_DRV = i:
451INST_NW_VOL = sys:
452INST_NW_TOP1 = $(INST_NW_VOL)\perl
453INST_NW_TOP2 = $(INST_NW_DRV)\perl
454#INST_NW_VER = \5.6.1
455
456#
457# Comment this out if you DON'T want your perl installation to be versioned.
458# This means that the new installation will overwrite any files from the
459# old installation at the same INST_TOP location.  Leaving it enabled is
460# the safest route, as perl adds the extra version directory to all the
461# locations it installs files to.  If you disable it, an alternative
462# versioned installation can be obtained by setting INST_TOP above to a
463# path that includes an arbitrary version string.
464#
465INST_VER	= \5.30.3
466
467#
468# Comment this out if you DON'T want your perl installation to have
469# architecture specific components.  This means that architecture-
470# specific files will be installed along with the architecture-neutral
471# files.  Leaving it enabled is safer and more flexible, in case you
472# want to build multiple flavors of perl and install them together in
473# the same location.  Commenting it out gives you a simpler
474# installation that is easier to understand for beginners.
475#
476INST_ARCH	= \$(ARCHNAME)
477
478#
479# uncomment to enable multiple interpreters.  This is need for fork()
480# emulation.
481#
482
483USE_MULTI	= define
484
485#
486# Beginnings of interpreter cloning/threads; still very incomplete.
487# This should be enabled to get the fork() emulation.  This needs
488# USE_MULTI as well.
489#
490USE_ITHREADS	= define
491
492#
493# uncomment to enable the implicit "host" layer for all system calls
494# made by perl.  This needs USE_MULTI above.  This is also needed to
495# get fork().
496#
497USE_IMP_SYS	= define
498
499# uncomment this to enable the experimental PerlIO I/O subsystem
500# else USE_STDIO will be defined.
501#USE_PERLIO	= define
502#USE_STDIO = define
503
504# For now let this be here
505#
506#CRYPT_SRC	= fcrypt.c
507
508# For now let this be here
509#
510#CRYPT_LIB	= fcrypt.lib
511
512#
513# set this if you wish to use perl's malloc
514# WARNING: Turning this on/off WILL break binary compatibility with extensions
515# you may have compiled with/without it.  Be prepared to recompile all
516# extensions if you change the default.  Currently, this cannot be enabled
517# if you ask for USE_IMP_SYS above.
518#
519#PERL_MALLOC	= define
520
521#
522# set this to your email address (perl will guess a value from
523# from your loginname and your hostname, which may not be right)
524#
525#EMAIL		=
526
527##
528## Build configuration ends.
529##
530
531##################### CHANGE THESE ONLY IF YOU MUST #####################
532
533!IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
534D_CRYPT		= undef
535!ELSE
536D_CRYPT		= define
537CRYPT_FLAG	= -DHAVE_DES_FCRYPT
538!ENDIF
539
540!IF "$(PERL_MALLOC)" == ""
541PERL_MALLOC	= undef
542!ENDIF
543
544!IF "$(USE_IMP_SYS)" == "define"
545PERL_MALLOC	= undef
546!ENDIF
547
548!IF "$(USE_MULTI)" == ""
549USE_MULTI	= undef
550!ENDIF
551
552!IF "$(USE_ITHREADS)" == ""
553USE_ITHREADS	= undef
554!ENDIF
555
556!IF "$(USE_IMP_SYS)" == ""
557USE_IMP_SYS	= undef
558!ENDIF
559
560!IF "$(USE_PERLCRT)" == ""
561USE_PERLCRT	= undef
562!ENDIF
563
564!IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef"
565USE_MULTI	= define
566!ENDIF
567
568!IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
569USE_MULTI	= define
570!ENDIF
571
572!IF "$(USE_MULTI)" != "undef"
573BUILDOPT	= $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
574!ENDIF
575
576!IF "$(USE_IMP_SYS)" != "undef"
577BUILDOPT	= $(BUILDOPT) -DPERL_IMPLICIT_SYS
578!ENDIF
579
580!IF "$(PROCESSOR_ARCHITECTURE)" == ""
581PROCESSOR_ARCHITECTURE	= x86
582!ENDIF
583
584!IF "$(USE_MULTI)" == "define"
585ARCHNAME	= NetWare-$(PROCESSOR_ARCHITECTURE)-multi
586!ELSE
587ARCHNAME	= NetWare-$(PROCESSOR_ARCHITECTURE)
588!ENDIF
589
590!IF "$(USE_MULTI)" != "undef"
591ADD_BUILDOPT	= $(ADD_BUILDOPT) -DPERL_IMPLICIT_CONTEXT
592!ENDIF
593
594!IF "$(USE_IMP_SYS)" != "undef"
595ADD_BUILDOPT	= $(ADD_BUILDOPT) -DPERL_IMPLICIT_SYS
596!ENDIF
597
598!IF "$(USE_ITHREADS)" == "define"
599ARCHNAME	= $(ARCHNAME)-thread
600!ENDIF
601
602!IF "$(USE_PERLIO)" == "define"
603USE_STDIO		= undef
604ADD_BUILDOPT	= $(ADD_BUILDOPT) -DUSE_PERLIO
605ARCHNAME		= $(ARCHNAME)-perlio
606!ELSE
607#USE_STDIO	= define
608#ADD_BUILDOPT	= $(ADD_BUILDOPT) -DUSE_STDIO
609!ENDIF
610
611
612ARCHDIR		= ..\lib\$(ARCHNAME)
613COREDIR		= ..\lib\CORE
614AUTODIR		= ..\lib\auto
615LIBDIR		= ..\lib
616EXTDIR		= ..\ext
617PODDIR		= ..\pod
618EXTUTILSDIR	= $(LIBDIR)\ExtUtils
619
620#
621INST_SCRIPT	= $(INST_TOP)$(INST_VER)\bin
622INST_BIN	= $(INST_SCRIPT)$(INST_ARCH)
623INST_LIB	= $(INST_TOP)$(INST_VER)\lib
624INST_ARCHLIB	= $(INST_LIB)$(INST_ARCH)
625INST_COREDIR	= $(INST_ARCHLIB)\CORE
626INST_POD	= $(INST_LIB)\pod
627INST_HTML	= $(INST_POD)\html
628
629#
630# Options
631#
632
633OBJOUT_FLAG	= -Fo
634EXEOUT_FLAG	= -Fe
635
636
637#################### do not edit below this line #######################
638############# NO USER-SERVICEABLE PARTS BEYOND THIS POINT ##############
639
640o = .obj
641
642#
643# Rules
644#
645
646.SUFFIXES : .c $(o) .nlm .lib .NLM
647
648
649#
650# various targets
651PERLIMPLIB	= ..\perl.lib
652
653MINIPERL	= ..\miniperl.exe
654CONFIGPM	= ..\lib\Config.pm
655MINIMOD		= ..\lib\ExtUtils\Miniperl.pm
656
657PL2BAT		= ..\win32\bin\pl2bat.pl
658
659UTILS		=			\
660		..\utils\h2ph		\
661		..\utils\splain		\
662		..\utils\perlbug	\
663		..\utils\pl2pm 		\
664		..\utils\h2xs		\
665		..\utils\perldoc	\
666		..\pod\pod2html		\
667		..\pod\pod2man		\
668		..\pod\pod2text		\
669		..\pod\pod2usage	\
670		..\pod\podchecker	\
671		..\pod\podselect
672
673MAKE		= nmake -nologo
674#NMAKE       = $(C_COMPILER) $(INCLUDE) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).c -o $@
675
676XCOPY		= xcopy /f /r /i /d
677RCOPY		= xcopy /f /r /i /e /d
678NOOP		= @echo
679NULL		=
680
681#
682# filenames given to xsubpp must have forward slashes (since it puts
683# full pathnames in #line strings)
684XSUBPP		= ..\$(MINIPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp -C++ -prototypes
685
686MICROCORE_SRC	=		\
687		..\av.c		\
688		..\deb.c	\
689		..\doio.c	\
690		..\doop.c	\
691		..\dquote.c	\
692		..\dump.c	\
693		..\globals.c	\
694		..\gv.c		\
695		..\mro_core.c	\
696		..\hv.c		\
697		..\keywords.c	\
698		..\locale.c	\
699                ..\mathoms.c    \
700		..\mg.c		\
701		..\numeric.c	\
702		..\op.c		\
703		..\perl.c	\
704		..\perlapi.c	\
705		..\perly.c	\
706		..\pp.c		\
707		..\pp_ctl.c	\
708		..\pp_hot.c	\
709		..\pp_pack.c	\
710		..\pp_sort.c	\
711		..\pp_sys.c	\
712		..\reentr.c	\
713		..\regcomp.c	\
714		..\regexec.c	\
715		..\run.c	\
716		..\scope.c	\
717		..\sv.c		\
718		..\taint.c	\
719		..\time64.c	\
720		..\toke.c	\
721		..\universal.c	\
722		..\utf8.c	\
723		..\util.c
724
725#EXTRACORE_SRC	= $(EXTRACORE_SRC) perllib.c
726
727!IF "$(PERL_MALLOC)" == "define"
728EXTRACORE_SRC	= $(EXTRACORE_SRC) ..\malloc.c
729!ENDIF
730
731#EXTRACORE_SRC	= $(EXTRACORE_SRC) ..\perlio.c
732
733!IF "$(CRYPT_SRC)" != ""
734NW_SRC	= $(NW_SRC) .\$(CRYPT_SRC)
735!ENDIF
736
737DLL_SRC		= $(DYNALOADER).c
738
739CORE_NOCFG_H	=		\
740		..\av.h		\
741		..\cop.h	\
742		..\cv.h		\
743		..\dosish.h	\
744		..\embed.h	\
745		..\form.h	\
746		..\gv.h		\
747		..\handy.h	\
748		..\hv.h		\
749		..\hv_func.h	\
750		..\iperlsys.h	\
751		..\mg.h		\
752		..\nostdio.h	\
753		..\op.h		\
754		..\opcode.h	\
755		..\perl.h	\
756		..\perlapi.h	\
757		..\perlsdio.h	\
758		..\perly.h	\
759		..\pp.h		\
760		..\proto.h	\
761		..\regexp.h	\
762		..\scope.h	\
763		..\sv.h		\
764		..\thread.h	\
765		..\unixish.h	\
766		..\utf8.h	\
767		..\util.h	\
768		..\warnings.h	\
769		..\XSUB.h	\
770		..\EXTERN.h	\
771		..\perlvars.h	\
772		..\intrpvar.h
773
774CORE_H		= $(CORE_NOCFG_H) .\config.h
775
776DLL_OBJ		= $(DLL_SRC:.c=.obj)
777
778DYNAMIC_EXT	= Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
779		Data/Dumper Devel/Peek ByteLoader File/Glob \
780		Storable/Storable List/Util MIME/Base64/Base64 XS/APItest/APItest \
781		XS/Typemap/Typemap Unicode/Collate/Collate Unicode/Normalize/Normalize Sys/Hostname
782
783STATIC_EXT	= DynaLoader
784NONXS_EXT	= Errno
785
786DYNALOADER	= $(EXTDIR)\DynaLoader\DynaLoader
787SOCKET		= $(EXTDIR)\Socket\Socket
788FCNTL		= $(EXTDIR)\Fcntl\Fcntl
789OPCODE		= $(EXTDIR)\Opcode\Opcode
790SDBM_FILE	= $(EXTDIR)\SDBM_File\SDBM_File
791IO			= $(EXTDIR)\IO\IO
792POSIX		= $(EXTDIR)\POSIX\POSIX
793ATTRIBUTES		= $(EXTDIR)\attributes\attributes
794B			= $(EXTDIR)\B\B
795RE			= $(EXTDIR)\re\re
796DUMPER		= $(EXTDIR)\Data\Dumper\Dumper
797ERRNO		= $(EXTDIR)\Errno\Errno
798PEEK		= $(EXTDIR)\Devel\Peek\Peek
799BYTELOADER	= $(EXTDIR)\ByteLoader\ByteLoader
800GLOB		= $(EXTDIR)\File\Glob\Glob
801HOSTNAME	= $(EXTDIR)\Sys\Hostname\Hostname
802CWD			= $(EXTDIR)\Cwd\Cwd
803STORABLE		= $(EXTDIR)\Storable\Storable
804LISTUTIL		= $(EXTDIR)\List\Util
805MIMEBASE64		= $(EXTDIR)\MIME\Base64\Base64
806XSAPITEST		= $(EXTDIR)\XS\APItest\APItest
807XSTYPEMAP		= $(EXTDIR)\XS\Typemap\Typemap
808UNICODENORMALIZE	= $(EXTDIR)\Unicode\Normalize\Normalize
809UNICODECOLLATE	= $(EXTDIR)\Unicode\Collate\Collate
810
811ERRNO_PM_NW	= $(LIBDIR)\Errno.pm
812
813EXTENSION_C	= 		\
814		$(SOCKET).c	\
815		$(FCNTL).c	\
816		$(OPCODE).c	\
817		$(SDBM_FILE).c	\
818		$(IO).c		\
819		$(POSIX).c	\
820		$(ATTRIBUTES).c	\
821		$(RE).c		\
822		$(DUMPER).c	\
823		$(PEEK).c	\
824		$(B).c		\
825		$(BYTELOADER).c	\
826		$(GLOB).c	\
827		$(HOSTNAME).c \
828		$(CWD).c	\
829		$(STORABLE).c	\
830		$(LISTUTIL).c	\
831		$(MIMEBASE64).c	\
832		$(XSAPITEST).c	\
833		$(XSTYPEMAP).c	\
834		$(UNICODENORMALIZE).c	\
835
836EXTENSION_NPM =	\
837		$(ERRNO_PM_NW)	\
838
839POD2HTML	= $(PODDIR)\pod2html
840POD2MAN		= $(PODDIR)\pod2man
841POD2TEXT	= $(PODDIR)\pod2text
842
843#
844# Top targets
845#
846
847all : .cleanoldfiles .\nwconfig.h $(CONFIGPM) $(NLM_NAME) $(EXTENSION_NLM) $(EXTENSION_NPM) $(TEST_NLMS) $(NETWARE_EXTNS)
848
849#------------------------------------------------------------
850
851..\config.sh : config.nw5 $(MINIPERL) config_sh.PL
852	$(MINIPERL) -I..\lib config_sh.PL $(NW_CFG_VARS) config.nw5 > ..\config.sh
853
854# this target is for when changes to the main config.sh happen
855# edit config.wc and make this target
856regen_config_h:
857	perl config_sh.PL $(NW_CFG_VARS) $(NW_CFGSH_TMPL) > ..\config.sh
858	cd ..
859	-del /f /q perl.exe
860	perl configpm
861	cd netware
862	-del /f /q $(NW_CFGH_TMPL)
863	-mkdir $(COREDIR)
864	-perl -I..\lib config_h.PL "INST_VER=$(INST_VER)"
865	rename config.h $(NW_CFGH_TMPL)
866
867$(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
868	cd .. && miniperl configpm
869	if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
870	$(XCOPY) ..\*.h $(COREDIR)\*.*
871	$(XCOPY) *.h $(COREDIR)\*.*
872	$(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
873	if exist include\* $(RCOPY) include $(COREDIR)\*.*
874	$(MINIPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)" \
875	    || $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
876        @echo CONFIGPM Done
877
878$(MINIPERL) :
879	$(error)Please build $(MINIPERL) before continuing
880
881$(MINIMOD) : $(MINIPERL) ..\minimod.pl
882	cd .. && miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
883
884$(EXTDIR)\DynaLoader\dl_netware.xs: dl_netware.xs
885	copy dl_netware.xs $(EXTDIR)\DynaLoader\dl_netware.xs
886
887HEADERS :
888	@echo . . . . making stdio.h and string.h
889	@copy << stdio.h >\nul
890
891/*
892 * Copyright (C) 2000-01 Novell, Inc. All Rights Reserved.
893 *
894 * You may distribute under the terms of either the GNU General Public
895 * License or the Artistic License, as specified in the README file.
896 *
897 */
898
899/*
900 * FILENAME		:	stdio.h
901 * DESCRIPTION	:	Generated header file, do not edit. See makefile.
902 *                  This header file causes the includer to use clibstuf.h
903 *                  The purpose of clibstuf is to make sure that Perl, cgi2perl and
904 *                  all the perl extension nlm's (*.NLM) use the Novell Netware CLIB versions
905 *                  of standard functions. This code loads up a whole bunch of function pointers
906 *                  to point at the standard CLIB functions.
907 * Author		:	HYAK
908 * Date			:	January 2001.
909 *
910 */
911
912
913#ifndef __Stdio_H__
914#define __Stdio_H__
915
916
917#include "$(NLMSDKBASE)\INCLUDE\NLM\stdio.h"
918#include "clibsdio.h"
919
920
921#endif	// __Stdio_H__
922
923<<
924	@copy stdio.h $(COREDIR)
925	 
926	@copy << string.h >\nul
927
928/*
929 * Copyright (C) 2000-01 Novell, Inc. All Rights Reserved.
930 *
931 * You may distribute under the terms of either the GNU General Public
932 * License or the Artistic License, as specified in the README file.
933 *
934 */
935
936/*
937 * FILENAME		:	string.h
938 * DESCRIPTION	:	Generated header file, do not edit. See makefile.
939 *                  This header file causes the includer to use clibstuf.h
940 *                  The purpose of clibstuf is to make sure that Perl, cgi2perl and
941 *                  all the perl extension nlm's (*.NLM) use the Novell Netware CLIB versions
942 *                  of standard functions. This code loads up a whole bunch of function pointers
943 *                  to point at the standard CLIB functions.
944 * Author		:	HYAK
945 * Date			:	January 2001.
946 *
947 */
948
949
950#ifndef __String_H__
951#define __String_H__
952
953
954#include "$(NLMSDKBASE)\INCLUDE\NLM\string.h"
955#include "clibstr.h"
956
957
958#endif	// __String_H__
959
960<<
961	@copy string.h $(COREDIR)
962
963
964$(NLM_NAME): MESSAGE HEADERS $(BLDDIR)\nul $(NLM_OBJ) $(NEWTARE_OBJ_DEP) $(NEWTARE_CPP_OBJ_DEP) $(PERL_IO_OBJ_DEP) $(DLL_OBJ) \
965            $(PERLIMPLIB) $(EXT_MAIN_OBJ) $(PERL_TEMP_OBJ) #$(PERL_LIB_OBJ) 
966	@echo======= Linking $@ at $(MAKEDIR)\$(BLDDIR) =======
967# Linker definitions and lining come here for CODEWARRIOR
968	@echo $(BASE_IMPORT_FILES) > $*.def
969	@echo MODULE clib >> $*.def
970	@echo MODULE netdb >> $*.def
971!ifdef SECURITYBASE
972   @echo MODULE nwsec >> $*.def
973!endif											#!ifdef SECURITYBASE
974	@echo $(EXPORTS) >> $*.def
975!ifdef USE_XDC
976	@echo======= Creating XDC file
977	@echo Import Mp.imp >> $*.def
978!ifdef NLM_NAME8
979	$(MPKTOOL) $(XDCFLAGS) $(BLDDIR)\$(NLM_NAME8).xdc
980	@echo xdcdata $(BLDDIR)\$(NLM_NAME8).xdc >> $*.def
981!else
982	$(MPKTOOL) $(XDCFLAGS) $(BLDDIR)\$(NLM_NAME).xdc
983	@echo xdcdata $(BLDDIR)\$(NLM_NAME).xdc >> $*.def 
984!endif
985!endif
986##    $(LINK) $(LDFLAGS) $(BS_CFLAGS) -desc "Perl 5.6.1 for NetWare" $(NEWTARE_OBJ_DEP:.obj=.obj) $(NLM_OBJ:.obj=.obj) $(PERL_IO_OBJ_DEP:.obj=.obj) $(DLL_OBJ:.obj=.obj) $(NEWTARE_CPP_OBJ_DEP:.obj=.obj) -commandfile $*.def -o .\$(BLDDIR)\$@
987	$(LINK) $(LDFLAGS) -desc $(MODULE_DESC) $(NEWTARE_OBJ_DEP:.obj=.obj) $(NLM_OBJ:.obj=.obj) $(PERL_IO_OBJ_DEP:.obj=.obj) $(DLL_OBJ:.obj=.obj) $(NEWTARE_CPP_OBJ_DEP:.obj=.obj) -commandfile $*.def -o .\$(BLDDIR)\$@
988	copy splittree.pl .. 
989	$(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
990	@echo ========Linked $@ ==========
991
992	@echo======= Finished building $(BUILT).
993
994# Create the debug or release directory if not existing
995$(BLDDIR)\nul:
996  	@echo . . . . mkdir $(BLDDIR)
997  	@mkdir $(BLDDIR)
998	@echo '$(BLDDIR)' directory created.
999
1000MESSAGE: 
1001	@echo======= $(MAKE_ACTION)ing $(NLM_NAME) at $(MAKEDIR)\$(BLDDIR) ======= 
1002  
1003$(PERLIMPLIB): perllib.imp
1004#    @echo Building $(PERLIMPLIB)...
1005#    $(LD) -type library $(NLM_OBJ) $(BLDDIR)\nw5.obj $(BLDDIR)\nwmain.obj $(BLDDIR)\nw5thread.obj $(BLDDIR)\nwtinfo.obj \
1006#    $(BLDDIR)\nwutil.obj $(BLDDIR)\interface.obj $(BLDDIR)\perllib.obj $(PERL_IO_OBJ_DEP) $(DLL_OBJ) -o $@
1007#	$(XCOPY) $(PERLIMPLIB) $(COREDIR)
1008#	@echo $(PERLIMPLIB) Done
1009
1010perllib.imp : $(MINIPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl
1011#	$(MINIPERL) -w ..\makedef.pl PLATFORM=netware FILETYPE=def $(ADD_BUILDOPT) \
1012#	    CCTYPE=$(CCTYPE) TARG_DIR=..\ > perllib.def
1013	@echo (Perl) > perl.imp
1014  	$(MINIPERL) -w ..\makedef.pl PLATFORM=netware FILETYPE=imp $(BS_CFLAGS) $(DEFINES) $(ADD_BUILDOPT) \
1015	    CCTYPE=$(CCTYPE) TARG_DIR=..\ >> perl.imp
1016	copy perl.imp $(COREDIR)
1017  
1018$(DLL_OBJ) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
1019  	@echo $(MPKMESSAGE)...$(BLDMESG)...$@
1020	@$(C_COMPILER) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) -I$(EXTDIR)\DynaLoader \
1021	$(EXTDIR)\DynaLoader\$(*F).c -o $@
1022	@echo $(@) Done.
1023
1024$(DYNALOADER).c : $(MINIPERL) $(EXTDIR)\DynaLoader\dl_netware.xs $(CONFIGPM)
1025	if not exist $(AUTODIR) mkdir $(AUTODIR)
1026	cd $(EXTDIR)\$(*B)
1027	..\$(MINIPERL) -I..\..\lib $(*B)_pm.PL
1028	..\$(MINIPERL) -I..\..\lib XSLoader_pm.PL
1029	cd ..\..\netware
1030	$(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL)
1031	$(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL)
1032	cd $(EXTDIR)\$(*B)
1033	$(XSUBPP) dl_netware.xs > $(*B).c
1034	cd ..\..\netware
1035	@echo Dynaloader Done
1036
1037
1038$(PERL_IO_OBJ_DEP) : ..\$(*F).c
1039	@echo $(MPKMESSAGE) $(BLDMESG) $@
1040	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) ..\$(*F).c -o $@
1041	@echo Built $(@)
1042
1043$(NLM_OBJ)	: ..\$(*F).c
1044	@echo $(MPKMESSAGE) $(BLDMESG) $@
1045	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) ..\$(*F).c -o $@
1046	@echo Built $(@)
1047	
1048    
1049$(NEWTARE_OBJ_DEP) : $(NW_H_FILES) $(NW_HOST_H_FILES) $(*F).c
1050	@echo $(MPKMESSAGE) $(BLDMESG) $@
1051	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).c -o $@
1052    @echo Built $(@)
1053
1054$(NEWTARE_CPP_OBJ_DEP) : $(NW_H_FILES) $(NW_HOST_H_FILES) $(*F).cpp
1055	@echo $(MPKMESSAGE) $(BLDMESG) $@
1056	$(C_COMPILER) $(CWCPPFLAGS) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).cpp -o $@
1057    @echo Built $(@)
1058
1059$(EXT_MAIN_OBJ) : $(CLIB_H_FILES)
1060    @echo $(MPKMESSAGE) $(BLDMESG) $@
1061    $(C_COMPILER)  $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).c -o $@	
1062    $(LD) -type library $@ -o $*.lib
1063    @copy $*.lib $(COREDIR)
1064
1065# Delete any files that might have got created during building miniperl.exe
1066# config.sh will definitely be created
1067# COREDIR might have got created
1068.cleanoldfiles :
1069	-del /f /q $(PERLIMPLIB)
1070	-del /f /q ..\lib\config.pm
1071	-del /f /q ..\config.sh
1072	-del /f /q .\Main.obj
1073	-del /f /q .\Main.lib
1074	-rmdir /s /q $(AUTODIR)
1075	-rmdir /s /q $(COREDIR)
1076	-del /f /q ..\lib\core
1077
1078.\nwconfig.h : $(NW_CFGH_TMPL)
1079	@if exist .\config.h del /f /q .\config.h
1080	copy $(NW_CFGH_TMPL) config.h
1081
1082# REQUIRED WHEN WE INCLUDE CONFIGPM OR REGEN_CONFIG - sgp
1083#..\nwconfig.sh : config.nw5 $(MINIPERL) config_sh.PL
1084#	$(MINIPERL) -I..\lib config_sh.PL $(NW_CFG_VARS) config.nw5 > ..\config.sh
1085#	@pause
1086#	cd ..
1087#	del /f /q config.sh
1088#	rename nwconfig.sh config.sh
1089#	cd netware
1090
1091config.nw5 : $(NW_CFGSH_TMPL)
1092	copy $(NW_CFGSH_TMPL) config.nw5
1093
1094$(SOCKET_NLM): $(NLM_NAME) $(SOCKET).xs
1095	cd $(EXTDIR)\$(*B)
1096	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1097	$(MAKE)
1098	cd ..\..\netware
1099
1100$(HOSTNAME_NLM): $(NLM_NAME) $(HOSTNAME).xs
1101	cd $(EXTDIR)\Sys\$(*B)
1102	..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1103	$(MAKE)
1104	cd ..\..\..\netware
1105
1106$(FCNTL_NLM):
1107	cd $(EXTDIR)\$(*B)
1108	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1109	$(MAKE)
1110	cd ..\..\netware
1111
1112$(IO_NLM):
1113	cd $(EXTDIR)\$(*B)
1114	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1115	$(MAKE)
1116	cd ..\..\netware
1117
1118$(OPCODE_NLM):
1119	cd $(EXTDIR)\$(*B)
1120	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1121	$(MAKE)
1122	cd ..\..\netware
1123
1124$(B_NLM):
1125	cd $(EXTDIR)\$(*B)
1126	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1127	$(MAKE)
1128	cd ..\..\netware
1129
1130$(DUMPER_NLM):
1131	cd $(EXTDIR)\Data\$(*B)
1132	..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1133	$(MAKE)
1134	cd ..\..\..\netware
1135
1136$(PEEK_NLM):
1137	cd $(EXTDIR)\Devel\$(*B)
1138	..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1139	$(MAKE)
1140	cd ..\..\..\netware
1141
1142$(RE_NLM):
1143	cd $(EXTDIR)\$(*B)
1144	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1145	$(MAKE)
1146	cd ..\..\netware
1147
1148$(BYTELOADER_NLM):
1149	cd $(EXTDIR)\$(*B)
1150	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1151	$(MAKE)
1152	cd ..\..\netware
1153
1154$(GLOB_NLM):
1155	cd $(EXTDIR)\File\$(*B)
1156	..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1157	$(MAKE)
1158	cd ..\..\..\netware
1159
1160$(POSIX_NLM):
1161	cd $(EXTDIR)\$(*B)
1162	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1163	$(MAKE)
1164	cd ..\..\netware
1165
1166$(ATTRIBUTES_NLM):
1167	cd $(EXTDIR)\$(*B)
1168	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1169	$(MAKE)
1170	cd ..\..\netware
1171
1172$(SDBM_FILE_NLM):
1173	cd $(EXTDIR)\$(*B)
1174	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1175	$(MAKE)
1176	cd ..\..\netware
1177
1178$(CWD_NLM):
1179	cd $(EXTDIR)\$(*B)
1180	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1181	$(MAKE)
1182	cd ..\..\netware
1183
1184$(STORABLE_NLM):
1185	cd $(EXTDIR)\$(*B)
1186	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1187	$(MAKE)
1188	cd ..\..\netware
1189
1190$(LISTUTIL_NLM):
1191	cd $(EXTDIR)\List\$(*B)
1192	..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1193	$(MAKE)
1194	cd ..\..\..\netware
1195
1196$(MIMEBASE64_NLM):
1197	cd $(EXTDIR)\Mime\$(*B)
1198	..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1199	$(MAKE)
1200	cd ..\..\..\netware
1201
1202$(XSAPITEST_NLM):
1203	cd $(EXTDIR)\XS\$(*B)
1204	..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1205	$(MAKE)
1206	cd ..\..\..\netware
1207
1208$(XSTYPEMAP_NLM):
1209	cd $(EXTDIR)\XS\$(*B)
1210	..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1211	$(MAKE)
1212	cd ..\..\..\netware
1213
1214$(UNICODENORMALIZE_NLM):
1215	cd $(EXTDIR)\Unicode\$(*B)
1216	..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1217	$(MAKE)
1218	cd ..\..\..\netware
1219
1220
1221$(ERRNO_PM_NW):
1222#	@echo Building $@
1223	cd $(EXTDIR)\$(*B)
1224	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1225	$(MAKE)
1226	cd ..\..\netware
1227
1228$(ECHO_SRC_OBJ): $*.c
1229	@echo $(MPKMESSAGE) $(BLDMESG) $@
1230	$(C_COMPILER) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
1231	@echo Built $(@)
1232
1233$(ECHO_NLM): $(ECHO_SRC_OBJ)
1234	@echo======= Linking $@ =======
1235# Linker definitions and lining come here for CODEWARRIOR
1236    @echo $(BASE_IMPORT_FILES) > $*.def
1237    @echo MODULE clib >> $*.def
1238    @echo Import @perl.imp >> $*.def
1239!ifdef USE_XDC
1240	$(MPKTOOL) $(XDCFLAGS) $*.xdc
1241	@echo Import @MP.imp >> $*.def
1242	@echo xdcdata $*.xdc >> $*.def 
1243!endif
1244##    $(LINK) $(LDFLAGS) $(BS_CFLAGS) -desc "DOS Echo emulation for Perl testing" $(ECHO_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1245    $(LINK) $(LDFLAGS) -desc "DOS Echo emulation for Perl testing" $(ECHO_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1246	@echo======= Linking Complete =======
1247
1248$(TYPE_SRC_OBJ): $*.c
1249	@echo $(MPKMESSAGE) $(BLDMESG) $@
1250	$(C_COMPILER) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
1251	@echo Built $(@)
1252	
1253$(TYPE_NLM): $(TYPE_SRC_OBJ)
1254	@echo======= Linking $@ =======
1255# Linker definitions and lining come here for CODEWARRIOR
1256    @echo $(BASE_IMPORT_FILES) > $*.def
1257    @echo MODULE clib >> $*.def
1258    @echo Import @perl.imp >> $*.def
1259!ifdef USE_XDC
1260	$(MPKTOOL) $(XDCFLAGS) $*.xdc
1261	@echo Import @MP.imp >> $*.def 
1262	@echo xdcdata $*.xdc >> $*.def 
1263!endif
1264##    $(LINK) $(LDFLAGS) $(BS_CFLAGS) -desc "DOS Type emulation for Perl testing" $(TYPE_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1265    $(LINK) $(LDFLAGS) -desc "DOS Type emulation for Perl testing" $(TYPE_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1266	@echo======= Linking Complete =======
1267
1268
1269# Build NetWare specific extensions
1270$(CGI2PERL_NLM):
1271!if "$(NW_EXTNS)"=="yes"
1272	cd $(*B)
1273	..\..\miniperl -I..\..\lib Makefile.PL "CCCDLFLAGS=-bool on -lang c++" PERL_CORE=1 INSTALLDIRS=perl
1274	$(MAKE)
1275	cd ..\..\netware
1276!endif
1277
1278$(PERL2UCS_NLM):
1279!if "$(NW_EXTNS)"=="yes"
1280	cd $(*B)
1281	..\..\miniperl -I..\..\lib Makefile.PL "CCCDLFLAGS=-bool on -lang c++" PERL_CORE=1 INSTALLDIRS=perl
1282	$(MAKE)
1283	cd ..\..\netware
1284!endif
1285
1286$(UCSExt_NLM):
1287!if "$(NW_EXTNS)"=="yes"
1288	cd $(*B)
1289	..\..\miniperl -I..\..\lib Makefile.PL "CCCDLFLAGS=-bool on -lang c++" PERL_CORE=1 INSTALLDIRS=perl
1290	$(MAKE)
1291	cd ..\..\netware
1292!endif
1293
1294nwclean:
1295	-rmdir /s /q $(REL_DIR)
1296	-rmdir /s /q $(DEB_DIR)
1297	@if exist .\stdio.h del /f /q .\stdio.h
1298	@if exist .\string.h del /f /q .\string.h
1299	@if exist .\config.h del /f /q .\config.h
1300	@if exist .\config.nw5 del /f /q .\config.nw5
1301	@if exist .\perl.imp del /f /q .\perl.imp
1302	-del /f /q *.obj *.lib *.def *.sym *.map *.xdc *.err *.nlm
1303	cd testnlm\echo
1304	-del /f /q *.obj *.map *.link *.options *.nlm *.sym *.xdc *.err *.lib *.def *.pdb *.bs
1305	cd ..\type
1306	-del /f /q *.obj *.map *.link *.options *.nlm *.sym *.xdc *.err *.lib *.def *.pdb *.bs
1307	cd ..\..\
1308
1309utils: $(BLDDIR)\$(NLM_NAME8).$(NLM_EXT)
1310	cd ..\utils
1311	$(MAKE) PERL=$(MINIPERL)
1312	cd ..\pod
1313	copy ..\README.amiga .\perlamiga.pod
1314	copy ..\README.cygwin .\perlcygwin.pod
1315	copy ..\README.dos .\perldos.pod
1316	copy ..\README.hpux .\perlhpux.pod
1317	copy ..\README.os2 .\perlos2.pod
1318	copy ..\vms\perlvms.pod .\perlvms.pod
1319	copy ..\README.win32 .\perlwin32.pod
1320	copy ..\README.netware .\perlnw5.pod
1321	$(MAKE) -f ..\win32\pod.mak converters
1322
1323	cd ..\netware
1324	$(MINIPERL) $(PL2BAT) $(UTILS)
1325
1326distclean: clean nwclean
1327	-del /f /q $(PERLIMPLIB) ..\miniperl.lib $(MINIMOD)
1328	-del /f /q $(EXTENSION_NPM)
1329	-del /f /q $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm
1330	-del /f /q $(EXTDIR)\DynaLoader\dl_netware.xs
1331	-del /f /q $(EXTDIR)\DynaLoader\dl_win32.xs
1332	-del /f /q $(EXTDIR)\DynaLoader\DynaLoader.pm
1333	-del /f /q $(EXTDIR)\DynaLoader\XSLoader.pm
1334	-del /f /q $(LIBDIR)\.exists $(LIBDIR)\attributes.pm $(LIBDIR)\DynaLoader.pm
1335	-del /f /q $(LIBDIR)\XSLoader.pm
1336	-del /f /q $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
1337	-del /f /q $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm
1338	-del /f /q $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm
1339	-del /f /q $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm
1340	-del /f /q $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm
1341	-del /f /q $(LIBDIR)\Devel\Peek.pm
1342	-del /f /q $(LIBDIR)\File\Glob.pm
1343	-del /f /q $(LIBDIR)\Unicode\Normalize.pm
1344	-del /f /q $(LIBDIR)\Unicode\Collate.pm
1345	-rmdir /s /q $(LIBDIR)\IO
1346	-rmdir /s /q $(LIBDIR)\B
1347	-rmdir /s /q $(LIBDIR)\Data
1348	-del /f /q $(PODDIR)\*.html
1349	-del /f /q $(PODDIR)\*.bat
1350	cd ..\utils
1351	-del /f /q h2ph splain perlbug pl2pm h2xs perldoc
1352	-del /f /q *.bat
1353	cd ..\netware
1354	-del /f /q ..\config.sh ..\splittree.pl dlutils.c config.h.new
1355	-del /f /q $(CONFIGPM)
1356	-del /f /q bin\*.bat
1357	cd $(EXTDIR)
1358    -del /s /q /f *.lib *.def *.map *.pdb *.bs Makefile *$(o) pm_to_blib *.xdc *.err *.obj *.sym
1359	cd ..\netware
1360!if "$(NW_EXTNS)"=="yes"
1361	cd cgi2perl
1362	-del /f /q *.obj *.bs Makefile *$(o) *.c pm_to_blib *.xdc *.err *.sym *.map *.def *.lib *.pdb
1363	cd ..
1364	cd Perl2UCS
1365	-del /f /q *.obj *.bs Makefile *$(o) *.c pm_to_blib *.xdc *.err *.sym *.map *.def *.lib *.pdb
1366	cd ..\..\netware
1367	cd UCSExt
1368	-del /f /q *.obj *.bs Makefile *$(o) *.c pm_to_blib *.xdc *.err *.sym *.map *.c
1369	cd ..\..\netware
1370!endif
1371	-rmdir /s /q $(AUTODIR)
1372	-rmdir /s /q $(COREDIR)
1373	-del /f /q ..\config.sh
1374
1375installwin:
1376	$(MINIPERL) -I..\lib ..\installperl
1377
1378install : utils installwin perlimp
1379
1380perlimp :
1381	copy perl.imp $(INST_COREDIR)
1382
1383installnw:
1384	$(MINIPERL) -I..\lib ..\installperl -netware
1385
1386install_tests :
1387	cd ..\t
1388	xcopy /f /r /i /s /d *.* $(INST_NW_TOP2)\scripts\t
1389	cd ..\lib
1390	xcopy /f /r /i /s /d *.t $(INST_NW_TOP2)\scripts\t\lib
1391	cd ..\ext
1392	xcopy /f /r /i /s /d *.t $(INST_NW_TOP2)\scripts\t\ext
1393	cd ..\netware\t
1394	xcopy /f /r /i /s /d *.pl $(INST_NW_TOP2)\scripts\t
1395	cd ..
1396
1397nwinstall: utils installnw install_tests
1398
1399inst_lib : $(CONFIGPM)
1400	copy ..\win32\splittree.pl .. 
1401	$(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
1402	$(RCOPY) ..\lib $(INST_LIB)\*.*
1403
1404clean : 
1405	-@erase miniperlmain$(o)
1406	-@erase /f config.h
1407	-@erase $(DLL_OBJ)
1408	-@erase ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp *.res
1409	-@erase ..\t\*.exe ..\t\*.dll ..\t\*.bat
1410