From bad978feb27aff00178989519ea3e49238cebbcf Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 15 Mar 2004 10:03:05 +0000 Subject: [PATCH] Marty Kuhrt's provided files for the VMS package --- packages/vms/batch_compile.com | Bin 0 -> 196 bytes packages/vms/build_vms.com | 206 ++++++++++++++++++++++++++++++++++ packages/vms/config-vms.h_with_ssl | Bin 0 -> 7172 bytes packages/vms/config-vms.h_without_ssl | Bin 0 -> 7166 bytes packages/vms/defines.com | Bin 0 -> 1544 bytes packages/vms/hpssl_alpha.opt | Bin 0 -> 80 bytes packages/vms/hpssl_ia64.opt | Bin 0 -> 80 bytes packages/vms/hpssl_vax.opt | Bin 0 -> 84 bytes packages/vms/readme | Bin 0 -> 2272 bytes 9 files changed, 206 insertions(+) create mode 100755 packages/vms/batch_compile.com create mode 100755 packages/vms/build_vms.com create mode 100755 packages/vms/config-vms.h_with_ssl create mode 100755 packages/vms/config-vms.h_without_ssl create mode 100755 packages/vms/defines.com create mode 100644 packages/vms/hpssl_alpha.opt create mode 100644 packages/vms/hpssl_ia64.opt create mode 100644 packages/vms/hpssl_vax.opt create mode 100644 packages/vms/readme diff --git a/packages/vms/batch_compile.com b/packages/vms/batch_compile.com new file mode 100755 index 0000000000000000000000000000000000000000..9c798301bfe6b8917d6dc575936e681af940a370 GIT binary patch literal 196 zcmZ9E!3u&v6h&RNh*o{UV-QsG7lLRM8W=J(gH}?_69#gWnNj-up0;au-+kwvFbH9= z{R{TchG-^jd()xuF|fHtHCki|CraU@v|YI2VI9WHE=^OGR89x1tL_ G+J6CG89B)S literal 0 HcmV?d00001 diff --git a/packages/vms/build_vms.com b/packages/vms/build_vms.com new file mode 100755 index 0000000..4ca3c4b --- /dev/null +++ b/packages/vms/build_vms.com @@ -0,0 +1,206 @@ +$! BUILD_VMS.COM +$! +$! I've taken the original build_vms.com, supplied by Nico Baggus, if +$! memory serves me correctly, and made some modifications. +$! +$! SSL support is based on logicals, or lack thereof. If SSL$INCLUDE +$! is defined, then it assumed that hp's SSL product has been installed. +$! If OPENSSL is defined, but SSL$INCLUDE isn't, then the OpenSSL defined +$! via the defines.com procedure will be used. If neither logical is +$! defined, then SSL support will not be compiled/linked in. +$! +$! If CURL_BUILD_NOSSL is defined to anything, then no SSL support will +$! be built in. This way you can build without SSL support on systems +$! that have it without the "automatic" build/link "features". +$! +$! If CURL_BUILD_NOHPSSL is defined to anything, it will override the +$! SSL$INCLUDE check. This way you can build against OpenSSL, even if +$! you have hp SSL installed. +$! +$! Parameter(s): +$! +$! P1 - LISTING will create .lis files during the C compile +$! DEBUG will compile and link with debug +$! +$! Revisions: +$! +$! 2-DEC-2003, MSK, the "original" version. +$! It works for me. Your mileage may vary. +$! 13-JAN-2004, MSK, moved this procedure to the [.packages.vms] directory +$! and updated it to do hardware dependant builds. +$! 29-JAN-2004, MSK, moved logical defines into defines.com +$! 6-FEB-2004, MSK, put in various SSL support bits +$! 9-MAR-2004, MSK, the config-vms.h* files are now copied to the lib and +$! src directories as config.h. +$! +$ on control_y then goto Common_Exit +$ origdir = f$environment("DEFAULT") +$ proc = f$environment("PROCEDURE") +$ thisdir = f$parse( proc,,,"DEVICE") + f$parse( proc,,,"DIRECTORY") +$! +$! Verbose output message stuff. Define symbol to "write sys$output" or "!". +$! vo_c - verbose output for compile +$! vo_l - link +$! vo_o - object check +$! +$ vo_c = "write sys$output" +$ vo_l = "write sys$output" +$ vo_o = "!" +$! +$ defines = thisdir + "defines.com" +$ if f$search( defines) .eqs. "" +$ then +$ write sys$output "%CURL-F-DEFFNF, cannot find defines.com procedure" +$ exit %X18290 ! FNF +$ endif +$ set def 'thisdir' +$ cc_qual = "/define=HAVE_CONFIG_H=1/OBJ=OBJDIR:" +$ link_qual = "" +$ if p1 .eqs. "LISTING" then cc_qual = cc_qual + "/LIST/MACHINE" +$ if p1 .eqs. "DEBUG" +$ then +$ cc_qual = cc_qual + "/LIST/MACHINE/DEBUG/NOOPT" +$ link_qual = "/DEBUG" +$ endif +$ msg_qual = "/OBJ=OBJDIR:" +$! +$ hpssl = 0 +$ openssl = 0 +$ if f$trnlnm( "CURL_BUILD_NOSSL") .eqs. "" +$ then +$ if f$trnlnm( "OPENSSL") .nes. "" +$ then +$ openssl = 1 +$ if ( f$trnlnm( "SSL$INCLUDE") .nes. "") .and. - + ( f$trnlnm( "CURL_BUILD_NOHPSSL") .eqs. "") +$ then hpssl = 1 +$ endif +$ endif +$ endif +$! +$! Put the right main config file in the two source directories for the build. +$! +$ if ( openssl .eq. 1) .or. ( hpssl .eq. 1) +$ then +$ 'vo_c' "%CURL-I-BLDSSL, building with SSL support" +$ source_h = "CONFIG-VMS.H_WITH_SSL" +$ else +$ 'vo_c' "%CURL-I-BLDNOSSL, building without SSL support" +$ source_h = "CONFIG-VMS.H_WITHOUT_SSL" +$ endif +$! +$! Only do the copy if the source and destination files are different. +$! Put this block into Set NoOn mode so that if the diff command triggers +$! an error while error message reporting is turned off, then it won't +$! just exit the command procedure mysteriously. +$! +$ set noon +$ set message/nof/noi/nos/not +$ diff/out=nla0: 'source_h' [--.SRC]CONFIG.H +$ status = $status +$ set message/f/i/s/t +$ if ( status .ne. %X006C8009) ! if status is not "no diff" +$ then +$ copy 'source_h' [--.SRC]CONFIG.H +$ purge/nolog [--.SRC]CONFIG.H +$ endif +$ set message/nof/noi/nos/not +$ diff/out=nla0: 'source_h' [--.LIB]CONFIG.H +$ status = $status +$ set message/f/i/s/t +$ if ( status .ne. %X006C8009) ! if status is not "no diff" +$ then +$ copy 'source_h' [--.LIB]CONFIG.H +$ purge/nolog [--.LIB]CONFIG.H +$ endif +$ on control_y then goto Common_Exit +$! +$ call build "[--.lib]" "*.c" "objdir:curllib.olb" +$ call build "[--.src]" "*.c" "objdir:curlsrc.olb" +$ call build "[--.src]" "*.msg" "objdir:curlsrc.olb" +$ if ( openssl .eq. 1) .and. ( hpssl .eq. 0) +$ then +$ 'vo_l' "%CURL-I-LINK_OSSL, linking with OpenSSL" +$ link 'link_qual'/exe=exedir:curl.exe - + objdir:curlsrc/lib/include=(main,curlmsg),- + objdir:curllib/lib, libssl/lib, libcrypto/lib +$ endif +$ if ( openssl .eq. 1) .and. ( hpssl .eq. 1) +$ then +$ 'vo_l' "%CURL-I-LINK_HPSSL, linking with hp SSL option" +$ optfile = "[]hpssl_" + f$getsyi("ARCH_NAME") + ".opt/opt" +$ link 'link_qual'/exe=exedir:curl.exe - + objdir:curlsrc/lib/include=(main,curlmsg),- + objdir:curllib/lib, 'optfile' +$ endif +$ if ( openssl .eq. 0) .and. ( hpssl .eq. 0) +$ then +$ 'vo_l' "%CURL-I-LINK_NOSSL, linking without SSL support" +$ link 'link_qual'/exe=exedir:curl.exe - + objdir:curlsrc/lib/include=(main,curlmsg),- + objdir:curllib/lib +$ endif +$! +$ goto Common_Exit +$! +$! Subroutine to build everything with a filetype passed in via P2 in +$! the directory passed in via P1 and put it in the object library named +$! via P3 +$! +$build: subroutine +$ on control_y then exit 2 +$ set noon +$ set default 'p1' +$ search = p2 +$ reset = f$search("reset") +$ if f$search( p3) .eqs. "" +$ then +$ LIB/CREATE/OBJECT 'p3' +$ endif +$ reset = f$search("reset",1) +$Loop: +$ file = f$search(search,1) +$ if file .eqs. "" then goto EndLoop +$ objfile = f$parse("objdir:.OBJ;",file) +$ obj = f$search( objfile, 2) +$ if (obj .nes. "") +$ then +$ if (f$cvtime(f$file(file,"rdt")) .gts. f$cvtime(f$file(obj,"rdt"))) +$ then +$ call compile 'file' +$ if .not. $status then exit $status +$ lib/object 'p3' 'objfile' +$ else +$ 'vo_o' "%CURL-I-OBJUTD, ", objfile, " is up to date" +$ endif +$ else +$ 'vo_o' "%CURL-I-OBJDNE, ", file, " does not exist" +$ call compile 'file' +$ if .not. $status then exit $status +$ lib/object 'p3' 'objfile' +$ endif +$ goto Loop +$EndLoop: +$ !purge +$ set def 'origdir' +$ endsubroutine ! Build +$! +$! Based on the file TYPE, do the right compile command. +$! Only C and MSG supported. +$! +$compile: subroutine +$ on control_y then exit 2 +$ set noon +$ file = p1 +$ qual = p2+p3+p4+p5+p6+p7+p8 +$ typ = f$parse(file,,,"TYPE") - "." +$ cmd_c = "CC "+cc_qual +$ cmd_msg = "MESSAGE "+msg_qual +$ x = cmd_'typ' +$ 'vo_c' x," ",file +$ 'x' 'file' +$ ENDSUBROUTINE ! Compile +$! +$Common_Exit: +$ set default 'origdir' +$ exit diff --git a/packages/vms/config-vms.h_with_ssl b/packages/vms/config-vms.h_with_ssl new file mode 100755 index 0000000000000000000000000000000000000000..c883f7fedfe4b2bf01f5660acb55c88257ee84b1 GIT binary patch literal 7172 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 literal 0 HcmV?d00001 diff --git a/packages/vms/config-vms.h_without_ssl b/packages/vms/config-vms.h_without_ssl new file mode 100755 index 0000000000000000000000000000000000000000..b56a467b98cbd233d78986d14fa9534335d11308 GIT binary patch literal 7166 zcmb7}>u=)N6~L`Zt+Z0rFMW5r+B+GwnTZl0lgz7SS~+0AGk_6xm`%TU489KT7~8Th z$x`hf-*fJ@!8Xo?oi7s%{`uVVKF1@ac}7O&r*qPJ)oi_Pwyw{~zzJPKU7t~xcu_)F z;`jlXul>L!QApGvUOHs|>H$eYINi&pE3oHdovj(62;z2`iW(p5@WL>{B$ zDx-4MSi-j#hKb+*MtSag z@Oxt0>Tohp|ExS0cN6&jgkQQCOfF_4^F;Zj@|*@KRers@XQuw}$I=~eVej{UD*ZxN z-(2TE`4tdD*Z1=O73EbyTHhm^Xib(5sEaKrQOBkZ+Fw$~r3vx;fTp0fv*sVReADW7 z?183swW&!i6{WvVTR5O{$D_f9_~9a0yI_ilElE4wq)q0pXk+;=uGV(;fj>g|>-HIz zKGN*Zx;5Zt!B6<4kA)|(rO(ZO>WA!pJK<^ddS6I0MR z7#shB^X&AsyD|0uM{TAk=lC28lo761bI?NMk@<#!t$jd}APVn^8?6D$#okGsImyr% z_wBB6do$F?J4HD=OhY7R{bj3xA`5{?Y8K94wc9;qbnQcIt-}TLqflscXEpBQea+Ht z^)Bl2wVbt#Qa0Z>t_wa;BJNI`69wP z>QpWzRLC&QuCdY1w>eWEYnGkc=O8a+ky92?spE|;Lq!1_68U19B#`P$4)pu-c_-R* zYH-Jql2RJb1(T9YZK!oDt}|Jjq?A3(*IpT=RN}(3h+pq%2uDDP64MvRu0w#(m7R zrXAJPI-?1fO=Te1XjWx00#nl&%h6l6nfT}a|_U6a**SB}TqJe$dUq78A4 z6}-?S@N!dOL1^0plu4Eu+ukB%K^<*(M($y~&KP?$Uv1Z-Y#Kw`}rXqgKr?~i&;SSLJm*LlCpJz@KVai)`J$Tngcn&yx| zuEPF@q|8ZJ3O<@(y9d^I`-B7zA0d2b>T-l1!p#AU63BsjL3`^E`*&lajo}%#Hddjz z>%w)>*H^A9%DX3?g&p=H*~Bon1pYj6k_~xr5r``y^auF8 zz$?E1{#YS69pRKksmq73InBmlG27>H)M~tMyybHq41X|3J4ke$kTFax3{A zH!&vfPBZpXnH#eyUnxMkuCMsjE)~g^n%De;+ zl{pwSVcktMQz+t%EV>y@R(@1Vt<)4tn~roNW6I|Bd^@w(=qZ(|QaHQRx7MK#?p1g2 zs&Cznb#SlD{xW?gG>w9XV(AlCo~ou(%`}EHtfn$*Ha`_=w7BvVRk$ls`R=GIHi59C zfo>EBbU*YWLVtwQr#v6x(h^sP6?;QRigUU??(urRwc9tm??Elk)GX8UjpG(c^L1^f4q$9(M=2cpUV?`#NBCYXb9`KJI5xC(r1dxfdm8&C2{Dh)3ke zFCZn0zS>Dqi+ul$R_0kytkYq!%y;nQ(T8nqzK6etZ6{5`Q&p}3XiX5$YX^7V*R!z;RqlKrB2)~w|9kv1}> zSTqUutx84hK}6i>2KI}xYX1e+Ijp6B*N9uuX?F;7z7V!usCM;C zY%Ba|QL{eS%dCaBJ7~%dvP&;{M4t$+2O_d^*kZ|>M-Ja+9$f!JB*At8^n;PJlf8rj zzKVPiQ#_Qmoi8No1-wHdjtBLcylq@wHd@@W*h}NXvwjumg0c7B34W7CD;URdVucTo zYKhPAuSEoFHU3g!8{2=!2{rG{U%>k(i13%>r=Q3R+rD~r0|q1?K9I|oyAEvsMc4KA Mos{fX@3wLLf7|g%BLDyZ literal 0 HcmV?d00001 diff --git a/packages/vms/defines.com b/packages/vms/defines.com new file mode 100755 index 0000000000000000000000000000000000000000..f5a4464fbd766d9e75bfc4d6670e7c493ddcc705 GIT binary patch literal 1544 zcmaJ>U2oGc6peTQ!2=Qk0Z-^IDoU$$;X`N$p$TqA5+B*37d@oV4q| z=Q?&jx6zl{zUQ8E&-IO;TD2W$``?2Tzwdh8Z&^rqr@zGiMgxXptb)gvQ0&(wc=3`+j^q22~TPE2-nrZ zQvUVezvBXjaM1uqOE|aU_?fFt+#6>&Q)_W`L;G682vqM2)(7AWj)Fc;nxhv%=(xd& z*Ewzbu6G)CqP>kg_0i|aJ$aqrFtRrB27I?pKlCE&+XnyQxmv61cem%C;48KF{_@M^ zXKz`ZIgZrZpt@(AnP+KTaht)>x8k_|x$h!#goWdu+wC0owzxxDbAH|Q!l Oy;6*-_tm7{(BdB%w82dP literal 0 HcmV?d00001 diff --git a/packages/vms/hpssl_alpha.opt b/packages/vms/hpssl_alpha.opt new file mode 100644 index 0000000000000000000000000000000000000000..735a585b18bd9d18c9702b9c3f78fafada03c50d GIT binary patch literal 80 zcmY#q2#yR^@$qyDatw;J3J&%Gv7Lh=148`cgFS-uTq9idgFPIBTp3ibsRU|3RR#cQ C_!Zdz literal 0 HcmV?d00001 diff --git a/packages/vms/hpssl_ia64.opt b/packages/vms/hpssl_ia64.opt new file mode 100644 index 0000000000000000000000000000000000000000..735a585b18bd9d18c9702b9c3f78fafada03c50d GIT binary patch literal 80 zcmY#q2#yR^@$qyDatw;J3J&%Gv7Lh=148`cgFS-uTq9idgFPIBTp3ibsRU|3RR#cQ C_!Zdz literal 0 HcmV?d00001 diff --git a/packages/vms/hpssl_vax.opt b/packages/vms/hpssl_vax.opt new file mode 100644 index 0000000000000000000000000000000000000000..6f87c9bbb50c79b483b7e0040a715e885b9eb299 GIT binary patch literal 84 zcmdO72#yR^@$qyDatw;J3J&%Gv7Lh=148`cgFS+bjr3e2T=j!J9D`gL)Uc@qYC%^B E0K4ZFrvLx| literal 0 HcmV?d00001 diff --git a/packages/vms/readme b/packages/vms/readme new file mode 100644 index 0000000000000000000000000000000000000000..eb34f7bcd51968533db05745b655c9bcabb882a0 GIT binary patch literal 2272 zcmah~Yj4{&6y?W#*!E$+;0_zmG>e&Z=mYCxi6bYqF(>w7C+&a$0xi)N5n0qoDV~A+ z_?=5xYr4j%3|N$O@8P+x!(Bm-T`@k!6yw7Em+iJNxTEF=`)jPkcI$lrw$^v?Q}z>b z8}<(E1nb}d?66*Fl-~JtZu47)}jo8`hL43`vqfx1gtFws^--y2Pm38aa zLc9?4Tj#8M(fRe@;Q1a!POD0%RAt5!*6C79nwuQ|bf#Rjra$V;RZ{Tvy%;;~^xw7d zrqUj0Ka0&KboELe5H`&L=V(V2Ybvn@kLA-JMDHYu=<20>@t+CfeJ4I-sv_*%2Q1*k zo|rO`)Ht0mVM=UKDN}e5)Celi?aCC3z>xQUC%PZUvNyO0L4Wqwp{a5UUEKrYq;&H# zQ#7kho_Z;|;BRNwb!9B=^bnX4-%?-Hze<4@iQ3kmSL@+YF*_hbb+QJy^WhA1}`RU+&hXe1&9|qI@=yDoQ zCc{nK_vljX(PW(e!WJDiX)AE}B}#xm7Mkomh;kpHhweHZoS%G=eMXqrrKSvVuPL_+ zlc?NNp>?`p!(A1a$kWFn|I602RO{eLm8H5&(dNh=dXrx(x{uu1y?r_}i z%F%d=KsHwg6ImHsg!Bi$tR#*kH^mL%edtYjxIq|nUq1gF0P%bUA^3>jHwahVkN*Ss zIs*H=6#?g=vDz|KY~PmjjbMz2oVlV8%_QtwXO;!%Lf@`9&&ND1tPAhNAT%pW0+LNW zvo+>urb*3m6v9$!(ZqC=>bWU2SB0elRi3T!UYv-dQ0Dk{iEqv>o7%PQ%r+^RidF`b zlmt!0*z(IluSnW_=GjC<0-H$v56k0#JX)d|BIY&Ii9(x`zSVegI@bzMc23FV#Sj#| z2QQc_aU>YET0xY-0|JmK2%HV!q^Z-e48%j5vD|T+HgnKH05aQsCs?EX9?Pl4SJ#X* zvwE_mm324lhL*a~y5v1K0?{4`ha%ND9a2?5eX4psZ{k2Z-yb(nV*e&#nYs;BEUi?k z#gC%OoUIobEi96QFn=<0WIyDIe4S)`W_&9~f!(=n&WnBMJIbXIxUcyPA>}kQfgj7# zIzEb!3!uG{&z{Kx#)yJXgd{?`