## -*- mode: perl; -*-
## Standard openssl configuration targets.
-sub picker {
- my %opts = @_;
- return sub { add($opts{default} || (),
- $opts{$config{build_type}} || ())->(); }
-}
-
-sub threads {
- my @flags = @_;
- return sub { add($disabled{threads} ? () : @flags)->(); }
-}
-
-sub combine {
- my @stuff = @_;
- return sub { add(@stuff)->(); }
-}
-
# Helper functions for the Windows configs
my $vc_win64a_info = {};
sub vc_win64a_info {
my $wcelflag = "/subsystem:windowsce,$1.$2"; # ...,N.NN
my $wceplatf = $ENV{'PLATFORM'};
- my $wceplatf =~ tr/a-z0-9 /A-Z0-9_/d;
- my $wcecdefs .= " -DWCE_PLATFORM_$wceplatf";
+
+ $wceplatf =~ tr/a-z0-9 /A-Z0-9_/;
+ $wcecdefs .= " -DWCE_PLATFORM_$wceplatf";
my $wcetgt = $ENV{'TARGETCPU'}; # just shorter name...
SWITCH: for($wcetgt) {
return $vc_wince_info;
}
+# Helper functions for the VMS configs
+my $vms_info = {};
+sub vms_info {
+ unless (%$vms_info) {
+ $vms_info->{disable_warns} = [ ];
+ $vms_info->{disable_warns_p32} = [ ];
+ $vms_info->{disable_warns_p64} = [ ];
+ `PIPE CC /NOCROSS_REFERENCE /NOLIST /NOOBJECT /WARNINGS = DISABLE = ( MAYLOSEDATA3, EMPTYFILE ) NL: 2> NL:`;
+ if ($? == 0) {
+ push @{$vms_info->{disable_warns_p64}}, "MAYLOSEDATA3";
+ }
+ }
+ return $vms_info;
+}
%targets = (
"hpux64-ia64-gcc" => {
inherit_from => [ "BASE_unix", asm("ia64_asm") ],
cc => "gcc",
- cflags => picker(default => "-mlp64 -DB_ENDIAN",
- debug => "-O0 -g",
- release => "-O3",
- threads("-pthread")),
+ cflags => combine(picker(default => "-mlp64 -DB_ENDIAN",
+ debug => "-O0 -g",
+ release => "-O3"),
+ threads("-pthread")),
ex_libs => add("-ldl"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
thread_scheme => "pthreads",
inherit_from => [ "linux-generic32", asm("x86_64_asm") ],
cflags => add("-mx32 -DL_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT",
- perlasm_scheme => "elf",
+ perlasm_scheme => "elf32",
shared_ldflag => "-mx32",
multilib => "x32",
},
#
inherit_from => [ "linux-generic32", asm("s390x_asm") ],
cflags => add("-m31 -Wa,-mzarch -DB_ENDIAN"),
- bn_obj => sub { my $r=join(" ",@_); $r=~s/bn\-s390x/bn_asm/; $r; },
+ bn_asm_src => sub { my $r=join(" ",@_); $r=~s|asm/s390x\.S|bn_asm.c|; $r; },
perlasm_scheme => "31",
shared_ldflag => "-m31",
multilib => "/highgprs",
cc => "cl",
cflags => "-W3 -wd4090 -Gs0 -GF -Gy -nologo -DOPENSSL_SYS_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE",
coutflag => "/Fo",
- lib_cflags => "/Zl /Zi /Fdlib",
+ rc => "rc",
+ rcoutflag => "/fo",
+ lib_cflags => sub { join(" ",
+ ($disabled{shared} ? "/Zl" : ()),
+ "/Zi /Fdlib") },
dso_cflags => "/Zi",
bin_cflags => "/Zi /Fdapp",
lflags => add("/debug"),
dso_scheme => "win32",
},
"VC-noCE-common" => {
- inherit_from => [ "VC-common", "uplink_common" ],
+ inherit_from => [ "VC-common" ],
cflags => add(picker(default => "-DUNICODE -D_UNICODE",
debug =>
sub {
build_scheme => add("VC-W64", { separator => undef }),
},
"VC-WIN64I" => {
- inherit_from => [ "VC-WIN64-common", asm("ia64_asm") ],
+ inherit_from => [ "VC-WIN64-common", asm("ia64_asm"),
+ sub { $disabled{shared} ? () : "ia64_uplink" } ],
as => "ias",
asflags => "-d debug",
asoutflag => "-o",
sys_id => "WIN64I",
- rc4_asm_src => "",
+ bn_asm_src => sub { return undef unless @_;
+ my $r=join(" ",@_); $r=~s|bn-ia64.s|bn_asm.c|; $r; },
perlasm_scheme => "ias",
+ multilib => "-ia64",
},
"VC-WIN64A" => {
- inherit_from => [ "VC-WIN64-common", asm("x86_64_asm") ],
+ inherit_from => [ "VC-WIN64-common", asm("x86_64_asm"),
+ sub { $disabled{shared} ? () : "x86_64_uplink" } ],
as => sub { vc_win64a_info()->{as} },
asflags => sub { vc_win64a_info()->{asflags} },
asoutflag => sub { vc_win64a_info()->{asoutflag} },
bn_asm_src => sub { return undef unless @_;
my $r=join(" ",@_); $r=~s|asm/x86_64-gcc|bn_asm|; $r; },
perlasm_scheme => "auto",
+ multilib => "-x64",
},
"VC-WIN32" => {
# x86 Win32 target defaults to ANSI API, if you want UNICODE,
# configure with 'perl Configure VC-WIN32 -DUNICODE -D_UNICODE'
- inherit_from => [ "VC-noCE-common", asm("x86_asm") ],
+ inherit_from => [ "VC-noCE-common", asm("x86_asm"),
+ sub { $disabled{shared} ? () : "uplink_common" } ],
as => sub { my $ver=`nasm -v 2>NUL`;
my $vew=`nasmw -v 2>NUL`;
return $ver ge $vew ? "nasm" : "nasmw" },
build_scheme => add("VC-WCE", { separator => undef }),
},
-###### Borland C++ 4.5
-## "BC-32" => {
-## inherit_from => [ "BASE_Windows" ],
-## cc => "bcc32",
-## sys_id => "WIN32",
-## bn_ops => "BN_LLONG EXPORT_VAR_AS_FN",
-## dso_scheme => "win32",
-## build_scheme => add("BC", { separator => undef }),
-## },
-
#### MinGW
"mingw" => {
inherit_from => [ "BASE_unix", asm("x86_asm"),
release => "-O3 -fomit-frame-pointer"),
sys_id => "CYGWIN",
bn_ops => "BN_LLONG",
+ thread_scheme => "pthread",
perlasm_scheme => "coff",
dso_scheme => "dlfcn",
shared_target => "cygwin-shared",
release => "-O3"),
sys_id => "CYGWIN",
bn_ops => "SIXTY_FOUR_BIT_LONG",
+ thread_scheme => "pthread",
perlasm_scheme => "mingw64",
dso_scheme => "dlfcn",
shared_target => "cygwin-shared",
inherit_from => [ "Cygwin-x86" ]
},
-#### NetWare from David Ward (dsward@novell.com)
-# requires either MetroWerks NLM development tools, or gcc / nlmconv
-# NetWare defaults socket bio to WinSock sockets. However,
-# the builds can be configured to use BSD sockets instead.
-# netware-clib => legacy CLib c-runtime support
- "netware-clib" => {
- inherit_from => [ "BASE_Windows" ],
- cc => "mwccnlm",
- build_scheme => add("netware", { separator => undef }),
- },
- "netware-clib-bsdsock" => {
- inherit_from => [ "BASE_Windows" ],
- cc => "mwccnlm",
- build_scheme => add("netware", { separator => undef }),
- },
- "netware-clib-gcc" => {
- inherit_from => [ "BASE_unix" ],
- cc => "i586-netware-gcc",
- cflags => "-nostdinc -I/ndk/nwsdk/include/nlm -I/ndk/ws295sdk/include -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYS_NETWARE -O2 -Wall",
- },
- "netware-clib-bsdsock-gcc" => {
- inherit_from => [ "BASE_unix" ],
- cc => "i586-netware-gcc",
- cflags => "-nostdinc -I/ndk/nwsdk/include/nlm -DNETWARE_BSDSOCK -DNETDB_USE_INTERNET -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYS_NETWARE -O2 -Wall",
- },
- # netware-libc => LibC/NKS support
- "netware-libc" => {
- inherit_from => [ "BASE_Windows" ],
- cc => "mwccnlm",
- bn_ops => "BN_LLONG",
- build_scheme => add("netware", { separator => undef }),
- },
- "netware-libc-bsdsock" => {
- inherit_from => [ "BASE_Windows" ],
- cc => "mwccnlm",
- bn_ops => "BN_LLONG",
- build_scheme => add("netware", { separator => undef }),
- },
- "netware-libc-gcc" => {
- inherit_from => [ "BASE_unix" ],
- cc => "i586-netware-gcc",
- cflags => "-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYS_NETWARE -DTERMIO -O2 -Wall",
- bn_ops => "BN_LLONG",
- },
- "netware-libc-bsdsock-gcc" => {
- inherit_from => [ "BASE_unix" ],
- cc => "i586-netware-gcc",
- cflags => "-nostdinc -I/ndk/libc/include -DNETWARE_BSDSOCK -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYS_NETWARE -DTERMIO -O2 -Wall",
- bn_ops => "BN_LLONG",
- },
-
#### DJGPP
"DJGPP" => {
inherit_from => [ asm("x86_asm") ],
perlasm_scheme => "a.out",
},
-#### Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
- "ultrix-cc" => {
- inherit_from => [ "BASE_unix" ],
- cc => "cc",
- cflags => "-std1 -O -Olimit 2500 -DL_ENDIAN",
- thread_scheme => "(unknown)",
- },
- "ultrix-gcc" => {
- inherit_from => [ "BASE_unix" ],
- cc => "gcc",
- cflags => "-O3 -DL_ENDIAN",
- bn_ops => "BN_LLONG",
- thread_scheme => "(unknown)",
- },
-# K&R C is no longer supported; you need gcc on old Ultrix installations
-##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown):::::::",
-
##### MacOS X (a.k.a. Darwin) setup
"darwin-common" => {
inherit_from => [ "BASE_unix" ],
shared_ldflag => "-dynamiclib",
shared_extension => ".\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
},
+ # Option "freeze" such as -std=gnu9x can't negatively interfere
+ # with future defaults for below two targets, because MacOS X
+ # for PPC has no future, it was discontinued by vendor in 2009.
"darwin-ppc-cc" => {
inherit_from => [ "darwin-common", asm("ppc32_asm") ],
- cflags => add("-arch ppc -DB_ENDIAN -Wa,-force_cpusubtype_ALL"),
+ cflags => add("-arch ppc -std=gnu9x -DB_ENDIAN -Wa,-force_cpusubtype_ALL"),
perlasm_scheme => "osx32",
shared_ldflag => "-arch ppc -dynamiclib",
},
"darwin64-ppc-cc" => {
inherit_from => [ "darwin-common", asm("ppc64_asm") ],
- cflags => add("-arch ppc64 -DB_ENDIAN"),
+ cflags => add("-arch ppc64 -std=gnu9x -DB_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
perlasm_scheme => "osx64",
shared_ldflag => "-arch ppc64 -dynamiclib",
shared_cflag => "-fPIC",
},
-##### OS/2 EMX
- "OS2-EMX" => {
- inherit_from => [ "BASE_unix" ],
- cc => "gcc",
- },
-
##### VxWorks for various targets
"vxworks-ppc60x" => {
inherit_from => [ "BASE_unix" ],
debug => "/DEBUG/TRACEBACK",
release => "/NODEBUG/NOTRACEBACK"),
shared_target => "vms-shared",
+ dso_scheme => "vms",
thread_scheme => "pthreads",
apps_aux_src => "vms_decc_init.c",
#},
"vms-alpha" => {
inherit_from => [ "vms-generic" ],
+ cflags => add(sub { my @warnings =
+ @{vms_info()->{disable_warns}};
+ @warnings
+ ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); }),
#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-alpha-p32" => {
+ inherit_from => [ "vms-alpha" ],
+ cflags =>
+ add("/POINTER_SIZE=32",
+ sub { my @warnings =
+ @{vms_info()->{disable_warns_p32}};
+ @warnings
+ ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
+ } ),
+ ex_libs => sub { join(",", map { s|SHR([\./])|SHR32$1|g; $_ } @_) },
+ },
+ "vms-alpha-p64" => {
+ inherit_from => [ "vms-alpha" ],
+ cflags =>
+ add("/POINTER_SIZE=64=ARGV",
+ sub { my @warnings =
+ @{vms_info()->{disable_warns_p64}};
+ @warnings
+ ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
+ } ),
+ ex_libs => sub { join(",", map { s|SHR([\./])|SHR64$1|g; $_ } @_) },
},
"vms-ia64" => {
inherit_from => [ "vms-generic" ],
+ cflags => add(sub { my @warnings =
+ @{vms_info()->{disable_warns}};
+ @warnings
+ ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); }),
#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; $_ } @_) },
+ "vms-ia64-p32" => {
+ inherit_from => [ "vms-ia64" ],
+ cflags =>
+ add("/POINTER_SIZE=32",
+ sub { my @warnings =
+ @{vms_info()->{disable_warns_p32}};
+ @warnings
+ ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
+ } ),
+ ex_libs => sub { join(",", map { s|SHR([\./])|SHR32$1|g; $_ } @_) },
+ },
+ "vms-ia64-p64" => {
+ inherit_from => [ "vms-ia64" ],
+ cflags =>
+ add("/POINTER_SIZE=64=ARGV",
+ sub { my @warnings =
+ @{vms_info()->{disable_warns_p64}};
+ @warnings
+ ? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
+ } ),
+ ex_libs => sub { join(",", map { s|SHR([\./])|SHR64$1|g; $_ } @_) },
},
);