~rsrchboy/+junk/ndn-perl

1 by Chris Weyl
perl v5.20.2, from upstream tag
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.20.2 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.20.2
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\pod2man		\
670
		..\pod\pod2text		\
671
		..\pod\pod2usage	\
672
		..\pod\podchecker	\
673
		..\pod\podselect	\
674
		..\x2p\find2perl	\
675
		..\x2p\s2p		
676
677
MAKE		= nmake -nologo
678
#NMAKE       = $(C_COMPILER) $(INCLUDE) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).c -o $@
679
680
XCOPY		= xcopy /f /r /i /d
681
RCOPY		= xcopy /f /r /i /e /d
682
NOOP		= @echo
683
NULL		=
684
685
#
686
# filenames given to xsubpp must have forward slashes (since it puts
687
# full pathnames in #line strings)
688
XSUBPP		= ..\$(MINIPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp -C++ -prototypes
689
690
MICROCORE_SRC	=		\
691
		..\av.c		\
692
		..\deb.c	\
693
		..\doio.c	\
694
		..\doop.c	\
695
		..\dump.c	\
696
		..\globals.c	\
697
		..\gv.c		\
698
		..\mro.c	\
699
		..\hv.c		\
700
		..\keywords.c	\
701
		..\locale.c	\
702
                ..\mathoms.c    \
703
		..\mg.c		\
704
		..\numeric.c	\
705
		..\op.c		\
706
		..\perl.c	\
707
		..\perlapi.c	\
708
		..\perly.c	\
709
		..\pp.c		\
710
		..\pp_ctl.c	\
711
		..\pp_hot.c	\
712
		..\pp_pack.c	\
713
		..\pp_sort.c	\
714
		..\pp_sys.c	\
715
		..\reentr.c	\
716
		..\regcomp.c	\
717
		..\regexec.c	\
718
		..\run.c	\
719
		..\scope.c	\
720
		..\sv.c		\
721
		..\taint.c	\
722
		..\toke.c	\
723
		..\universal.c	\
724
		..\utf8.c	\
725
		..\util.c
726
727
#EXTRACORE_SRC	= $(EXTRACORE_SRC) perllib.c
728
729
!IF "$(PERL_MALLOC)" == "define"
730
EXTRACORE_SRC	= $(EXTRACORE_SRC) ..\malloc.c
731
!ENDIF
732
733
#EXTRACORE_SRC	= $(EXTRACORE_SRC) ..\perlio.c
734
735
!IF "$(CRYPT_SRC)" != ""
736
NW_SRC	= $(NW_SRC) .\$(CRYPT_SRC)
737
!ENDIF
738
739
DLL_SRC		= $(DYNALOADER).c
740
741
X2P_SRC		=		\
742
		..\x2p\a2p.c	\
743
		..\x2p\hash.c	\
744
		..\x2p\str.c	\
745
		..\x2p\util.c	\
746
		..\x2p\walk.c
747
748
CORE_NOCFG_H	=		\
749
		..\av.h		\
750
		..\cop.h	\
751
		..\cv.h		\
752
		..\dosish.h	\
753
		..\embed.h	\
754
		..\form.h	\
755
		..\gv.h		\
756
		..\handy.h	\
757
		..\hv.h		\
758
		..\hv_func.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
		..\perly.h	\
768
		..\pp.h		\
769
		..\proto.h	\
770
		..\regexp.h	\
771
		..\scope.h	\
772
		..\sv.h		\
773
		..\thread.h	\
774
		..\unixish.h	\
775
		..\utf8.h	\
776
		..\util.h	\
777
		..\warnings.h	\
778
		..\XSUB.h	\
779
		..\EXTERN.h	\
780
		..\perlvars.h	\
781
		..\intrpvar.h
782
		
783
CORE_H		= $(CORE_NOCFG_H) .\config.h
784
785
DLL_OBJ		= $(DLL_SRC:.c=.obj)
786
X2P_OBJ		= $(X2P_SRC:.c=.obj)
787
788
DYNAMIC_EXT	= Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
789
		Data/Dumper Devel/Peek ByteLoader File/Glob \
790
		Storable/Storable List/Util MIME/Base64/Base64 XS/APItest/APItest \
791
		XS/Typemap/Typemap Unicode/Collate/Collate Unicode/Normalize/Normalize Sys/Hostname
792
793
STATIC_EXT	= DynaLoader
794
NONXS_EXT	= Errno
795
796
DYNALOADER	= $(EXTDIR)\DynaLoader\DynaLoader
797
SOCKET		= $(EXTDIR)\Socket\Socket
798
FCNTL		= $(EXTDIR)\Fcntl\Fcntl
799
OPCODE		= $(EXTDIR)\Opcode\Opcode
800
SDBM_FILE	= $(EXTDIR)\SDBM_File\SDBM_File
801
IO			= $(EXTDIR)\IO\IO
802
POSIX		= $(EXTDIR)\POSIX\POSIX
803
ATTRIBUTES		= $(EXTDIR)\attributes\attributes
804
B			= $(EXTDIR)\B\B
805
RE			= $(EXTDIR)\re\re
806
DUMPER		= $(EXTDIR)\Data\Dumper\Dumper
807
ERRNO		= $(EXTDIR)\Errno\Errno
808
PEEK		= $(EXTDIR)\Devel\Peek\Peek
809
BYTELOADER	= $(EXTDIR)\ByteLoader\ByteLoader
810
GLOB		= $(EXTDIR)\File\Glob\Glob
811
HOSTNAME	= $(EXTDIR)\Sys\Hostname\Hostname
812
CWD			= $(EXTDIR)\Cwd\Cwd
813
STORABLE		= $(EXTDIR)\Storable\Storable
814
LISTUTIL		= $(EXTDIR)\List\Util
815
MIMEBASE64		= $(EXTDIR)\MIME\Base64\Base64
816
XSAPITEST		= $(EXTDIR)\XS\APItest\APItest
817
XSTYPEMAP		= $(EXTDIR)\XS\Typemap\Typemap
818
UNICODENORMALIZE	= $(EXTDIR)\Unicode\Normalize\Normalize
819
UNICODECOLLATE	= $(EXTDIR)\Unicode\Collate\Collate
820
821
ERRNO_PM_NW	= $(LIBDIR)\Errno.pm
822
823
EXTENSION_C	= 		\
824
		$(SOCKET).c	\
825
		$(FCNTL).c	\
826
		$(OPCODE).c	\
827
		$(SDBM_FILE).c	\
828
		$(IO).c		\
829
		$(POSIX).c	\
830
		$(ATTRIBUTES).c	\
831
		$(RE).c		\
832
		$(DUMPER).c	\
833
		$(PEEK).c	\
834
		$(B).c		\
835
		$(BYTELOADER).c	\
836
		$(GLOB).c	\
837
		$(HOSTNAME).c \
838
		$(CWD).c	\
839
		$(STORABLE).c	\
840
		$(LISTUTIL).c	\
841
		$(MIMEBASE64).c	\
842
		$(XSAPITEST).c	\
843
		$(XSTYPEMAP).c	\
844
		$(UNICODENORMALIZE).c	\
845
846
EXTENSION_NPM =	\
847
		$(ERRNO_PM_NW)	\
848
849
POD2HTML	= $(PODDIR)\pod2html
850
POD2MAN		= $(PODDIR)\pod2man
851
POD2TEXT	= $(PODDIR)\pod2text
852
853
#
854
# Top targets
855
#
856
857
all : .cleanoldfiles .\nwconfig.h $(CONFIGPM) $(NLM_NAME) $(EXTENSION_NLM) $(EXTENSION_NPM) $(TEST_NLMS) $(NETWARE_EXTNS)
858
859
#------------------------------------------------------------
860
861
..\config.sh : config.nw5 $(MINIPERL) config_sh.PL
862
	$(MINIPERL) -I..\lib config_sh.PL $(NW_CFG_VARS) config.nw5 > ..\config.sh
863
864
# this target is for when changes to the main config.sh happen
865
# edit config.wc and make this target
866
regen_config_h:
867
	perl config_sh.PL $(NW_CFG_VARS) $(NW_CFGSH_TMPL) > ..\config.sh
868
	cd ..
869
	-del /f /q perl.exe
870
	perl configpm
871
	cd netware
872
	-del /f /q $(NW_CFGH_TMPL)
873
	-mkdir $(COREDIR)
874
	-perl -I..\lib config_h.PL "INST_VER=$(INST_VER)"
875
	rename config.h $(NW_CFGH_TMPL)
876
877
$(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
878
	cd .. && miniperl configpm
879
	if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
880
	$(XCOPY) ..\*.h $(COREDIR)\*.*
881
	$(XCOPY) *.h $(COREDIR)\*.*
882
	$(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
883
	if exist include\* $(RCOPY) include $(COREDIR)\*.*
884
	$(MINIPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)" \
885
	    || $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
886
        @echo CONFIGPM Done
887
888
$(MINIPERL) : 
889
	$(error)Please build $(MINIPERL) before continuing
890
891
$(MINIMOD) : $(MINIPERL) ..\minimod.pl
892
	cd .. && miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
893
894
..\x2p\a2p$(o) : ..\x2p\a2p.c
895
	@echo $(MPKMESSAGE)...$(BLDMESG)...$@
896
	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) -I..\x2p $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
897
    @echo Built $(@)
898
899
..\x2p\hash$(o) : ..\x2p\hash.c
900
	@echo $(MPKMESSAGE)...$(BLDMESG)...$@
901
	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) -I..\x2p $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
902
    @echo Built $(@)
903
	
904
..\x2p\str$(o) : ..\x2p\str.c
905
	@echo $(MPKMESSAGE)...$(BLDMESG)...$@
906
	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) -I..\x2p $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
907
    @echo Built $(@)
908
909
..\x2p\util$(o) : ..\x2p\util.c
910
	@echo $(MPKMESSAGE)...$(BLDMESG)...$@
911
	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) -I..\x2p $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
912
    @echo Built $(@)
913
914
..\x2p\walk$(o) : ..\x2p\walk.c
915
	@echo $(MPKMESSAGE)...$(BLDMESG)...$@
916
	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) -I..\x2p $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
917
    @echo Built $(@)
918
	
919
$(X2P) : $(MINIPERL) $(X2P_OBJ)
920
	@echo Building $@..........
921
	$(MINIPERL) ..\x2p\find2perl.PL
922
	$(MINIPERL) ..\x2p\s2p.PL
923
# Linker definitions and lining come here for CODEWARRIOR
924
    @echo $(BASE_IMPORT_FILES) > $*.def
925
    @echo MODULE clib >> $*.def
926
    @echo Import @perl.imp >> $*.def
927
!ifdef USE_XDC
928
	$(MPKTOOL) $(XDCFLAGS) $*.xdc
929
	@echo Import Mp.imp >> $*.def
930
	@echo xdcdata $*.xdc >> $*.def
931
!endif
932
##    $(LINK) $(LDFLAGS) $(BS_CFLAGS) -desc "Awk to Perl Translator" $(X2P_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@ 
933
    $(LINK) $(LDFLAGS) -desc "Awk to Perl Translator" $(X2P_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@ 
934
935
$(EXTDIR)\DynaLoader\dl_netware.xs: dl_netware.xs
936
	copy dl_netware.xs $(EXTDIR)\DynaLoader\dl_netware.xs
937
938
HEADERS :
939
	@echo . . . . making stdio.h and string.h
940
	@copy << stdio.h >\nul
941
942
/*
943
 * Copyright (C) 2000-01 Novell, Inc. All Rights Reserved.
944
 *
945
 * You may distribute under the terms of either the GNU General Public
946
 * License or the Artistic License, as specified in the README file.
947
 *
948
 */
949
950
/*
951
 * FILENAME		:	stdio.h
952
 * DESCRIPTION	:	Generated header file, do not edit. See makefile.
953
 *                  This header file causes the includer to use clibstuf.h
954
 *                  The purpose of clibstuf is to make sure that Perl, cgi2perl and
955
 *                  all the perl extension nlm's (*.NLM) use the Novell Netware CLIB versions
956
 *                  of standard functions. This code loads up a whole bunch of function pointers
957
 *                  to point at the standard CLIB functions.
958
 * Author		:	HYAK
959
 * Date			:	January 2001.
960
 *
961
 */
962
963
964
#ifndef __Stdio_H__
965
#define __Stdio_H__
966
967
968
#include "$(NLMSDKBASE)\INCLUDE\NLM\stdio.h"
969
#include "clibsdio.h"
970
971
972
#endif	// __Stdio_H__
973
974
<<
975
	@copy stdio.h $(COREDIR)
976
	 
977
	@copy << string.h >\nul
978
979
/*
980
 * Copyright (C) 2000-01 Novell, Inc. All Rights Reserved.
981
 *
982
 * You may distribute under the terms of either the GNU General Public
983
 * License or the Artistic License, as specified in the README file.
984
 *
985
 */
986
987
/*
988
 * FILENAME		:	string.h
989
 * DESCRIPTION	:	Generated header file, do not edit. See makefile.
990
 *                  This header file causes the includer to use clibstuf.h
991
 *                  The purpose of clibstuf is to make sure that Perl, cgi2perl and
992
 *                  all the perl extension nlm's (*.NLM) use the Novell Netware CLIB versions
993
 *                  of standard functions. This code loads up a whole bunch of function pointers
994
 *                  to point at the standard CLIB functions.
995
 * Author		:	HYAK
996
 * Date			:	January 2001.
997
 *
998
 */
999
1000
1001
#ifndef __String_H__
1002
#define __String_H__
1003
1004
1005
#include "$(NLMSDKBASE)\INCLUDE\NLM\string.h"
1006
#include "clibstr.h"
1007
1008
1009
#endif	// __String_H__
1010
1011
<<
1012
	@copy string.h $(COREDIR)
1013
1014
1015
$(NLM_NAME): MESSAGE HEADERS $(BLDDIR)\nul $(NLM_OBJ) $(NEWTARE_OBJ_DEP) $(NEWTARE_CPP_OBJ_DEP) $(PERL_IO_OBJ_DEP) $(DLL_OBJ) \
1016
            $(PERLIMPLIB) $(EXT_MAIN_OBJ) $(PERL_TEMP_OBJ) #$(PERL_LIB_OBJ) 
1017
	@echo======= Linking $@ at $(MAKEDIR)\$(BLDDIR) =======
1018
# Linker definitions and lining come here for CODEWARRIOR
1019
	@echo $(BASE_IMPORT_FILES) > $*.def
1020
	@echo MODULE clib >> $*.def
1021
	@echo MODULE netdb >> $*.def
1022
!ifdef SECURITYBASE
1023
   @echo MODULE nwsec >> $*.def
1024
!endif											#!ifdef SECURITYBASE
1025
	@echo $(EXPORTS) >> $*.def
1026
!ifdef USE_XDC
1027
	@echo======= Creating XDC file
1028
	@echo Import Mp.imp >> $*.def
1029
!ifdef NLM_NAME8
1030
	$(MPKTOOL) $(XDCFLAGS) $(BLDDIR)\$(NLM_NAME8).xdc
1031
	@echo xdcdata $(BLDDIR)\$(NLM_NAME8).xdc >> $*.def
1032
!else
1033
	$(MPKTOOL) $(XDCFLAGS) $(BLDDIR)\$(NLM_NAME).xdc
1034
	@echo xdcdata $(BLDDIR)\$(NLM_NAME).xdc >> $*.def 
1035
!endif
1036
!endif
1037
##    $(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)\$@
1038
	$(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)\$@
1039
	copy splittree.pl .. 
1040
	$(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
1041
	@echo ========Linked $@ ==========
1042
1043
	@echo======= Finished building $(BUILT).
1044
1045
# Create the debug or release directory if not existing
1046
$(BLDDIR)\nul:
1047
  	@echo . . . . mkdir $(BLDDIR)
1048
  	@mkdir $(BLDDIR)
1049
	@echo '$(BLDDIR)' directory created.
1050
1051
MESSAGE: 
1052
	@echo======= $(MAKE_ACTION)ing $(NLM_NAME) at $(MAKEDIR)\$(BLDDIR) ======= 
1053
  
1054
$(PERLIMPLIB): perllib.imp
1055
#    @echo Building $(PERLIMPLIB)...
1056
#    $(LD) -type library $(NLM_OBJ) $(BLDDIR)\nw5.obj $(BLDDIR)\nwmain.obj $(BLDDIR)\nw5thread.obj $(BLDDIR)\nwtinfo.obj \
1057
#    $(BLDDIR)\nwutil.obj $(BLDDIR)\interface.obj $(BLDDIR)\perllib.obj $(PERL_IO_OBJ_DEP) $(DLL_OBJ) -o $@
1058
#	$(XCOPY) $(PERLIMPLIB) $(COREDIR)
1059
#	@echo $(PERLIMPLIB) Done
1060
1061
perllib.imp : $(MINIPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl
1062
#	$(MINIPERL) -w ..\makedef.pl PLATFORM=netware FILETYPE=def $(ADD_BUILDOPT) \
1063
#	    CCTYPE=$(CCTYPE) TARG_DIR=..\ > perllib.def
1064
	@echo (Perl) > perl.imp
1065
  	$(MINIPERL) -w ..\makedef.pl PLATFORM=netware FILETYPE=imp $(BS_CFLAGS) $(DEFINES) $(ADD_BUILDOPT) \
1066
	    CCTYPE=$(CCTYPE) TARG_DIR=..\ >> perl.imp
1067
	copy perl.imp $(COREDIR)
1068
  
1069
$(DLL_OBJ) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
1070
  	@echo $(MPKMESSAGE)...$(BLDMESG)...$@
1071
	@$(C_COMPILER) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) -I$(EXTDIR)\DynaLoader \
1072
	$(EXTDIR)\DynaLoader\$(*F).c -o $@
1073
	@echo $(@) Done.
1074
1075
$(DYNALOADER).c : $(MINIPERL) $(EXTDIR)\DynaLoader\dl_netware.xs $(CONFIGPM)
1076
	if not exist $(AUTODIR) mkdir $(AUTODIR)
1077
	cd $(EXTDIR)\$(*B)
1078
	..\$(MINIPERL) -I..\..\lib $(*B)_pm.PL
1079
	..\$(MINIPERL) -I..\..\lib XSLoader_pm.PL
1080
	cd ..\..\netware
1081
	$(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL)
1082
	$(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL)
1083
	cd $(EXTDIR)\$(*B)
1084
	$(XSUBPP) dl_netware.xs > $(*B).c
1085
	cd ..\..\netware
1086
	@echo Dynaloader Done
1087
1088
1089
$(PERL_IO_OBJ_DEP) : ..\$(*F).c
1090
	@echo $(MPKMESSAGE) $(BLDMESG) $@
1091
	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) ..\$(*F).c -o $@
1092
	@echo Built $(@)
1093
1094
$(NLM_OBJ)	: ..\$(*F).c
1095
	@echo $(MPKMESSAGE) $(BLDMESG) $@
1096
	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) ..\$(*F).c -o $@
1097
	@echo Built $(@)
1098
	
1099
    
1100
$(NEWTARE_OBJ_DEP) : $(NW_H_FILES) $(NW_HOST_H_FILES) $(*F).c
1101
	@echo $(MPKMESSAGE) $(BLDMESG) $@
1102
	$(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).c -o $@
1103
    @echo Built $(@)
1104
1105
$(NEWTARE_CPP_OBJ_DEP) : $(NW_H_FILES) $(NW_HOST_H_FILES) $(*F).cpp
1106
	@echo $(MPKMESSAGE) $(BLDMESG) $@
1107
	$(C_COMPILER) $(CWCPPFLAGS) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).cpp -o $@
1108
    @echo Built $(@)
1109
1110
$(EXT_MAIN_OBJ) : $(CLIB_H_FILES)
1111
    @echo $(MPKMESSAGE) $(BLDMESG) $@
1112
    $(C_COMPILER)  $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).c -o $@	
1113
    $(LD) -type library $@ -o $*.lib
1114
    @copy $*.lib $(COREDIR)
1115
1116
# Delete any files that might have got created during building miniperl.exe
1117
# config.sh will definitely be created
1118
# COREDIR might have got created
1119
.cleanoldfiles :
1120
	-del /f /q $(PERLIMPLIB)
1121
	-del /f /q ..\lib\config.pm
1122
	-del /f /q ..\config.sh
1123
	-del /f /q .\Main.obj
1124
	-del /f /q .\Main.lib
1125
	-rmdir /s /q $(AUTODIR)
1126
	-rmdir /s /q $(COREDIR)
1127
	-del /f /q ..\lib\core
1128
1129
.\nwconfig.h : $(NW_CFGH_TMPL)
1130
	@if exist .\config.h del /f /q .\config.h
1131
	copy $(NW_CFGH_TMPL) config.h
1132
1133
# REQUIRED WHEN WE INCLUDE CONFIGPM OR REGEN_CONFIG - sgp
1134
#..\nwconfig.sh : config.nw5 $(MINIPERL) config_sh.PL
1135
#	$(MINIPERL) -I..\lib config_sh.PL $(NW_CFG_VARS) config.nw5 > ..\config.sh
1136
#	@pause
1137
#	cd ..
1138
#	del /f /q config.sh
1139
#	rename nwconfig.sh config.sh
1140
#	cd netware
1141
1142
config.nw5 : $(NW_CFGSH_TMPL)
1143
	copy $(NW_CFGSH_TMPL) config.nw5
1144
1145
$(SOCKET_NLM): $(NLM_NAME) $(SOCKET).xs
1146
	cd $(EXTDIR)\$(*B)
1147
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1148
	$(MAKE)
1149
	cd ..\..\netware
1150
1151
$(HOSTNAME_NLM): $(NLM_NAME) $(HOSTNAME).xs
1152
	cd $(EXTDIR)\Sys\$(*B)
1153
	..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1154
	$(MAKE)
1155
	cd ..\..\..\netware
1156
1157
$(FCNTL_NLM):
1158
	cd $(EXTDIR)\$(*B)
1159
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1160
	$(MAKE)
1161
	cd ..\..\netware
1162
1163
$(IO_NLM):
1164
	cd $(EXTDIR)\$(*B)
1165
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1166
	$(MAKE)
1167
	cd ..\..\netware
1168
1169
$(OPCODE_NLM):
1170
	cd $(EXTDIR)\$(*B)
1171
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1172
	$(MAKE)
1173
	cd ..\..\netware
1174
1175
$(B_NLM):
1176
	cd $(EXTDIR)\$(*B)
1177
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1178
	$(MAKE)
1179
	cd ..\..\netware
1180
1181
$(DUMPER_NLM):
1182
	cd $(EXTDIR)\Data\$(*B)
1183
	..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1184
	$(MAKE)
1185
	cd ..\..\..\netware
1186
1187
$(PEEK_NLM):
1188
	cd $(EXTDIR)\Devel\$(*B)
1189
	..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1190
	$(MAKE)
1191
	cd ..\..\..\netware
1192
1193
$(RE_NLM):
1194
	cd $(EXTDIR)\$(*B)
1195
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1196
	$(MAKE)
1197
	cd ..\..\netware
1198
1199
$(BYTELOADER_NLM):
1200
	cd $(EXTDIR)\$(*B)
1201
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1202
	$(MAKE)
1203
	cd ..\..\netware
1204
1205
$(GLOB_NLM):
1206
	cd $(EXTDIR)\File\$(*B)
1207
	..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1208
	$(MAKE)
1209
	cd ..\..\..\netware
1210
1211
$(POSIX_NLM):
1212
	cd $(EXTDIR)\$(*B)
1213
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1214
	$(MAKE)
1215
	cd ..\..\netware
1216
1217
$(ATTRIBUTES_NLM):
1218
	cd $(EXTDIR)\$(*B)
1219
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1220
	$(MAKE)
1221
	cd ..\..\netware
1222
1223
$(SDBM_FILE_NLM):
1224
	cd $(EXTDIR)\$(*B)
1225
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1226
	$(MAKE)
1227
	cd ..\..\netware
1228
1229
$(CWD_NLM):
1230
	cd $(EXTDIR)\$(*B)
1231
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1232
	$(MAKE)
1233
	cd ..\..\netware
1234
1235
$(STORABLE_NLM):
1236
	cd $(EXTDIR)\$(*B)
1237
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1238
	$(MAKE)
1239
	cd ..\..\netware
1240
1241
$(LISTUTIL_NLM):
1242
	cd $(EXTDIR)\List\$(*B)
1243
	..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1244
	$(MAKE)
1245
	cd ..\..\..\netware
1246
1247
$(MIMEBASE64_NLM):
1248
	cd $(EXTDIR)\Mime\$(*B)
1249
	..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1250
	$(MAKE)
1251
	cd ..\..\..\netware
1252
1253
$(XSAPITEST_NLM):
1254
	cd $(EXTDIR)\XS\$(*B)
1255
	..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1256
	$(MAKE)
1257
	cd ..\..\..\netware
1258
1259
$(XSTYPEMAP_NLM):
1260
	cd $(EXTDIR)\XS\$(*B)
1261
	..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1262
	$(MAKE)
1263
	cd ..\..\..\netware
1264
1265
$(UNICODENORMALIZE_NLM):
1266
	cd $(EXTDIR)\Unicode\$(*B)
1267
	..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1268
	$(MAKE)
1269
	cd ..\..\..\netware
1270
1271
1272
$(ERRNO_PM_NW):
1273
#	@echo Building $@
1274
	cd $(EXTDIR)\$(*B)
1275
	..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1276
	$(MAKE)
1277
	cd ..\..\netware
1278
1279
$(ECHO_SRC_OBJ): $*.c
1280
	@echo $(MPKMESSAGE) $(BLDMESG) $@
1281
	$(C_COMPILER) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
1282
	@echo Built $(@)
1283
1284
$(ECHO_NLM): $(ECHO_SRC_OBJ)
1285
	@echo======= Linking $@ =======
1286
# Linker definitions and lining come here for CODEWARRIOR
1287
    @echo $(BASE_IMPORT_FILES) > $*.def
1288
    @echo MODULE clib >> $*.def
1289
    @echo Import @perl.imp >> $*.def
1290
!ifdef USE_XDC
1291
	$(MPKTOOL) $(XDCFLAGS) $*.xdc
1292
	@echo Import @MP.imp >> $*.def
1293
	@echo xdcdata $*.xdc >> $*.def 
1294
!endif
1295
##    $(LINK) $(LDFLAGS) $(BS_CFLAGS) -desc "DOS Echo emulation for Perl testing" $(ECHO_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1296
    $(LINK) $(LDFLAGS) -desc "DOS Echo emulation for Perl testing" $(ECHO_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1297
	@echo======= Linking Complete =======
1298
1299
$(TYPE_SRC_OBJ): $*.c
1300
	@echo $(MPKMESSAGE) $(BLDMESG) $@
1301
	$(C_COMPILER) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
1302
	@echo Built $(@)
1303
	
1304
$(TYPE_NLM): $(TYPE_SRC_OBJ)
1305
	@echo======= Linking $@ =======
1306
# Linker definitions and lining come here for CODEWARRIOR
1307
    @echo $(BASE_IMPORT_FILES) > $*.def
1308
    @echo MODULE clib >> $*.def
1309
    @echo Import @perl.imp >> $*.def
1310
!ifdef USE_XDC
1311
	$(MPKTOOL) $(XDCFLAGS) $*.xdc
1312
	@echo Import @MP.imp >> $*.def 
1313
	@echo xdcdata $*.xdc >> $*.def 
1314
!endif
1315
##    $(LINK) $(LDFLAGS) $(BS_CFLAGS) -desc "DOS Type emulation for Perl testing" $(TYPE_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1316
    $(LINK) $(LDFLAGS) -desc "DOS Type emulation for Perl testing" $(TYPE_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1317
	@echo======= Linking Complete =======
1318
1319
1320
# Build NetWare specific extensions
1321
$(CGI2PERL_NLM):
1322
!if "$(NW_EXTNS)"=="yes"
1323
	cd $(*B)
1324
	..\..\miniperl -I..\..\lib Makefile.PL "CCCDLFLAGS=-bool on -lang c++" PERL_CORE=1 INSTALLDIRS=perl
1325
	$(MAKE)
1326
	cd ..\..\netware
1327
!endif
1328
1329
$(PERL2UCS_NLM):
1330
!if "$(NW_EXTNS)"=="yes"
1331
	cd $(*B)
1332
	..\..\miniperl -I..\..\lib Makefile.PL "CCCDLFLAGS=-bool on -lang c++" PERL_CORE=1 INSTALLDIRS=perl
1333
	$(MAKE)
1334
	cd ..\..\netware
1335
!endif
1336
1337
$(UCSExt_NLM):
1338
!if "$(NW_EXTNS)"=="yes"
1339
	cd $(*B)
1340
	..\..\miniperl -I..\..\lib Makefile.PL "CCCDLFLAGS=-bool on -lang c++" PERL_CORE=1 INSTALLDIRS=perl
1341
	$(MAKE)
1342
	cd ..\..\netware
1343
!endif
1344
1345
nwclean:
1346
	-rmdir /s /q $(REL_DIR)
1347
	-rmdir /s /q $(DEB_DIR)
1348
	@if exist .\stdio.h del /f /q .\stdio.h
1349
	@if exist .\string.h del /f /q .\string.h
1350
	@if exist .\config.h del /f /q .\config.h
1351
	@if exist .\config.nw5 del /f /q .\config.nw5
1352
	@if exist .\perl.imp del /f /q .\perl.imp
1353
	-del /f /q *.obj *.lib *.def *.sym *.map *.xdc *.err *.nlm
1354
	cd testnlm\echo
1355
	-del /f /q *.obj *.map *.link *.options *.nlm *.sym *.xdc *.err *.lib *.def *.pdb *.bs
1356
	cd ..\type
1357
	-del /f /q *.obj *.map *.link *.options *.nlm *.sym *.xdc *.err *.lib *.def *.pdb *.bs
1358
	cd ..\..\
1359
1360
utils: $(BLDDIR)\$(NLM_NAME8).$(NLM_EXT) $(X2P)
1361
	cd ..\utils
1362
	$(MAKE) PERL=$(MINIPERL)
1363
	cd ..\pod
1364
	copy ..\README.amiga .\perlamiga.pod
1365
	copy ..\README.cygwin .\perlcygwin.pod
1366
	copy ..\README.dos .\perldos.pod
1367
	copy ..\README.hpux .\perlhpux.pod
1368
	copy ..\README.os2 .\perlos2.pod
1369
	copy ..\vms\perlvms.pod .\perlvms.pod
1370
	copy ..\README.win32 .\perlwin32.pod
1371
	copy ..\README.netware .\perlnw5.pod
1372
	$(MAKE) -f ..\win32\pod.mak converters
1373
1374
	cd ..\netware
1375
	$(MINIPERL) $(PL2BAT) $(UTILS)
1376
1377
distclean: clean nwclean
1378
	-del /f /q $(PERLIMPLIB) ..\miniperl.lib $(MINIMOD)
1379
	-del /f /q $(EXTENSION_NPM)
1380
	-del /f /q $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm
1381
	-del /f /q $(EXTDIR)\DynaLoader\dl_netware.xs
1382
	-del /f /q $(EXTDIR)\DynaLoader\dl_win32.xs
1383
	-del /f /q $(EXTDIR)\DynaLoader\DynaLoader.pm
1384
	-del /f /q $(EXTDIR)\DynaLoader\XSLoader.pm
1385
	-del /f /q $(LIBDIR)\.exists $(LIBDIR)\attributes.pm $(LIBDIR)\DynaLoader.pm
1386
	-del /f /q $(LIBDIR)\XSLoader.pm
1387
	-del /f /q $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
1388
	-del /f /q $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm
1389
	-del /f /q $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm
1390
	-del /f /q $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm
1391
	-del /f /q $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm
1392
	-del /f /q $(LIBDIR)\Devel\Peek.pm
1393
	-del /f /q $(LIBDIR)\File\Glob.pm
1394
	-del /f /q $(LIBDIR)\Unicode\Normalize.pm
1395
	-del /f /q $(LIBDIR)\Unicode\Collate.pm
1396
	-rmdir /s /q $(LIBDIR)\IO
1397
	-rmdir /s /q $(LIBDIR)\B
1398
	-rmdir /s /q $(LIBDIR)\Data
1399
	-del /f /q $(PODDIR)\*.html
1400
	-del /f /q $(PODDIR)\*.bat
1401
	cd ..\utils
1402
	-del /f /q h2ph splain perlbug pl2pm c2ph h2xs perldoc
1403
	-del /f /q *.bat
1404
	cd ..\netware
1405
	cd ..\x2p
1406
	-del /f /q find2perl s2p
1407
	-del /f /q *.bat *.exe
1408
	-del /f /q *.obj *.map *.link *.xdc *.err
1409
	cd ..\netware
1410
	-del /f /q ..\config.sh ..\splittree.pl dlutils.c config.h.new
1411
	-del /f /q $(CONFIGPM)
1412
	-del /f /q bin\*.bat
1413
	cd $(EXTDIR)
1414
    -del /s /q /f *.lib *.def *.map *.pdb *.bs Makefile *$(o) pm_to_blib *.xdc *.err *.obj *.sym
1415
	cd ..\netware
1416
!if "$(NW_EXTNS)"=="yes"
1417
	cd cgi2perl
1418
	-del /f /q *.obj *.bs Makefile *$(o) *.c pm_to_blib *.xdc *.err *.sym *.map *.def *.lib *.pdb
1419
	cd ..
1420
	cd Perl2UCS
1421
	-del /f /q *.obj *.bs Makefile *$(o) *.c pm_to_blib *.xdc *.err *.sym *.map *.def *.lib *.pdb
1422
	cd ..\..\netware
1423
	cd UCSExt
1424
	-del /f /q *.obj *.bs Makefile *$(o) *.c pm_to_blib *.xdc *.err *.sym *.map *.c
1425
	cd ..\..\netware
1426
!endif
1427
	-rmdir /s /q $(AUTODIR)
1428
	-rmdir /s /q $(COREDIR)
1429
	-del /f /q ..\config.sh
1430
1431
installwin:
1432
	$(MINIPERL) -I..\lib ..\installperl
1433
1434
install : utils installwin perlimp
1435
1436
perlimp :
1437
	copy perl.imp $(INST_COREDIR)
1438
1439
installnw:
1440
	$(MINIPERL) -I..\lib ..\installperl -netware
1441
1442
install_tests :
1443
	cd ..\t
1444
	xcopy /f /r /i /s /d *.* $(INST_NW_TOP2)\scripts\t
1445
	cd ..\lib
1446
	xcopy /f /r /i /s /d *.t $(INST_NW_TOP2)\scripts\t\lib
1447
	cd ..\ext
1448
	xcopy /f /r /i /s /d *.t $(INST_NW_TOP2)\scripts\t\ext
1449
	cd ..\netware\t
1450
	xcopy /f /r /i /s /d *.pl $(INST_NW_TOP2)\scripts\t
1451
	cd ..
1452
1453
nwinstall: utils installnw install_tests
1454
1455
inst_lib : $(CONFIGPM)
1456
	copy ..\win32\splittree.pl .. 
1457
	$(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
1458
	$(RCOPY) ..\lib $(INST_LIB)\*.*
1459
1460
clean : 
1461
	-@erase miniperlmain$(o)
1462
	-@erase /f config.h
1463
	-@erase $(DLL_OBJ)
1464
	-@erase ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp *.res
1465
	-@erase ..\t\*.exe ..\t\*.dll ..\t\*.bat
1466
	-@erase ..\x2p\*.nlm ..\x2p\*.bat