Annotation of embedaddon/curl/packages/vms/make_pcsi_curl_kit_name.com, revision 1.1
1.1 ! misho 1: $! File: MAKE_PCSI_CURL_KIT_NAME.COM
! 2: $!
! 3: $! $Id$
! 4: $!
! 5: $! Calculates the PCSI kit name for use in building an installation kit.
! 6: $! PCSI is HP's PolyCenter Software Installation Utility.
! 7: $!
! 8: $! The results are stored in as logical names so that other procedures
! 9: $! can use them.
! 10: $!
! 11: $! Copyright 2009 - 2020, John Malmberg
! 12: $!
! 13: $! Permission to use, copy, modify, and/or distribute this software for any
! 14: $! purpose with or without fee is hereby granted, provided that the above
! 15: $! copyright notice and this permission notice appear in all copies.
! 16: $!
! 17: $! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
! 18: $! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
! 19: $! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
! 20: $! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
! 21: $! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
! 22: $! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
! 23: $! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
! 24: $!
! 25: $! 11-Jun-2009 J. Malmberg
! 26: $!
! 27: $!========================================================================
! 28: $!
! 29: $! Save default
! 30: $ default_dir = f$environment("DEFAULT")
! 31: $!
! 32: $! Move to the base directories
! 33: $ set def [--]
! 34: $!
! 35: $! Put things back on error.
! 36: $ on warning then goto all_exit
! 37: $!
! 38: $! The producer is the name or common abbreviation for the entity that is
! 39: $! making the kit. It must be set as a logical name before running this
! 40: $! procedure.
! 41: $!
! 42: $! HP documents the producer as the legal owner of the software, but for
! 43: $! open source work, it should document who is creating the package for
! 44: $! distribution.
! 45: $!
! 46: $ producer = f$trnlnm("GNV_PCSI_PRODUCER")
! 47: $ if producer .eqs. ""
! 48: $ then
! 49: $ write sys$output "The logical name GNV_PCSI_PRODUCER needs to be defined."
! 50: $ write sys$output "This should be set to the common abbreviation or name of"
! 51: $ write sys$output "the entity creating this kit. If you are an individual"
! 52: $ write sys$output "then use your initials."
! 53: $ goto all_exit
! 54: $ endif
! 55: $ producer_full_name = f$trnlnm("GNV_PCSI_PRODUCER_FULL_NAME")
! 56: $ if producer_full_name .eqs. ""
! 57: $ then
! 58: $ write sys$output "The logical name GNV_PCSI_PRODUCER_FULL_NAME needs to"
! 59: $ write sys$output "be defined. This should be set to the full name of"
! 60: $ write sys$output "the entity creating this kit. If you are an individual"
! 61: $ write sys$output "then use your name."
! 62: $ write sys$output "EX: DEFINE GNV_PCSI_PRODUCER_FULL_NAME ""First M. Last"""
! 63: $ goto all_exit
! 64: $ endif
! 65: $!
! 66: $ write sys$output "*****"
! 67: $ write sys$output "***** Producer = ''producer'"
! 68: $ write sys$output "*****"
! 69: $!
! 70: $!
! 71: $! Base is one of 'VMS', 'AXPVMS', 'I64VMS', 'VAXVMS' and indicates what
! 72: $! binaries are in the kit. A kit with just 'VMS' can be installed on all
! 73: $! architectures.
! 74: $!
! 75: $ base = "VMS"
! 76: $ arch_type = f$getsyi("ARCH_NAME")
! 77: $ code = f$extract(0, 1, arch_type)
! 78: $ if (code .eqs. "I") then base = "I64VMS"
! 79: $ if (code .eqs. "V") then base = "VAXVMS"
! 80: $ if (code .eqs. "A") then base = "AXPVMS"
! 81: $!
! 82: $!
! 83: $ product = "curl"
! 84: $!
! 85: $!
! 86: $! We need to get the version from curlver_h. It will have a line like
! 87: $! #define LIBCURL_VERSION "7.31.0"
! 88: $! or
! 89: $! #define LIBCURL_VERSION "7.32.0-20130731".
! 90: $!
! 91: $! The dash indicates that this is a daily pre-release.
! 92: $!
! 93: $!
! 94: $ open/read/error=version_loop_end vhf [.include.curl]curlver.h
! 95: $ version_loop:
! 96: $ read vhf line_in
! 97: $ if line_in .eqs. "" then goto version_loop
! 98: $ if f$locate("#define LIBCURL_VERSION ", line_in) .ne. 0
! 99: $ then
! 100: $ goto version_loop
! 101: $ endif
! 102: $ raw_version = f$element(2," ", line_in) - """" - """"
! 103: $ version_loop_end:
! 104: $ close vhf
! 105: $!
! 106: $!
! 107: $ eco_level = ""
! 108: $ if f$search("''default_dir'vms_eco_level.h") .nes. ""
! 109: $ then
! 110: $ open/read ef 'default_dir'vms_eco_level.h
! 111: $ecolevel_loop:
! 112: $ read/end=ecolevel_loop_end ef line_in
! 113: $ prefix = f$element(0, " ", line_in)
! 114: $ if prefix .nes. "#define" then goto ecolevel_loop
! 115: $ key = f$element(1, " ", line_in)
! 116: $ value = f$element(2, " ", line_in) - """" - """"
! 117: $ if key .eqs. "VMS_ECO_LEVEL"
! 118: $ then
! 119: $ eco_level = "''value'"
! 120: $ if eco_level .eqs. "0"
! 121: $ then
! 122: $ eco_level = ""
! 123: $ else
! 124: $ eco_level = "E" + eco_level
! 125: $ endif
! 126: $ goto ecolevel_loop_end
! 127: $ endif
! 128: $ goto ecolevel_loop
! 129: $ecolevel_loop_end:
! 130: $ close ef
! 131: $ endif
! 132: $!
! 133: $!
! 134: $! This translates to V0732-0 or D0732-0
! 135: $! We encode the snapshot date into the version as an ECO since a daily
! 136: $! can never have an ECO.
! 137: $!
! 138: $! version_type = 'V' for a production release, and 'D' for a build from a
! 139: $! daiy snapshot of the curl source.
! 140: $ majorver = f$element(0, ".", raw_version)
! 141: $ minorver = f$element(1, ".", raw_version)
! 142: $ raw_update = f$element(2, ".", raw_version)
! 143: $ update = f$element(0, "-", raw_update)
! 144: $ if update .eqs. "0" then update = ""
! 145: $ daily_tag = f$element(1, "-", raw_update)
! 146: $ vtype = "V"
! 147: $ patch = ""
! 148: $ if daily_tag .nes. "-"
! 149: $ then
! 150: $ vtype = "D"
! 151: $ daily_tag_len = f$length(daily_tag)
! 152: $ daily_tag = f$extract(4, daily_tag_len - 4, daily_tag)
! 153: $ patch = vtype + daily_tag
! 154: $ product = product + "_d"
! 155: $ else
! 156: $ daily_tag = ""
! 157: $ if eco_level .nes. "" then patch = eco_level
! 158: $ endif
! 159: $!
! 160: $!
! 161: $ version_fao = "!2ZB!2ZB"
! 162: $ mmversion = f$fao(version_fao, 'majorver', 'minorver')
! 163: $ version = vtype + "''mmversion'"
! 164: $ if update .nes. "" .or. patch .nes. ""
! 165: $ then
! 166: $! The presence of a patch implies an update
! 167: $ if update .eqs. "" .and. patch .nes. "" then update = "0"
! 168: $ version = version + "-" + update + patch
! 169: $ fversion = version
! 170: $ else
! 171: $ fversion = version
! 172: $ version = version + "-"
! 173: $ endif
! 174: $!
! 175: $! Kit type 1 is complete kit, the only type that this procedure will make.
! 176: $ kittype = 1
! 177: $!
! 178: $! Write out a logical name for the resulting base kit name.
! 179: $ name = "''producer'-''base'-''product'-''version'-''kittype'"
! 180: $ define GNV_PCSI_KITNAME "''name'"
! 181: $ fname = "''product'-''fversion'"
! 182: $ define GNV_PCSI_FILENAME_BASE "''fname'"
! 183: $ write sys$output "*****"
! 184: $ write sys$output "***** GNV_PCSI_KITNAME = ''name'."
! 185: $ write sys$output "***** GNV_PCSI_FILENAME_BASE = ''fname'."
! 186: $ write sys$output "*****"
! 187: $!
! 188: $all_exit:
! 189: $ set def 'default_dir'
! 190: $ exit '$status'
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>