OLD | NEW |
(Empty) | |
| 1 $! |
| 2 $! Startup file for OpenSSL 1.x. |
| 3 $! |
| 4 $! 2011-03-05 SMS. |
| 5 $! |
| 6 $! This procedure must reside in the OpenSSL installation directory. |
| 7 $! It will fail if it is copied to a different location. |
| 8 $! |
| 9 $! P1 qualifier(s) for DEFINE. For example, "/SYSTEM" to get the |
| 10 $! logical names defined in the system logical name table. |
| 11 $! |
| 12 $! P2 "64", to use executables which were built with 64-bit pointers. |
| 13 $! |
| 14 $! Good (default) and bad status values. |
| 15 $! |
| 16 $ status = %x00010001 ! RMS$_NORMAL, normal successful completion. |
| 17 $ rms_e_fnf = %x00018292 ! RMS$_FNF, file not found. |
| 18 $! |
| 19 $! Prepare for problems. |
| 20 $! |
| 21 $ orig_dev_dir = f$environment( "DEFAULT") |
| 22 $ on control_y then goto clean_up |
| 23 $ on error then goto clean_up |
| 24 $! |
| 25 $! Determine hardware architecture. |
| 26 $! |
| 27 $ if (f$getsyi( "cpu") .lt. 128) |
| 28 $ then |
| 29 $ arch_name = "VAX" |
| 30 $ else |
| 31 $ arch_name = f$edit( f$getsyi( "arch_name"), "upcase") |
| 32 $ if (arch_name .eqs. "") then arch_name = "UNK" |
| 33 $ endif |
| 34 $! |
| 35 $ if (p2 .eqs. "64") |
| 36 $ then |
| 37 $ arch_name_exe = arch_name+ "_64" |
| 38 $ else |
| 39 $ arch_name_exe = arch_name |
| 40 $ endif |
| 41 $! |
| 42 $! Derive the OpenSSL installation device:[directory] from the location |
| 43 $! of this command procedure. |
| 44 $! |
| 45 $ proc = f$environment( "procedure") |
| 46 $ proc_dev_dir = f$parse( "A.;", proc, , , "no_conceal") - "A.;" |
| 47 $ proc_dev = f$parse( proc_dev_dir, , , "device", "syntax_only") |
| 48 $ proc_dir = f$parse( proc_dev_dir, , , "directory", "syntax_only") - - |
| 49 ".][000000"- "[000000."- "]["- "["- "]" |
| 50 $ proc_dev_dir = proc_dev+ "["+ proc_dir+ "]" |
| 51 $ set default 'proc_dev_dir' |
| 52 $ set default [-] |
| 53 $ ossl_dev_dir = f$environment( "default") |
| 54 $! |
| 55 $! Check existence of expected directories (to see if this procedure has |
| 56 $! been moved away from its proper place). |
| 57 $! |
| 58 $ if ((f$search( "certs.dir;1") .eqs. "") .or. - |
| 59 (f$search( "include.dir;1") .eqs. "") .or. - |
| 60 (f$search( "private.dir;1") .eqs. "") .or. - |
| 61 (f$search( "vms.dir;1") .eqs. "")) |
| 62 $ then |
| 63 $ write sys$output - |
| 64 " Can't find expected common OpenSSL directories in:" |
| 65 $ write sys$output " ''ossl_dev_dir'" |
| 66 $ status = rms_e_fnf |
| 67 $ goto clean_up |
| 68 $ endif |
| 69 $! |
| 70 $ if ((f$search( "''arch_name_exe'_exe.dir;1") .eqs. "") .or. - |
| 71 (f$search( "''arch_name'_lib.dir;1") .eqs. "")) |
| 72 $ then |
| 73 $ write sys$output - |
| 74 " Can't find expected architecture-specific OpenSSL directories in:" |
| 75 $ write sys$output " ''ossl_dev_dir'" |
| 76 $ status = rms_e_fnf |
| 77 $ goto clean_up |
| 78 $ endif |
| 79 $! |
| 80 $! All seems well (enough). Define the OpenSSL logical names. |
| 81 $! |
| 82 $ ossl_root = ossl_dev_dir- "]"+ ".]" |
| 83 $ define /translation_attributes = concealed /nolog'p1 SSLROOT 'ossl_root' |
| 84 $ define /nolog 'p1' SSLCERTS sslroot:[certs] |
| 85 $ define /nolog 'p1' SSLINCLUDE sslroot:[include] |
| 86 $ define /nolog 'p1' SSLPRIVATE sslroot:[private] |
| 87 $ define /nolog 'p1' SSLEXE sslroot:['arch_name_exe'_exe] |
| 88 $ define /nolog 'p1' SSLLIB sslroot:['arch_name'_lib] |
| 89 $! |
| 90 $! Defining OPENSSL lets a C program use "#include <openssl/{foo}.h>": |
| 91 $ define /nolog 'p1' OPENSSL SSLINCLUDE: |
| 92 $! |
| 93 $! Run a site-specific procedure, if it exists. |
| 94 $! |
| 95 $ if f$search( "sslroot:[vms]openssl_systartup.com") .nes."" then - |
| 96 @ sslroot:[vms]openssl_systartup.com |
| 97 $! |
| 98 $! Restore the original default dev:[dir] (if known). |
| 99 $! |
| 100 $ clean_up: |
| 101 $! |
| 102 $ if (f$type( orig_dev_dir) .nes. "") |
| 103 $ then |
| 104 $ set default 'orig_dev_dir' |
| 105 $ endif |
| 106 $! |
| 107 $ EXIT 'status' |
| 108 $! |
OLD | NEW |