1$! File: gnv_link_curl.com 2$! 3$! $Id$ 4$! 5$! File to build images using gnv$libcurl.exe 6$! 7$! Copyright 2009, John Malmberg 8$! 9$! Permission to use, copy, modify, and/or distribute this software for any 10$! purpose with or without fee is hereby granted, provided that the above 11$! copyright notice and this permission notice appear in all copies. 12$! 13$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 14$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 15$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 16$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 17$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 18$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 19$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 20$! 21$! 10-Jun-2009 J. Malmberg 22$!============================================================================ 23$! 24$! Save this so we can get back. 25$ default_dir = f$environment("default") 26$ define/job gnv_packages_vms 'default_dir' 27$! 28$ on warning then goto all_exit 29$! 30$! On VAX, we need to generate a Macro transfer vector. 31$ parse_style = "TRADITIONAL" 32$ if (f$getsyi("HW_MODEL") .lt. 1024) 33$ then 34$ @generate_vax_transfer.com 35$ arch_name = "VAX" 36$ else 37$ arch_name = "" 38$ arch_name = arch_name + f$edit(f$getsyi("ARCH_NAME"), "UPCASE") 39$ if (arch_name .eqs. "") then arch_name = "UNK" 40$! 41$! Extended parsing option starts with VMS 7.3-1. 42$! There is no 7.4, so that simplifies the parse a bit. 43$! 44$ node_swvers = f$getsyi("node_swvers") 45$ version_patch = f$extract(1, f$length(node_swvers), node_swvers) 46$ maj_ver = f$element(0, ".", version_patch) 47$ min_ver_patch = f$element(1, ".", version_patch) 48$ min_ver = f$element(0, "-", min_ver_patch) 49$ patch = f$element(1, "-", min_ver_patch) 50$ if patch .eqs. "-" then patch = "" 51$ parse_x = 0 52$ if maj_ver .ges. "8" 53$ then 54$ parse_x = 1 55$ else 56$ if maj_ver .eqs. "7" .and. min_ver .ges. "3" .and. patch .nes. "" 57$ then 58$ parse_x = 1 59$ endif 60$ endif 61$ if parse_x 62$ then 63$ parse_style = f$getjpi("", "parse_style_perm") 64$ endif 65$ endif 66$! 67$! 68$! Move to where the base directories. 69$ set def [--] 70$! 71$! 72$! Build the Message file. 73$!-------------------------- 74$ if f$search("[.packages.vms]curlmsg.obj") .eqs. "" 75$ then 76$ message [.packages.vms]curlmsg.msg/object=[.packages.vms] 77$ endif 78$ if f$search("gnv$curlmsg.exe") .eqs. "" 79$ then 80$ link/share=gnv$curlmsg.exe [.packages.vms]curlmsg.obj 81$ endif 82$! 83$! 84$! Need to build the common init module. 85$!------------------------------------------- 86$ cflags = "/list/show=(expan,includ)" 87$ init_obj = "[.packages.vms]curl_crtl_init.obj" 88$ if f$search(init_obj) .eqs. "" 89$ then 90$ cc'cflags' 'default_dir'curl_crtl_init.c/obj='init_obj' 91$ endif 92$ purge 'init_obj' 93$ rename 'init_obj' ;1 94$! 95$! 96$! Need to build the module to test the HP OpenSSL version 97$!-------------------------------------------------------- 98$ if arch_name .nes. "VAX" 99$ then 100$ rpt_obj = "[.packages.vms]report_openssl_version.obj 101$ if f$search(rpt_obj) .eqs. "" 102$ then 103$ cc'cflags' 'default_dir'report_openssl_version.c/obj='rpt_obj' 104$ endif 105$ purge 'rpt_obj' 106$ rename 'rpt_obj' ;1 107$! 108$ link/exe='default_dir'report_openssl_version.exe 'rpt_obj' 109$ report_openssl_version := $'default_dir'report_openssl_version.exe 110$ endif 111$! 112$! 113$ base_link_opt_file = "[.packages.vms.''arch_name']gnv_libcurl_linker.opt" 114$ share_link_opt_file = "[.packages.vms.''arch_name']gnv_ssl_libcurl_linker.opt" 115$ if f$search(base_link_opt_file) .eqs. "" 116$ then 117$ base_link_opt_file = "[.packages.vms]gnv_libcurl_linker.opt" 118$ share_link_opt_file = "[.packages.vms]gnv_ssl_libcurl_linker.opt" 119$ if f$search(base_link_opt_file) .eqs. "" 120$ then 121$ write sys$output "Can not find base library option file!" 122$ goto all_exit 123$ endif 124$ endif 125$! 126$! Create the a new option file with special fixup for HP SSL 127$! For a shared image, we always want ZLIB and 32 bit HPSSL 128$! 129$ if f$search("gnv$libzshr32") .eqs. "" 130$ then 131$ write sys$output "VMSPORTS/GNV LIBZ Shared image not found!" 132$ goto all_exit 133$ endif 134$! 135$! 136$! Need to check the version of the HP SSL shared image. 137$! 138$! VAX platform can not be checked this way, it appears symbol lookup 139$! was disabled. VAX has not been updated in a while. 140$ if arch_name .eqs. "VAX" 141$ then 142$ hp_ssl_libcrypto32 = "sys$common:[syslib]ssl$libcrypto_shr32.exe" 143$ hp_ssl_libssl32 = "sys$common:[syslib]ssl$libssl_shr32.exe" 144$ if f$search(hp_ssl_libcrypto32) .nes. "" 145$ then 146$ use_hp_ssl = 1 147$ curl_ssl_libcrypto32 = hp_ssl_libcrypto32 148$ curl_ssl_libssl32 = hp_ssl_libssl32 149$ curl_ssl_version = "OpenSSL/0.9.6g" 150$ else 151$ write sys$output "HP OpenSSL Shared images not found!" 152$ goto all_exit 153$ endif 154$ else 155$! 156$! Minimum HP version we can use reports: 157$! "OpenSSL 0.9.8w 23 Apr 2012" 158$! 159$ use_hp_ssl = 0 160$ hp_ssl_libcrypto32 = "sys$share:ssl$libcrypto_shr32.exe" 161$ hp_ssl_libssl32 = "sys$share:ssl$libssl_shr32.exe" 162$ if f$search(hp_ssl_libcrypto32) .nes. "" 163$ then 164$ curl_ssl_libcrypto32 = hp_ssl_libcrypto32 165$ curl_ssl_libssl32 = hp_ssl_libssl32 166$ report_openssl_version 'hp_ssl_libcrypto32' hp_ssl_version 167$ endif 168$! 169$ if f$type(hp_ssl_version) .eqs. "STRING" 170$ then 171$ curl_ssl_version = hp_ssl_version 172$ full_version = f$element(1, " ", hp_ssl_version) 173$ ver_maj = f$element(0, ".", full_version) 174$ ver_min = f$element(1, ".", full_version) 175$ ver_patch = f$element(2, ".", full_version) 176$ ver_patch_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 180$ then 181$ if 'ver_min' .ge. 9 182$ then 183$ if 'ver_patchnum' .ge. 8 184$ then 185$ if ver_patchltr .ges. "w" then use_hp_ssl = 1 186$ endif 187$ endif 188$ endif 189$ if use_hp_ssl .eq. 0 190$ then 191$ write sys$output - 192 " HP OpenSSL version of ""''hp_ssl_version'"" is too old for shared libcurl!" 193$ endif 194$ else 195$ write sys$output "Unable to get version of HP OpenSSL" 196$ endif 197$! 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. "" 201$ then 202$ report_openssl_version 'gnv_ssl_libcrypto32' gnv_ssl_version 203$ endif 204$! 205$ use_gnv_ssl = 0 206$ if f$type(gnv_ssl_version) .eqs. "STRING" 207$ then 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 216$ then 217$ if 'gnv_ver_min' .ge. 9 218$ then 219$ if 'gnv_ver_patchnum' .ge. 8 220$ then 221$ if gnv_ver_patchltr .ges. "w" then use_gnv_ssl = 1 222$ endif 223$ endif 224$ endif 225$ if use_gnv_ssl .eq. 0 226$ then 227$ write sys$output - 228 "GNV OpenSSL version of ""''gnv_ssl_version'" is too old for shared libcurl!" 229$ endif 230$! 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. 234$! 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 239$ use_hp_ssl = 0 240$ endif 241!$! 242$ else 243$ write sys$output "Unable to get version of GNV OpenSSL" 244$ endif 245$! 246$! Need to write a release note section about HP OpenSSL 247$! 248$create 'default_dir'hp_ssl_release_info.txt 249$deck 250This package is built on with the OpenSSL version listed below and requires 251the shared images from the HP OpenSSL product that is kitted with that 252version or a compatible later version. 253 254For Alpha and IA64 platforms, see the url below to register to get the 255download URL. The kit will be HP 1.4-467 or later. 256 http://h71000.www7.hp.com/openvms/products/ssl/ssl.html 257 258For VAX, use the same registration, but remove the kit name from any of the 259download URLs provided and put in CPQ-VAXVMS-SSL-V0101-B-1.PCSI-DCX_VAXEXE 260 261If your system can not be upgraded to a compatible version of OpenSSL, then 262you 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 264or GNV compatible components like Curl. 265 266If GNV is installed, you must run the GNV startup procedure before these steps 267and before installing Curl. 268 269 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. 272 273 $SET PROCESS/PARSE=extend !If not VAX. 274 $CREATE/DIR device:[vms$common.gnv.lib]/prot=w:re 275 276 2. Extract the ssl$crypto_shr32.exe and ssl$libssl_shr32.exe images. 277 278 $PRODUCT EXTRACT FILE - 279 /select=(ssl$libcrypto_shr32.exe,ssl$libssl_shr32.exe)- 280 /source=device:[dir] - 281 /options=noconfirm - 282 /destination=device:[vms$common.gnv.lib] SSL 283 284The [vms$common.sys$startup}curl_startup.com procedure will then configure 285libcurl to use these shared images instead of the system ones. 286 287When you upgrade SSL on VMS to the newer version of HP SSL, then these copies 288should be deleted. 289 290$eod 291$! 292$ open/append sslr 'default_dir'hp_ssl_release_info.txt 293$ write sslr "OpenSSL version used for building this kit: ",curl_ssl_version 294$ write sslr "" 295$ close sslr 296$! 297$! 298$! LIBZ 299$ libzshr_line = "" 300$ try_shr = "gnv$libzshr32" 301$ if f$search(try_shr) .nes. "" 302$ then 303$ libzshr_line = "''try_shr'/share" 304$ else 305$ write sys$output "''try_shr' image not found!" 306$ goto all_exit 307$ endif 308$! 309$! 310$ gssrtlshr_line = "" 311$ if arch_name .nes. "VAX" 312$ then 313$ try_shr = "sys$share:gss$rtl" 314$ if f$search("''try_shr'.exe") .nes. "" 315$ then 316$ gssrtlshr_line = "''try_shr'/share" 317$ else 318$ write sys$output "''try_shr' image not found!" 319$ goto all_exit 320$ endif 321$ endif 322$! 323$! 324$! 325$ if f$search(share_link_opt_file) .eqs. "" 326$ then 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" 333$ close slopt 334$ endif 335$! 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. "" 340$ then 341$ olb_file = libfile 342$ else 343$ ! GNV based build 344$ libfile = "[.lib.^.libs]libcurl.a" 345$ if f$search(libfile) .nes. "" 346$ then 347$ olb_file = libfile 348$ else 349$ write sys$output - 350 "Can not build shared image, libcurl object library not found!" 351$ goto all_exit 352$ endif 353$ endif 354$! 355$gnv_libcurl_share = "''default_dir'gnv$libcurl.exe" 356$! 357$set ver 358$ if f$search(gnv_libcurl_share) .eqs. "" 359$ then 360$ if arch_name .nes. "VAX" 361$ then 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,- 367 'olb_file'/lib,- 368 'share_link_opt_file'/opt 369$ else 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,- 374 'olb_file'/lib,- 375 'base_link_opt_file'/opt 376$ endif 377$ endif 378$! 379$! 380$ if f$search("[.src]curl-tool_main.o") .nes. "" 381$ then 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 385$! # duplication. 386$! 387$! 388$ if f$search("[.src]curl.exe") .eqs. "" 389$ then 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,- 413 sys$input:/opt 414gnv$libcurl/share 415gnv_packages_vms:curl_crtl_init.obj 416$ endif 417$ else 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" 424$ strdup = "strdup" 425$ rawstr = "rawstr" 426$ nonblock = "nonblock" 427$! 428$! Extended parse style requires special quoting 429$! 430$ if (arch_name .nes. "VAX") .and. (parse_style .eqs. "EXTENDED") 431$ then 432$ strtoofft = """strtoofft""" 433$ strdup = """strdup""" 434$ rawstr = """rawstr""" 435$ nonblock = """nonblock""" 436$ endif 437$ if f$search(curl_exe) .eqs. "" 438$ then 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,- 445 sys$input:/opt 446gnv$libcurl/share 447gnv_packages_vms:curl_crtl_init.obj 448$ endif 449$ endif 450$! 451$set nover 452$! 453$! in6addr_missing so skip building: 454$! [.server]sws.o 455$! [.server]sockfilt.o 456$! [.server]tftpd.o 457$! 458$! 459$ target = "10-at-a-time" 460$ if f$search("[.docs.examples]''target'.o") .eqs. "" 461$ then 462$ write sys$output "examples not built" 463$ goto all_exit 464$ endif 465$ if f$search("[.docs.examples]''target'.exe") .eqs. "" 466$ then 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,- 472 sys$input:/opt 473gnv$libcurl/share 474$ endif 475$! 476$! 477$ target = "anyauthput" 478$ if f$search("[.docs.examples]''target'.exe") .eqs. "" 479$ then 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,- 485 sys$input:/opt 486gnv$libcurl/share 487$ endif 488$! 489$! 490$ target = "certinfo" 491$ if f$search("[.docs.examples]''target'.exe") .eqs. "" 492$ then 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,- 498 sys$input:/opt 499gnv$libcurl/share 500$ endif 501$! 502$! 503$ target = "cookie_interface" 504$ if f$search("[.docs.examples]''target'.exe") .eqs. "" 505$ then 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,- 511 sys$input:/opt 512gnv$libcurl/share 513$ endif 514$! 515$! 516$ target = "debug" 517$ if f$search("[.docs.examples]''target'.exe") .eqs. "" 518$ then 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,- 524 sys$input:/opt 525gnv$libcurl/share 526$ endif 527$! 528$! 529$ target = "fileupload" 530$ if f$search("[.docs.examples]''target'.exe") .eqs. "" 531$ then 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,- 537 sys$input:/opt 538gnv$libcurl/share 539$ endif 540$! 541$! 542$ target = "fopen" 543$ if f$search("[.docs.examples]''target'.exe") .eqs. "" 544$ then 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,- 550 sys$input:/opt 551gnv$libcurl/share 552$ endif 553$! 554$! 555$target = "ftpget" 556$if f$search("[.docs.examples]''target'.exe") .eqs. "" 557$then 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,- 563 sys$input:/opt 564gnv$libcurl/share 565$endif 566$! 567$! 568$target = "ftpgetresp" 569$if f$search("[.docs.examples]''target'.exe") .eqs. "" 570$then 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,- 576 sys$input:/opt 577gnv$libcurl/share 578$endif 579$! 580$! 581$target = "ftpupload" 582$if f$search("[.docs.examples]''target'.exe") .eqs. "" 583$then 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,- 589 sys$input:/opt 590gnv$libcurl/share 591$endif 592$! 593$! 594$target = "getinfo" 595$if f$search("[.docs.examples]''target'.exe") .eqs. "" 596$then 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,- 602 sys$input:/opt 603gnv$libcurl/share 604$endif 605$! 606$! 607$target = "getinmemory" 608$if f$search("[.docs.examples]''target'.exe") .eqs. "" 609$then 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,- 615 sys$input:/opt 616gnv$libcurl/share 617$endif 618$! 619$! 620$target = "http-post" 621$if f$search("[.docs.examples]''target'.exe") .eqs. "" 622$then 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,- 628 sys$input:/opt 629gnv$libcurl/share 630$endif 631$! 632$! 633$target = "httpcustomheader" 634$if f$search("[.docs.examples]''target'.exe") .eqs. "" 635$then 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,- 641 sys$input:/opt 642gnv$libcurl/share 643$endif 644$! 645$! 646$target = "httpput" 647$if f$search("[.docs.examples]''target'.exe") .eqs. "" 648$then 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,- 654 sys$input:/opt 655gnv$libcurl/share 656$endif 657$! 658$! 659$target = "https" 660$if f$search("[.docs.examples]''target'.exe") .eqs. "" 661$then 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,- 667 sys$input:/opt 668gnv$libcurl/share 669$endif 670$! 671$! 672$target = "multi-app" 673$if f$search("[.docs.examples]''target'.exe") .eqs. "" 674$then 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,- 680 sys$input:/opt 681gnv$libcurl/share 682$endif 683$! 684$! 685$target = "multi-debugcallback" 686$if f$search("[.docs.examples]''target'.exe") .eqs. "" 687$then 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,- 693 sys$input:/opt 694gnv$libcurl/share 695$endif 696$! 697$! 698$target = "multi-double" 699$if f$search("[.docs.examples]''target'.exe") .eqs. "" 700$then 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,- 706 sys$input:/opt 707gnv$libcurl/share 708$endif 709$! 710$! 711$target = "multi-post" 712$if f$search("[.docs.examples]''target'.exe") .eqs. "" 713$then 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,- 719 sys$input:/opt 720gnv$libcurl/share 721$endif 722$! 723$! 724$target = "multi-single" 725$if f$search("[.docs.examples]''target'.exe") .eqs. "" 726$then 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,- 732 sys$input:/opt 733gnv$libcurl/share 734$endif 735$! 736$! 737$target = "persistant" 738$if f$search("[.docs.examples]''target'.exe") .eqs. "" 739$then 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,- 745 sys$input:/opt 746gnv$libcurl/share 747$endif 748$! 749$! 750$target = "post-callback" 751$if f$search("[.docs.examples]''target'.exe") .eqs. "" 752$then 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,- 758 sys$input:/opt 759gnv$libcurl/share 760$endif 761$! 762$! 763$target = "postit2" 764$if f$search("[.docs.examples]''target'.exe") .eqs. "" 765$then 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,- 771 sys$input:/opt 772gnv$libcurl/share 773$endif 774$! 775$! 776$target = "sendrecv" 777$if f$search("[.docs.examples]''target'.exe") .eqs. "" 778$then 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,- 784 sys$input:/opt 785gnv$libcurl/share 786$endif 787$! 788$! 789$target = "sepheaders" 790$if f$search("[.docs.examples]''target'.exe") .eqs. "" 791$then 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,- 797 sys$input:/opt 798gnv$libcurl/share 799$endif 800$! 801$! 802$target = "simple" 803$if f$search("[.docs.examples]''target'.exe") .eqs. "" 804$then 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,- 810 sys$input:/opt 811gnv$libcurl/share 812$endif 813$! 814$! 815$target = "simplepost" 816$if f$search("[.docs.examples]''target'.exe") .eqs. "" 817$then 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,- 823 sys$input:/opt 824gnv$libcurl/share 825$endif 826$! 827$! 828$target = "simplessl" 829$if f$search("[.docs.examples]''target'.exe") .eqs. "" 830$then 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,- 836 sys$input:/opt 837gnv$libcurl/share 838$endif 839$! 840$! =============== End of docs/examples ========================= 841$! 842$! 843$all_exit: 844$set def 'default_dir' 845$exit '$status' 846$! 847