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"
358 $ if f$search(gnv_libcurl_share) .eqs. ""
360 $ if arch_name .nes. "VAX"
362 $ define/user gnv$curl_ssl_libcryptoshr32 'curl_ssl_libcrypto32'
363 $ define/user gnv$curl_ssl_libsslshr32 'curl_ssl_libssl32'
364 $ link/dsf='default_dir'gnv$libcurl.dsf/share='gnv_libcurl_share' -
365 /map='default_dir'gnv$libcurl.map -
366 gnv_packages_vms:gnv_libcurl_symbols.opt/opt,-
368 'share_link_opt_file'/opt
370 $! VAX will not allow the logical name hack for the
371 $! SSL libcryto library, it is pulling it in twice if I try it.
372 $ link/share='gnv_libcurl_share'/map='default_dir'gnv$libcurl.map -
373 gnv_packages_vms:gnv_libcurl_xfer.opt/opt,-
375 'base_link_opt_file'/opt
380 $ if f$search("[.src]curl-tool_main.o") .nes. ""
382 $! From src/makefile.inc:
383 $! # libcurl has sources that provide functions named curlx_* that aren't
384 $! # part of the official API, but we re-use the code here to avoid
388 $ if f$search("[.src]curl.exe") .eqs. ""
390 $ define/user gnv$libcurl 'gnv_libcurl_share'
391 $ link'ldebug'/exe=[.src]curl.exe/dsf=[.src]curl.dsf -
392 [.src]curl-tool_main.o, [.src]curl-tool_binmode.o, -
393 [.src]curl-tool_bname.o, [.src]curl-tool_cb_dbg.o, -
394 [.src]curl-tool_cb_hdr.o, [.src]curl-tool_cb_prg.o, -
395 [.src]curl-tool_cb_rea.o, [.src]curl-tool_cb_see.o, -
396 [.src]curl-tool_cb_wrt.o, [.src]curl-tool_cfgable.o, -
397 [.src]curl-tool_convert.o, [.src]curl-tool_dirhie.o, -
398 [.src]curl-tool_doswin.o, [.src]curl-tool_easysrc.o, -
399 [.src]curl-tool_formparse.o, [.src]curl-tool_getparam.o, -
400 [.src]curl-tool_getpass.o, [.src]curl-tool_help.o, -
401 [.src]curl-tool_helpers.o, [.src]curl-tool_homedir.o, -
402 [.src]curl-tool_hugehelp.o, [.src]curl-tool_libinfo.o, -
403 [.src]curl-tool_metalink.o, [.src]curl-tool_mfiles.o, -
404 [.src]curl-tool_msgs.o, [.src]curl-tool_operate.o, -
405 [.src]curl-tool_operhlp.o, [.src]curl-tool_panykey.o, -
406 [.src]curl-tool_paramhlp.o, [.src]curl-tool_parsecfg.o, -
407 [.src]curl-tool_setopt.o, [.src]curl-tool_sleep.o, -
408 [.src]curl-tool_urlglob.o, [.src]curl-tool_util.o, -
409 [.src]curl-tool_vms.o, [.src]curl-tool_writeenv.o, -
410 [.src]curl-tool_writeout.o, [.src]curl-tool_xattr.o, -
411 [.src]curl-strtoofft.o, [.src]curl-strdup.o, [.src]curl-rawstr.o, -
412 [.src]curl-nonblock.o, gnv_packages_vms:curlmsg.obj,-
415 gnv_packages_vms:curl_crtl_init.obj
418 $ curl_exe = "[.src]curl.exe"
419 $ curl_dsf = "[.src]curl.dsf"
420 $ curl_main = "[.packages.vms.''arch_name']tool_main.obj"
421 $ curl_src = "[.packages.vms.''arch_name']curlsrc.olb"
422 $ curl_lib = "[.packages.vms.''arch_name']curllib.olb"
423 $ strtoofft = "strtoofft"
426 $ nonblock = "nonblock"
428 $! Extended parse style requires special quoting
430 $ if (arch_name .nes. "VAX") .and. (parse_style .eqs. "EXTENDED")
432 $ strtoofft = """strtoofft"""
433 $ strdup = """strdup"""
434 $ rawstr = """rawstr"""
435 $ nonblock = """nonblock"""
437 $ if f$search(curl_exe) .eqs. ""
439 $ define/user gnv$libcurl 'gnv_libcurl_share'
440 $ link'ldebug'/exe='curl_exe'/dsf='curl_dsf' -
441 'curl_main','curl_src'/lib, -
442 'curl_lib'/library/include=-
443 ('strtoofft', 'strdup', 'rawstr', 'nonblock'),-
444 gnv_packages_vms:curlmsg.obj,-
447 gnv_packages_vms:curl_crtl_init.obj
453 $! in6addr_missing so skip building:
455 $! [.server]sockfilt.o
459 $ target = "10-at-a-time"
460 $ if f$search("[.docs.examples]''target'.o") .eqs. ""
462 $ write sys$output "examples not built"
465 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
467 $ define/user gnv$libcurl 'gnv_libcurl_share'
468 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
469 /dsf=[.docs.examples]'target'.dsf -
470 [.docs.examples]'target'.o,-
471 gnv$'target'.opt/opt,-
477 $ target = "anyauthput"
478 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
480 $ define/user gnv$libcurl 'gnv_libcurl_share'
481 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
482 /dsf=[.docs.examples]'target'.dsf -
483 [.docs.examples]'target'.o,-
484 gnv$'target'.opt/opt,-
490 $ target = "certinfo"
491 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
493 $ define/user gnv$libcurl 'gnv_libcurl_share'
494 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
495 /dsf=[.docs.examples]'target'.dsf -
496 [.docs.examples]'target'.o,-
497 gnv$'target'.opt/opt,-
503 $ target = "cookie_interface"
504 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
506 $ define/user gnv$libcurl 'gnv_libcurl_share'
507 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
508 /dsf=[.docs.examples]'target'.dsf -
509 [.docs.examples]'target'.o,-
510 gnv$'target'.opt/opt,-
517 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
519 $ define/user gnv$libcurl 'gnv_libcurl_share'
520 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
521 /dsf=[.docs.examples]'target'.dsf -
522 [.docs.examples]'target'.o,-
523 gnv$'target'.opt/opt,-
529 $ target = "fileupload"
530 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
532 $ define/user gnv$libcurl 'gnv_libcurl_share'
533 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
534 /dsf=[.docs.examples]'target'.dsf -
535 [.docs.examples]'target'.o,-
536 gnv$'target'.opt/opt,-
543 $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
545 $ define/user gnv$libcurl 'gnv_libcurl_share'
546 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
547 /dsf=[.docs.examples]'target'.dsf -
548 [.docs.examples]'target'.o,-
549 gnv$'target'.opt/opt,-
556 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
558 $ define/user gnv$libcurl 'gnv_libcurl_share'
559 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
560 /dsf=[.docs.examples]'target'.dsf -
561 [.docs.examples]'target'.o,-
562 gnv$'target'.opt/opt,-
568 $target = "ftpgetresp"
569 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
571 $ define/user gnv$libcurl 'gnv_libcurl_share'
572 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
573 /dsf=[.docs.examples]'target'.dsf -
574 [.docs.examples]'target'.o,-
575 gnv$'target'.opt/opt,-
581 $target = "ftpupload"
582 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
584 $ define/user gnv$libcurl 'gnv_libcurl_share'
585 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
586 /dsf=[.docs.examples]'target'.dsf -
587 [.docs.examples]'target'.o,-
588 gnv$'target'.opt/opt,-
595 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
597 $ define/user gnv$libcurl 'gnv_libcurl_share'
598 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
599 /dsf=[.docs.examples]'target'.dsf -
600 [.docs.examples]'target'.o,-
601 gnv$'target'.opt/opt,-
607 $target = "getinmemory"
608 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
610 $ define/user gnv$libcurl 'gnv_libcurl_share'
611 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
612 /dsf=[.docs.examples]'target'.dsf -
613 [.docs.examples]'target'.o,-
614 gnv$'target'.opt/opt,-
620 $target = "http-post"
621 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
623 $ define/user gnv$libcurl 'gnv_libcurl_share'
624 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
625 /dsf=[.docs.examples]'target'.dsf -
626 [.docs.examples]'target'.o,-
627 gnv$'target'.opt/opt,-
633 $target = "httpcustomheader"
634 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
636 $ define/user gnv$libcurl 'gnv_libcurl_share'
637 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
638 /dsf=[.docs.examples]'target'.dsf -
639 [.docs.examples]'target'.o,-
640 gnv$'target'.opt/opt,-
647 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
649 $ define/user gnv$libcurl 'gnv_libcurl_share'
650 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
651 /dsf=[.docs.examples]'target'.dsf -
652 [.docs.examples]'target'.o,-
653 gnv$'target'.opt/opt,-
660 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
662 $ define/user gnv$libcurl 'gnv_libcurl_share'
663 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
664 /dsf=[.docs.examples]'target'.dsf -
665 [.docs.examples]'target'.o,-
666 gnv$'target'.opt/opt,-
672 $target = "multi-app"
673 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
675 $ define/user gnv$libcurl 'gnv_libcurl_share'
676 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
677 /dsf=[.docs.examples]'target'.dsf -
678 [.docs.examples]'target'.o,-
679 gnv$'target'.opt/opt,-
685 $target = "multi-debugcallback"
686 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
688 $ define/user gnv$libcurl 'gnv_libcurl_share'
689 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
690 /dsf=[.docs.examples]'target'.dsf -
691 [.docs.examples]'target'.o,-
692 gnv$'target'.opt/opt,-
698 $target = "multi-double"
699 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
701 $ define/user gnv$libcurl 'gnv_libcurl_share'
702 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
703 /dsf=[.docs.examples]'target'.dsf -
704 [.docs.examples]'target'.o,-
705 gnv$'target'.opt/opt,-
711 $target = "multi-post"
712 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
714 $ define/user gnv$libcurl 'gnv_libcurl_share'
715 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
716 /dsf=[.docs.examples]'target'.dsf -
717 [.docs.examples]'target'.o,-
718 gnv$'target'.opt/opt,-
724 $target = "multi-single"
725 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
727 $ define/user gnv$libcurl 'gnv_libcurl_share'
728 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
729 /dsf=[.docs.examples]'target'.dsf -
730 [.docs.examples]'target'.o,-
731 gnv$'target'.opt/opt,-
737 $target = "persistant"
738 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
740 $ define/user gnv$libcurl 'gnv_libcurl_share'
741 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
742 /dsf=[.docs.examples]'target'.dsf -
743 [.docs.examples]'target'.o,-
744 gnv$'target'.opt/opt,-
750 $target = "post-callback"
751 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
753 $ define/user gnv$libcurl 'gnv_libcurl_share'
754 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
755 /dsf=[.docs.examples]'target'.dsf -
756 [.docs.examples]'target'.o,-
757 gnv$'target'.opt/opt,-
764 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
766 $ define/user gnv$libcurl 'gnv_libcurl_share'
767 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
768 /dsf=[.docs.examples]'target'.dsf -
769 [.docs.examples]'target'.o,-
770 gnv$'target'.opt/opt,-
777 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
779 $ define/user gnv$libcurl 'gnv_libcurl_share'
780 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
781 /dsf=[.docs.examples]'target'.dsf -
782 [.docs.examples]'target'.o,-
783 gnv$'target'.opt/opt,-
789 $target = "sepheaders"
790 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
792 $ define/user gnv$libcurl 'gnv_libcurl_share'
793 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
794 /dsf=[.docs.examples]'target'.dsf -
795 [.docs.examples]'target'.o,-
796 gnv$'target'.opt/opt,-
803 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
805 $ define/user gnv$libcurl 'gnv_libcurl_share'
806 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
807 /dsf=[.docs.examples]'target'.dsf -
808 [.docs.examples]'target'.o,-
809 gnv$'target'.opt/opt,-
815 $target = "simplepost"
816 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
818 $ define/user gnv$libcurl 'gnv_libcurl_share'
819 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
820 /dsf=[.docs.examples]'target'.dsf -
821 [.docs.examples]'target'.o,-
822 gnv$'target'.opt/opt,-
828 $target = "simplessl"
829 $if f$search("[.docs.examples]''target'.exe") .eqs. ""
831 $ define/user gnv$libcurl 'gnv_libcurl_share'
832 $ link'ldebug'/exe=[.docs.examples]'target'.exe-
833 /dsf=[.docs.examples]'target'.dsf -
834 [.docs.examples]'target'.o,-
835 gnv$'target'.opt/opt,-
840 $! =============== End of docs/examples =========================
844 $set def 'default_dir'