$! $ olddir = f$environment("default") $ on error then goto End $! $ gosub Init $! $ call WriteProductDescriptionFile $ call WriteProductTextFile $! $! backup tree $! $ backup [-...]*.*;0/excl=([]*.exe,*.obj,*.opt,*.hlp,*.hlb,*.bck,*.com,*.pcsi*) - libssh2-'versionname''datename'_src.bck/save $ purge libssh2-'versionname''datename'_src.bck $! $! backup examples $! $ backup [-.example]*.c;0 libssh2_examples-'versionname''datename'.bck/save $ dire libssh2_examples-'versionname''datename'.bck $ purge libssh2_examples-'versionname''datename'.bck $! $ set default [-] $! $ defdir = f$environment( "default" ) $ thisdev = f$parse(defdir,,,"device","no_conceal") $ thisdir = f$parse(defdir,,,"directory","no_conceal") - "][" - "][" - "][" - "][" $! $ libssh2_kf = thisdev + thisdir $ libssh2_kf = libssh2_kf - "]" + ".]" $! $ set default 'mdir' $! $ define/translation_attributes=concealed libssh2_kf 'libssh2_kf' $! $ product package libssh2 - /base='arch' - /producer=jcb - /source=[] - ! where to find PDF and PTF /destination=[] - ! where to put .PCSI file /material=libssh2_kf:[000000...] - ! where to find product material /version="''vms_majorv'.''minorv'-''patchv'''datename'" - /format=sequential $! $End: $! $ set noon $ if f$search("*.pcsi$desc;*") .nes. "" then delete *.pcsi$desc;* $ if f$search("*.pcsi$text;*") .nes. "" then delete *.pcsi$text;* $ if f$search("libssh2-''versionname'''datename'_src.bck;*") .nes. "" then delete libssh2-'versionname''datename'_src.bck;* $ if f$search("libssh2_examples-''versionname'''datename'.bck;*") .nes. "" then delete libssh2_examples-'versionname''datename'.bck;* $! $ if f$trnlnm("libssh2_kf") .nes. "" then deassign libssh2_kf $ set default 'olddir' $! $exit $! $!-------------------------------------------------------------------------------- $! $Init: $ set process/parse=extended $! $ say = "write sys$output" $! $ mdir = f$environment("procedure") $ mdir = mdir - f$parse(mdir,,,"name") - f$parse(mdir,,,"type") - f$parse(mdir,,,"version") $! $ set default 'mdir' $! $ pipe search [-.include]*.h libssh2_version_major/nohead | (read sys$input l ; l = f$element(2," ",f$edit(l,"trim,compress")) ; - define/job majorv &l ) $ pipe search [-.include]*.h libssh2_version_minor/nohead | (read sys$input l ; l = f$element(2," ",f$edit(l,"trim,compress")) ; - define/job minorv &l ) $ pipe search [-.include]*.h libssh2_version_patch/nohead | (read sys$input l ; l = f$element(2," ",f$edit(l,"trim,compress")) ; - define/job patchv &l ) $! $ majorv = f$trnlnm("majorv") $ minorv = f$integer(f$trnlnm("minorv")) $ patchv = f$integer( f$trnlnm("patchv")) $! $ deassign/job majorv $ deassign/job minorv $ deassign/job patchv $! $ vms_majorv = f$trnlnm("vms_majorv") $ if vms_majorv .eqs. "" then vms_majorv = majorv $! $ arch = "UNKNOWN" $ if f$getsyi("arch_type") .eq. 2 then arch = "AXPVMS" $ if f$getsyi("arch_type") .eq. 3 then arch = "I64VMS" $! $ if arch .eqs. "UNKNOWN" $ then $ say "Unsupported or unknown architecture, only works on Alpha and Itanium" $ exit 2 $ endif $! $! is this a proper release or a daily snapshot? $! crummy, but should work. $! $ daily = "TRUE" $ firstdash = f$locate("-",mdir) $ restdir = f$extract( firstdash + 1, 80, mdir) $ seconddash = f$locate("-", restdir) $ if seconddash .ge. f$length( restdir ) $ then $ daily = "FALSE" $ datename = "Final" $ else $ datename = "D" + f$extract(seconddash+1,8,restdir) $ endif $! $ if daily $ then $ productname = "JCB ''arch' LIBSSH2 V''vms_majorv'.''minorv'-''patchv'''datename'" $ else $ productname = "JCB ''arch' LIBSSH2 V''vms_majorv'.''minorv'-''patchv'''datename'" $ endif $! $ productfilename = "JCB-''arch'-LIBSSH2-" + f$fao("V!2ZL!2ZL-!2ZL!AS-1", f$integer(vms_majorv),minorv,patchv,datename) $! $ versionname = "''vms_majorv'_''minorv'_''patchv'" $! $return $! $!-------------------------------------------------------------------------------- $! $WriteProductDescriptionFile: subroutine $! $ open/write pd 'productfilename'.PCSI$DESC $! $ write pd "product ''productname' full ;" $ write pd " software DEC ''arch' VMS ;" $ write pd " if (not ) ; $ write pd " error NEED_VMS83 ;" $ write pd " end if ;" $ write pd " software HP ''arch' SSL version minimum V1.3;" $ write pd " if (not ) ; $ write pd " error NEED_SSL ;" $ write pd " end if ;" $ write pd " execute preconfigure (""set process/parse_type=extended"");" $ write pd " execute postinstall (""set process/parse_type=extended""," $ write pd " ""rename pcsi$destination:[gnv]usr.dir usr.DIR""," $ write pd " ""rename pcsi$destination:[gnv.usr]include.dir include.DIR""," $ write pd " ""rename pcsi$destination:[gnv.usr.include]libssh2.dir libssh2.DIR""," $ write pd " ""rename pcsi$destination:[gnv.usr.include.libssh2]libssh2.h libssh2.h""," $ write pd " ""rename pcsi$destination:[gnv.usr.include.libssh2]libssh2_publickey.h libssh2_publickey.h""," $ write pd " ""rename pcsi$destination:[gnv.usr.include.libssh2]libssh2_sftp.h libssh2_sftp.h""," $ write pd " ""rename pcsi$destination:[gnv.usr.include.libssh2]libssh2_config.h libssh2_config.h""," $ write pd " ""rename pcsi$destination:[gnv.usr]lib.dir lib.DIR""," $ write pd " ""rename pcsi$destination:[gnv.usr.lib]gnv$libssh2_''versionname'.exe gnv$libssh2_''versionname'.exe""," $ write pd " ""rename pcsi$destination:[gnv.usr.share.doc.libssh2]libssh2.hlb libssh2.hlb"");" $ write pd " information RELEASE_NOTES phase after ;" $ write pd " option EXAMPLE default 0 ;" $ write pd " directory ""[gnv.usr.share.doc.libssh2.examples]"" ;" $ write pd " file ""[gnv.usr.share.doc.libssh2.examples]libssh2_examples-''versionname'''datename'.bck"";" $ write pd " end option ;" $ write pd " option SOURCE default 0 ;" $ write pd " directory ""[gnv.common_src]"" ;" $ write pd " file ""[gnv.common_src]libssh2-''versionname'''datename'_src.bck"";" $ write pd " end option ;" $ write pd " directory ""[gnv]"" ;" $ write pd " directory ""[gnv.usr]"" ;" $ write pd " directory ""[gnv.usr.lib]"" ;" $ write pd " directory ""[gnv.usr.include]"" ;" $ write pd " directory ""[gnv.usr.include.libssh2]"" ;" $ write pd " directory ""[gnv.usr.share]"" ;" $ write pd " directory ""[gnv.usr.share.doc]"" ;" $ write pd " directory ""[gnv.usr.share.doc.libssh2]"" ;" $ write pd " file ""[gnv.usr.include.libssh2]libssh2.h"" source ""[include]libssh2.h"";" $ write pd " file ""[gnv.usr.include.libssh2]libssh2_publickey.h"" source ""[include]libssh2_publickey.h"";" $ write pd " file ""[gnv.usr.include.libssh2]libssh2_sftp.h"" source ""[include]libssh2_sftp.h"";" $ write pd " file ""[gnv.usr.include.libssh2]libssh2_config.h"" source ""[vms]libssh2_config.h"";" $ write pd " file ""[gnv.usr.share.doc.libssh2]libssh2.hlb"" source ""[vms]libssh2.hlb"";" $ write pd " file ""[gnv.usr.share.doc.libssh2]libssh2-''versionname'.news"" source ""[000000]NEWS."";" $ write pd " file ""[gnv.usr.share.doc.libssh2]libssh2-''versionname'.release_notes"" source ""[vms]readme.vms"";" $ write pd " file ""[gnv.usr.lib]gnv$libssh2_''versionname'.exe"" source ""[vms]libssh2_''versionname'.exe"";" $ write pd "end product ;" $ close pd $exit $endsubroutine $! $!-------------------------------------------------------------------------------- $! $WriteProductTextFile: subroutine $! $ open/write pt 'productfilename'.PCSI$TEXT $ write pt "=PRODUCT ''productname' Full" $ write pt "1 'PRODUCER" $ write pt "=prompt libssh2 is an open source product ported to VMS by Jose Baars" $ write pt "This software product is provided with no warranty." $ write pt "For license information see the LIBSSH2 help library." $ write pt "1 'PRODUCT" $ write pt "=prompt JCB LIBSSH2 for OpenVMS" $ write pt "" $ write pt "libssh2 is an open source client side library that aims to implement" $ write pt "the SSH protocol. This is the OpenVMS port of that library." $ write pt "Further information at https://www.libssh2.org." $ write pt "" $ write pt "1 NEED_VMS83" $ write pt "=prompt OpenVMS 8.3 or later is not installed on your system." $ write pt "This product requires OpenVMS 8.3 or later to function." $ write pt "" $ write pt "1 NEED_SSL" $ write pt "=prompt HP SSL 1.3 or later is not installed on your system." $ write pt "This product requires HP SSL 1.3 or later to function." $ write pt "" $ write pt "1 RELEASE_NOTES" $ write pt "=prompt Release notes and the libssh2 help library are available in [gnv.usr.share.doc.libssh2] directory." $ write pt "" $ write pt "1 EXAMPLE" $ write pt "=prompt Do you want the libssh2 C programming examples ? " $ write pt "The libssh2 coding examples will be available in backup saveset " $ write pt "[gnv.usr.share.doc.libssh2.examples]libssh2_examples_''versionname'.bck" $ write pt "" $ write pt "1 SOURCE" $ write pt "=prompt Do you want the complete libssh2 source tree ? " $ write pt "The libssh2 source tree will be available in backup saveset " $ write pt "[gnv.common_src]libssh2_''versionname'''datename'_src.bck" $close pt $exit $ endsubroutine