Annotation of embedaddon/curl/packages/vms/gnv_link_curl.com, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>