| $! File: gnv_link_curl.com |
| $! |
| $! $Id$ |
| $! |
| $! File to build images using gnv$libcurl.exe |
| $! |
| $! Copyright 2009 - 2021, 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_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 = "persistent" |
| $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' |
| $! |