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