! MAKEFILE for VMS C-Kermit 5A (WERMIT) and labeled file decoder (CKVCVT) ! ! Written by Terry Kennedy (tmk), TERRY@SPCVXA.SPC.EDU, ! Saint Peters College, Jersey City, NJ, USA, ! 13-Apr-1991 ! ! To be used with the "make" program for VAX/VMS written by Todd Aven, the ! Software Sweatshop, 564 Laurelton Blvd, Long Beach, NY 11561. ! Rename this file to "MAKEFILE." and then simply type "make" to build ! C-Kermit. The result will be a file, WERMIT.EXE, which you can run by ! typing "run wermit", and which you can rename to KERMIT.EXE or CKERMIT.EXE ! and install in SYS:. See CKVINS.DOC for further instructions. ! ! Revision history: ! ! 13-Apr-1991 - tmk - Original version ! 21-Jun-1991 - tmk - Make sure executables are properly accessible ! 05-Nov-1991 - fdc - Add ckuus7.c source module ! 19-Jun-1992 - jrs - (James Sturdevant ) Add WIN/TCP ! 29-Jun-1992 - fdc - Add CURSES (SMG) support ! 02-Jul-1992 - jrs - Fix WIN/TCP support ! 04-Jul-1992 - tmk - Don't need VAXCCURSE library any more. ! 12-Jul-1992 - tmk - Add localopts. ! 23-Aug-1992 - fdc - Add KANJI support. ! 13-Oct-1992 - jrs - Add changes from Lee Tibbert for Alpha and DEC TCP/IP ! 13-Oct-1992 - fdc - Add ckvioc.[ch] to DEC TCP/IP build ! 07-Dec-1992 - fdc - Remove /list compiler switch ! 26-May-1993 - jrs - Add GCC and TCPware support ! ! Read CKVINS.DOC for instructions. ! ! SITE DEPENDENCIES - ! ! Some site options you might want to add: ! NOPUSH - Disallow access to DCL from within Kermit. ! NODEBUG - Remove all debugging code to make C-Kermit smaller and faster. ! ! The following site options are used in this file as distributed: ! DYNAMIC - Allocate packet and other buffers dynamically. ! NOJC - Omit Job-Control related code. ! NOSETBUF - Don't make console i/o unbuffered. ! CK_CURSES - Include fullscreen file transfer display. ! KANJI - Include Kanji file transfer translation. ! IFDEBUG - Avoid calls to debug() if debugging not on: faster execution ! but bigger .EXE file. If you don't need debugging, replace ! this by NODEBUG. ! wermit.olb(*): *.c call 'hw_arch'_cc $* siteopts = /define=("DYNAMIC", "NOJC", "NOSETBUF", "CK_CURSES", "KANJI", \ "IFDEBUG", "''net_option'", "''cc_ver'", "''vms_ver'") ! ! Compiler and linker options ! link_switches = /map/full/sym library_switches = /replace !cc_switches = /nodebug/optimize cc_switches = /debug/optimize ! unconditional_relink = makefile. ! ! Uncomment the next line to force unconditional relinking ! ! unconditional_relink = dummy_target ! ! Define the master target list - these can be rebuilt on any system that ! has VAX C. ! all : wermit \ ckvcvt ! gkermit : check_stuff \ wermit_start \ gnu_setup \ gkermit.exe write sys$output "Done rebuilding GKERMIT" ! wermit : check_stuff \ wermit_start \ wermit.exe write sys$output "Done rebuilding WERMIT" ! ckvcvt : check_stuff \ ckvcvt_start \ ckvcvt.exe write sys$output "Done rebuilding CKVCVT" ! gnu_setup : hw_arch := "GNU" ! ! And here are the individual targets ! check_stuff : hw_arch := "VAX" ! Assume VAX if (f$getsyi("CPU") .eq. 128) ! 128 means "not a VAX" then hw_arch := "''f$getsyi("Arch_Name")'" if ("''hw_arch'" .nes. "Alpha") then if (f$locate("ALPHA", f$edit("''hw_arch'","UPCASE")) - .lt. f$length("''hw_arch'")) then hw_arch := "Alpha" ! Treat as Alpha AXP else write sys$output "Unknown hardware architecture ''hw_arch'" exit %x10000004 endif ! Unknown endif ! String not "Alpha" endif ! Not VAX cc_ver = "VAXC023" if f$search("sys$library:fscndef.h") .nes. "" then cc_ver = "VAXC024" if f$search("sys$library:ppl$routines.h") .nes. "" then cc_ver = "VAXC030" if f$search("sys$library:xabrudef.h") .nes. "" then cc_ver = "VAXC031" sys_ver = f$edit(f$getsyi("version"),"compress") if f$extract(0,1,sys_ver) .nes. "V" then type sys$input You appear to be running a Field Test version of VMS. This script will $ assume that the operating system version is at least V5.0. $ $ sys_ver = "V5.0" endif sys_maj = 0+f$extract(1,1,sys_ver) sys_min = 0+f$extract(3,1,sys_ver) if sys_maj .lt. 5 then if (sys_min/2)*2 .ne. sys_min then \ sys_min = sys_min - 1 vms_ver = "VMS_V''sys_maj'''sys_min'" if ("''net_option'" .eqs. "") then net_option = "NONET" library_dir = "SYS$LIBRARY" if f$search("SYS$LIBRARY:UCX$IPC.OLB") .nes. "" then net_option = "DEC_TCPIP" endif if f$search("TCPWARE:UCX$IPC.OLB") .nes. "" then net_option = "TCPWARE" library_dir = "TCPWARE" endif if f$search("multinet:multinet_socket_library.exe") .nes. "" then \ net_option = "MULTINET" if f$search("TWG$COMMON:[NETDIST.LIB]TWGLIB.OLB") .nes. "" then net_option = "WINTCP" define /nolog vaxc$include twg$tcp:[netdist.include],sys$library define /nolog sys twg$tcp:[netdist.include.sys] endif if f$search("multinet:multinet_socket_library.exe") .nes. "" then \ net_option = "MULTINET" endif !net_option if net_option .eqs. "NONET" then net_name = "no" if net_option .eqs. "MULTINET" then net_name = "MultiNet" if net_option .eqs. "WINTCP" then net_name = "WIN/TCP" if net_option .eqs. "DEC_TCPIP" then \ net_name = "DEC TCP/IP Services for OpenVMS(tm)" if net_option .eqs. "TCPWARE" then net_name = "Process Software TCPware" net_option = "DEC_TCPIP" endif if sys_maj .lt. 5 then write sys$output "You are running VMS V''sys_ver'." type sys$input VMS C-Kermit has not been verified to build properly under this version, $ although pre-built versions will run properly. Please exercise caution $ until you have verified proper operation. $ $ endif if cc_ver .nes. "VAXC031" then type sys$input Your system has an older version of the VAX C compiler. VMS C-Kermit was $ designed to be compiled under VAX C V3.1 or newer. It has not been ver- $ ified to build properly under this version, although pre-built versions $ will run properly. Please exercise caution until you have verified proper $ operation. $ $ endif VAX_CC: Subroutine On Control_Y Then $exit %x10000004 On Warning Then $exit $status write sys$output " Compiling ''P1' at ''f$time()" cc$(cc_switches)$(siteopts)/obj='P1'.obj 'localopts' 'P1'.c library$(library_switches) wermit.olb 'P1'.obj delete 'P1'.obj.* exit EndSubroutine !VAX_CC GNU_CC: Subroutine On Control_Y Then $exit %x10000004 On Warning Then $exit $status write sys$output " Compiling ''P1' at ''f$time()" gcc/optimize$(siteopts)/obj='P1'.obj 'P1'.c library$(library_switches) wermit.olb 'P1'.obj delete 'P1'.obj.* exit EndSubroutine !VAX_CC AXP_CC: Subroutine On Control_Y Then $exit %x10000004 On Warning Then $exit $status write sys$output " Compiling ''P1' at ''f$time()" cc/'debug'/standard='lint_standard'/'optimize' - /define=("DEBUG", "TLOG", "DYNAMIC", "CK_CURSES", "IFDEBUG", "KANJI", - "''net_option'", "''cc_ver'", "''vms_ver'") 'P1' exit EndSubroutine !AXP_CC axp_cc := "DECC_AXP" ! LT personal value, not DEC value if (hw_arch .eqs. "Alpha") then cc_ver = "''axp_cc'" !debug := nodebug debug := debug Link_Debug := nodebug ! optimize := optimize=level=0 ! level=0 means NoOptimize optimize := optimize=level=4 ! level=4 means greatest optimization !lint_standard := ANSI89 lint_standard := VAXC ! Evil living is its own retribution.... ! wermit_start : write sys$output "Rebuilding WERMIT with ''net_name' network support" if f$type(localopts) .eqs. "" then localopts = "" ! ckvcvt_start : write sys$output "Rebuilding CKVCVT" ! dummy_target : write sys$output "" ! germit.olb : if f$search("germit.olb") .eqs. "" then libr/create/object germit.olb ! wermit.olb : if f$search("wermit.olb") .eqs. "" then libr/create/object wermit.olb ! wermit.exe : wermit.olb(ckvioc) wermit.olb(ckcfn2) \ wermit.olb(ckcfn3) wermit.olb(ckcfns) wermit.olb(ckcmai) \ wermit.olb(ckcpro) wermit.olb(ckucmd) wermit.olb(ckudia) \ wermit.olb(ckuscr) wermit.olb(ckuus2) wermit.olb(ckuus3) \ wermit.olb(ckuus4) wermit.olb(ckuus5) wermit.olb(ckuus6) \ wermit.olb(ckuus7) wermit.olb(ckuusr) wermit.olb(ckuusx) \ wermit.olb(ckuusy) wermit.olb(ckcnet) wermit.olb(ckvfio) \ wermit.olb(ckvtio) wermit.olb(ckuxla) wermit.olb(ckvcon) \ $(unconditional_relink) write sys$output " Linking WERMIT at ''f$time()" if (hw_arch .eqs. "Alpha") then link/'link_debug' /exec=wermit.exe - ckcmai, ckcfn2, ckcfn3, ckcfns, ckcpro, ckucmd, ckudia, - ckuscr, ckuus2, ckuus3, ckuus4, ckuus5, ckuus6, ckuus7, - ckuusr, ckuusx, ckuusy, ckuxla, ckvcon, ckcnet, ckvfio, - ckvtio, ckvioc else if net_option .eqs. "MULTINET" then link$(link_switches) wermit.olb/library/include=(ckcfn2, ckcfn3, ckcfns, \ ckcmai, ckcpro, ckucmd, ckudia, ckuscr, ckuus2, ckuus3, ckuus4, ckuus5, \ ckuus6, ckuus7, ckuusr, ckuxla, ckvcon, ckcnet, ckvfio, ckvtio), \ sys$share:vaxcrtl.olb/library/exec=wermit.exe, sys$input:/options multinet:multinet_socket_library.exe/share $ else if net_option .eqs. "WINTCP" then link/sym wermit.olb/library/include=(ckcfn2, ckcfn3, ckcfns, \ ckcmai, ckcpro, ckucmd, ckudia, ckuscr, ckuus2, ckuus3, ckuus4, ckuus5, \ ckuus6, ckuus7, ckuusr, ckuxla, ckvcon, ckcnet, ckvfio, ckvtio), \ twg$common:[netdist.lib]twglib.olb/library, \ sys$share:vaxcrtl.olb/library/exec=wermit.exe else if net_option .eqs. "DEC_TCPIP" then ! No symbol table -lt. 1992-08-14 link wermit.olb/exec=wermit.exe/library - /include=(ckcfn2, ckcfn3, ckcfns,- ckcmai, ckcpro, ckucmd, ckudia, ckuscr, ckuus2, ckuus3, ckuus4, ckuus5,- ckuus6, ckuus7, ckuusr, ckuxla, ckvcon, ckcnet, ckvfio, ckvtio, ckvioc),- 'library_dir':ucx$ipc.olb/library, - sys$share:vaxcrtl.olb/library else link$(link_switches) wermit.olb/library/include=(ckcfn2, ckcfn3, ckcfns, \ ckcmai, ckcpro, ckucmd, ckudia, ckuscr, ckuus2, ckuus3, ckuus4, ckuus5, \ ckuus6, ckuus7, ckuusr, ckuxla, ckvcon, ckcnet, ckvfio, ckvtio), \ sys$share:vaxcrtl.olb/library/exec=wermit.exe endif !DEC TCP or none endif !WIN/TCP endif !MultiNet endif !Alpha set file/protection=(g:re,w:re) wermit.exe ! gkermit.exe : wermit.olb(ckvioc) wermit.olb(ckcfn2) \ wermit.olb(ckcfn3) wermit.olb(ckcfns) wermit.olb(ckcmai) \ wermit.olb(ckcpro) wermit.olb(ckucmd) wermit.olb(ckudia) \ wermit.olb(ckuscr) wermit.olb(ckuus2) wermit.olb(ckuus3) \ wermit.olb(ckuus4) wermit.olb(ckuus5) wermit.olb(ckuus6) \ wermit.olb(ckuus7) wermit.olb(ckuusr) wermit.olb(ckuusx) \ wermit.olb(ckuusy) wermit.olb(ckcnet) wermit.olb(ckvfio) \ wermit.olb(ckvtio) wermit.olb(ckuxla) wermit.olb(ckvcon) \ $(unconditional_relink) write sys$output " Linking GKERMIT at ''f$time()" if (hw_arch .eqs. "Alpha") then link/'link_debug' /exec=gkermit.exe - ckcmai, ckcfn2, ckcfn3, ckcfns, ckcpro, ckucmd, ckudia, - ckuscr, ckuus2, ckuus3, ckuus4, ckuus5, ckuus6, ckuus7, - ckuusr, ckuusx, ckuusy, ckuxla, ckvcon, ckcnet, ckvfio, - ckvtio, ckvioc, gnu_cc:[000000]gcclib/lib else if net_option .eqs. "MULTINET" then link$(link_switches) wermit.olb/library/include=(ckcfn2, ckcfn3, ckcfns, \ ckcmai, ckcpro, ckucmd, ckudia, ckuscr, ckuus2, ckuus3, ckuus4, ckuus5, \ ckuus6, ckuus7, ckuusr, ckuxla, ckvcon, ckcnet, ckvfio, ckvtio), \ gnu_cc:[000000]gcclib/lib, \ sys$share:vaxcrtl.olb/library/exec=gkermit.exe, sys$input:/options multinet:multinet_socket_library.exe/share $ else if net_option .eqs. "WINTCP" then link/sym wermit.olb/library/include=(ckcfn2, ckcfn3, ckcfns, \ ckcmai, ckcpro, ckucmd, ckudia, ckuscr, ckuus2, ckuus3, ckuus4, ckuus5, \ ckuus6, ckuus7, ckuusr, ckuxla, ckvcon, ckcnet, ckvfio, ckvtio), \ twg$common:[netdist.lib]twglib.olb/library, \ gnu_cc:[000000]gcclib/lib /exec=gkermit.exe else if net_option .eqs. "DEC_TCPIP" then ! No symbol table -lt. 1992-08-14 link wermit.olb/exec=gkermit.exe/library - /include=(ckcfn2, ckcfn3, ckcfns,- ckcmai, ckcpro, ckucmd, ckudia, ckuscr, ckuus2, ckuus3, ckuus4, ckuus5,- ckuus6, ckuus7, ckuusr, ckuxla, ckvcon, ckcnet, ckvfio, ckvtio, ckvioc),- 'library_dir':ucx$ipc.olb/library, - gnu_cc:[000000]gcclib/lib else link$(link_switches) wermit.olb/library/include=(ckcfn2, ckcfn3, ckcfns, \ ckcmai, ckcpro, ckucmd, ckudia, ckuscr, ckuus2, ckuus3, ckuus4, ckuus5, \ ckuus6, ckuus7, ckuusr, ckuxla, ckvcon, ckcnet, ckvfio, ckvtio), \ gnu_cc:[000000]gcclib/lib/exec=gkermit.exe endif !DEC TCP or none endif !WIN/TCP endif !MultiNet endif !Alpha set file/protection=(g:re,w:re) gkermit.exe ! ! First, make sure we have a current CKWART ! ckwart.exe : ckwart.c write sys$output " Compiling CKWART at ''f$time()" cc$(cc_switches)$(siteopts)/obj=ckwart.obj 'localopts' ckwart.c write sys$output " Linking CKWART at ''f$time()" link$(link_switches)/exec=ckwart ckwart.obj, sys$share:vaxcrtl.olb/library purge ckwart.obj ! ! Next, see if CKCPRO.C is current ! ckcpro.c : ckcpro.w \ ckwart.exe ckcdeb.h ckcasc.h ckcker.h write sys$output "Running CKWART at ''f$time()" ckwart = "$" +f$parse("CKWART.EXE",,,"DEVICE") + \ f$parse("CKWART.EXE",,,"DIRECTORY") + "CKWART" ckwart ckcpro.w ckcpro.c purge ckcpro.c wermit.old(ckvioc) : ckvioc.c ckvioc.h ckcdeb.h wermit.olb(ckcfn2) : ckcfn2.c \ ckcker.h ckcdeb.h ckcsym.h ckcasc.h ckcxla.h ckuxla.h wermit.olb(ckcfn3) : ckcfn3.c \ ckcker.h ckcdeb.h ckcsym.h ckcasc.h ckcxla.h ckuxla.h wermit.olb(ckcfns) : ckcfns.c \ ckcker.h ckcdeb.h ckcsym.h ckcasc.h ckcxla.h ckuxla.h wermit.olb(ckcmai) : ckcmai.c \ ckcker.h ckcdeb.h ckcsym.h ckcasc.h ckcnet.h wermit.olb(ckcpro) : ckcpro.c \ ckcker.h ckcdeb.h ckcasc.h wermit.olb(ckucmd) : ckucmd.c \ ckcasc.h ckucmd.h ckcdeb.h wermit.olb(ckudia) : ckudia.c \ ckcker.h ckcdeb.h ckucmd.h ckcasc.h wermit.olb(ckuscr) : ckuscr.c \ ckcker.h ckcdeb.h ckcasc.h wermit.olb(ckuus2) : ckuus2.c \ ckucmd.h ckcker.h ckuusr.h ckcdeb.h ckcxla.h ckuxla.h \ ckcasc.h wermit.olb(ckuus3) : ckuus3.c \ ckucmd.h ckcker.h ckuusr.h ckcdeb.h ckcxla.h ckuxla.h \ ckcasc.h ckcnet.h wermit.olb(ckuus4) : ckuus4.c \ ckucmd.h ckcker.h ckuusr.h ckcdeb.h ckcxla.h ckuxla.h \ ckcasc.h ckcnet.h wermit.olb(ckuus5) : ckuus5.c \ ckucmd.h ckcker.h ckuusr.h ckcdeb.h ckcasc.h wermit.olb(ckuus6) : ckuus6.c \ ckucmd.h ckcker.h ckuusr.h ckcdeb.h ckcasc.h wermit.olb(ckuus7) : ckuus7.c \ ckucmd.h ckcker.h ckuusr.h ckcdeb.h ckcxla.h ckuxla.h \ ckcasc.h ckcnet.h wermit.olb(ckuusr) : ckuusr.c \ ckucmd.h ckcker.h ckuusr.h ckcdeb.h ckcxla.h ckuxla.h \ ckcasc.h ckcnet.h wermit.olb(ckuusx) : ckuusx.c \ ckcker.h ckuusr.h ckcdeb.h ckcasc.h wermit.olb(ckuusy) : ckuusy.c \ ckcker.h ckcdeb.h ckcasc.h wermit.olb(ckuxla) : ckuxla.c \ ckcker.h ckcdeb.h ckcxla.h ckuxla.h wermit.olb(ckvcon) : ckvcon.c \ ckcdeb.h ckcasc.h ckcker.h ckcnet.h ckvvms.h ckcxla.h wermit.olb(ckcnet) : ckcnet.c \ ckcdeb.h ckcker.h ckcnet.h wermit.olb(ckvfio) : ckvfio.c \ ckcdeb.h ckcasc.h ckcker.h ckvvms.h wermit.olb(ckvtio) : ckvtio.c \ ckcdeb.h ckcasc.h ckcker.h ckvvms.h ckvcvt.exe : ckvcvt.c write sys$output " Compiling CKVCVT at ''f$time()" cc$(cc_switches)$(siteopts)/obj=ckvcvt.obj 'localopts' ckvcvt.c write sys$output " Linking CKVCVT at ''f$time()" link$(link_switches)/exec=ckvcvt ckvcvt.obj, sys$share:vaxcrtl.olb/library set file/protection=(g:re,w:re) ckvcvt.exe purge ckvcvt.obj ! ! All done...