Refactor config - @MK1MF_Builds out, general build scheme in
[openssl.git] / Configurations / 10-main.conf
index 9ebd20fe13cac894677f7d6fc8b8d5401c8c5823..c5ae5940e20872d1c8dd9c71d2183e5fa1f3438e 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     => "-D_REENTRANT",
-        lflags           => "-lsocket -lnsl -ldl",
+        thread_cflag     => "-pthread",
         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     => "-D_REENTRANT",
-        lflags           => "-lsocket -lnsl -ldl",
+        thread_cflag     => "-pthread",
         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",
+        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",
+        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     => "-D_REENTRANT",
-        lflags           => "-lsocket -lnsl -ldl",
+        thread_cflag     => "-pthread",
         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") ],
-        cflags           => sub { join(" ","-mcpu=v8",@_); },
+        cflags           => add_before(" ", "-mcpu=v8"),
     },
     "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",
+        cflags           => add_before(" ", "-m32 -mcpu=ultrasparc"),
+        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",
+        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" => {
         inherit_from     => [ "solaris-sparcv7-cc", asm("sparcv8_asm") ],
-        cflags           => sub { join(" ","-xarch=v8",@_); },
+        cflags           => add_before(" ", "-xarch=v8"),
     },
     "solaris-sparcv9-cc" => {
         inherit_from     => [ "solaris-sparcv7-cc", asm("sparcv9_asm") ],
-        cflags           => sub { join(" ","-xarch=v8plus -xtarget=ultra",@_); },
+        cflags           => add_before(" ", "-xarch=v8plus -xtarget=ultra"),
     },
     "solaris64-sparcv9-cc" => {
         inherit_from     => [ "solaris-sparcv7-cc", asm("sparcv9_asm") ],
-        cflags           => sub { join(" ","-xarch=v9 -xtarget=ultra",@_); },
+        cflags           => add_before(" ", "-xarch=v9 -xtarget=ultra"),
         bn_ops           => "BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR",
         shared_ldflag    => "-xarch=v9 -G -dy -z text",
         multilib         => "/64",
         cflags           => "-mabi=n32 -DB_ENDIAN -DBN_DIV3W",
         debug_cflags     => "-g -O0",
         release_cflags   => "-O3",
-        thread_cflag     => "-D_SGI_MP_SOURCE",
+        thread_cflag     => "-D_SGI_MP_SOURCE -pthread",
         bn_ops           => "MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT",
         perlasm_scheme   => "n32",
         dso_scheme       => "dlfcn",
         debug_cflags     => "-g -O0",
         release_cflags   => "-O2",
         thread_cflag     => "-D_SGI_MP_SOURCE",
+        lflags           => "-lpthread",
         bn_ops           => "DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT",
         perlasm_scheme   => "n32",
         dso_scheme       => "dlfcn",
         debug_cflags     => "-g -O0",
         release_cflags   => "-O2",
         thread_cflag     => "-D_SGI_MP_SOURCE",
+        lflags           => "-lpthread",
         bn_ops           => "RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG",
         perlasm_scheme   => "64",
         dso_scheme       => "dlfcn",
         cflags           => "-DB_ENDIAN -DBN_DIV2W",
         debug_cflags     => "-O0 -g",
         release_cflags   => "-O3",
-        thread_cflag     => "-D_REENTRANT",
+        thread_cflag     => "-pthread",
         lflags           => "-Wl,+s -ldld",
         bn_ops           => "BN_LLONG DES_PTR DES_UNROLL DES_RISC1",
         dso_scheme       => "dl",
         debug_cflags      => "+O0 +d -g",
         release_cflags   => "+O3",
         thread_cflag     => "-D_REENTRANT",
-        lflags           => "-Wl,+s -ldld",
+        lflags           => "-Wl,+s -ldld -lpthread",
         bn_ops           => "MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT",
         dso_scheme       => "dl",
         shared_target    => "hpux-shared",
     },
     "hpux-parisc1_1-cc" => {
         inherit_from     => [ "hpux-parisc-cc", asm("parisc11_asm") ],
-        cflags           => sub { join(" ","+DA1.1",@_); },
+        cflags           => add_before(" ", "+DA1.1"),
         multilib         => "/pa1.1",
     },
     "hpux64-parisc2-cc" => {
         debug_cflags      => "+O0 +d -g",
         release_cflags   => "+O3",
         thread_cflag     => "-D_REENTRANT",
-        lflags           => "-ldl",
+        lflags           => "-ldl -lpthread",
         bn_ops           => "SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT",
         dso_scheme       => "dlfcn",
         shared_target    => "hpux-shared",
         debug_cflags     => "+O0 +d -g",
         release_cflags   => "+O2",
         thread_cflag     => "-D_REENTRANT",
-        lflags           => "-ldl",
+        lflags           => "-ldl -lpthread",
         bn_ops           => "SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT",
         dso_scheme       => "dlfcn",
         shared_target    => "hpux-shared",
         debug_cflags     => "+O0 +d -g",
         release_cflags   => "+O3",
         thread_cflag     => "-D_REENTRANT",
-        lflags           => "-ldl",
+        lflags           => "-ldl -lpthread",
         bn_ops           => "SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT",
         dso_scheme       => "dlfcn",
         shared_target    => "hpux-shared",
         cflags           => "-DB_ENDIAN",
         debug_cflags     => "-O0 -g",
         release_cflags   => "-O3",
-        thread_cflag     => "-D_REENTRANT",
+        thread_cflag     => "-pthread",
         lflags           => "-ldl",
         bn_ops           => "SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT",
         dso_scheme       => "dlfcn",
         cflags           => "-mlp64 -DB_ENDIAN",
         debug_cflags     => "-O0 -g",
         release_cflags   => "-O3",
-        thread_cflag     => "-D_REENTRANT",
+        thread_cflag     => "-pthread",
         lflags           => "-ldl",
         bn_ops           => "SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT",
         dso_scheme       => "dlfcn",
     "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     => "-D_REENTRANT",
+        thread_cflag     => "-pthread",
         lflags           => "-ldl",
         bn_ops           => "BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR",
         dso_scheme       => "dlfcn",
         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}",
     "linux64-s390x" => {
         inherit_from     => [ "linux-generic64", asm("s390x_asm") ],
         cflags           => "-m64 -Wall -DB_ENDIAN",
-        thread_cflag     => "-D_REENTRANT",
         perlasm_scheme   => "64",
         shared_ldflag    => "-m64",
         multilib         => "64",
     },
     "android-armv7" => {
         inherit_from     => [ "android-armeabi" ],
-        cflags           => sub { join (" ","-march=armv7-a",@_); },
+        cflags           => add_before(" ", "-march=armv7-a"),
     },
     "android-mips" => {
         inherit_from     => [ "android", asm("mips32_asm") ],
         cc               => "cl",
         cflags           => "-W3 -wd4090 -Gs0 -GF -Gy -nologo -DOPENSSL_SYS_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE",
         dso_scheme       => "win32",
+       build_scheme     => "mk1mf",
     },
     "VC-WIN64I" => {
         inherit_from     => [ "VC-common", asm("ia64_asm") ],
-        cflags           => sub { join(" ",@_,"-DUNICODE -D_UNICODE"); },
+        cflags           => add(" ", "-DUNICODE -D_UNICODE"),
         sys_id           => "WIN64I",
         bn_ops           => "SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN",
         bn_obj           => sub { my $r=join(" ",@_); $r=~s/bn\-//; $r; },
         rc4_obj          => "",
         perlasm_scheme   => "ias",
+       build_scheme     => [ "mk1mf", "VC-W64" ],
     },
     "VC-WIN64A" => {
         inherit_from     => [ "VC-common", asm("x86_64_asm") ],
-        cflags           => sub { join(" ",@_,"-DUNICODE -D_UNICODE"); },
+        cflags           => add(" ", "-DUNICODE -D_UNICODE"),
         sys_id           => "WIN64A",
         bn_ops           => "SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN",
         bn_obj           => sub { my $r=join(" ",@_); $r=~s/x86_64\-gcc/bn_asm/; $r; },
         perlasm_scheme   => "auto",
+       build_scheme     => [ "mk1mf", "VC-W64" ],
     },
     "VC-WIN32" => {
         # x86 Win32 target defaults to ANSI API, if you want UNICODE,
         sys_id           => "WIN32",
         bn_ops           => "BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}",
         perlasm_scheme   => "win32n",
+       build_scheme     => [ "mk1mf", "VC-W32" ],
     },
     "VC-CE" => {
         cc               => "cl",
         sys_id           => "WINCE",
         bn_ops           => "BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}",
         dso_scheme       => "win32",
+       build_scheme     => [ "mk1mf", "VC-WCE" ],
     },
 
 #### Borland C++ 4.5
         sys_id           => "WIN32",
         bn_ops           => "BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN",
         dso_scheme       => "win32",
+       build_scheme     => [ "mk1mf", "BC" ],
     },
 
 #### MinGW
     "mingw" => {
         inherit_from     => [ asm("x86_asm") ],
         cc               => "gcc",
-        cflags           => "-mno-cygwin -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -march=i486 -Wall -Wno-pedantic-ms-format",
+        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",
         # Applink is never engaged and can as well be omitted.
         inherit_from     => [ asm("x86_64_asm") ],
         cc               => "gcc",
-        cflags           => "-mno-cygwin -DL_ENDIAN -Wall -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -Wno-pedantic-ms-format",
+        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-x86" => {
         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",
         shared_ldflag    => "-shared",
         shared_extension => ".dll.a",
     },
+    # Backward compatibility for those using this target
+    "Cygwin" => {
+       inherit_from     => [ "Cygwin-x86" ]
+    },
+    # In case someone constructs the Cygwin target name themself
+    "Cygwin-i386" => {
+       inherit_from     => [ "Cygwin-x86" ]
+    },
+    "Cygwin-i486" => {
+       inherit_from     => [ "Cygwin-x86" ]
+    },
+    "Cygwin-i586" => {
+       inherit_from     => [ "Cygwin-x86" ]
+    },
+    "Cygwin-i686" => {
+       inherit_from     => [ "Cygwin-x86" ]
+    },
 
 #### NetWare from David Ward (dsward@novell.com)
 # requires either MetroWerks NLM development tools, or gcc / nlmconv
     "netware-clib" => {
         cc               => "mwccnlm",
         bn_ops           => "${x86_gcc_opts}",
+       build_scheme     => [ "mk1mf", "netware" ],
     },
     "netware-clib-bsdsock" => {
         cc               => "mwccnlm",
         bn_ops           => "${x86_gcc_opts}",
+       build_scheme     => [ "mk1mf", "netware" ],
     },
     "netware-clib-gcc" => {
         cc               => "i586-netware-gcc",
     "netware-libc" => {
         cc               => "mwccnlm",
         bn_ops           => "BN_LLONG ${x86_gcc_opts}",
+       build_scheme     => [ "mk1mf", "netware" ],
     },
     "netware-libc-bsdsock" => {
         cc               => "mwccnlm",
         bn_ops           => "BN_LLONG ${x86_gcc_opts}",
+       build_scheme     => [ "mk1mf", "netware" ],
     },
     "netware-libc-gcc" => {
         cc               => "i586-netware-gcc",
         inherit_from     => [ asm("x86_elf_asm") ],
         cc               => "gcc",
         cflags           => "-DL_ENDIAN -O3 -fomit-frame-pointer -march=i486 -Wall",
-        thread_cflag     => "-D_REENTRANT",
+        thread_cflag     => "-pthread",
         lflags           => "-ldl",
         bn_ops           => "BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}",
         dso_scheme       => "dlfcn",
     },
     "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",
     },