$! File: gnv_link_curl.com
$!
$! $Id$
$!
$! File to build images using gnv$libcurl.exe
$!
$! Copyright 2009, John Malmberg
$!
$! Permission to use, copy, modify, and/or distribute this software for any
$! purpose with or without fee is hereby granted, provided that the above
$! copyright notice and this permission notice appear in all copies.
$!
$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
$!
$! 10-Jun-2009  J. Malmberg
$!============================================================================
$!
$! Save this so we can get back.
$ default_dir = f$environment("default")
$ define/job gnv_packages_vms 'default_dir'
$!
$ on warning then goto all_exit
$!
$! On VAX, we need to generate a Macro transfer vector.
$ parse_style = "TRADITIONAL"
$ if (f$getsyi("HW_MODEL") .lt. 1024)
$ then
$   @generate_vax_transfer.com
$   arch_name = "VAX"
$ else
$    arch_name = ""
$    arch_name = arch_name + f$edit(f$getsyi("ARCH_NAME"), "UPCASE")
$    if (arch_name .eqs. "") then arch_name = "UNK"
$!
$!   Extended parsing option starts with VMS 7.3-1.
$!   There is no 7.4, so that simplifies the parse a bit.
$!
$    node_swvers = f$getsyi("node_swvers")
$    version_patch = f$extract(1, f$length(node_swvers), node_swvers)
$    maj_ver = f$element(0, ".", version_patch)
$    min_ver_patch = f$element(1, ".", version_patch)
$    min_ver = f$element(0, "-", min_ver_patch)
$    patch = f$element(1, "-", min_ver_patch)
$    if patch .eqs. "-" then patch = ""
$    parse_x = 0
$    if maj_ver .ges. "8"
$    then
$       parse_x = 1
$    else
$       if maj_ver .eqs. "7" .and. min_ver .ges. "3" .and. patch .nes. ""
$       then
$          parse_x = 1
$       endif
$    endif
$    if parse_x
$    then
$       parse_style = f$getjpi("", "parse_style_perm")
$    endif
$ endif
$!
$!
$! Move to where the base directories.
$ set def [--]
$!
$!
$! Build the Message file.
$!--------------------------
$ if f$search("[.packages.vms]curlmsg.obj") .eqs. ""
$ then
$   message [.packages.vms]curlmsg.msg/object=[.packages.vms]
$ endif
$ if f$search("gnv$curlmsg.exe") .eqs. ""
$ then
$   link/share=gnv$curlmsg.exe [.packages.vms]curlmsg.obj
$ endif
$!
$!
$! Need to build the common init module.
$!-------------------------------------------
$ cflags = "/list/show=(expan,includ)"
$ init_obj = "[.packages.vms]curl_crtl_init.obj"
$ if f$search(init_obj) .eqs. ""
$ then
$   cc'cflags' 'default_dir'curl_crtl_init.c/obj='init_obj'
$ endif
$ purge 'init_obj'
$ rename 'init_obj' ;1
$!
$!
$! Need to build the module to test the HP OpenSSL version
$!--------------------------------------------------------
$ if arch_name .nes. "VAX"
$ then
$   rpt_obj = "[.packages.vms]report_openssl_version.obj
$   if f$search(rpt_obj) .eqs. ""
$   then
$       cc'cflags' 'default_dir'report_openssl_version.c/obj='rpt_obj'
$   endif
$   purge 'rpt_obj'
$   rename 'rpt_obj' ;1
$!
$   link/exe='default_dir'report_openssl_version.exe 'rpt_obj'
$   report_openssl_version := $'default_dir'report_openssl_version.exe
$ endif
$!
$!
$ base_link_opt_file = "[.packages.vms.''arch_name']gnv_libcurl_linker.opt"
$ share_link_opt_file = "[.packages.vms.''arch_name']gnv_ssl_libcurl_linker.opt"
$ if f$search(base_link_opt_file) .eqs. ""
$ then
$   base_link_opt_file = "[.packages.vms]gnv_libcurl_linker.opt"
$   share_link_opt_file = "[.packages.vms]gnv_ssl_libcurl_linker.opt"
$   if f$search(base_link_opt_file) .eqs. ""
$   then
$       write sys$output "Can not find base library option file!"
$       goto all_exit
$   endif
$ endif
$!
$! Create the a new option file with special fixup for HP SSL
$! For a shared image, we always want ZLIB and 32 bit HPSSL
$!
$ if f$search("gnv$libzshr32") .eqs. ""
$ then
$   write sys$output "VMSPORTS/GNV LIBZ Shared image not found!"
$   goto all_exit
$ endif
$!
$!
$! Need to check the version of the HP SSL shared image.
$!
$! VAX platform can not be checked this way, it appears symbol lookup
$! was disabled.  VAX has not been updated in a while.
$ if arch_name .eqs. "VAX"
$ then
$   hp_ssl_libcrypto32 = "sys$common:[syslib]ssl$libcrypto_shr32.exe"
$   hp_ssl_libssl32 = "sys$common:[syslib]ssl$libssl_shr32.exe"
$   if f$search(hp_ssl_libcrypto32) .nes. ""
$   then
$       use_hp_ssl = 1
$       curl_ssl_libcrypto32 = hp_ssl_libcrypto32
$       curl_ssl_libssl32 = hp_ssl_libssl32
$       curl_ssl_version = "OpenSSL/0.9.6g"
$   else
$       write sys$output "HP OpenSSL Shared images not found!"
$       goto all_exit
$   endif
$ else
$!
$!   Minimum HP version we can use reports:
$!   "OpenSSL 0.9.8w 23 Apr 2012"
$!
$   use_hp_ssl = 0
$   hp_ssl_libcrypto32 = "sys$share:ssl$libcrypto_shr32.exe"
$   hp_ssl_libssl32 = "sys$share:ssl$libssl_shr32.exe"
$   if f$search(hp_ssl_libcrypto32) .nes. ""
$   then
$       curl_ssl_libcrypto32 = hp_ssl_libcrypto32
$       curl_ssl_libssl32 = hp_ssl_libssl32
$       report_openssl_version 'hp_ssl_libcrypto32' hp_ssl_version
$   endif
$!
$   if f$type(hp_ssl_version) .eqs. "STRING"
$   then
$       curl_ssl_version = hp_ssl_version
$       full_version = f$element(1, " ", hp_ssl_version)
$       ver_maj = f$element(0, ".", full_version)
$       ver_min = f$element(1, ".", full_version)
$       ver_patch = f$element(2, ".", full_version)
$!      ! ver_patch is typically both a number and some letters
$       ver_patch_len = f$length(ver_patch)
$       ver_patchltr = ""
$ver_patch_loop:
$           ver_patchltr_c = f$extract(ver_patch_len - 1, 1, ver_patch)
$           if ver_patchltr_c .les. "9" then goto ver_patch_loop_end
$           ver_patchltr = ver_patchltr_c + ver_patchltr
$           ver_patch_len = ver_patch_len - 1
$           goto ver_patch_loop
$ver_patch_loop_end:
$       ver_patchnum = ver_patch - ver_patchltr
$       if 'ver_maj' .ge. 0
$       then
$           if 'ver_min' .ge. 9
$           then
$               if 'ver_patchnum' .ge. 8
$               then
$                   if ver_patchltr .ges. "w" then use_hp_ssl = 1
$               endif
$           endif
$       endif
$set nover
$       if use_hp_ssl .eq. 0
$       then
$           write sys$output -
   " HP OpenSSL version of ""''hp_ssl_version'"" is too old for shared libcurl!"
$       endif
$   else
$       write sys$output "Unable to get version of HP OpenSSL"
$   endif
$!
$   gnv_ssl_libcrypto32 = "gnv$gnu:[lib]ssl$libcrypto_shr32.exe"
$   gnv_ssl_libssl32 = "gnv$gnu:[lib]ssl$libssl_shr32.exe"
$   if f$search(gnv_ssl_libcrypto32) .nes. ""
$   then
$       report_openssl_version 'gnv_ssl_libcrypto32' gnv_ssl_version
$   endif
$!
$   use_gnv_ssl = 0
$   if f$type(gnv_ssl_version) .eqs. "STRING"
$   then
$       gnv_full_version = f$element(1, " ", gnv_ssl_version)
$       gnv_ver_maj = f$element(0, ".", gnv_full_version)
$       gnv_ver_min = f$element(1, ".", gnv_full_version)
$       gnv_ver_patch = f$element(2, ".", gnv_full_version)
$       gnv_ver_patch_len = f$length(gnv_ver_patch)
$       gnv_ver_patchnum = f$extract(0, gnv_ver_patch_len - 1, gnv_ver_patch)
$       gnv_ver_patchltr = f$extract(gnv_ver_patch_len - 1, 1, gnv_ver_patch)
$       if 'gnv_ver_maj' .ge. 0
$       then
$           if 'gnv_ver_min' .ge. 9
$           then
$               if 'gnv_ver_patchnum' .ge. 8
$               then
$                   if gnv_ver_patchltr .ges. "w" then use_gnv_ssl = 1
$               endif
$           endif
$       endif
$       if use_gnv_ssl .eq. 0
$       then
$           write sys$output -
   "GNV OpenSSL version of ""''gnv_ssl_version'" is too old for shared libcurl!"
$       endif
$!
$!      Prefer to break the tie with the lowest supported version
$!      For simplicity, if the GNV image is present, it will be used.
$!      Version tuple is not a simple compare.
$!
$       if use_gnv_ssl .eq. 1 then
$           curl_ssl_libcrypto32 = gnv_ssl_libcrypto32
$           curl_ssl_libssl32 = gnv_ssl_libssl32
$           curl_ssl_version = gnv_ssl_version
$           use_hp_ssl = 0
$       endif
!$!
$   else
$       write sys$output "Unable to get version of GNV OpenSSL"
$   endif
$!
$!  Need to write a release note section about HP OpenSSL
$!
$create 'default_dir'hp_ssl_release_info.txt
$deck
This package is built on with the OpenSSL version listed below and requires
the shared images from the HP OpenSSL product that is kitted with that
version or a compatible later version.

For Alpha and IA64 platforms, see the url below to register to get the
download URL.  The kit will be HP 1.4-467 or later.
  https://h41379.www4.hpe.com/openvms/products/ssl/ssl.html

For VAX, use the same registration, but remove the kit name from any of the
download URLs provided and put in CPQ-VAXVMS-SSL-V0101-B-1.PCSI-DCX_VAXEXE

If your system can not be upgraded to a compatible version of OpenSSL, then
you can extract the two shared images from the kit and place them in the
[vms$common.gnv.lib]directory of the volume that you are installing GNV and
or GNV compatible components like Curl.

If GNV is installed, you must run the GNV startup procedure before these steps
and before installing Curl.


  1.  make sure that [vms$common.gnv.lib] exists by using the following
      commands.  We want the directory to be in lowercase except on VAX.

    $SET PROCESS/PARSE=extend !If not VAX.
    $CREATE/DIR device:[vms$common.gnv.lib]/prot=w:re

  2. Extract the ssl$crypto_shr32.exe and ssl$libssl_shr32.exe images.

    $PRODUCT EXTRACT FILE -
      /select=(ssl$libcrypto_shr32.exe,ssl$libssl_shr32.exe)-
      /source=device:[dir] -
      /options=noconfirm -
      /destination=device:[vms$common.gnv.lib] SSL

The [vms$common.sys$startup}curl_startup.com procedure will then configure
libcurl to use these shared images instead of the system ones.

When you upgrade SSL on VMS to the newer version of HP SSL, then these copies
should be deleted.

$eod
$!
$ open/append sslr 'default_dir'hp_ssl_release_info.txt
$ write sslr "OpenSSL version used for building this kit: ",curl_ssl_version
$ write sslr ""
$ close sslr
$!
$!
$! LIBZ
$ libzshr_line = ""
$ try_shr = "gnv$libzshr32"
$ if f$search(try_shr) .nes. ""
$ then
$   libzshr_line = "''try_shr'/share"
$ else
$   write sys$output "''try_shr' image not found!"
$   goto all_exit
$ endif
$!
$!
$ gssrtlshr_line = ""
$ if arch_name .nes. "VAX"
$ then
$   try_shr = "sys$share:gss$rtl"
$   if f$search("''try_shr'.exe") .nes. ""
$   then
$       gssrtlshr_line = "''try_shr'/share"
$   else
$       write sys$output "''try_shr' image not found!"
$       goto all_exit
$   endif
$ endif
$!
$!
$!
$ if f$search(share_link_opt_file) .eqs. ""
$ then
$   create 'share_link_opt_file'
$   open/append slopt 'share_link_opt_file'
$   if libzshr_line .nes. "" then write slopt libzshr_line
$   if gssrtlshr_line .nes. "" then write slopt gssrtlshr_line
$   write slopt "gnv$curl_ssl_libcryptoshr32/share"
$   write slopt "gnv$curl_ssl_libsslshr32/share"
$   close slopt
$ endif
$!
$! DCL build puts curllib in architecture directory
$! GNV build uses the makefile.
$ libfile = "[.packages.vms.''arch_name']curllib.olb"
$ if f$search(libfile) .nes. ""
$ then
$   olb_file = libfile
$ else
$   ! GNV based build
$   libfile = "[.lib.^.libs]libcurl.a"
$   if f$search(libfile) .nes. ""
$   then
$       olb_file = libfile
$   else
$       write sys$output -
  "Can not build shared image, libcurl object library not found!"
$       goto all_exit
$   endif
$ endif
$!
$gnv_libcurl_share = "''default_dir'gnv$libcurl.exe"
$!
$ if f$search(gnv_libcurl_share) .eqs. ""
$ then
$   if arch_name .nes. "VAX"
$   then
$       define/user gnv$curl_ssl_libcryptoshr32 'curl_ssl_libcrypto32'
$       define/user gnv$curl_ssl_libsslshr32 'curl_ssl_libssl32'
$       link/dsf='default_dir'gnv$libcurl.dsf/share='gnv_libcurl_share' -
            /map='default_dir'gnv$libcurl.map -
            gnv_packages_vms:gnv_libcurl_symbols.opt/opt,-
            'olb_file'/lib,-
            'share_link_opt_file'/opt
$   else
$!      VAX will not allow the logical name hack for the
$!      SSL libcryto library, it is pulling it in twice if I try it.
$       link/share='gnv_libcurl_share'/map='default_dir'gnv$libcurl.map -
            gnv_packages_vms:gnv_libcurl_xfer.opt/opt,-
            'olb_file'/lib,-
            'base_link_opt_file'/opt
$   endif
$ endif
$!
$!
$ if f$search("[.src]curl-tool_main.o") .nes. ""
$ then
$!  From src/makefile.inc:
$!  # libcurl has sources that provide functions named curlx_* that aren't
$!  # part of the official API, but we re-use the code here to avoid
$!  # duplication.
$!
$!
$   if f$search("[.src]curl.exe") .eqs. ""
$   then
$       define/user gnv$libcurl 'gnv_libcurl_share'
$       link'ldebug'/exe=[.src]curl.exe/dsf=[.src]curl.dsf -
           [.src]curl-tool_main.o, [.src]curl-tool_binmode.o, -
           [.src]curl-tool_bname.o, [.src]curl-tool_cb_dbg.o, -
           [.src]curl-tool_cb_hdr.o, [.src]curl-tool_cb_prg.o, -
           [.src]curl-tool_cb_rea.o, [.src]curl-tool_cb_see.o, -
           [.src]curl-tool_cb_wrt.o, [.src]curl-tool_cfgable.o, -
           [.src]curl-tool_convert.o, [.src]curl-tool_dirhie.o, -
           [.src]curl-tool_doswin.o, [.src]curl-tool_easysrc.o, -
           [.src]curl-tool_formparse.o, [.src]curl-tool_getparam.o, -
           [.src]curl-tool_getpass.o, [.src]curl-tool_help.o, -
           [.src]curl-tool_helpers.o, [.src]curl-tool_homedir.o, -
           [.src]curl-tool_hugehelp.o, [.src]curl-tool_libinfo.o, -
           [.src]curl-tool_metalink.o, [.src]curl-tool_mfiles.o, -
           [.src]curl-tool_msgs.o, [.src]curl-tool_operate.o, -
           [.src]curl-tool_operhlp.o, [.src]curl-tool_panykey.o, -
           [.src]curl-tool_paramhlp.o, [.src]curl-tool_parsecfg.o, -
           [.src]curl-tool_setopt.o, [.src]curl-tool_sleep.o, -
           [.src]curl-tool_urlglob.o, [.src]curl-tool_util.o, -
           [.src]curl-tool_vms.o, [.src]curl-tool_writeenv.o, -
           [.src]curl-tool_writeout.o, [.src]curl-tool_xattr.o, -
           [.src]curl-strtoofft.o, [.src]curl-strdup.o, [.src]curl-strcase.o, -
           [.src]curl-nonblock.o, gnv_packages_vms:curlmsg.obj,-
           sys$input:/opt
gnv$libcurl/share
gnv_packages_vms:curl_crtl_init.obj
$   endif
$ else
$   curl_exe = "[.src]curl.exe"
$   curl_dsf = "[.src]curl.dsf"
$   curl_main = "[.packages.vms.''arch_name']tool_main.obj"
$   curl_src = "[.packages.vms.''arch_name']curlsrc.olb"
$   curl_lib = "[.packages.vms.''arch_name']curllib.olb"
$   strcase = "strcase"
$   nonblock = "nonblock"
$   warnless = "warnless"
$!
$!  Extended parse style requires special quoting
$!
$   if (arch_name .nes. "VAX") .and. (parse_style .eqs. "EXTENDED")
$   then
$       strcase = """strcase"""
$       nonblock = """nonblock"""
$       warnless = """warnless"""
$   endif
$   if f$search(curl_exe) .eqs. ""
$   then
$       define/user gnv$libcurl 'gnv_libcurl_share'
$       link'ldebug'/exe='curl_exe'/dsf='curl_dsf' -
           'curl_main','curl_src'/lib, -
           'curl_lib'/library/include=-
           ('strcase','nonblock','warnless'),-
           gnv_packages_vms:curlmsg.obj,-
           sys$input:/opt
gnv$libcurl/share
gnv_packages_vms:curl_crtl_init.obj
$   endif
$ endif
$!
$!
$!
$! in6addr_missing so skip building:
$! [.server]sws.o
$! [.server]sockfilt.o
$! [.server]tftpd.o
$!
$!
$ target = "10-at-a-time"
$ if f$search("[.docs.examples]''target'.o") .eqs. ""
$ then
$   write sys$output "examples not built"
$   goto all_exit
$ endif
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
$ then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$ endif
$!
$!
$ target = "anyauthput"
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
$ then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$ endif
$!
$!
$ target = "certinfo"
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
$ then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$ endif
$!
$!
$ target = "cookie_interface"
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
$ then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$ endif
$!
$!
$ target = "debug"
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
$ then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$ endif
$!
$!
$ target = "fileupload"
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
$ then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$ endif
$!
$!
$ target = "fopen"
$ if f$search("[.docs.examples]''target'.exe") .eqs. ""
$ then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$ endif
$!
$!
$target = "ftpget"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "ftpgetresp"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "ftpupload"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "getinfo"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "getinmemory"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "http-post"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "httpcustomheader"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "httpput"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "https"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "multi-app"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "multi-debugcallback"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "multi-double"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "multi-post"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "multi-single"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "persistant"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "post-callback"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "postit2"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "sendrecv"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "sepheaders"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "simple"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "simplepost"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$!
$target = "simplessl"
$if f$search("[.docs.examples]''target'.exe") .eqs. ""
$then
$   define/user gnv$libcurl 'gnv_libcurl_share'
$   link'ldebug'/exe=[.docs.examples]'target'.exe-
    /dsf=[.docs.examples]'target'.dsf -
    [.docs.examples]'target'.o,-
    gnv$'target'.opt/opt,-
    sys$input:/opt
gnv$libcurl/share
$endif
$!
$! =============== End of docs/examples =========================
$!
$!
$all_exit:
$set def 'default_dir'
$exit '$status'
$!
