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_len = f$length(ver_patch)
177 $ ver_patchnum = f$extract(0, ver_patch_len - 1, ver_patch)
178 $ ver_patchltr = f$extract(ver_patch_len - 1, 1, ver_patch)
179 $ if 'ver_maj' .ge. 0
181 $ if 'ver_min' .ge. 9
183 $ if 'ver_patchnum' .ge. 8
185 $ if ver_patchltr .ges. "w" then use_hp_ssl = 1
189 $ if use_hp_ssl .eq. 0
192 " HP OpenSSL version of ""''hp_ssl_version'"" is too old for shared libcurl!"
195 $ write sys$output "Unable to get version of HP OpenSSL"
198 $ gnv_ssl_libcrypto32 = "gnv$gnu:[lib]ssl$libcrypto_shr32.exe"
199 $ gnv_ssl_libssl32 = "gnv$gnu:[lib]ssl$libssl_shr32.exe"
200 $ if f$search(gnv_ssl_libcrypto32) .nes. ""
202 $ report_openssl_version 'gnv_ssl_libcrypto32' gnv_ssl_version
206 $ if f$type(gnv_ssl_version) .eqs. "STRING"
208 $ gnv_full_version = f$element(1, " ", gnv_ssl_version)
209 $ gnv_ver_maj = f$element(0, ".", gnv_full_version)
210 $ gnv_ver_min = f$element(1, ".", gnv_full_version)
211 $ gnv_ver_patch = f$element(2, ".", gnv_full_version)
212 $ gnv_ver_patch_len = f$length(gnv_ver_patch)
213 $ gnv_ver_patchnum = f$extract(0, gnv_ver_patch_len - 1, gnv_ver_patch)
214 $ gnv_ver_patchltr = f$extract(gnv_ver_patch_len - 1, 1, gnv_ver_patch)
215 $ if 'gnv_ver_maj' .ge. 0
217 $ if 'gnv_ver_min' .ge. 9
219 $ if 'gnv_ver_patchnum' .ge. 8
221 $ if gnv_ver_patchltr .ges. "w" then use_gnv_ssl = 1
225 $ if use_gnv_ssl .eq. 0
228 "GNV OpenSSL version of ""''gnv_ssl_version'" is too old for shared libcurl!"
231 $! Prefer to break the tie with the lowest supported version
232 $! For simplicity, if the GNV image is present, it will be used.
233 $! Version tuple is not a simple compare.
235 $ if use_gnv_ssl .eq. 1 then
236 $ curl_ssl_libcrypto32 = gnv_ssl_libcrypto32
237 $ curl_ssl_libssl32 = gnv_ssl_libssl32
238 $ curl_ssl_version = gnv_ssl_version
243 $ write sys$output "Unable to get version of GNV OpenSSL"
246 $! Need to write a release note section about HP OpenSSL
248 $create 'default_dir'hp_ssl_release_info.txt
250 This package is built on with the OpenSSL version listed below and requires
251 the shared images from the HP OpenSSL product that is kitted with that
252 version or a compatible later version.
254 For Alpha and IA64 platforms, see the url below to register to get the
255 download URL. The kit will be HP 1.4-467 or later.
256 http://h71000.www7.hp.com/openvms/products/ssl/ssl.html
258 For VAX, use the same registration, but remove the kit name from any of the
259 download URLs provided and put in CPQ-VAXVMS-SSL-V0101-B-1.PCSI-DCX_VAXEXE
261 If your system can not be upgraded to a compatible version of OpenSSL, then
262 you can extract the two shared images from the kit and place them in the
263 [vms$common.gnv.lib]directory of the volume that you are installing GNV and
264 or GNV compatible components like Curl.
266 If GNV is installed, you must run the GNV startup procedure before these steps
267 and before installing Curl.
270 1. make sure that [vms$common.gnv.lib] exists by using the following
271 commands. We want the directory to be in lowercase except on VAX.
273 $SET PROCESS/PARSE=extend !If not VAX.
274 $CREATE/DIR device:[vms$common.gnv.lib]/prot=w:re
276 2. Extract the ssl$crypto_shr32.exe and ssl$libssl_shr32.exe images.
278 $PRODUCT EXTRACT FILE -
279 /select=(ssl$libcrypto_shr32.exe,ssl$libssl_shr32.exe)-
280 /source=device:[dir] -
282 /destination=device:[vms$common.gnv.lib] SSL
284 The [vms$common.sys$startup}curl_startup.com procedure will then configure
285 libcurl to use these shared images instead of the system ones.
287 When you upgrade SSL on VMS to the newer version of HP SSL, then these copies
292 $ open/append sslr 'default_dir'hp_ssl_release_info.txt
293 $ write sslr "OpenSSL version used for building this kit: ",curl_ssl_version
300 $ try_shr = "gnv$libzshr32"
301 $ if f$search(try_shr) .nes. ""
303 $ libzshr_line = "''try_shr'/share"
305 $ write sys$output "''try_shr' image not found!"
310 $ gssrtlshr_line = ""
311 $ if arch_name .nes. "VAX"
313 $ try_shr = "sys$share:gss$rtl"
314 $ if f$search("''try_shr'.exe") .nes. ""
316 $ gssrtlshr_line = "''try_shr'/share"
318 $ write sys$output "''try_shr' image not found!"
325 $ if f$search(share_link_opt_file) .eqs. ""
327 $ create 'share_link_opt_file'
328 $ open/append slopt 'share_link_opt_file'
329 $ if libzshr_line .nes. "" then write slopt libzshr_line
330 $ if gssrtlshr_line .nes. "" then write slopt gssrtlshr_line
331 $ write slopt "gnv$curl_ssl_libcryptoshr32/share"
332 $ write slopt "gnv$curl_ssl_libsslshr32/share"
336 $! DCL build puts curllib in architecture directory
337 $! GNV build uses the makefile.
338 $ libfile = "[.packages.vms.''arch_name']curllib.olb"
339 $ if f$search(libfile) .nes. ""
344 $ libfile = "[.lib.^.libs]libcurl.a"
345 $ if f$search(libfile) .nes. ""
350 "Can not build shared image, libcurl object library not found!"
355 $gnv_libcurl_share = "''default_dir'gnv$libcurl.exe"
357 $ if f$search(gnv_libcurl_share) .eqs. ""
359 $ if arch_name .nes. "VAX"
361 $ define/user gnv$curl_ssl_libcryptoshr32 'curl_ssl_libcrypto32'
362 $ define/user gnv$curl_ssl_libsslshr32 'curl_ssl_libssl32'
363 $ link/dsf='default_dir'gnv$libcurl.dsf/share='gnv_libcurl_share' -
364 /map='default_dir'gnv$libcurl.map -
365 gnv_packages_vms:gnv_libcurl_symbols.opt/opt,-
367 'share_link_opt_file'/opt
369 $! VAX will not allow the logical name hack for the
370 $! SSL libcryto library, it is pulling it in twice if I try it.
371 $ link/share='gnv_libcurl_share'/map='default_dir'gnv$libcurl.map -
372 gnv_packages_vms:gnv_libcurl_xfer.opt/opt,-
374 'base_link_opt_file'/opt
379 $ if f$search("[.src]curl-tool_main.o") .nes. ""
381 $! From src/makefile.inc:
382 $! # libcurl has sources that provide functions named curlx_* that aren't
383 $! # part of the official API, but we re-use the code here to avoid
387 $ if f$search("[.src]curl.exe") .eqs. ""
389 $ define/user gnv$libcurl 'gnv_libcurl_share'
390 $ link'ldebug'/exe=[.src]curl.exe/dsf=[.src]curl.dsf -
391 [.src]curl-tool_main.o, [.src]curl-tool_binmode.o, -
392 [.src]curl-tool_bname.o, [.src]curl-tool_cb_dbg.o, -
393 [.src]curl-tool_cb_hdr.o, [.src]curl-tool_cb_prg.o, -
394 [.src]curl-tool_cb_rea.o, [.src]curl-tool_cb_see.o, -
395 [.src]curl-tool_cb_wrt.o, [.src]curl-tool_cfgable.o, -
396 [.src]curl-tool_convert.o, [.src]curl-tool_dirhie.o, -
397 [.src]curl-tool_doswin.o, [.src]curl-tool_easysrc.o, -
398 [.src]curl-tool_formparse.o, [.src]curl-tool_getparam.o, -
399 [.src]curl-tool_getpass.o, [.src]curl-tool_help.o, -
400 [.src]curl-tool_helpers.o, [.src]curl-tool_homedir.o, -
401 [.src]curl-tool_hugehelp.o, [.src]curl-tool_libinfo.o, -
402 [.src]curl-tool_metalink.o, [.src]curl-tool_mfiles.o, -
403 [.src]curl-tool_msgs.o, [.src]curl-tool_operate.o, -
404 [.src]curl-tool_operhlp.o, [.src]curl-tool_panykey.o, -
405 [.src]curl-tool_paramhlp.o, [.src]curl-tool_parsecfg.o, -
406 [.src]curl-tool_setopt.o, [.src]curl-tool_sleep.o, -
407 [.src]curl-tool_urlglob.o, [.src]curl-tool_util.o, -
408 [.src]curl-tool_vms.o, [.src]curl-tool_writeenv.o, -
409 [.src]curl-tool_writeout.o, [.src]curl-tool_xattr.o, -
410 [.src]curl-strtoofft.o, [.src]curl-strdup.o, [.src]curl-rawstr.o, -
411 [.src]curl-nonblock.o, gnv_packages_vms:curlmsg.obj,-
414 gnv_packages_vms:curl_crtl_init.obj
417 $ curl_exe = "[.src]curl.exe"
418 $ curl_dsf = "[.src]curl.dsf"
419 $ curl_main = "[.packages.vms.''arch_name']tool_main.obj"
420 $ curl_src = "[.packages.vms.''arch_name']curlsrc.olb"
421 $ curl_lib = "[.packages.vms.''arch_name']curllib.olb"
423 $ nonblock = "nonblock"
424 $ warnless = "warnless"
426 $! Extended parse style requires special quoting
428 $ if (arch_name .nes. "VAX") .and. (parse_style .eqs. "EXTENDED")
430 $ rawstr = """rawstr"""
431 $ nonblock = """nonblock"""
432 $ warnless = """warnless"""
434 $ if f$search(curl_exe) .eqs. ""
436 $ define/user gnv$libcurl 'gnv_libcurl_share'
437 $ link'ldebug'/exe='curl_exe'/dsf='curl_dsf' -
438 'curl_main','curl_src'/lib, -
439 'curl_lib'/library/include=-
440 ('rawstr','nonblock','warnless'),-
441 gnv_packages_vms:curlmsg.obj,-
444 gnv_packages_vms:curl_crtl_init.obj
450 $! in6addr_missing so skip building:
452 $! [.server]sockfilt.o
456 $ target = "10-at-a-time"
457 $ if f$search("[.docs.examples]''target'.o") .eqs. ""
459 $ write sys$output "examples not built"
462 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
464 $ define/user gnv$libcurl 'gnv_libcurl_share'
465 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
466 /dsf=[.docs.examples]'target'.dsf -
467 [.docs.examples]'target'.o,-
468 gnv$'target'.opt/opt,-
474 $ target = "anyauthput"
475 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
477 $ define/user gnv$libcurl 'gnv_libcurl_share'
478 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
479 /dsf=[.docs.examples]'target'.dsf -
480 [.docs.examples]'target'.o,-
481 gnv$'target'.opt/opt,-
487 $ target = "certinfo"
488 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
490 $ define/user gnv$libcurl 'gnv_libcurl_share'
491 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
492 /dsf=[.docs.examples]'target'.dsf -
493 [.docs.examples]'target'.o,-
494 gnv$'target'.opt/opt,-
500 $ target = "cookie_interface"
501 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
503 $ define/user gnv$libcurl 'gnv_libcurl_share'
504 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
505 /dsf=[.docs.examples]'target'.dsf -
506 [.docs.examples]'target'.o,-
507 gnv$'target'.opt/opt,-
514 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
516 $ define/user gnv$libcurl 'gnv_libcurl_share'
517 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
518 /dsf=[.docs.examples]'target'.dsf -
519 [.docs.examples]'target'.o,-
520 gnv$'target'.opt/opt,-
526 $ target = "fileupload"
527 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
529 $ define/user gnv$libcurl 'gnv_libcurl_share'
530 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
531 /dsf=[.docs.examples]'target'.dsf -
532 [.docs.examples]'target'.o,-
533 gnv$'target'.opt/opt,-
540 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
542 $ define/user gnv$libcurl 'gnv_libcurl_share'
543 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
544 /dsf=[.docs.examples]'target'.dsf -
545 [.docs.examples]'target'.o,-
546 gnv$'target'.opt/opt,-
553 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
555 $ define/user gnv$libcurl 'gnv_libcurl_share'
556 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
557 /dsf=[.docs.examples]'target'.dsf -
558 [.docs.examples]'target'.o,-
559 gnv$'target'.opt/opt,-
565 $target = "ftpgetresp"
566 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
568 $ define/user gnv$libcurl 'gnv_libcurl_share'
569 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
570 /dsf=[.docs.examples]'target'.dsf -
571 [.docs.examples]'target'.o,-
572 gnv$'target'.opt/opt,-
578 $target = "ftpupload"
579 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
581 $ define/user gnv$libcurl 'gnv_libcurl_share'
582 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
583 /dsf=[.docs.examples]'target'.dsf -
584 [.docs.examples]'target'.o,-
585 gnv$'target'.opt/opt,-
592 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
594 $ define/user gnv$libcurl 'gnv_libcurl_share'
595 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
596 /dsf=[.docs.examples]'target'.dsf -
597 [.docs.examples]'target'.o,-
598 gnv$'target'.opt/opt,-
604 $target = "getinmemory"
605 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
607 $ define/user gnv$libcurl 'gnv_libcurl_share'
608 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
609 /dsf=[.docs.examples]'target'.dsf -
610 [.docs.examples]'target'.o,-
611 gnv$'target'.opt/opt,-
617 $target = "http-post"
618 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
620 $ define/user gnv$libcurl 'gnv_libcurl_share'
621 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
622 /dsf=[.docs.examples]'target'.dsf -
623 [.docs.examples]'target'.o,-
624 gnv$'target'.opt/opt,-
630 $target = "httpcustomheader"
631 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
633 $ define/user gnv$libcurl 'gnv_libcurl_share'
634 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
635 /dsf=[.docs.examples]'target'.dsf -
636 [.docs.examples]'target'.o,-
637 gnv$'target'.opt/opt,-
644 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
646 $ define/user gnv$libcurl 'gnv_libcurl_share'
647 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
648 /dsf=[.docs.examples]'target'.dsf -
649 [.docs.examples]'target'.o,-
650 gnv$'target'.opt/opt,-
657 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
659 $ define/user gnv$libcurl 'gnv_libcurl_share'
660 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
661 /dsf=[.docs.examples]'target'.dsf -
662 [.docs.examples]'target'.o,-
663 gnv$'target'.opt/opt,-
669 $target = "multi-app"
670 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
672 $ define/user gnv$libcurl 'gnv_libcurl_share'
673 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
674 /dsf=[.docs.examples]'target'.dsf -
675 [.docs.examples]'target'.o,-
676 gnv$'target'.opt/opt,-
682 $target = "multi-debugcallback"
683 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
685 $ define/user gnv$libcurl 'gnv_libcurl_share'
686 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
687 /dsf=[.docs.examples]'target'.dsf -
688 [.docs.examples]'target'.o,-
689 gnv$'target'.opt/opt,-
695 $target = "multi-double"
696 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
698 $ define/user gnv$libcurl 'gnv_libcurl_share'
699 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
700 /dsf=[.docs.examples]'target'.dsf -
701 [.docs.examples]'target'.o,-
702 gnv$'target'.opt/opt,-
708 $target = "multi-post"
709 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
711 $ define/user gnv$libcurl 'gnv_libcurl_share'
712 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
713 /dsf=[.docs.examples]'target'.dsf -
714 [.docs.examples]'target'.o,-
715 gnv$'target'.opt/opt,-
721 $target = "multi-single"
722 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
724 $ define/user gnv$libcurl 'gnv_libcurl_share'
725 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
726 /dsf=[.docs.examples]'target'.dsf -
727 [.docs.examples]'target'.o,-
728 gnv$'target'.opt/opt,-
734 $target = "persistant"
735 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
737 $ define/user gnv$libcurl 'gnv_libcurl_share'
738 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
739 /dsf=[.docs.examples]'target'.dsf -
740 [.docs.examples]'target'.o,-
741 gnv$'target'.opt/opt,-
747 $target = "post-callback"
748 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
750 $ define/user gnv$libcurl 'gnv_libcurl_share'
751 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
752 /dsf=[.docs.examples]'target'.dsf -
753 [.docs.examples]'target'.o,-
754 gnv$'target'.opt/opt,-
761 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
763 $ define/user gnv$libcurl 'gnv_libcurl_share'
764 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
765 /dsf=[.docs.examples]'target'.dsf -
766 [.docs.examples]'target'.o,-
767 gnv$'target'.opt/opt,-
774 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
776 $ define/user gnv$libcurl 'gnv_libcurl_share'
777 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
778 /dsf=[.docs.examples]'target'.dsf -
779 [.docs.examples]'target'.o,-
780 gnv$'target'.opt/opt,-
786 $target = "sepheaders"
787 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
789 $ define/user gnv$libcurl 'gnv_libcurl_share'
790 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
791 /dsf=[.docs.examples]'target'.dsf -
792 [.docs.examples]'target'.o,-
793 gnv$'target'.opt/opt,-
800 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
802 $ define/user gnv$libcurl 'gnv_libcurl_share'
803 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
804 /dsf=[.docs.examples]'target'.dsf -
805 [.docs.examples]'target'.o,-
806 gnv$'target'.opt/opt,-
812 $target = "simplepost"
813 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
815 $ define/user gnv$libcurl 'gnv_libcurl_share'
816 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
817 /dsf=[.docs.examples]'target'.dsf -
818 [.docs.examples]'target'.o,-
819 gnv$'target'.opt/opt,-
825 $target = "simplessl"
826 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
828 $ define/user gnv$libcurl 'gnv_libcurl_share'
829 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
830 /dsf=[.docs.examples]'target'.dsf -
831 [.docs.examples]'target'.o,-
832 gnv$'target'.opt/opt,-
837 $! =============== End of docs/examples =========================
841 $set def 'default_dir'