## -*- mode: perl; -*-
## Build configuration targets for openssl-team members

my %targets = (
    "purify" => {
        inherit_from     => [ 'BASE_unix' ],
        cc               => "purify gcc",
        CFLAGS           => "-g -Wall",
        thread_scheme    => "(unknown)",
        ex_libs          => add(" ","-lsocket -lnsl"),
    },
    "debug" => {
        inherit_from     => [ 'BASE_unix' ],
        cc               => "gcc",
        cflags           => "-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DOPENSSL_NO_ASM -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror",
        thread_scheme    => "(unknown)",
    },
    "debug-erbridge" => {
        inherit_from     => [ 'BASE_unix', "x86_64_asm" ],
        cc               => "gcc",
        cflags           => combine(join(' ', @gcc_devteam_warn),
                                    "-DBN_DEBUG -DCONF_DEBUG -m64 -DL_ENDIAN -DTERMIO -g",
                                    threads("-D_REENTRANT")),
        ex_libs          => add(" ","-ldl"),
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        asm_arch         => 'x86_64',
        perlasm_scheme   => "elf",
        dso_scheme       => "dlfcn",
        shared_target    => "linux-shared",
        shared_cflag     => "-fPIC",
        shared_ldflag    => "-m64",
        multilib         => "64",
    },
    "debug-linux-pentium" => {
        inherit_from     => [ 'BASE_unix', "x86_elf_asm" ],
        cc               => "gcc",
        cflags           => combine("-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DL_ENDIAN -g -mcpu=pentium -Wall",
                                    threads("-D_REENTRANT")),
        ex_libs          => add(" ","-ldl"),
        bn_ops           => "BN_LLONG",
        asm_arch         => 'x86',
        perlasm_scheme   => 'elf',
        thread_scheme    => "pthreads",
        dso_scheme       => "dlfcn",
    },
    "debug-linux-ppro" => {
        inherit_from     => [ 'BASE_unix', "x86_elf_asm" ],
        cc               => "gcc",
        cflags           => combine("-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DL_ENDIAN -g -mcpu=pentiumpro -Wall",
                                    threads("-D_REENTRANT")),
        ex_libs          => add(" ","-ldl"),
        bn_ops           => "BN_LLONG",
        asm_arch         => 'x86',
        perlasm_scheme   => 'elf',
        thread_scheme    => "pthreads",
        dso_scheme       => "dlfcn",
    },
    "debug-test-64-clang" => {
        inherit_from     => [ 'BASE_unix', "x86_64_asm" ],
        cc               => "clang",
        cflags           => combine(join(' ', @gcc_devteam_warn),
                                    "-Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_UNUSED -g3 -O3 -pipe",
                                    threads("${BSDthreads}")),
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        asm_arch         => 'x86_64',
        perlasm_scheme   => "elf",
        dso_scheme       => "dlfcn",
        shared_target    => "bsd-gcc-shared",
        shared_cflag     => "-fPIC",
    },
    "darwin64-debug-test-64-clang" => {
        inherit_from     => [ 'BASE_unix', "x86_64_asm" ],
        cc               => "clang",
        cflags           => combine("-arch x86_64 -DL_ENDIAN",
                                    join(' ', @gcc_devteam_warn),
                                    "-Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_UNUSED -g3 -O3 -pipe",
                                    threads("${BSDthreads}")),
        sys_id           => "MACOSX",
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        asm_arch         => 'x86_64',
        perlasm_scheme   => "macosx",
        dso_scheme       => "dlfcn",
        shared_target    => "darwin-shared",
        shared_cflag     => "-fPIC -fno-common",
        shared_ldflag    => "-arch x86_64 -dynamiclib",
        shared_extension => ".\$(SHLIB_VERSION_NUMBER).dylib",
    },
);
