+ ##### VMS
+ "vms-generic" => {
+ inherit_from => [ "BASE_VMS" ],
+ template => 1,
+ cc => "CC/DECC",
+ cflags => picker(default => "/STANDARD=RELAXED/NOLIST/PREFIX=ALL/NAMES=(AS_IS,SHORTENED)",
+ debug => "/NOOPTIMIZE/DEBUG",
+ release => "/OPTIMIZE/NODEBUG"),
+ lflags => picker(default => "/MAP",
+ debug => "/DEBUG/TRACEBACK",
+ release => "/NODEBUG/NOTRACEBACK"),
+ shared_target => "vms-shared",
+ thread_scheme => "pthreads",
+
+ apps_aux_src => "vms_decc_init.c",
+ },
+
+ # VMS on VAX is *unsupported*
+ #"vms-asm" => {
+ # template => 1,
+ # bn_obj => "[.asm]vms.obj vms-helper.obj"
+ #},
+ #"vms-vax" => {
+ # inherit_from => [ "vms-generic", asm("vms-asm") ],
+ # as => "MACRO",
+ # debug_aflags => "/NOOPTIMIZE/DEBUG",
+ # release_aflags => "/OPTIMIZE/NODEBUG",
+ # bn_opts => "THIRTY_TWO_BIT RC4_CHAR RC4_CHUNK DES_PTR BF_PTR",
+ #},
+ "vms-alpha" => {
+ inherit_from => [ "vms-generic" ],
+ #as => "???",
+ #debug_aflags => "/NOOPTIMIZE/DEBUG",
+ #release_aflags => "/OPTIMIZE/NODEBUG",
+ bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR",
+ },
+ "vms-alpha-P32" => {
+ inherit_from => [ "vms-alpha" ],
+ cflags => add("/POINTER_SIZE=32"),
+ ex_libs => sub { join(",", map { s|SHR([\./])|SHR32$1|g; $_ } @_) },
+ },
+ "vms-alpha-P64" => {
+ inherit_from => [ "vms-alpha" ],
+ cflags => add("/POINTER_SIZE=64"),
+ ex_libs => sub { join(",", map { s|SHR([\./])|SHR64$1|g; $_ } @_) },
+ },
+ "vms-ia64" => {
+ inherit_from => [ "vms-generic" ],
+ #as => "I4S",
+ #debug_aflags => "/NOOPTIMIZE/DEBUG",
+ #release_aflags => "/OPTIMIZE/NODEBUG",
+ bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR",
+ },
+ "vms-ia64-P32" => {
+ inherit_from => [ "vms-ia64" ],
+ cflags => add("/POINTER_SIZE=32"),
+ ex_libs => sub { join(",", map { s|SHR([\./])|SHR32$1|g; $_ } @_) },
+ },
+ "vms-ia64-P64" => {
+ inherit_from => [ "vms-ia64" ],
+ cflags => add("/POINTER_SIZE=64"),
+ ex_libs => sub { join(",", map { s|SHR([\./])|SHR64$1|g; $_ } @_) },
+ },
+