1 $! File: gnv_link_curl.com
5 $! File to build images using gnv$libcurl.exe
7 $! Copyright 2009, John Malmberg
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.
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.
21 $! 10-Jun-2009 J. Malmberg
22 $!============================================================================
24 $! Save this so we can get back.
25 $ default_dir = f$environment("default")
26 $ define/job gnv_packages_vms 'default_dir'
28 $ on warning then goto all_exit
30 $! On VAX, we need to generate a Macro transfer vector.
31 $ parse_style = "TRADITIONAL"
32 $ if (f$getsyi("HW_MODEL") .lt. 1024)
34 $ @generate_vax_transfer.com
38 $ arch_name = arch_name + f$edit(f$getsyi("ARCH_NAME"), "UPCASE")
39 $ if (arch_name .eqs. "") then arch_name = "UNK"
41 $! Extended parsing option starts with VMS 7.3-1.
42 $! There is no 7.4, so that simplifies the parse a bit.
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 = ""
52 $ if maj_ver .ges. "8"
56 $ if maj_ver .eqs. "7" .and. min_ver .ges. "3" .and. patch .nes. ""
63 $ parse_style = f$getjpi("", "parse_style_perm")
68 $! Move to where the base directories.
72 $! Build the Message file.
73 $!--------------------------
74 $ if f$search("[.packages.vms]curlmsg.obj") .eqs. ""
76 $ message [.packages.vms]curlmsg.msg/object=[.packages.vms]
78 $ if f$search("gnv$curlmsg.exe") .eqs. ""
80 $ link/share=gnv$curlmsg.exe [.packages.vms]curlmsg.obj
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. ""
90 $ cc'cflags' 'default_dir'curl_crtl_init.c/obj='init_obj'
93 $ rename 'init_obj' ;1
96 $! Need to build the module to test the HP OpenSSL version
97 $!--------------------------------------------------------
98 $ if arch_name .nes. "VAX"
100 $ rpt_obj = "[.packages.vms]report_openssl_version.obj
101 $ if f$search(rpt_obj) .eqs. ""
103 $ cc'cflags' 'default_dir'report_openssl_version.c/obj='rpt_obj'
106 $ rename 'rpt_obj' ;1
108 $ link/exe='default_dir'report_openssl_version.exe 'rpt_obj'
109 $ report_openssl_version := $'default_dir'report_openssl_version.exe
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. ""
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. ""
121 $ write sys$output "Can not find base library option file!"
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
129 $ if f$search("gnv$libzshr32") .eqs. ""
131 $ write sys$output "VMSPORTS/GNV LIBZ Shared image not found!"
136 $! Need to check the version of the HP SSL shared image.
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"
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. ""
147 $ curl_ssl_libcrypto32 = hp_ssl_libcrypto32
148 $ curl_ssl_libssl32 = hp_ssl_libssl32
149 $ curl_ssl_version = "OpenSSL/0.9.6g"
151 $ write sys$output "HP OpenSSL Shared images not found!"
156 $! Minimum HP version we can use reports:
157 $! "OpenSSL 0.9.8w 23 Apr 2012"
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. ""
164 $ curl_ssl_libcrypto32 = hp_ssl_libcrypto32
165 $ curl_ssl_libssl32 = hp_ssl_libssl32
166 $ report_openssl_version 'hp_ssl_libcrypto32' hp_ssl_version
169 $ if f$type(hp_ssl_version) .eqs. "STRING"
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)
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
186 $ ver_patchnum = ver_patch - ver_patchltr
187 $ if 'ver_maj' .ge. 0
189 $ if 'ver_min' .ge. 9
191 $ if 'ver_patchnum' .ge. 8
193 $ if ver_patchltr .ges. "w" then use_hp_ssl = 1
198 $ if use_hp_ssl .eq. 0
201 " HP OpenSSL version of ""''hp_ssl_version'"" is too old for shared libcurl!"
204 $ write sys$output "Unable to get version of HP OpenSSL"
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. ""
211 $ report_openssl_version 'gnv_ssl_libcrypto32' gnv_ssl_version
215 $ if f$type(gnv_ssl_version) .eqs. "STRING"
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
226 $ if 'gnv_ver_min' .ge. 9
228 $ if 'gnv_ver_patchnum' .ge. 8
230 $ if gnv_ver_patchltr .ges. "w" then use_gnv_ssl = 1
234 $ if use_gnv_ssl .eq. 0
237 "GNV OpenSSL version of ""''gnv_ssl_version'" is too old for shared libcurl!"
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.
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
252 $ write sys$output "Unable to get version of GNV OpenSSL"
255 $! Need to write a release note section about HP OpenSSL
257 $create 'default_dir'hp_ssl_release_info.txt
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.
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 http://h71000.www7.hp.com/openvms/products/ssl/ssl.html
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
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.
275 If GNV is installed, you must run the GNV startup procedure before these steps
276 and before installing Curl.
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.
282 $SET PROCESS/PARSE=extend !If not VAX.
283 $CREATE/DIR device:[vms$common.gnv.lib]/prot=w:re
285 2. Extract the ssl$crypto_shr32.exe and ssl$libssl_shr32.exe images.
287 $PRODUCT EXTRACT FILE -
288 /select=(ssl$libcrypto_shr32.exe,ssl$libssl_shr32.exe)-
289 /source=device:[dir] -
291 /destination=device:[vms$common.gnv.lib] SSL
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.
296 When you upgrade SSL on VMS to the newer version of HP SSL, then these copies
301 $ open/append sslr 'default_dir'hp_ssl_release_info.txt
302 $ write sslr "OpenSSL version used for building this kit: ",curl_ssl_version
309 $ try_shr = "gnv$libzshr32"
310 $ if f$search(try_shr) .nes. ""
312 $ libzshr_line = "''try_shr'/share"
314 $ write sys$output "''try_shr' image not found!"
319 $ gssrtlshr_line = ""
320 $ if arch_name .nes. "VAX"
322 $ try_shr = "sys$share:gss$rtl"
323 $ if f$search("''try_shr'.exe") .nes. ""
325 $ gssrtlshr_line = "''try_shr'/share"
327 $ write sys$output "''try_shr' image not found!"
334 $ if f$search(share_link_opt_file) .eqs. ""
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"
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. ""
353 $ libfile = "[.lib.^.libs]libcurl.a"
354 $ if f$search(libfile) .nes. ""
359 "Can not build shared image, libcurl object library not found!"
364 $gnv_libcurl_share = "''default_dir'gnv$libcurl.exe"
366 $ if f$search(gnv_libcurl_share) .eqs. ""
368 $ if arch_name .nes. "VAX"
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,-
376 'share_link_opt_file'/opt
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,-
383 'base_link_opt_file'/opt
388 $ if f$search("[.src]curl-tool_main.o") .nes. ""
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
396 $ if f$search("[.src]curl.exe") .eqs. ""
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-rawstr.o, -
420 [.src]curl-nonblock.o, gnv_packages_vms:curlmsg.obj,-
423 gnv_packages_vms:curl_crtl_init.obj
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"
432 $ nonblock = "nonblock"
433 $ warnless = "warnless"
435 $! Extended parse style requires special quoting
437 $ if (arch_name .nes. "VAX") .and. (parse_style .eqs. "EXTENDED")
439 $ rawstr = """rawstr"""
440 $ nonblock = """nonblock"""
441 $ warnless = """warnless"""
443 $ if f$search(curl_exe) .eqs. ""
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 ('rawstr','nonblock','warnless'),-
450 gnv_packages_vms:curlmsg.obj,-
453 gnv_packages_vms:curl_crtl_init.obj
459 $! in6addr_missing so skip building:
461 $! [.server]sockfilt.o
465 $ target = "10-at-a-time"
466 $ if f$search("[.docs.examples]''target'.o") .eqs. ""
468 $ write sys$output "examples not built"
471 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
483 $ target = "anyauthput"
484 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
496 $ target = "certinfo"
497 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
509 $ target = "cookie_interface"
510 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
523 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
535 $ target = "fileupload"
536 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
549 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
562 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
574 $target = "ftpgetresp"
575 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
587 $target = "ftpupload"
588 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
601 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
613 $target = "getinmemory"
614 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
626 $target = "http-post"
627 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
639 $target = "httpcustomheader"
640 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
653 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
666 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
678 $target = "multi-app"
679 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
691 $target = "multi-debugcallback"
692 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
704 $target = "multi-double"
705 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
717 $target = "multi-post"
718 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
730 $target = "multi-single"
731 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
743 $target = "persistant"
744 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
756 $target = "post-callback"
757 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
770 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
783 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
795 $target = "sepheaders"
796 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
809 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
821 $target = "simplepost"
822 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
834 $target = "simplessl"
835 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
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,-
846 $! =============== End of docs/examples =========================
850 $set def 'default_dir'