2 ## Makefile to build Perl on NetWare using Microsoft NMAKE and CodeWarrior tools
4 ## This will build perl.nlm, perl.lib and extensions called NLMs
8 ## Please read README.netware before starting
12 ## Build configuration. Edit the values below to suit your needs.
15 ## This file is created by using the makefile that creates Windows Perl as the reference
17 ## Date Created: 13th July 2000
18 ## Date Modified: 21st March 2002
30 NW_FLAGS = -DNETWARE -DNLM_PLATFORM -DNETDB_USE_INTERNET
37 !message "Run bat\SetNWBld.bat to set the NetWare SDK before continuing.\n"
39 !endif # !ifndef NLMSDKBASE
41 !ifndef CODEWAR # !ifdef CODEWAR
42 !message "CodeWarrior tools base directory is not defined. Run bat\setnwbld.bat before proceeding"
44 !endif # !ifdef CODEWAR
47 !message "Run bat\buildtype.bat to set the build type before continuing.\n"
49 !endif # !ifndef MAKE_TYPE
52 MPKFLAGS = -DMPK_ON -DIAPX386
53 MPKMESSAGE = MPK Build...
56 !message "Run bat\setmpksdk.bat to set the NetWare MPK SDK before continuing.\n"
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...
65 !endif # !ifdef USE_MPK
68 #!message "Run bat\SetSecSdk.bat to set the Security path before continuing.\n"
70 #!endif # !ifndef SECURITYBASE
73 #!message "Run bat\BldNWExt.bat to set the UCS Include path before continuing.\n"
75 #!endif # !ifndef UCSINC
77 NLMIMPORTS = $(NLMSDKBASE)\imports
80 SECURITY_IMPORTS = $(SECURITYBASE)\imports
81 !endif # !ifdef SECURITYBASE
88 # Here comes the CW tools - TO BE FILLED TO BUILD WITH CW -
89 MODULE_DESC = "Perl 5.32.0 for NetWare"
91 C_COMPILER = mwccnlm -c
92 CPP_COMPILER = mwccnlm
95 NLM_LIB = mwldnlm -type library
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."
109 # Debug flags comes here - Not mandatory - required only for debug build
110 !if "$(MAKE_TYPE)"=="Debug"
112 BLDMESG = Debug version,
114 BS_CFLAGS = -opt off -inline off -sym on -sym codeview4 -sym internal -DDEBUGGING -DDKFBPON
115 BLDMESG = $(BLDMESG) Using /d2 option
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
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"
132 BLDMESG = Release version
133 ##BS_CFLAGS = -opt speed -inline smart -inline auto -sym off
135 !endif # !if "$(MAKE_TYPE)"=="Debug"
138 ADD_LOCDEFS = -DPERL_CORE
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
146 SECURITY_INCLUDE = -I$(SECURITYBASE)\include
147 !endif #!ifdef SECURITYBASE
150 NLM_INCLUDE_UCS = -I$(UCSINC)
151 !endif #!ifndef UCSINC
153 !if "$(NW_EXTNS)"=="yes"
154 INCLUDE_NW = -I.\include
162 NLM_INCLUDE_PATH = $(NLM_INCLUDE) $(NLM_INCLUDE_NLM) $(NLM_INCLUDE_NLM_SYS) $(NLM_INCLUDE_OBSLETE) \
163 $(NLM_INCLUDE_MP) $(TOOL_HEADERS)
166 NLM_INCLUDE_PATH = $(NLM_INCLUDE_PATH) $(SECURITY_INCLUDE)
167 !endif #!ifdef SECURITYBASE
170 NLM_INCLUDE_PATH = $(NLM_INCLUDE_PATH) $(NLM_INCLUDE_UCS)
171 !endif #!ifndef UCSINC
173 INCLUDE = $(INC_THIS) $(INC_PREV) -I- $(NLM_INCLUDE_PATH)
175 PATH = $(PATH);$(TOOL_PATH)
177 NLM_INCLUDES = -I$(COREDIR) $(INCLUDE_NW)
179 CCFLAGS = $(CCFLAGS) $(INCLUDE)
181 COMPLER_FLAGS = $(BS_CFLAGS) $(ADD_BUILDOPT) $(NW_FLAGS) $(COMPILER_FLAG) $(MPKFLAGS) $(CCFLAGS)
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)
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\)
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\)
263 # Symbol base_import & version added for NETWARE
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)" \
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)" \
285 "static_ext=$(STATIC_EXT)" \
286 "dynamic_ext=$(DYNAMIC_EXT)" \
287 "nonxs_ext=$(NONXS_EXT)" \
288 "useithreads=$(USE_ITHREADS)" \
289 "usemultiplicity=$(USE_MULTI)" \
291 "base_import=$(BASE_IMPORT_FILES)" \
292 "LINK_FLAGS=$(LINK_FLAGS:"=\")" \
294 "d_stdio_cnt_lval=undef" \
295 "d_stdio_ptr_lval=undef" \
296 "d_stdiobase=undef" \
300 "nlm_version=$(NLM_VERSION)" \
301 "d_archname=NetWare" \
302 "mpktool=$(MPKTOOL) $(XDCFLAGS)" \
303 "toolpath=$(TOOL_PATH)"
306 NW_CFGSH_TMPL = config.wc
307 NW_CFGH_TMPL = config_H.wc
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
353 $(UNICODENORMALIZE_NLM) \
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
361 CGI2PERL_NLM = \CGI2Perl\CGI2Perl.NLM
362 PERL2UCS_NLM = $(AUTODIR)\Perl2UCS\Perl2UCS.NLM
363 UCSExt_NLM = $(AUTODIR)\UCSExt\UCSExt.NLM
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
388 !ifndef NLM_DESCRIPTION
389 NLM_DESCRIPTION = $(NLM_NAME8) for NetWare
401 BUILT = $(BLDDIR)\$(NLM_NAME8).$(NLM_EXT)
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
410 BASE_IMPORT_FILES = $(BASE_IMPORT_FILES), @$(SECURITY_IMPORTS)\nwsec.imp
411 !endif # !ifdef SECURITYBASE
414 BASE_IMPORT_FILES = $(BASE_IMPORT_FILES), @$(MPKBASE)\import\mpkorg.imp
417 !ifndef BASE_IMPORT_FNS
418 BASE_IMPORT_FNS = Import ImportSymbol, GetSystemConsoleScreen, LoadModule
425 !else # !ifdef CODEWAR
426 !error Please define the tools base directory before proceeding
427 !endif # !ifdef CODEWAR
429 !ifndef BASE_LIBRARIES
431 BASE_LIBRARIES = Library plib3s.lib, math3s.lib, clib3s.lib
432 !endif # !ifdef WATCOM
435 !endif # !ifdef CODEWAR
436 !endif # !ifndef BASE_LIBRARIES
439 COPYRIGHT = Copyright (C) 2000-01, 2002 Novell, Inc. All Rights Reserved.
441 EXPORTS = Export @perl.imp
444 # Set these to wherever you want "nmake install" to put your
448 INST_TOP = $(INST_DRV)\perl
452 INST_NW_TOP1 = $(INST_NW_VOL)\perl
453 INST_NW_TOP2 = $(INST_NW_DRV)\perl
454 #INST_NW_VER = \5.6.1
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.
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.
476 INST_ARCH = \$(ARCHNAME)
479 # uncomment to enable multiple interpreters. This is need for fork()
486 # Beginnings of interpreter cloning/threads; still very incomplete.
487 # This should be enabled to get the fork() emulation. This needs
490 USE_ITHREADS = define
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
499 # uncomment this to enable the experimental PerlIO I/O subsystem
500 # else USE_STDIO will be defined.
504 # For now let this be here
506 #CRYPT_SRC = fcrypt.c
508 # For now let this be here
510 #CRYPT_LIB = fcrypt.lib
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.
519 #PERL_MALLOC = define
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)
528 ## Build configuration ends.
531 ##################### CHANGE THESE ONLY IF YOU MUST #####################
533 !IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
537 CRYPT_FLAG = -DHAVE_DES_FCRYPT
540 !IF "$(PERL_MALLOC)" == ""
544 !IF "$(USE_IMP_SYS)" == "define"
548 !IF "$(USE_MULTI)" == ""
552 !IF "$(USE_ITHREADS)" == ""
556 !IF "$(USE_IMP_SYS)" == ""
560 !IF "$(USE_PERLCRT)" == ""
564 !IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef"
568 !IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
572 !IF "$(USE_MULTI)" != "undef"
573 BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
576 !IF "$(USE_IMP_SYS)" != "undef"
577 BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_SYS
580 !IF "$(PROCESSOR_ARCHITECTURE)" == ""
581 PROCESSOR_ARCHITECTURE = x86
584 !IF "$(USE_MULTI)" == "define"
585 ARCHNAME = NetWare-$(PROCESSOR_ARCHITECTURE)-multi
587 ARCHNAME = NetWare-$(PROCESSOR_ARCHITECTURE)
590 !IF "$(USE_MULTI)" != "undef"
591 ADD_BUILDOPT = $(ADD_BUILDOPT) -DPERL_IMPLICIT_CONTEXT
594 !IF "$(USE_IMP_SYS)" != "undef"
595 ADD_BUILDOPT = $(ADD_BUILDOPT) -DPERL_IMPLICIT_SYS
598 !IF "$(USE_ITHREADS)" == "define"
599 ARCHNAME = $(ARCHNAME)-thread
602 !IF "$(USE_PERLIO)" == "define"
604 ADD_BUILDOPT = $(ADD_BUILDOPT) -DUSE_PERLIO
605 ARCHNAME = $(ARCHNAME)-perlio
608 #ADD_BUILDOPT = $(ADD_BUILDOPT) -DUSE_STDIO
612 ARCHDIR = ..\lib\$(ARCHNAME)
613 COREDIR = ..\lib\CORE
614 AUTODIR = ..\lib\auto
618 EXTUTILSDIR = $(LIBDIR)\ExtUtils
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
637 #################### do not edit below this line #######################
638 ############# NO USER-SERVICEABLE PARTS BEYOND THIS POINT ##############
646 .SUFFIXES : .c $(o) .nlm .lib .NLM
651 PERLIMPLIB = ..\perl.lib
653 MINIPERL = ..\miniperl.exe
654 CONFIGPM = ..\lib\Config.pm
655 MINIMOD = ..\lib\ExtUtils\Miniperl.pm
657 PL2BAT = ..\win32\bin\pl2bat.pl
674 #NMAKE = $(C_COMPILER) $(INCLUDE) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).c -o $@
676 XCOPY = xcopy /f /r /i /d
677 RCOPY = xcopy /f /r /i /e /d
682 # filenames given to xsubpp must have forward slashes (since it puts
683 # full pathnames in #line strings)
684 XSUBPP = ..\$(MINIPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp -C++ -prototypes
725 #EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
727 !IF "$(PERL_MALLOC)" == "define"
728 EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c
731 #EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c
733 !IF "$(CRYPT_SRC)" != ""
734 NW_SRC = $(NW_SRC) .\$(CRYPT_SRC)
737 DLL_SRC = $(DYNALOADER).c
774 CORE_H = $(CORE_NOCFG_H) .\config.h
776 DLL_OBJ = $(DLL_SRC:.c=.obj)
778 DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
779 Data/Dumper Devel/Peek ByteLoader File/Glob \
780 Storable/Storable List/Util MIME/Base64/Base64 XS/APItest/APItest \
781 XS/Typemap/Typemap Unicode/Collate/Collate Unicode/Normalize/Normalize Sys/Hostname
783 STATIC_EXT = DynaLoader
786 DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader
787 SOCKET = $(EXTDIR)\Socket\Socket
788 FCNTL = $(EXTDIR)\Fcntl\Fcntl
789 OPCODE = $(EXTDIR)\Opcode\Opcode
790 SDBM_FILE = $(EXTDIR)\SDBM_File\SDBM_File
792 POSIX = $(EXTDIR)\POSIX\POSIX
793 ATTRIBUTES = $(EXTDIR)\attributes\attributes
796 DUMPER = $(EXTDIR)\Data\Dumper\Dumper
797 ERRNO = $(EXTDIR)\Errno\Errno
798 PEEK = $(EXTDIR)\Devel\Peek\Peek
799 BYTELOADER = $(EXTDIR)\ByteLoader\ByteLoader
800 GLOB = $(EXTDIR)\File\Glob\Glob
801 HOSTNAME = $(EXTDIR)\Sys\Hostname\Hostname
802 CWD = $(EXTDIR)\Cwd\Cwd
803 STORABLE = $(EXTDIR)\Storable\Storable
804 LISTUTIL = $(EXTDIR)\List\Util
805 MIMEBASE64 = $(EXTDIR)\MIME\Base64\Base64
806 XSAPITEST = $(EXTDIR)\XS\APItest\APItest
807 XSTYPEMAP = $(EXTDIR)\XS\Typemap\Typemap
808 UNICODENORMALIZE = $(EXTDIR)\Unicode\Normalize\Normalize
809 UNICODECOLLATE = $(EXTDIR)\Unicode\Collate\Collate
811 ERRNO_PM_NW = $(LIBDIR)\Errno.pm
834 $(UNICODENORMALIZE).c \
839 POD2HTML = $(PODDIR)\pod2html
840 POD2MAN = $(PODDIR)\pod2man
841 POD2TEXT = $(PODDIR)\pod2text
847 all : .cleanoldfiles .\nwconfig.h $(CONFIGPM) $(NLM_NAME) $(EXTENSION_NLM) $(EXTENSION_NPM) $(TEST_NLMS) $(NETWARE_EXTNS)
849 #------------------------------------------------------------
851 ..\config.sh : config.nw5 $(MINIPERL) config_sh.PL
852 $(MINIPERL) -I..\lib config_sh.PL $(NW_CFG_VARS) config.nw5 > ..\config.sh
854 # this target is for when changes to the main config.sh happen
855 # edit config.wc and make this target
857 perl config_sh.PL $(NW_CFG_VARS) $(NW_CFGSH_TMPL) > ..\config.sh
862 -del /f /q $(NW_CFGH_TMPL)
864 -perl -I..\lib config_h.PL "INST_VER=$(INST_VER)"
865 rename config.h $(NW_CFGH_TMPL)
867 $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
868 cd .. && miniperl configpm
869 if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
870 $(XCOPY) ..\*.h $(COREDIR)\*.*
871 $(XCOPY) *.h $(COREDIR)\*.*
872 $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
873 if exist include\* $(RCOPY) include $(COREDIR)\*.*
874 $(MINIPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)" \
875 || $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
879 $(error)Please build $(MINIPERL) before continuing
881 $(MINIMOD) : $(MINIPERL) ..\minimod.pl
882 cd .. && miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
884 $(EXTDIR)\DynaLoader\dl_netware.xs: dl_netware.xs
885 copy dl_netware.xs $(EXTDIR)\DynaLoader\dl_netware.xs
888 @echo . . . . making stdio.h and string.h
889 @copy << stdio.h >\nul
892 * Copyright (C) 2000-01 Novell, Inc. All Rights Reserved.
894 * You may distribute under the terms of either the GNU General Public
895 * License or the Artistic License, as specified in the README file.
901 * DESCRIPTION : Generated header file, do not edit. See makefile.
902 * This header file causes the includer to use clibstuf.h
903 * The purpose of clibstuf is to make sure that Perl, cgi2perl and
904 * all the perl extension nlm's (*.NLM) use the Novell Netware CLIB versions
905 * of standard functions. This code loads up a whole bunch of function pointers
906 * to point at the standard CLIB functions.
908 * Date : January 2001.
917 #include "$(NLMSDKBASE)\INCLUDE\NLM\stdio.h"
918 #include "clibsdio.h"
921 #endif // __Stdio_H__
924 @copy stdio.h $(COREDIR)
926 @copy << string.h >\nul
929 * Copyright (C) 2000-01 Novell, Inc. All Rights Reserved.
931 * You may distribute under the terms of either the GNU General Public
932 * License or the Artistic License, as specified in the README file.
937 * FILENAME : string.h
938 * DESCRIPTION : Generated header file, do not edit. See makefile.
939 * This header file causes the includer to use clibstuf.h
940 * The purpose of clibstuf is to make sure that Perl, cgi2perl and
941 * all the perl extension nlm's (*.NLM) use the Novell Netware CLIB versions
942 * of standard functions. This code loads up a whole bunch of function pointers
943 * to point at the standard CLIB functions.
945 * Date : January 2001.
954 #include "$(NLMSDKBASE)\INCLUDE\NLM\string.h"
958 #endif // __String_H__
961 @copy string.h $(COREDIR)
964 $(NLM_NAME): MESSAGE HEADERS $(BLDDIR)\nul $(NLM_OBJ) $(NEWTARE_OBJ_DEP) $(NEWTARE_CPP_OBJ_DEP) $(PERL_IO_OBJ_DEP) $(DLL_OBJ) \
965 $(PERLIMPLIB) $(EXT_MAIN_OBJ) $(PERL_TEMP_OBJ) #$(PERL_LIB_OBJ)
966 @echo======= Linking $@ at $(MAKEDIR)\$(BLDDIR) =======
967 # Linker definitions and lining come here for CODEWARRIOR
968 @echo $(BASE_IMPORT_FILES) > $*.def
969 @echo MODULE clib >> $*.def
970 @echo MODULE netdb >> $*.def
972 @echo MODULE nwsec >> $*.def
973 !endif #!ifdef SECURITYBASE
974 @echo $(EXPORTS) >> $*.def
976 @echo======= Creating XDC file
977 @echo Import Mp.imp >> $*.def
979 $(MPKTOOL) $(XDCFLAGS) $(BLDDIR)\$(NLM_NAME8).xdc
980 @echo xdcdata $(BLDDIR)\$(NLM_NAME8).xdc >> $*.def
982 $(MPKTOOL) $(XDCFLAGS) $(BLDDIR)\$(NLM_NAME).xdc
983 @echo xdcdata $(BLDDIR)\$(NLM_NAME).xdc >> $*.def
986 ## $(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)\$@
987 $(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)\$@
989 $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
990 @echo ========Linked $@ ==========
992 @echo======= Finished building $(BUILT).
994 # Create the debug or release directory if not existing
996 @echo . . . . mkdir $(BLDDIR)
998 @echo '$(BLDDIR)' directory created.
1001 @echo======= $(MAKE_ACTION)ing $(NLM_NAME) at $(MAKEDIR)\$(BLDDIR) =======
1003 $(PERLIMPLIB): perllib.imp
1004 # @echo Building $(PERLIMPLIB)...
1005 # $(LD) -type library $(NLM_OBJ) $(BLDDIR)\nw5.obj $(BLDDIR)\nwmain.obj $(BLDDIR)\nw5thread.obj $(BLDDIR)\nwtinfo.obj \
1006 # $(BLDDIR)\nwutil.obj $(BLDDIR)\interface.obj $(BLDDIR)\perllib.obj $(PERL_IO_OBJ_DEP) $(DLL_OBJ) -o $@
1007 # $(XCOPY) $(PERLIMPLIB) $(COREDIR)
1008 # @echo $(PERLIMPLIB) Done
1010 perllib.imp : $(MINIPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl
1011 # $(MINIPERL) -w ..\makedef.pl PLATFORM=netware FILETYPE=def $(ADD_BUILDOPT) \
1012 # CCTYPE=$(CCTYPE) TARG_DIR=..\ > perllib.def
1013 @echo (Perl) > perl.imp
1014 $(MINIPERL) -w ..\makedef.pl PLATFORM=netware FILETYPE=imp $(BS_CFLAGS) $(DEFINES) $(ADD_BUILDOPT) \
1015 CCTYPE=$(CCTYPE) TARG_DIR=..\ >> perl.imp
1016 copy perl.imp $(COREDIR)
1018 $(DLL_OBJ) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
1019 @echo $(MPKMESSAGE)...$(BLDMESG)...$@
1020 @$(C_COMPILER) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) -I$(EXTDIR)\DynaLoader \
1021 $(EXTDIR)\DynaLoader\$(*F).c -o $@
1024 $(DYNALOADER).c : $(MINIPERL) $(EXTDIR)\DynaLoader\dl_netware.xs $(CONFIGPM)
1025 if not exist $(AUTODIR) mkdir $(AUTODIR)
1027 ..\$(MINIPERL) -I..\..\lib $(*B)_pm.PL
1028 ..\$(MINIPERL) -I..\..\lib XSLoader_pm.PL
1030 $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL)
1031 $(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL)
1033 $(XSUBPP) dl_netware.xs > $(*B).c
1035 @echo Dynaloader Done
1038 $(PERL_IO_OBJ_DEP) : ..\$(*F).c
1039 @echo $(MPKMESSAGE) $(BLDMESG) $@
1040 $(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) ..\$(*F).c -o $@
1043 $(NLM_OBJ) : ..\$(*F).c
1044 @echo $(MPKMESSAGE) $(BLDMESG) $@
1045 $(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) ..\$(*F).c -o $@
1049 $(NEWTARE_OBJ_DEP) : $(NW_H_FILES) $(NW_HOST_H_FILES) $(*F).c
1050 @echo $(MPKMESSAGE) $(BLDMESG) $@
1051 $(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).c -o $@
1054 $(NEWTARE_CPP_OBJ_DEP) : $(NW_H_FILES) $(NW_HOST_H_FILES) $(*F).cpp
1055 @echo $(MPKMESSAGE) $(BLDMESG) $@
1056 $(C_COMPILER) $(CWCPPFLAGS) $(COMPLER_FLAGS) $(NLM_INCLUDES) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).cpp -o $@
1059 $(EXT_MAIN_OBJ) : $(CLIB_H_FILES)
1060 @echo $(MPKMESSAGE) $(BLDMESG) $@
1061 $(C_COMPILER) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).c -o $@
1062 $(LD) -type library $@ -o $*.lib
1063 @copy $*.lib $(COREDIR)
1065 # Delete any files that might have got created during building miniperl.exe
1066 # config.sh will definitely be created
1067 # COREDIR might have got created
1069 -del /f /q $(PERLIMPLIB)
1070 -del /f /q ..\lib\config.pm
1071 -del /f /q ..\config.sh
1072 -del /f /q .\Main.obj
1073 -del /f /q .\Main.lib
1074 -rmdir /s /q $(AUTODIR)
1075 -rmdir /s /q $(COREDIR)
1076 -del /f /q ..\lib\core
1078 .\nwconfig.h : $(NW_CFGH_TMPL)
1079 @if exist .\config.h del /f /q .\config.h
1080 copy $(NW_CFGH_TMPL) config.h
1082 # REQUIRED WHEN WE INCLUDE CONFIGPM OR REGEN_CONFIG - sgp
1083 #..\nwconfig.sh : config.nw5 $(MINIPERL) config_sh.PL
1084 # $(MINIPERL) -I..\lib config_sh.PL $(NW_CFG_VARS) config.nw5 > ..\config.sh
1087 # del /f /q config.sh
1088 # rename nwconfig.sh config.sh
1091 config.nw5 : $(NW_CFGSH_TMPL)
1092 copy $(NW_CFGSH_TMPL) config.nw5
1094 $(SOCKET_NLM): $(NLM_NAME) $(SOCKET).xs
1096 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1100 $(HOSTNAME_NLM): $(NLM_NAME) $(HOSTNAME).xs
1101 cd $(EXTDIR)\Sys\$(*B)
1102 ..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1108 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1114 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1120 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1126 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1131 cd $(EXTDIR)\Data\$(*B)
1132 ..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1137 cd $(EXTDIR)\Devel\$(*B)
1138 ..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1144 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1150 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1155 cd $(EXTDIR)\File\$(*B)
1156 ..\..\..\miniperl -I..\..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1162 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1168 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1174 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1180 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1186 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1191 cd $(EXTDIR)\List\$(*B)
1192 ..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1197 cd $(EXTDIR)\Mime\$(*B)
1198 ..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1203 cd $(EXTDIR)\XS\$(*B)
1204 ..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1209 cd $(EXTDIR)\XS\$(*B)
1210 ..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1214 $(UNICODENORMALIZE_NLM):
1215 cd $(EXTDIR)\Unicode\$(*B)
1216 ..\..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1224 ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
1228 $(ECHO_SRC_OBJ): $*.c
1229 @echo $(MPKMESSAGE) $(BLDMESG) $@
1230 $(C_COMPILER) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
1233 $(ECHO_NLM): $(ECHO_SRC_OBJ)
1234 @echo======= Linking $@ =======
1235 # Linker definitions and lining come here for CODEWARRIOR
1236 @echo $(BASE_IMPORT_FILES) > $*.def
1237 @echo MODULE clib >> $*.def
1238 @echo Import @perl.imp >> $*.def
1240 $(MPKTOOL) $(XDCFLAGS) $*.xdc
1241 @echo Import @MP.imp >> $*.def
1242 @echo xdcdata $*.xdc >> $*.def
1244 ## $(LINK) $(LDFLAGS) $(BS_CFLAGS) -desc "DOS Echo emulation for Perl testing" $(ECHO_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1245 $(LINK) $(LDFLAGS) -desc "DOS Echo emulation for Perl testing" $(ECHO_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1246 @echo======= Linking Complete =======
1248 $(TYPE_SRC_OBJ): $*.c
1249 @echo $(MPKMESSAGE) $(BLDMESG) $@
1250 $(C_COMPILER) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
1253 $(TYPE_NLM): $(TYPE_SRC_OBJ)
1254 @echo======= Linking $@ =======
1255 # Linker definitions and lining come here for CODEWARRIOR
1256 @echo $(BASE_IMPORT_FILES) > $*.def
1257 @echo MODULE clib >> $*.def
1258 @echo Import @perl.imp >> $*.def
1260 $(MPKTOOL) $(XDCFLAGS) $*.xdc
1261 @echo Import @MP.imp >> $*.def
1262 @echo xdcdata $*.xdc >> $*.def
1264 ## $(LINK) $(LDFLAGS) $(BS_CFLAGS) -desc "DOS Type emulation for Perl testing" $(TYPE_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1265 $(LINK) $(LDFLAGS) -desc "DOS Type emulation for Perl testing" $(TYPE_SRC_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@
1266 @echo======= Linking Complete =======
1269 # Build NetWare specific extensions
1271 !if "$(NW_EXTNS)"=="yes"
1273 ..\..\miniperl -I..\..\lib Makefile.PL "CCCDLFLAGS=-bool on -lang c++" PERL_CORE=1 INSTALLDIRS=perl
1279 !if "$(NW_EXTNS)"=="yes"
1281 ..\..\miniperl -I..\..\lib Makefile.PL "CCCDLFLAGS=-bool on -lang c++" PERL_CORE=1 INSTALLDIRS=perl
1287 !if "$(NW_EXTNS)"=="yes"
1289 ..\..\miniperl -I..\..\lib Makefile.PL "CCCDLFLAGS=-bool on -lang c++" PERL_CORE=1 INSTALLDIRS=perl
1295 -rmdir /s /q $(REL_DIR)
1296 -rmdir /s /q $(DEB_DIR)
1297 @if exist .\stdio.h del /f /q .\stdio.h
1298 @if exist .\string.h del /f /q .\string.h
1299 @if exist .\config.h del /f /q .\config.h
1300 @if exist .\config.nw5 del /f /q .\config.nw5
1301 @if exist .\perl.imp del /f /q .\perl.imp
1302 -del /f /q *.obj *.lib *.def *.sym *.map *.xdc *.err *.nlm
1304 -del /f /q *.obj *.map *.link *.options *.nlm *.sym *.xdc *.err *.lib *.def *.pdb *.bs
1306 -del /f /q *.obj *.map *.link *.options *.nlm *.sym *.xdc *.err *.lib *.def *.pdb *.bs
1309 utils: $(BLDDIR)\$(NLM_NAME8).$(NLM_EXT)
1311 $(MAKE) PERL=$(MINIPERL)
1313 copy ..\README.amiga .\perlamiga.pod
1314 copy ..\README.cygwin .\perlcygwin.pod
1315 copy ..\README.dos .\perldos.pod
1316 copy ..\README.hpux .\perlhpux.pod
1317 copy ..\README.os2 .\perlos2.pod
1318 copy ..\vms\perlvms.pod .\perlvms.pod
1319 copy ..\README.win32 .\perlwin32.pod
1320 copy ..\README.netware .\perlnw5.pod
1321 $(MAKE) -f ..\win32\pod.mak converters
1324 $(MINIPERL) $(PL2BAT) $(UTILS)
1326 distclean: clean nwclean
1327 -del /f /q $(PERLIMPLIB) ..\miniperl.lib $(MINIMOD)
1328 -del /f /q $(EXTENSION_NPM)
1329 -del /f /q $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm
1330 -del /f /q $(EXTDIR)\DynaLoader\dl_netware.xs
1331 -del /f /q $(EXTDIR)\DynaLoader\dl_win32.xs
1332 -del /f /q $(EXTDIR)\DynaLoader\DynaLoader.pm
1333 -del /f /q $(EXTDIR)\DynaLoader\XSLoader.pm
1334 -del /f /q $(LIBDIR)\.exists $(LIBDIR)\attributes.pm $(LIBDIR)\DynaLoader.pm
1335 -del /f /q $(LIBDIR)\XSLoader.pm
1336 -del /f /q $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
1337 -del /f /q $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm
1338 -del /f /q $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm
1339 -del /f /q $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm
1340 -del /f /q $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm
1341 -del /f /q $(LIBDIR)\Devel\Peek.pm
1342 -del /f /q $(LIBDIR)\File\Glob.pm
1343 -del /f /q $(LIBDIR)\Unicode\Normalize.pm
1344 -del /f /q $(LIBDIR)\Unicode\Collate.pm
1345 -rmdir /s /q $(LIBDIR)\IO
1346 -rmdir /s /q $(LIBDIR)\B
1347 -rmdir /s /q $(LIBDIR)\Data
1348 -del /f /q $(PODDIR)\*.html
1349 -del /f /q $(PODDIR)\*.bat
1351 -del /f /q h2ph splain perlbug pl2pm h2xs perldoc
1354 -del /f /q ..\config.sh ..\splittree.pl dlutils.c config.h.new
1355 -del /f /q $(CONFIGPM)
1356 -del /f /q bin\*.bat
1358 -del /s /q /f *.lib *.def *.map *.pdb *.bs Makefile *$(o) pm_to_blib *.xdc *.err *.obj *.sym
1360 !if "$(NW_EXTNS)"=="yes"
1362 -del /f /q *.obj *.bs Makefile *$(o) *.c pm_to_blib *.xdc *.err *.sym *.map *.def *.lib *.pdb
1365 -del /f /q *.obj *.bs Makefile *$(o) *.c pm_to_blib *.xdc *.err *.sym *.map *.def *.lib *.pdb
1368 -del /f /q *.obj *.bs Makefile *$(o) *.c pm_to_blib *.xdc *.err *.sym *.map *.c
1371 -rmdir /s /q $(AUTODIR)
1372 -rmdir /s /q $(COREDIR)
1373 -del /f /q ..\config.sh
1376 $(MINIPERL) -I..\lib ..\installperl
1378 install : utils installwin perlimp
1381 copy perl.imp $(INST_COREDIR)
1384 $(MINIPERL) -I..\lib ..\installperl -netware
1388 xcopy /f /r /i /s /d *.* $(INST_NW_TOP2)\scripts\t
1390 xcopy /f /r /i /s /d *.t $(INST_NW_TOP2)\scripts\t\lib
1392 xcopy /f /r /i /s /d *.t $(INST_NW_TOP2)\scripts\t\ext
1394 xcopy /f /r /i /s /d *.pl $(INST_NW_TOP2)\scripts\t
1397 nwinstall: utils installnw install_tests
1399 inst_lib : $(CONFIGPM)
1400 copy ..\win32\splittree.pl ..
1401 $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
1402 $(RCOPY) ..\lib $(INST_LIB)\*.*
1405 -@erase miniperlmain$(o)
1408 -@erase ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp *.res
1409 -@erase ..\t\*.exe ..\t\*.dll ..\t\*.bat