2
0

gnv_link_curl.com 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846
  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
  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.
  253. For Alpha and IA64 platforms, see the url below to register to get the
  254. download URL. The kit will be HP 1.4-467 or later.
  255. http://h71000.www7.hp.com/openvms/products/ssl/ssl.html
  256. For VAX, use the same registration, but remove the kit name from any of the
  257. download URLs provided and put in CPQ-VAXVMS-SSL-V0101-B-1.PCSI-DCX_VAXEXE
  258. If your system can not be upgraded to a compatible version of OpenSSL, then
  259. you can extract the two shared images from the kit and place them in the
  260. [vms$common.gnv.lib]directory of the volume that you are installing GNV and
  261. or GNV compatible components like Curl.
  262. If GNV is installed, you must run the GNV startup procedure before these steps
  263. and before installing Curl.
  264. 1. make sure that [vms$common.gnv.lib] exists by using the following
  265. commands. We want the directory to be in lowercase except on VAX.
  266. $SET PROCESS/PARSE=extend !If not VAX.
  267. $CREATE/DIR device:[vms$common.gnv.lib]/prot=w:re
  268. 2. Extract the ssl$crypto_shr32.exe and ssl$libssl_shr32.exe images.
  269. $PRODUCT EXTRACT FILE -
  270. /select=(ssl$libcrypto_shr32.exe,ssl$libssl_shr32.exe)-
  271. /source=device:[dir] -
  272. /options=noconfirm -
  273. /destination=device:[vms$common.gnv.lib] SSL
  274. The [vms$common.sys$startup}curl_startup.com procedure will then configure
  275. libcurl to use these shared images instead of the system ones.
  276. When you upgrade SSL on VMS to the newer version of HP SSL, then these copies
  277. should be deleted.
  278. $eod
  279. $!
  280. $ open/append sslr 'default_dir'hp_ssl_release_info.txt
  281. $ write sslr "OpenSSL version used for building this kit: ",curl_ssl_version
  282. $ write sslr ""
  283. $ close sslr
  284. $!
  285. $!
  286. $! LIBZ
  287. $ libzshr_line = ""
  288. $ try_shr = "gnv$libzshr32"
  289. $ if f$search(try_shr) .nes. ""
  290. $ then
  291. $ libzshr_line = "''try_shr'/share"
  292. $ else
  293. $ write sys$output "''try_shr' image not found!"
  294. $ goto all_exit
  295. $ endif
  296. $!
  297. $!
  298. $ gssrtlshr_line = ""
  299. $ if arch_name .nes. "VAX"
  300. $ then
  301. $ try_shr = "sys$share:gss$rtl"
  302. $ if f$search("''try_shr'.exe") .nes. ""
  303. $ then
  304. $ gssrtlshr_line = "''try_shr'/share"
  305. $ else
  306. $ write sys$output "''try_shr' image not found!"
  307. $ goto all_exit
  308. $ endif
  309. $ endif
  310. $!
  311. $!
  312. $!
  313. $ if f$search(share_link_opt_file) .eqs. ""
  314. $ then
  315. $ create 'share_link_opt_file'
  316. $ open/append slopt 'share_link_opt_file'
  317. $ if libzshr_line .nes. "" then write slopt libzshr_line
  318. $ if gssrtlshr_line .nes. "" then write slopt gssrtlshr_line
  319. $ write slopt "gnv$curl_ssl_libcryptoshr32/share"
  320. $ write slopt "gnv$curl_ssl_libsslshr32/share"
  321. $ close slopt
  322. $ endif
  323. $!
  324. $! DCL build puts curllib in architecture directory
  325. $! GNV build uses the makefile.
  326. $ libfile = "[.packages.vms.''arch_name']curllib.olb"
  327. $ if f$search(libfile) .nes. ""
  328. $ then
  329. $ olb_file = libfile
  330. $ else
  331. $ ! GNV based build
  332. $ libfile = "[.lib.^.libs]libcurl.a"
  333. $ if f$search(libfile) .nes. ""
  334. $ then
  335. $ olb_file = libfile
  336. $ else
  337. $ write sys$output -
  338. "Can not build shared image, libcurl object library not found!"
  339. $ goto all_exit
  340. $ endif
  341. $ endif
  342. $!
  343. $gnv_libcurl_share = "''default_dir'gnv$libcurl.exe"
  344. $!
  345. $set ver
  346. $ if f$search(gnv_libcurl_share) .eqs. ""
  347. $ then
  348. $ if arch_name .nes. "VAX"
  349. $ then
  350. $ define/user gnv$curl_ssl_libcryptoshr32 'curl_ssl_libcrypto32'
  351. $ define/user gnv$curl_ssl_libsslshr32 'curl_ssl_libssl32'
  352. $ link/dsf='default_dir'gnv$libcurl.dsf/share='gnv_libcurl_share' -
  353. /map='default_dir'gnv$libcurl.map -
  354. gnv_packages_vms:gnv_libcurl_symbols.opt/opt,-
  355. 'olb_file'/lib,-
  356. 'share_link_opt_file'/opt
  357. $ else
  358. $! VAX will not allow the logical name hack for the
  359. $! SSL libcryto library, it is pulling it in twice if I try it.
  360. $ link/share='gnv_libcurl_share'/map='default_dir'gnv$libcurl.map -
  361. gnv_packages_vms:gnv_libcurl_xfer.opt/opt,-
  362. 'olb_file'/lib,-
  363. 'base_link_opt_file'/opt
  364. $ endif
  365. $ endif
  366. $!
  367. $!
  368. $ if f$search("[.src]curl-tool_main.o") .nes. ""
  369. $ then
  370. $! From src/makefile.inc:
  371. $! # libcurl has sources that provide functions named curlx_* that aren't
  372. $! # part of the official API, but we re-use the code here to avoid
  373. $! # duplication.
  374. $!
  375. $!
  376. $ if f$search("[.src]curl.exe") .eqs. ""
  377. $ then
  378. $ define/user gnv$libcurl 'gnv_libcurl_share'
  379. $ link'ldebug'/exe=[.src]curl.exe/dsf=[.src]curl.dsf -
  380. [.src]curl-tool_main.o, [.src]curl-tool_binmode.o, -
  381. [.src]curl-tool_bname.o, [.src]curl-tool_cb_dbg.o, -
  382. [.src]curl-tool_cb_hdr.o, [.src]curl-tool_cb_prg.o, -
  383. [.src]curl-tool_cb_rea.o, [.src]curl-tool_cb_see.o, -
  384. [.src]curl-tool_cb_wrt.o, [.src]curl-tool_cfgable.o, -
  385. [.src]curl-tool_convert.o, [.src]curl-tool_dirhie.o, -
  386. [.src]curl-tool_doswin.o, [.src]curl-tool_easysrc.o, -
  387. [.src]curl-tool_formparse.o, [.src]curl-tool_getparam.o, -
  388. [.src]curl-tool_getpass.o, [.src]curl-tool_help.o, -
  389. [.src]curl-tool_helpers.o, [.src]curl-tool_homedir.o, -
  390. [.src]curl-tool_hugehelp.o, [.src]curl-tool_libinfo.o, -
  391. [.src]curl-tool_metalink.o, [.src]curl-tool_mfiles.o, -
  392. [.src]curl-tool_msgs.o, [.src]curl-tool_operate.o, -
  393. [.src]curl-tool_operhlp.o, [.src]curl-tool_panykey.o, -
  394. [.src]curl-tool_paramhlp.o, [.src]curl-tool_parsecfg.o, -
  395. [.src]curl-tool_setopt.o, [.src]curl-tool_sleep.o, -
  396. [.src]curl-tool_urlglob.o, [.src]curl-tool_util.o, -
  397. [.src]curl-tool_vms.o, [.src]curl-tool_writeenv.o, -
  398. [.src]curl-tool_writeout.o, [.src]curl-tool_xattr.o, -
  399. [.src]curl-strtoofft.o, [.src]curl-strdup.o, [.src]curl-rawstr.o, -
  400. [.src]curl-nonblock.o, gnv_packages_vms:curlmsg.obj,-
  401. sys$input:/opt
  402. gnv$libcurl/share
  403. gnv_packages_vms:curl_crtl_init.obj
  404. $ endif
  405. $ else
  406. $ curl_exe = "[.src]curl.exe"
  407. $ curl_dsf = "[.src]curl.dsf"
  408. $ curl_main = "[.packages.vms.''arch_name']tool_main.obj"
  409. $ curl_src = "[.packages.vms.''arch_name']curlsrc.olb"
  410. $ curl_lib = "[.packages.vms.''arch_name']curllib.olb"
  411. $ strtoofft = "strtoofft"
  412. $ strdup = "strdup"
  413. $ rawstr = "rawstr"
  414. $ nonblock = "nonblock"
  415. $!
  416. $! Extended parse style requires special quoting
  417. $!
  418. $ if (arch_name .nes. "VAX") .and. (parse_style .eqs. "EXTENDED")
  419. $ then
  420. $ strtoofft = """strtoofft"""
  421. $ strdup = """strdup"""
  422. $ rawstr = """rawstr"""
  423. $ nonblock = """nonblock"""
  424. $ endif
  425. $ if f$search(curl_exe) .eqs. ""
  426. $ then
  427. $ define/user gnv$libcurl 'gnv_libcurl_share'
  428. $ link'ldebug'/exe='curl_exe'/dsf='curl_dsf' -
  429. 'curl_main','curl_src'/lib, -
  430. 'curl_lib'/library/include=-
  431. ('strtoofft', 'strdup', 'rawstr', 'nonblock'),-
  432. gnv_packages_vms:curlmsg.obj,-
  433. sys$input:/opt
  434. gnv$libcurl/share
  435. gnv_packages_vms:curl_crtl_init.obj
  436. $ endif
  437. $ endif
  438. $!
  439. $set nover
  440. $!
  441. $! in6addr_missing so skip building:
  442. $! [.server]sws.o
  443. $! [.server]sockfilt.o
  444. $! [.server]tftpd.o
  445. $!
  446. $!
  447. $ target = "10-at-a-time"
  448. $ if f$search("[.docs.examples]''target'.o") .eqs. ""
  449. $ then
  450. $ write sys$output "examples not built"
  451. $ goto all_exit
  452. $ endif
  453. $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
  454. $ then
  455. $ define/user gnv$libcurl 'gnv_libcurl_share'
  456. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  457. /dsf=[.docs.examples]'target'.dsf -
  458. [.docs.examples]'target'.o,-
  459. gnv$'target'.opt/opt,-
  460. sys$input:/opt
  461. gnv$libcurl/share
  462. $ endif
  463. $!
  464. $!
  465. $ target = "anyauthput"
  466. $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
  467. $ then
  468. $ define/user gnv$libcurl 'gnv_libcurl_share'
  469. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  470. /dsf=[.docs.examples]'target'.dsf -
  471. [.docs.examples]'target'.o,-
  472. gnv$'target'.opt/opt,-
  473. sys$input:/opt
  474. gnv$libcurl/share
  475. $ endif
  476. $!
  477. $!
  478. $ target = "certinfo"
  479. $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
  480. $ then
  481. $ define/user gnv$libcurl 'gnv_libcurl_share'
  482. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  483. /dsf=[.docs.examples]'target'.dsf -
  484. [.docs.examples]'target'.o,-
  485. gnv$'target'.opt/opt,-
  486. sys$input:/opt
  487. gnv$libcurl/share
  488. $ endif
  489. $!
  490. $!
  491. $ target = "cookie_interface"
  492. $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
  493. $ then
  494. $ define/user gnv$libcurl 'gnv_libcurl_share'
  495. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  496. /dsf=[.docs.examples]'target'.dsf -
  497. [.docs.examples]'target'.o,-
  498. gnv$'target'.opt/opt,-
  499. sys$input:/opt
  500. gnv$libcurl/share
  501. $ endif
  502. $!
  503. $!
  504. $ target = "debug"
  505. $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
  506. $ then
  507. $ define/user gnv$libcurl 'gnv_libcurl_share'
  508. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  509. /dsf=[.docs.examples]'target'.dsf -
  510. [.docs.examples]'target'.o,-
  511. gnv$'target'.opt/opt,-
  512. sys$input:/opt
  513. gnv$libcurl/share
  514. $ endif
  515. $!
  516. $!
  517. $ target = "fileupload"
  518. $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
  519. $ then
  520. $ define/user gnv$libcurl 'gnv_libcurl_share'
  521. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  522. /dsf=[.docs.examples]'target'.dsf -
  523. [.docs.examples]'target'.o,-
  524. gnv$'target'.opt/opt,-
  525. sys$input:/opt
  526. gnv$libcurl/share
  527. $ endif
  528. $!
  529. $!
  530. $ target = "fopen"
  531. $ if f$search("[.docs.examples]''target'.exe") .eqs. ""
  532. $ then
  533. $ define/user gnv$libcurl 'gnv_libcurl_share'
  534. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  535. /dsf=[.docs.examples]'target'.dsf -
  536. [.docs.examples]'target'.o,-
  537. gnv$'target'.opt/opt,-
  538. sys$input:/opt
  539. gnv$libcurl/share
  540. $ endif
  541. $!
  542. $!
  543. $target = "ftpget"
  544. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  545. $then
  546. $ define/user gnv$libcurl 'gnv_libcurl_share'
  547. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  548. /dsf=[.docs.examples]'target'.dsf -
  549. [.docs.examples]'target'.o,-
  550. gnv$'target'.opt/opt,-
  551. sys$input:/opt
  552. gnv$libcurl/share
  553. $endif
  554. $!
  555. $!
  556. $target = "ftpgetresp"
  557. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  558. $then
  559. $ define/user gnv$libcurl 'gnv_libcurl_share'
  560. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  561. /dsf=[.docs.examples]'target'.dsf -
  562. [.docs.examples]'target'.o,-
  563. gnv$'target'.opt/opt,-
  564. sys$input:/opt
  565. gnv$libcurl/share
  566. $endif
  567. $!
  568. $!
  569. $target = "ftpupload"
  570. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  571. $then
  572. $ define/user gnv$libcurl 'gnv_libcurl_share'
  573. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  574. /dsf=[.docs.examples]'target'.dsf -
  575. [.docs.examples]'target'.o,-
  576. gnv$'target'.opt/opt,-
  577. sys$input:/opt
  578. gnv$libcurl/share
  579. $endif
  580. $!
  581. $!
  582. $target = "getinfo"
  583. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  584. $then
  585. $ define/user gnv$libcurl 'gnv_libcurl_share'
  586. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  587. /dsf=[.docs.examples]'target'.dsf -
  588. [.docs.examples]'target'.o,-
  589. gnv$'target'.opt/opt,-
  590. sys$input:/opt
  591. gnv$libcurl/share
  592. $endif
  593. $!
  594. $!
  595. $target = "getinmemory"
  596. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  597. $then
  598. $ define/user gnv$libcurl 'gnv_libcurl_share'
  599. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  600. /dsf=[.docs.examples]'target'.dsf -
  601. [.docs.examples]'target'.o,-
  602. gnv$'target'.opt/opt,-
  603. sys$input:/opt
  604. gnv$libcurl/share
  605. $endif
  606. $!
  607. $!
  608. $target = "http-post"
  609. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  610. $then
  611. $ define/user gnv$libcurl 'gnv_libcurl_share'
  612. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  613. /dsf=[.docs.examples]'target'.dsf -
  614. [.docs.examples]'target'.o,-
  615. gnv$'target'.opt/opt,-
  616. sys$input:/opt
  617. gnv$libcurl/share
  618. $endif
  619. $!
  620. $!
  621. $target = "httpcustomheader"
  622. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  623. $then
  624. $ define/user gnv$libcurl 'gnv_libcurl_share'
  625. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  626. /dsf=[.docs.examples]'target'.dsf -
  627. [.docs.examples]'target'.o,-
  628. gnv$'target'.opt/opt,-
  629. sys$input:/opt
  630. gnv$libcurl/share
  631. $endif
  632. $!
  633. $!
  634. $target = "httpput"
  635. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  636. $then
  637. $ define/user gnv$libcurl 'gnv_libcurl_share'
  638. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  639. /dsf=[.docs.examples]'target'.dsf -
  640. [.docs.examples]'target'.o,-
  641. gnv$'target'.opt/opt,-
  642. sys$input:/opt
  643. gnv$libcurl/share
  644. $endif
  645. $!
  646. $!
  647. $target = "https"
  648. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  649. $then
  650. $ define/user gnv$libcurl 'gnv_libcurl_share'
  651. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  652. /dsf=[.docs.examples]'target'.dsf -
  653. [.docs.examples]'target'.o,-
  654. gnv$'target'.opt/opt,-
  655. sys$input:/opt
  656. gnv$libcurl/share
  657. $endif
  658. $!
  659. $!
  660. $target = "multi-app"
  661. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  662. $then
  663. $ define/user gnv$libcurl 'gnv_libcurl_share'
  664. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  665. /dsf=[.docs.examples]'target'.dsf -
  666. [.docs.examples]'target'.o,-
  667. gnv$'target'.opt/opt,-
  668. sys$input:/opt
  669. gnv$libcurl/share
  670. $endif
  671. $!
  672. $!
  673. $target = "multi-debugcallback"
  674. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  675. $then
  676. $ define/user gnv$libcurl 'gnv_libcurl_share'
  677. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  678. /dsf=[.docs.examples]'target'.dsf -
  679. [.docs.examples]'target'.o,-
  680. gnv$'target'.opt/opt,-
  681. sys$input:/opt
  682. gnv$libcurl/share
  683. $endif
  684. $!
  685. $!
  686. $target = "multi-double"
  687. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  688. $then
  689. $ define/user gnv$libcurl 'gnv_libcurl_share'
  690. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  691. /dsf=[.docs.examples]'target'.dsf -
  692. [.docs.examples]'target'.o,-
  693. gnv$'target'.opt/opt,-
  694. sys$input:/opt
  695. gnv$libcurl/share
  696. $endif
  697. $!
  698. $!
  699. $target = "multi-post"
  700. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  701. $then
  702. $ define/user gnv$libcurl 'gnv_libcurl_share'
  703. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  704. /dsf=[.docs.examples]'target'.dsf -
  705. [.docs.examples]'target'.o,-
  706. gnv$'target'.opt/opt,-
  707. sys$input:/opt
  708. gnv$libcurl/share
  709. $endif
  710. $!
  711. $!
  712. $target = "multi-single"
  713. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  714. $then
  715. $ define/user gnv$libcurl 'gnv_libcurl_share'
  716. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  717. /dsf=[.docs.examples]'target'.dsf -
  718. [.docs.examples]'target'.o,-
  719. gnv$'target'.opt/opt,-
  720. sys$input:/opt
  721. gnv$libcurl/share
  722. $endif
  723. $!
  724. $!
  725. $target = "persistant"
  726. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  727. $then
  728. $ define/user gnv$libcurl 'gnv_libcurl_share'
  729. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  730. /dsf=[.docs.examples]'target'.dsf -
  731. [.docs.examples]'target'.o,-
  732. gnv$'target'.opt/opt,-
  733. sys$input:/opt
  734. gnv$libcurl/share
  735. $endif
  736. $!
  737. $!
  738. $target = "post-callback"
  739. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  740. $then
  741. $ define/user gnv$libcurl 'gnv_libcurl_share'
  742. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  743. /dsf=[.docs.examples]'target'.dsf -
  744. [.docs.examples]'target'.o,-
  745. gnv$'target'.opt/opt,-
  746. sys$input:/opt
  747. gnv$libcurl/share
  748. $endif
  749. $!
  750. $!
  751. $target = "postit2"
  752. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  753. $then
  754. $ define/user gnv$libcurl 'gnv_libcurl_share'
  755. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  756. /dsf=[.docs.examples]'target'.dsf -
  757. [.docs.examples]'target'.o,-
  758. gnv$'target'.opt/opt,-
  759. sys$input:/opt
  760. gnv$libcurl/share
  761. $endif
  762. $!
  763. $!
  764. $target = "sendrecv"
  765. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  766. $then
  767. $ define/user gnv$libcurl 'gnv_libcurl_share'
  768. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  769. /dsf=[.docs.examples]'target'.dsf -
  770. [.docs.examples]'target'.o,-
  771. gnv$'target'.opt/opt,-
  772. sys$input:/opt
  773. gnv$libcurl/share
  774. $endif
  775. $!
  776. $!
  777. $target = "sepheaders"
  778. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  779. $then
  780. $ define/user gnv$libcurl 'gnv_libcurl_share'
  781. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  782. /dsf=[.docs.examples]'target'.dsf -
  783. [.docs.examples]'target'.o,-
  784. gnv$'target'.opt/opt,-
  785. sys$input:/opt
  786. gnv$libcurl/share
  787. $endif
  788. $!
  789. $!
  790. $target = "simple"
  791. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  792. $then
  793. $ define/user gnv$libcurl 'gnv_libcurl_share'
  794. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  795. /dsf=[.docs.examples]'target'.dsf -
  796. [.docs.examples]'target'.o,-
  797. gnv$'target'.opt/opt,-
  798. sys$input:/opt
  799. gnv$libcurl/share
  800. $endif
  801. $!
  802. $!
  803. $target = "simplepost"
  804. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  805. $then
  806. $ define/user gnv$libcurl 'gnv_libcurl_share'
  807. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  808. /dsf=[.docs.examples]'target'.dsf -
  809. [.docs.examples]'target'.o,-
  810. gnv$'target'.opt/opt,-
  811. sys$input:/opt
  812. gnv$libcurl/share
  813. $endif
  814. $!
  815. $!
  816. $target = "simplessl"
  817. $if f$search("[.docs.examples]''target'.exe") .eqs. ""
  818. $then
  819. $ define/user gnv$libcurl 'gnv_libcurl_share'
  820. $ link'ldebug'/exe=[.docs.examples]'target'.exe-
  821. /dsf=[.docs.examples]'target'.dsf -
  822. [.docs.examples]'target'.o,-
  823. gnv$'target'.opt/opt,-
  824. sys$input:/opt
  825. gnv$libcurl/share
  826. $endif
  827. $!
  828. $! =============== End of docs/examples =========================
  829. $!
  830. $!
  831. $all_exit:
  832. $set def 'default_dir'
  833. $exit '$status'
  834. $!