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