quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

gnv_link_curl.com (25424B)


      1 $! File: gnv_link_curl.com
      2 $!
      3 $! File to build images using gnv$libcurl.exe
      4 $!
      5 $! Copyright (C) John Malmberg
      6 $!
      7 $! Permission to use, copy, modify, and/or distribute this software for any
      8 $! purpose with or without fee is hereby granted, provided that the above
      9 $! copyright notice and this permission notice appear in all copies.
     10 $!
     11 $! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     12 $! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     13 $! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     14 $! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     15 $! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     16 $! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
     17 $! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     18 $!
     19 $! SPDX-License-Identifier: ISC
     20 $!
     21 $!============================================================================
     22 $!
     23 $! Save this so we can get back.
     24 $ default_dir = f$environment("default")
     25 $ define/job gnv_packages_vms 'default_dir'
     26 $!
     27 $ on warning then goto all_exit
     28 $!
     29 $! On VAX, we need to generate a Macro transfer vector.
     30 $ parse_style = "TRADITIONAL"
     31 $ if (f$getsyi("HW_MODEL") .lt. 1024)
     32 $ then
     33 $   @generate_vax_transfer.com
     34 $   arch_name = "VAX"
     35 $ else
     36 $    arch_name = ""
     37 $    arch_name = arch_name + f$edit(f$getsyi("ARCH_NAME"), "UPCASE")
     38 $    if (arch_name .eqs. "") then arch_name = "UNK"
     39 $!
     40 $!   Extended parsing option starts with VMS 7.3-1.
     41 $!   There is no 7.4, so that simplifies the parse a bit.
     42 $!
     43 $    node_swvers = f$getsyi("node_swvers")
     44 $    version_patch = f$extract(1, f$length(node_swvers), node_swvers)
     45 $    maj_ver = f$element(0, ".", version_patch)
     46 $    min_ver_patch = f$element(1, ".", version_patch)
     47 $    min_ver = f$element(0, "-", min_ver_patch)
     48 $    patch = f$element(1, "-", min_ver_patch)
     49 $    if patch .eqs. "-" then patch = ""
     50 $    parse_x = 0
     51 $    if maj_ver .ges. "8"
     52 $    then
     53 $       parse_x = 1
     54 $    else
     55 $       if maj_ver .eqs. "7" .and. min_ver .ges. "3" .and. patch .nes. ""
     56 $       then
     57 $          parse_x = 1
     58 $       endif
     59 $    endif
     60 $    if parse_x
     61 $    then
     62 $       parse_style = f$getjpi("", "parse_style_perm")
     63 $    endif
     64 $ endif
     65 $!
     66 $!
     67 $! Move to where the base directories.
     68 $ set def [--]
     69 $!
     70 $!
     71 $! Build the Message file.
     72 $!--------------------------
     73 $ if f$search("[.packages.vms]curlmsg.obj") .eqs. ""
     74 $ then
     75 $   message [.packages.vms]curlmsg.msg/object=[.packages.vms]
     76 $ endif
     77 $ if f$search("gnv$curlmsg.exe") .eqs. ""
     78 $ then
     79 $   link/share=gnv$curlmsg.exe [.packages.vms]curlmsg.obj
     80 $ endif
     81 $!
     82 $!
     83 $! Need to build the common init module.
     84 $!-------------------------------------------
     85 $ cflags = "/list/show=(expan,includ)"
     86 $ init_obj = "[.packages.vms]curl_crtl_init.obj"
     87 $ if f$search(init_obj) .eqs. ""
     88 $ then
     89 $   cc'cflags' 'default_dir'curl_crtl_init.c/obj='init_obj'
     90 $ endif
     91 $ purge 'init_obj'
     92 $ rename 'init_obj' ;1
     93 $!
     94 $!
     95 $! Need to build the module to test the HP OpenSSL version
     96 $!--------------------------------------------------------
     97 $ if arch_name .nes. "VAX"
     98 $ then
     99 $   rpt_obj = "[.packages.vms]report_openssl_version.obj
    100 $   if f$search(rpt_obj) .eqs. ""
    101 $   then
    102 $       cc'cflags' 'default_dir'report_openssl_version.c/obj='rpt_obj'
    103 $   endif
    104 $   purge 'rpt_obj'
    105 $   rename 'rpt_obj' ;1
    106 $!
    107 $   link/exe='default_dir'report_openssl_version.exe 'rpt_obj'
    108 $   report_openssl_version := $'default_dir'report_openssl_version.exe
    109 $ endif
    110 $!
    111 $!
    112 $ base_link_opt_file = "[.packages.vms.''arch_name']gnv_libcurl_linker.opt"
    113 $ share_link_opt_file = "[.packages.vms.''arch_name']gnv_ssl_libcurl_linker.opt"
    114 $ if f$search(base_link_opt_file) .eqs. ""
    115 $ then
    116 $   base_link_opt_file = "[.packages.vms]gnv_libcurl_linker.opt"
    117 $   share_link_opt_file = "[.packages.vms]gnv_ssl_libcurl_linker.opt"
    118 $   if f$search(base_link_opt_file) .eqs. ""
    119 $   then
    120 $       write sys$output "Can not find base library option file!"
    121 $       goto all_exit
    122 $   endif
    123 $ endif
    124 $!
    125 $! Create the a new option file with special fixup for HP SSL
    126 $! For a shared image, we always want ZLIB and 32-bit HPSSL
    127 $!
    128 $ if f$search("gnv$libzshr32") .eqs. ""
    129 $ then
    130 $   write sys$output "VMSPORTS/GNV LIBZ Shared image not found!"
    131 $   goto all_exit
    132 $ endif
    133 $!
    134 $!
    135 $! Need to check the version of the HP SSL shared image.
    136 $!
    137 $! VAX platform can not be checked this way, it appears symbol lookup
    138 $! was disabled.  VAX has not been updated in a while.
    139 $ if arch_name .eqs. "VAX"
    140 $ then
    141 $   hp_ssl_libcrypto32 = "sys$common:[syslib]ssl$libcrypto_shr32.exe"
    142 $   hp_ssl_libssl32 = "sys$common:[syslib]ssl$libssl_shr32.exe"
    143 $   if f$search(hp_ssl_libcrypto32) .nes. ""
    144 $   then
    145 $       use_hp_ssl = 1
    146 $       curl_ssl_libcrypto32 = hp_ssl_libcrypto32
    147 $       curl_ssl_libssl32 = hp_ssl_libssl32
    148 $       curl_ssl_version = "OpenSSL/0.9.6g"
    149 $   else
    150 $       write sys$output "HP OpenSSL Shared images not found!"
    151 $       goto all_exit
    152 $   endif
    153 $ else
    154 $!
    155 $!   Minimum HP version we can use reports:
    156 $!   "OpenSSL 0.9.8w 23 Apr 2012"
    157 $!
    158 $   use_hp_ssl = 0
    159 $   hp_ssl_libcrypto32 = "sys$share:ssl$libcrypto_shr32.exe"
    160 $   hp_ssl_libssl32 = "sys$share:ssl$libssl_shr32.exe"
    161 $   if f$search(hp_ssl_libcrypto32) .nes. ""
    162 $   then
    163 $       curl_ssl_libcrypto32 = hp_ssl_libcrypto32
    164 $       curl_ssl_libssl32 = hp_ssl_libssl32
    165 $       report_openssl_version 'hp_ssl_libcrypto32' hp_ssl_version
    166 $   endif
    167 $!
    168 $   if f$type(hp_ssl_version) .eqs. "STRING"
    169 $   then
    170 $       curl_ssl_version = hp_ssl_version
    171 $       full_version = f$element(1, " ", hp_ssl_version)
    172 $       ver_maj = f$element(0, ".", full_version)
    173 $       ver_min = f$element(1, ".", full_version)
    174 $       ver_patch = f$element(2, ".", full_version)
    175 $!      ! ver_patch is typically both a number and some letters
    176 $       ver_patch_len = f$length(ver_patch)
    177 $       ver_patchltr = ""
    178 $ver_patch_loop:
    179 $           ver_patchltr_c = f$extract(ver_patch_len - 1, 1, ver_patch)
    180 $           if ver_patchltr_c .les. "9" then goto ver_patch_loop_end
    181 $           ver_patchltr = ver_patchltr_c + ver_patchltr
    182 $           ver_patch_len = ver_patch_len - 1
    183 $           goto ver_patch_loop
    184 $ver_patch_loop_end:
    185 $       ver_patchnum = ver_patch - ver_patchltr
    186 $       if 'ver_maj' .ge. 0
    187 $       then
    188 $           if 'ver_min' .ge. 9
    189 $           then
    190 $               if 'ver_patchnum' .ge. 8
    191 $               then
    192 $                   if ver_patchltr .ges. "w" then use_hp_ssl = 1
    193 $               endif
    194 $           endif
    195 $       endif
    196 $set nover
    197 $       if use_hp_ssl .eq. 0
    198 $       then
    199 $           write sys$output -
    200    " HP OpenSSL version of ""''hp_ssl_version'"" is too old for shared libcurl!"
    201 $       endif
    202 $   else
    203 $       write sys$output "Unable to get version of HP OpenSSL"
    204 $   endif
    205 $!
    206 $   gnv_ssl_libcrypto32 = "gnv$gnu:[lib]ssl$libcrypto_shr32.exe"
    207 $   gnv_ssl_libssl32 = "gnv$gnu:[lib]ssl$libssl_shr32.exe"
    208 $   if f$search(gnv_ssl_libcrypto32) .nes. ""
    209 $   then
    210 $       report_openssl_version 'gnv_ssl_libcrypto32' gnv_ssl_version
    211 $   endif
    212 $!
    213 $   use_gnv_ssl = 0
    214 $   if f$type(gnv_ssl_version) .eqs. "STRING"
    215 $   then
    216 $       gnv_full_version = f$element(1, " ", gnv_ssl_version)
    217 $       gnv_ver_maj = f$element(0, ".", gnv_full_version)
    218 $       gnv_ver_min = f$element(1, ".", gnv_full_version)
    219 $       gnv_ver_patch = f$element(2, ".", gnv_full_version)
    220 $       gnv_ver_patch_len = f$length(gnv_ver_patch)
    221 $       gnv_ver_patchnum = f$extract(0, gnv_ver_patch_len - 1, gnv_ver_patch)
    222 $       gnv_ver_patchltr = f$extract(gnv_ver_patch_len - 1, 1, gnv_ver_patch)
    223 $       if 'gnv_ver_maj' .ge. 0
    224 $       then
    225 $           if 'gnv_ver_min' .ge. 9
    226 $           then
    227 $               if 'gnv_ver_patchnum' .ge. 8
    228 $               then
    229 $                   if gnv_ver_patchltr .ges. "w" then use_gnv_ssl = 1
    230 $               endif
    231 $           endif
    232 $       endif
    233 $       if use_gnv_ssl .eq. 0
    234 $       then
    235 $           write sys$output -
    236    "GNV OpenSSL version of ""''gnv_ssl_version'" is too old for shared libcurl!"
    237 $       endif
    238 $!
    239 $!      Prefer to break the tie with the lowest supported version
    240 $!      For simplicity, if the GNV image is present, it will be used.
    241 $!      Version tuple is not a simple compare.
    242 $!
    243 $       if use_gnv_ssl .eq. 1 then
    244 $           curl_ssl_libcrypto32 = gnv_ssl_libcrypto32
    245 $           curl_ssl_libssl32 = gnv_ssl_libssl32
    246 $           curl_ssl_version = gnv_ssl_version
    247 $           use_hp_ssl = 0
    248 $       endif
    249 !$!
    250 $   else
    251 $       write sys$output "Unable to get version of GNV OpenSSL"
    252 $   endif
    253 $!
    254 $!  Need to write a release note section about HP OpenSSL
    255 $!
    256 $create 'default_dir'hp_ssl_release_info.txt
    257 $deck
    258 This package is built on with the OpenSSL version listed below and requires
    259 the shared images from the HP OpenSSL product that is kitted with that
    260 version or a compatible later version.
    261 
    262 For Alpha and IA64 platforms, see the url below to register to get the
    263 download URL.  The kit will be HP 1.4-467 or later.
    264   https://h41379.www4.hpe.com/openvms/products/ssl/ssl.html
    265 
    266 For VAX, use the same registration, but remove the kit name from any of the
    267 download URLs provided and put in CPQ-VAXVMS-SSL-V0101-B-1.PCSI-DCX_VAXEXE
    268 
    269 If your system can not be upgraded to a compatible version of OpenSSL, then
    270 you can extract the two shared images from the kit and place them in the
    271 [vms$common.gnv.lib]directory of the volume that you are installing GNV and
    272 or GNV compatible components like Curl.
    273 
    274 If GNV is installed, you must run the GNV startup procedure before these steps
    275 and before installing Curl.
    276 
    277 
    278   1.  make sure that [vms$common.gnv.lib] exists by using the following
    279       commands.  We want the directory to be in lowercase except on VAX.
    280 
    281     $SET PROCESS/PARSE=extend !If not VAX.
    282     $CREATE/DIR device:[vms$common.gnv.lib]/prot=w:re
    283 
    284   2. Extract the ssl$crypto_shr32.exe and ssl$libssl_shr32.exe images.
    285 
    286     $PRODUCT EXTRACT FILE -
    287       /select=(ssl$libcrypto_shr32.exe,ssl$libssl_shr32.exe)-
    288       /source=device:[dir] -
    289       /options=noconfirm -
    290       /destination=device:[vms$common.gnv.lib] SSL
    291 
    292 The [vms$common.sys$startup}curl_startup.com procedure will then configure
    293 libcurl to use these shared images instead of the system ones.
    294 
    295 When you upgrade SSL on VMS to the newer version of HP SSL, then these copies
    296 should be deleted.
    297 
    298 $eod
    299 $!
    300 $ open/append sslr 'default_dir'hp_ssl_release_info.txt
    301 $ write sslr "OpenSSL version used for building this kit: ",curl_ssl_version
    302 $ write sslr ""
    303 $ close sslr
    304 $!
    305 $!
    306 $! LIBZ
    307 $ libzshr_line = ""
    308 $ try_shr = "gnv$libzshr32"
    309 $ if f$search(try_shr) .nes. ""
    310 $ then
    311 $   libzshr_line = "''try_shr'/share"
    312 $ else
    313 $   write sys$output "''try_shr' image not found!"
    314 $   goto all_exit
    315 $ endif
    316 $!
    317 $!
    318 $ gssrtlshr_line = ""
    319 $ if arch_name .nes. "VAX"
    320 $ then
    321 $   try_shr = "sys$share:gss$rtl"
    322 $   if f$search("''try_shr'.exe") .nes. ""
    323 $   then
    324 $       gssrtlshr_line = "''try_shr'/share"
    325 $   else
    326 $       write sys$output "''try_shr' image not found!"
    327 $       goto all_exit
    328 $   endif
    329 $ endif
    330 $!
    331 $!
    332 $!
    333 $ if f$search(share_link_opt_file) .eqs. ""
    334 $ then
    335 $   create 'share_link_opt_file'
    336 $   open/append slopt 'share_link_opt_file'
    337 $   if libzshr_line .nes. "" then write slopt libzshr_line
    338 $   if gssrtlshr_line .nes. "" then write slopt gssrtlshr_line
    339 $   write slopt "gnv$curl_ssl_libcryptoshr32/share"
    340 $   write slopt "gnv$curl_ssl_libsslshr32/share"
    341 $   close slopt
    342 $ endif
    343 $!
    344 $! DCL build puts curllib in architecture directory
    345 $! GNV build uses the makefile.
    346 $ libfile = "[.packages.vms.''arch_name']curllib.olb"
    347 $ if f$search(libfile) .nes. ""
    348 $ then
    349 $   olb_file = libfile
    350 $ else
    351 $   ! GNV based build
    352 $   libfile = "[.lib.^.libs]libcurl.a"
    353 $   if f$search(libfile) .nes. ""
    354 $   then
    355 $       olb_file = libfile
    356 $   else
    357 $       write sys$output -
    358   "Can not build shared image, libcurl object library not found!"
    359 $       goto all_exit
    360 $   endif
    361 $ endif
    362 $!
    363 $gnv_libcurl_share = "''default_dir'gnv$libcurl.exe"
    364 $!
    365 $ if f$search(gnv_libcurl_share) .eqs. ""
    366 $ then
    367 $   if arch_name .nes. "VAX"
    368 $   then
    369 $       define/user gnv$curl_ssl_libcryptoshr32 'curl_ssl_libcrypto32'
    370 $       define/user gnv$curl_ssl_libsslshr32 'curl_ssl_libssl32'
    371 $       link/dsf='default_dir'gnv$libcurl.dsf/share='gnv_libcurl_share' -
    372             /map='default_dir'gnv$libcurl.map -
    373             gnv_packages_vms:gnv_libcurl_symbols.opt/opt,-
    374             'olb_file'/lib,-
    375             'share_link_opt_file'/opt
    376 $   else
    377 $!      VAX will not allow the logical name hack for the
    378 $!      SSL libcryto library, it is pulling it in twice if I try it.
    379 $       link/share='gnv_libcurl_share'/map='default_dir'gnv$libcurl.map -
    380             gnv_packages_vms:gnv_libcurl_xfer.opt/opt,-
    381             'olb_file'/lib,-
    382             'base_link_opt_file'/opt
    383 $   endif
    384 $ endif
    385 $!
    386 $!
    387 $ if f$search("[.src]curl-tool_main.o") .nes. ""
    388 $ then
    389 $!  From src/makefile.inc:
    390 $!  # libcurl has sources that provide functions named curlx_* that aren't
    391 $!  # part of the official API, but we reuse the code here to avoid
    392 $!  # duplication.
    393 $!
    394 $!
    395 $   if f$search("[.src]curl.exe") .eqs. ""
    396 $   then
    397 $       define/user gnv$libcurl 'gnv_libcurl_share'
    398 $       link'ldebug'/exe=[.src]curl.exe/dsf=[.src]curl.dsf -
    399            [.src]curl-tool_main.o, -
    400            [.src]curl-tool_bname.o, [.src]curl-tool_cb_dbg.o, -
    401            [.src]curl-tool_cb_hdr.o, [.src]curl-tool_cb_prg.o, -
    402            [.src]curl-tool_cb_rea.o, [.src]curl-tool_cb_see.o, -
    403            [.src]curl-tool_cb_soc.o, -
    404            [.src]curl-tool_cb_wrt.o, [.src]curl-tool_cfgable.o, -
    405            [.src]curl-tool_convert.o, [.src]curl-tool_dirhie.o, -
    406            [.src]curl-tool_doswin.o, [.src]curl-tool_easysrc.o, -
    407            [.src]curl-tool_formparse.o, [.src]curl-tool_getparam.o, -
    408            [.src]curl-tool_getpass.o, [.src]curl-tool_help.o, -
    409            [.src]curl-tool_helpers.o, [.src]curl-tool_homedir.o, -
    410            [.src]curl-tool_hugehelp.o, [.src]curl-tool_libinfo.o, -
    411            [.src]curl-tool_mfiles.o, -
    412            [.src]curl-tool_msgs.o, [.src]curl-tool_operate.o, -
    413            [.src]curl-tool_operhlp.o, -
    414            [.src]curl-tool_paramhlp.o, [.src]curl-tool_parsecfg.o, -
    415            [.src]curl-tool_setopt.o, -
    416            [.src]curl-tool_urlglob.o, [.src]curl-tool_util.o, -
    417            [.src]curl-tool_vms.o, [.src]curl-tool_writeenv.o, -
    418            [.src]curl-tool_writeout.o, [.src]curl-tool_xattr.o, -
    419            [.src]curl-nonblock.o, gnv_packages_vms:curlmsg.obj,-
    420            sys$input:/opt
    421 gnv$libcurl/share
    422 gnv_packages_vms:curl_crtl_init.obj
    423 $   endif
    424 $ else
    425 $   curl_exe = "[.src]curl.exe"
    426 $   curl_dsf = "[.src]curl.dsf"
    427 $   curl_main = "[.packages.vms.''arch_name']tool_main.obj"
    428 $   curl_src = "[.packages.vms.''arch_name']curlsrc.olb"
    429 $   curl_lib = "[.packages.vms.''arch_name']curllib.olb"
    430 $   strcase = "strcase"
    431 $   nonblock = "nonblock"
    432 $   warnless = "warnless"
    433 $!
    434 $!  Extended parse style requires special quoting
    435 $!
    436 $   if (arch_name .nes. "VAX") .and. (parse_style .eqs. "EXTENDED")
    437 $   then
    438 $       strcase = """strcase"""
    439 $       nonblock = """nonblock"""
    440 $       warnless = """warnless"""
    441 $   endif
    442 $   if f$search(curl_exe) .eqs. ""
    443 $   then
    444 $       define/user gnv$libcurl 'gnv_libcurl_share'
    445 $       link'ldebug'/exe='curl_exe'/dsf='curl_dsf' -
    446            'curl_main','curl_src'/lib, -
    447            'curl_lib'/library/include=-
    448            ('strcase','nonblock','warnless'),-
    449            gnv_packages_vms:curlmsg.obj,-
    450            sys$input:/opt
    451 gnv$libcurl/share
    452 gnv_packages_vms:curl_crtl_init.obj
    453 $   endif
    454 $ endif
    455 $!
    456 $!
    457 $!
    458 $! in6addr_missing so skip building:
    459 $! [.server]sws.o
    460 $! [.server]sockfilt.o
    461 $! [.server]tftpd.o
    462 $!
    463 $!
    464 $ target = "10-at-a-time"
    465 $ if f$search("[.docs.examples]''target'.o") .eqs. ""
    466 $ then
    467 $   write sys$output "examples not built"
    468 $   goto all_exit
    469 $ endif
    470 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
    471 $ then
    472 $   define/user gnv$libcurl 'gnv_libcurl_share'
    473 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    474     /dsf=[.docs.examples]'target'.dsf -
    475     [.docs.examples]'target'.o,-
    476     gnv$'target'.opt/opt,-
    477     sys$input:/opt
    478 gnv$libcurl/share
    479 $ endif
    480 $!
    481 $!
    482 $ target = "anyauthput"
    483 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
    484 $ then
    485 $   define/user gnv$libcurl 'gnv_libcurl_share'
    486 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    487     /dsf=[.docs.examples]'target'.dsf -
    488     [.docs.examples]'target'.o,-
    489     gnv$'target'.opt/opt,-
    490     sys$input:/opt
    491 gnv$libcurl/share
    492 $ endif
    493 $!
    494 $!
    495 $ target = "certinfo"
    496 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
    497 $ then
    498 $   define/user gnv$libcurl 'gnv_libcurl_share'
    499 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    500     /dsf=[.docs.examples]'target'.dsf -
    501     [.docs.examples]'target'.o,-
    502     gnv$'target'.opt/opt,-
    503     sys$input:/opt
    504 gnv$libcurl/share
    505 $ endif
    506 $!
    507 $!
    508 $ target = "cookie_interface"
    509 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
    510 $ then
    511 $   define/user gnv$libcurl 'gnv_libcurl_share'
    512 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    513     /dsf=[.docs.examples]'target'.dsf -
    514     [.docs.examples]'target'.o,-
    515     gnv$'target'.opt/opt,-
    516     sys$input:/opt
    517 gnv$libcurl/share
    518 $ endif
    519 $!
    520 $!
    521 $ target = "debug"
    522 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
    523 $ then
    524 $   define/user gnv$libcurl 'gnv_libcurl_share'
    525 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    526     /dsf=[.docs.examples]'target'.dsf -
    527     [.docs.examples]'target'.o,-
    528     gnv$'target'.opt/opt,-
    529     sys$input:/opt
    530 gnv$libcurl/share
    531 $ endif
    532 $!
    533 $!
    534 $ target = "fileupload"
    535 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
    536 $ then
    537 $   define/user gnv$libcurl 'gnv_libcurl_share'
    538 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    539     /dsf=[.docs.examples]'target'.dsf -
    540     [.docs.examples]'target'.o,-
    541     gnv$'target'.opt/opt,-
    542     sys$input:/opt
    543 gnv$libcurl/share
    544 $ endif
    545 $!
    546 $!
    547 $ target = "fopen"
    548 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
    549 $ then
    550 $   define/user gnv$libcurl 'gnv_libcurl_share'
    551 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    552     /dsf=[.docs.examples]'target'.dsf -
    553     [.docs.examples]'target'.o,-
    554     gnv$'target'.opt/opt,-
    555     sys$input:/opt
    556 gnv$libcurl/share
    557 $ endif
    558 $!
    559 $!
    560 $target = "ftpget"
    561 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    562 $then
    563 $   define/user gnv$libcurl 'gnv_libcurl_share'
    564 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    565     /dsf=[.docs.examples]'target'.dsf -
    566     [.docs.examples]'target'.o,-
    567     gnv$'target'.opt/opt,-
    568     sys$input:/opt
    569 gnv$libcurl/share
    570 $endif
    571 $!
    572 $!
    573 $target = "ftpgetresp"
    574 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    575 $then
    576 $   define/user gnv$libcurl 'gnv_libcurl_share'
    577 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    578     /dsf=[.docs.examples]'target'.dsf -
    579     [.docs.examples]'target'.o,-
    580     gnv$'target'.opt/opt,-
    581     sys$input:/opt
    582 gnv$libcurl/share
    583 $endif
    584 $!
    585 $!
    586 $target = "ftpupload"
    587 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    588 $then
    589 $   define/user gnv$libcurl 'gnv_libcurl_share'
    590 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    591     /dsf=[.docs.examples]'target'.dsf -
    592     [.docs.examples]'target'.o,-
    593     gnv$'target'.opt/opt,-
    594     sys$input:/opt
    595 gnv$libcurl/share
    596 $endif
    597 $!
    598 $!
    599 $target = "getinfo"
    600 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    601 $then
    602 $   define/user gnv$libcurl 'gnv_libcurl_share'
    603 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    604     /dsf=[.docs.examples]'target'.dsf -
    605     [.docs.examples]'target'.o,-
    606     gnv$'target'.opt/opt,-
    607     sys$input:/opt
    608 gnv$libcurl/share
    609 $endif
    610 $!
    611 $!
    612 $target = "getinmemory"
    613 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    614 $then
    615 $   define/user gnv$libcurl 'gnv_libcurl_share'
    616 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    617     /dsf=[.docs.examples]'target'.dsf -
    618     [.docs.examples]'target'.o,-
    619     gnv$'target'.opt/opt,-
    620     sys$input:/opt
    621 gnv$libcurl/share
    622 $endif
    623 $!
    624 $!
    625 $target = "http-post"
    626 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    627 $then
    628 $   define/user gnv$libcurl 'gnv_libcurl_share'
    629 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    630     /dsf=[.docs.examples]'target'.dsf -
    631     [.docs.examples]'target'.o,-
    632     gnv$'target'.opt/opt,-
    633     sys$input:/opt
    634 gnv$libcurl/share
    635 $endif
    636 $!
    637 $!
    638 $target = "httpcustomheader"
    639 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    640 $then
    641 $   define/user gnv$libcurl 'gnv_libcurl_share'
    642 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    643     /dsf=[.docs.examples]'target'.dsf -
    644     [.docs.examples]'target'.o,-
    645     gnv$'target'.opt/opt,-
    646     sys$input:/opt
    647 gnv$libcurl/share
    648 $endif
    649 $!
    650 $!
    651 $target = "httpput"
    652 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    653 $then
    654 $   define/user gnv$libcurl 'gnv_libcurl_share'
    655 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    656     /dsf=[.docs.examples]'target'.dsf -
    657     [.docs.examples]'target'.o,-
    658     gnv$'target'.opt/opt,-
    659     sys$input:/opt
    660 gnv$libcurl/share
    661 $endif
    662 $!
    663 $!
    664 $target = "https"
    665 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    666 $then
    667 $   define/user gnv$libcurl 'gnv_libcurl_share'
    668 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    669     /dsf=[.docs.examples]'target'.dsf -
    670     [.docs.examples]'target'.o,-
    671     gnv$'target'.opt/opt,-
    672     sys$input:/opt
    673 gnv$libcurl/share
    674 $endif
    675 $!
    676 $!
    677 $target = "multi-app"
    678 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    679 $then
    680 $   define/user gnv$libcurl 'gnv_libcurl_share'
    681 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    682     /dsf=[.docs.examples]'target'.dsf -
    683     [.docs.examples]'target'.o,-
    684     gnv$'target'.opt/opt,-
    685     sys$input:/opt
    686 gnv$libcurl/share
    687 $endif
    688 $!
    689 $!
    690 $target = "multi-debugcallback"
    691 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    692 $then
    693 $   define/user gnv$libcurl 'gnv_libcurl_share'
    694 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    695     /dsf=[.docs.examples]'target'.dsf -
    696     [.docs.examples]'target'.o,-
    697     gnv$'target'.opt/opt,-
    698     sys$input:/opt
    699 gnv$libcurl/share
    700 $endif
    701 $!
    702 $!
    703 $target = "multi-double"
    704 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    705 $then
    706 $   define/user gnv$libcurl 'gnv_libcurl_share'
    707 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    708     /dsf=[.docs.examples]'target'.dsf -
    709     [.docs.examples]'target'.o,-
    710     gnv$'target'.opt/opt,-
    711     sys$input:/opt
    712 gnv$libcurl/share
    713 $endif
    714 $!
    715 $!
    716 $target = "multi-post"
    717 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    718 $then
    719 $   define/user gnv$libcurl 'gnv_libcurl_share'
    720 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    721     /dsf=[.docs.examples]'target'.dsf -
    722     [.docs.examples]'target'.o,-
    723     gnv$'target'.opt/opt,-
    724     sys$input:/opt
    725 gnv$libcurl/share
    726 $endif
    727 $!
    728 $!
    729 $target = "multi-single"
    730 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    731 $then
    732 $   define/user gnv$libcurl 'gnv_libcurl_share'
    733 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    734     /dsf=[.docs.examples]'target'.dsf -
    735     [.docs.examples]'target'.o,-
    736     gnv$'target'.opt/opt,-
    737     sys$input:/opt
    738 gnv$libcurl/share
    739 $endif
    740 $!
    741 $!
    742 $target = "persistent"
    743 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    744 $then
    745 $   define/user gnv$libcurl 'gnv_libcurl_share'
    746 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    747     /dsf=[.docs.examples]'target'.dsf -
    748     [.docs.examples]'target'.o,-
    749     gnv$'target'.opt/opt,-
    750     sys$input:/opt
    751 gnv$libcurl/share
    752 $endif
    753 $!
    754 $!
    755 $target = "post-callback"
    756 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    757 $then
    758 $   define/user gnv$libcurl 'gnv_libcurl_share'
    759 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    760     /dsf=[.docs.examples]'target'.dsf -
    761     [.docs.examples]'target'.o,-
    762     gnv$'target'.opt/opt,-
    763     sys$input:/opt
    764 gnv$libcurl/share
    765 $endif
    766 $!
    767 $!
    768 $target = "postit2"
    769 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    770 $then
    771 $   define/user gnv$libcurl 'gnv_libcurl_share'
    772 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    773     /dsf=[.docs.examples]'target'.dsf -
    774     [.docs.examples]'target'.o,-
    775     gnv$'target'.opt/opt,-
    776     sys$input:/opt
    777 gnv$libcurl/share
    778 $endif
    779 $!
    780 $!
    781 $target = "sendrecv"
    782 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    783 $then
    784 $   define/user gnv$libcurl 'gnv_libcurl_share'
    785 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    786     /dsf=[.docs.examples]'target'.dsf -
    787     [.docs.examples]'target'.o,-
    788     gnv$'target'.opt/opt,-
    789     sys$input:/opt
    790 gnv$libcurl/share
    791 $endif
    792 $!
    793 $!
    794 $target = "sepheaders"
    795 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    796 $then
    797 $   define/user gnv$libcurl 'gnv_libcurl_share'
    798 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    799     /dsf=[.docs.examples]'target'.dsf -
    800     [.docs.examples]'target'.o,-
    801     gnv$'target'.opt/opt,-
    802     sys$input:/opt
    803 gnv$libcurl/share
    804 $endif
    805 $!
    806 $!
    807 $target = "simple"
    808 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    809 $then
    810 $   define/user gnv$libcurl 'gnv_libcurl_share'
    811 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    812     /dsf=[.docs.examples]'target'.dsf -
    813     [.docs.examples]'target'.o,-
    814     gnv$'target'.opt/opt,-
    815     sys$input:/opt
    816 gnv$libcurl/share
    817 $endif
    818 $!
    819 $!
    820 $target = "simplepost"
    821 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    822 $then
    823 $   define/user gnv$libcurl 'gnv_libcurl_share'
    824 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    825     /dsf=[.docs.examples]'target'.dsf -
    826     [.docs.examples]'target'.o,-
    827     gnv$'target'.opt/opt,-
    828     sys$input:/opt
    829 gnv$libcurl/share
    830 $endif
    831 $!
    832 $!
    833 $target = "simplessl"
    834 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
    835 $then
    836 $   define/user gnv$libcurl 'gnv_libcurl_share'
    837 $   link'ldebug'/exe=[.docs.examples]'target'.exe-
    838     /dsf=[.docs.examples]'target'.dsf -
    839     [.docs.examples]'target'.o,-
    840     gnv$'target'.opt/opt,-
    841     sys$input:/opt
    842 gnv$libcurl/share
    843 $endif
    844 $!
    845 $! =============== End of docs/examples =========================
    846 $!
    847 $!
    848 $all_exit:
    849 $set def 'default_dir'
    850 $exit '$status'
    851 $!