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