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