Fix configuration system to support different architectures on Cygwin.
[openssl.git] / Configurations / 10-main.conf
index a24b9920a58426bb5d6d351d8cf23315b966826d..b1528c1cafaf73e7dbae13b2d6ba4904d9bfdaa6 100644 (file)
@@ -1,7 +1,8 @@
+## -*- mode: perl; -*-
 ## Standard openssl configuration targets.
 ##
 ## If you edit this file, run this command before committing
-##     make -f Makefile.org TABLE
+##     make -f Makefile.in TABLE
 ## This file is interpolated by the Configure script.
 
 %targets = (
@@ -25,7 +26,7 @@
     "vos-gcc" => {
         cc               => "gcc",
         cflags           => "-Wall -DOPENSSL_SYS_VOS -D_POSIX_C_SOURCE=200112L -D_BSD -D_VOS_EXTENDED_NAMES -DB_ENDIAN",
-        debug_cflags     => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG",
+        debug_cflags     => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG",
         release_cflags   => "-O3",
         thread_cflag     => "(unknown)",
         sys_id           => "VOS",
         shared_extension => ".so",
     },
 
+#### Solaros configirations
+    "solaris-common" => {
+        template         => 1,
+        cflags           => "-DFILIO_H",
+        lflags           => "-lsocket -lnsl -ldl",
+        dso_scheme       => "dlfcn",
+        shared_target    => "solaris-shared",
+        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+    },
 #### Solaris x86 with GNU C setups
     "solaris-x86-gcc" => {
         # -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have
         # template it surrounds it with #APP #NO_APP comment pair which
         # (at least Solaris 7_x86) /usr/ccs/bin/as fails to assemble
         # with "Illegal mnemonic" error message.
-        inherit_from     => [ asm("x86_elf_asm") ],
+        inherit_from     => [ "solaris-common", asm("x86_elf_asm") ],
         cc               => "gcc",
-        cflags           => "-march=pentium -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM",
+        cflags           => sub { join(" ","-march=pentium -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM",@_) },
         debug_cflags     => "-O0 -g",
         release_cflags   => "-O3 -fomit-frame-pointer",
         thread_cflag     => "-pthread",
-        lflags           => "-lsocket -lnsl -ldl",
         bn_ops           => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-fPIC",
         shared_ldflag    => "-shared",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
     },
     "solaris64-x86_64-gcc" => {
         # -shared -static-libgcc might appear controversial, but modules
         # code [thanks to inline assembler], I would actually recommend
         # to consider using gcc shared build even with vendor compiler:-)
         #                                      <appro@fy.chalmers.se>
-        inherit_from     => [ asm("x86_64_asm") ],
+        inherit_from     => [ "solaris-common", asm("x86_64_asm") ],
         cc               => "gcc",
-        cflags           => "-m64 -Wall -DL_ENDIAN",
+        cflags           => sub { join(" ","-m64 -Wall -DL_ENDIAN",@_) },
         debug_cflags     => "-O0 -g",
         release_cflags   => "-O3",
         thread_cflag     => "-pthread",
-        lflags           => "-lsocket -lnsl -ldl",
         bn_ops           => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL",
         perlasm_scheme   => "elf",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-fPIC",
         shared_ldflag    => "-m64 -shared -static-libgcc",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
         multilib         => "/64",
     },
 
 #### Solaris x86 with Sun C setups
     "solaris-x86-cc" => {
+        inherit_from     => [ "solaris-common" ],
         cc               => "cc",
-        cflags           => "-xarch=generic -xstrconst -Xa -DL_ENDIAN",
+        cflags           => sub { join(" ","-xarch=generic -xstrconst -Xa -DL_ENDIAN",@_) },
         debug_cflags     => "-g",
         release_cflags   => "-xO5 -xregs=frameptr -xdepend -xbuiltin",
         thread_cflag     => "-D_REENTRANT",
-        lflags           => "-lsocket -lnsl -ldl -mt -lpthread",
+        lflags           => sub { join(" ",@_,"-mt -lpthread") },
         bn_ops           => "BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-KPIC",
         shared_ldflag    => "-G -dy -z text",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
     },
     "solaris64-x86_64-cc" => {
-        inherit_from     => [ asm("x86_64_asm") ],
+        inherit_from     => [ "solaris-common", asm("x86_64_asm") ],
         cc               => "cc",
-        cflags           => "-xarch=generic64 -xstrconst -Xa -DL_ENDIAN",
+        cflags           => sub { join(" ","-xarch=generic64 -xstrconst -Xa -DL_ENDIAN",@_) },
         debug_cflags     => "-g",
         release_cflags   => "-xO5 -xdepend -xbuiltin",
         thread_cflag     => "-D_REENTRANT",
-        lflags           => "-lsocket -lnsl -ldl -mt -lpthread",
+        lflags           => sub { join(" ",@_,"-mt -lpthread") },
         bn_ops           => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL",
         perlasm_scheme   => "elf",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-KPIC",
         shared_ldflag    => "-xarch=generic64 -G -dy -z text",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
         multilib         => "/64",
     },
 
 #### SPARC Solaris with GNU C setups
     "solaris-sparcv7-gcc" => {
+        inherit_from     => [ "solaris-common" ],
         cc               => "gcc",
-        cflags           => "-Wall -DB_ENDIAN -DBN_DIV2W",
+        cflags           => sub { join(" ","-Wall -DB_ENDIAN -DBN_DIV2W",@_) },
         debug_cflags     => "-O0 -g",
         release_cflags   => "-O3",
         thread_cflag     => "-pthread",
-        lflags           => "-lsocket -lnsl -ldl",
         bn_ops           => "BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-fPIC",
         shared_ldflag    => "-shared",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
     },
     "solaris-sparcv8-gcc" => {
         inherit_from     => [ "solaris-sparcv7-gcc", asm("sparcv8_asm") ],
     },
     "solaris-sparcv9-gcc" => {
         # -m32 should be safe to add as long as driver recognizes
-       # -mcpu=ultrasparc
+        # -mcpu=ultrasparc
         inherit_from     => [ "solaris-sparcv7-gcc", asm("sparcv9_asm") ],
-        cc               => "gcc",
         cflags           => sub { join(" ","-m32 -mcpu=ultrasparc",@_); },
-        debug_cflags     => "-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -pedantic -ansi -Wshadow -Wno-long-long -D__EXTENSIONS__",
-        release_cflags   => "-O3",
+        debug_cflags     => "-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DPEDANTIC -O -g -pedantic -ansi -Wshadow -Wno-long-long -D__EXTENSIONS__",
     },
     "solaris64-sparcv9-gcc" => {
         inherit_from     => [ "solaris-sparcv9-gcc" ],
-        cc               => "gcc",
-        cflags           => "-m64 -mcpu=ultrasparc -Wall -DB_ENDIAN",
+        cflags           => sub { my $f=join(" ",@_); $f =~ s/\-m32/-m64/; $f; },
         bn_ops           => "BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR",
         shared_ldflag    => "-m64 -shared",
         multilib         => "/64",
 # SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
 # SC5.0 note: Compiler common patch 107357-01 or later is required!
     "solaris-sparcv7-cc" => {
+        inherit_from     => [ "solaris-common" ],
         cc               => "cc",
-        cflags           => "-xstrconst -Xa -DB_ENDIAN -DBN_DIV2W",
-        debug_cflags     => "-g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL",
+        cflags           => sub { join(" ","-xstrconst -Xa -DB_ENDIAN -DBN_DIV2W",@_) },
+        debug_cflags     => "-g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG",
         release_cflags   => "-xO5 -xdepend",
         thread_cflag     => "-D_REENTRANT",
-        lflags           => "-lsocket -lnsl -ldl -mt -lpthread",
+        lflags           => sub { join(" ",@_,"-mt -lpthread") },
         bn_ops           => "BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR",
-        dso_scheme       => "dlfcn",
-        shared_target    => "solaris-shared",
         shared_cflag     => "-KPIC",
         shared_ldflag    => "-G -dy -z text",
-        shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
     },
 ####
     "solaris-sparcv8-cc" => {
     "linux-generic32" => {
         cc               => "gcc",
         cflags           => "-Wall",
-        debug_cflags     => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG",
+        debug_cflags     => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG",
         release_cflags   => "-O3",
         thread_cflag     => "-pthread",
         lflags           => "-ldl",
         inherit_from     => [ "linux-generic32", asm("x86_elf_asm") ],
         cc               => "gcc",
         cflags           => "-march=i486 -DL_ENDIAN -Wall",
-        debug_cflags     => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG",
+        debug_cflags     => "-O0 -g -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG",
         release_cflags   => "-O3 -fomit-frame-pointer",
         debug_lflags     => "-lefence",
         bn_ops           => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}",
         cc               => "gcc",
         cflags           => "-mno-cygwin -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -march=i486 -Wall",
         debug_cflags     => "-g -O0",
-        release_clags    => "-O3 -fomit-frame-pointer",
+        release_cflags   => "-O3 -fomit-frame-pointer",
         thread_cflag     => "-D_MT",
         sys_id           => "MINGW32",
         lflags           => "-lws2_32 -lgdi32 -lcrypt32",
         cc               => "gcc",
         cflags           => "-mno-cygwin -DL_ENDIAN -Wall -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE",
         debug_cflags     => "-g -O0",
-        release_clags    => "-O3",
+        release_cflags   => "-O3",
         thread_cflag     => "-D_MT",
         sys_id           => "MINGW64",
         lflags           => "-lws2_32 -lgdi32 -lcrypt32",
     },
 
 #### Cygwin
-    "Cygwin" => {
+    "Cygwin-i686" => {
         inherit_from     => [ asm("x86_asm") ],
         cc               => "gcc",
-        cflags           => "-DTERMIOS -DL_ENDIAN -march=i486 -Wall",
+        cflags           => "-DTERMIOS -DL_ENDIAN -Wall",
         debug_cflags     => "-g -O0",
-        release_clags    => "-O3 -fomit-frame-pointer",
+        release_cflags   => "-O3 -fomit-frame-pointer",
         sys_id           => "CYGWIN",
         bn_ops           => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}",
         perlasm_scheme   => "coff",
         cc               => "gcc",
         cflags           => "-DTERMIOS -DL_ENDIAN -Wall",
         debug_cflags     => "-g -O0",
-        release_clags    => "-O3",
+        release_cflags   => "-O3",
         sys_id           => "CYGWIN",
         bn_ops           => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL",
         perlasm_scheme   => "mingw64",
     },
     "vxworks-ppc750-debug" => {
         cc               => "ccppc",
-        cflags           => "-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g",
+        cflags           => "-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g",
         sys_id           => "VXWORKS",
         lflags           => "-r",
     },