📄 configure
字号:
elsif ($dso_scheme eq "DLFCN_NO_H") { $dso_cflags = "-DDSO_DLFCN"; } else { $dso_cflags = "-DDSO_$dso_scheme"; } $cflags = "$dso_cflags $cflags"; }my $thread_cflags;my $thread_defines;if ($thread_cflag ne "(unknown)" && !$no_threads) { # If we know how to do it, support threads by default. $threads = 1; }if ($thread_cflag eq "(unknown)" && $threads) { # If the user asked for "threads", [s]he is also expected to # provide any system-dependent compiler options that are # necessary. if ($no_user_cflags) { print "You asked for multi-threading support, but didn't\n"; print "provide any system-specific compiler options\n"; exit(1); } $thread_cflags="-DOPENSSL_THREADS $cflags" ; $thread_defines .= "#define OPENSSL_THREADS\n"; }else { $thread_cflags="-DOPENSSL_THREADS $thread_cflag $cflags"; $thread_defines .= "#define OPENSSL_THREADS\n";# my $def;# foreach $def (split ' ',$thread_cflag)# {# if ($def =~ s/^-D// && $def !~ /^_/)# {# $thread_defines .= "#define $def\n";# }# } } $lflags="$libs$lflags" if ($libs ne "");if ($no_asm) { $cpuid_obj=$bn_obj=$des_obj=$aes_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj=""; $sha1_obj=$md5_obj=$rmd160_obj=""; }if (!$no_shared) { $cast_obj=""; # CAST assembler is not PIC }if ($threads) { $cflags=$thread_cflags; $openssl_thread_defines .= $thread_defines; }if ($zlib) { $cflags = "-DZLIB $cflags"; if (defined($disabled{"zlib-dynamic"})) { $lflags = "$lflags -lz"; } else { $cflags = "-DZLIB_SHARED $cflags"; } }# You will find shlib_mark1 and shlib_mark2 explained in Makefile.orgmy $shared_mark = "";if ($shared_target eq "") { $no_shared_warn = 1 if !$no_shared; $no_shared = 1; }if (!$no_shared) { if ($shared_cflag ne "") { $cflags = "$shared_cflag -DOPENSSL_PIC $cflags"; } }if ($no_shared) { $openssl_other_defines.="#define OPENSSL_NO_DYNAMIC_ENGINE\n"; }else { $openssl_other_defines.="#define OPENSSL_NO_STATIC_ENGINE\n"; }$cpuid_obj.=" uplink.o uplink-cof.o" if ($cflags =~ /\-DOPENSSL_USE_APPLINK/);# Compiler fix-upsif ($target =~ /icc$/) { my($iccver)=`$cc -V 2>&1`; if ($iccver =~ /Version ([0-9]+)\./) { $iccver=$1; } else { $iccver=0; } if ($iccver>=8) { # Eliminate unnecessary dependency from libirc.a. This is # essential for shared library support, as otherwise # apps/openssl can end up in endless loop upon startup... $cflags.=" -Dmemcpy=__builtin_memcpy -Dmemset=__builtin_memset"; } }if ($sys_id ne "") { #$cflags="-DOPENSSL_SYSNAME_$sys_id $cflags"; $openssl_sys_defines="#define OPENSSL_SYSNAME_$sys_id\n"; }if ($ranlib eq "") { $ranlib = $default_ranlib; }#my ($bn1)=split(/\s+/,$bn_obj);#$bn1 = "" unless defined $bn1;#$bn1=$bn_asm unless ($bn1 =~ /\.o$/);#$bn_obj="$bn1";$cpuid_obj="" if ($processor eq "386");$bn_obj = $bn_asm unless $bn_obj ne "";# bn86* is the only one implementing bn_*_part_words$cflags.=" -DOPENSSL_BN_ASM_PART_WORDS" if ($bn_obj =~ /bn86/);$cflags.=" -DOPENSSL_IA32_SSE2" if (!$no_sse2 && $bn_obj =~ /bn86/);$des_obj=$des_enc unless ($des_obj =~ /\.o$/);$bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);$cast_obj=$cast_enc unless ($cast_obj =~ /\.o$/);$rc4_obj=$rc4_enc unless ($rc4_obj =~ /\.o$/);$rc5_obj=$rc5_enc unless ($rc5_obj =~ /\.o$/);if ($sha1_obj =~ /\.o$/) {# $sha1_obj=$sha1_enc; $cflags.=" -DSHA1_ASM" if ($sha1_obj =~ /sx86/ || $sha1_obj =~ /sha1/); $cflags.=" -DSHA256_ASM" if ($sha1_obj =~ /sha256/); $cflags.=" -DSHA512_ASM" if ($sha1_obj =~ /sha512/); if ($sha1_obj =~ /x86/) { if ($no_sse2) { $sha1_obj =~ s/\S*sse2\S+//; } elsif ($cflags !~ /OPENSSL_IA32_SSE2/) { $cflags.=" -DOPENSSL_IA32_SSE2"; } } }if ($md5_obj =~ /\.o$/) {# $md5_obj=$md5_enc; $cflags.=" -DMD5_ASM"; }if ($rmd160_obj =~ /\.o$/) {# $rmd160_obj=$rmd160_enc; $cflags.=" -DRMD160_ASM"; }if ($aes_obj =~ /\.o$/) { $cflags.=" -DAES_ASM"; }else { $aes_obj=$aes_enc; }# "Stringify" the C flags string. This permits it to be made part of a string# and works as well on command lines.$cflags =~ s/([\\\"])/\\\1/g;my $version = "unknown";my $version_num = "unknown";my $major = "unknown";my $minor = "unknown";my $shlib_version_number = "unknown";my $shlib_version_history = "unknown";my $shlib_major = "unknown";my $shlib_minor = "unknown";open(IN,'<crypto/opensslv.h') || die "unable to read opensslv.h:$!\n";while (<IN>) { $version=$1 if /OPENSSL.VERSION.TEXT.*OpenSSL (\S+) /; $version_num=$1 if /OPENSSL.VERSION.NUMBER.*0x(\S+)/; $shlib_version_number=$1 if /SHLIB_VERSION_NUMBER *"([^"]+)"/; $shlib_version_history=$1 if /SHLIB_VERSION_HISTORY *"([^"]*)"/; }close(IN);if ($shlib_version_history ne "") { $shlib_version_history .= ":"; }if ($version =~ /(^[0-9]*)\.([0-9\.]*)/) { $major=$1; $minor=$2; }if ($shlib_version_number =~ /(^[0-9]*)\.([0-9\.]*)/) { $shlib_major=$1; $shlib_minor=$2; }open(IN,'<Makefile.org') || die "unable to read Makefile.org:$!\n";unlink("$Makefile.new") || die "unable to remove old $Makefile.new:$!\n" if -e "$Makefile.new";open(OUT,">$Makefile.new") || die "unable to create $Makefile.new:$!\n";print OUT "### Generated automatically from Makefile.org by Configure.\n\n";my $sdirs=0;while (<IN>) { chop; $sdirs = 1 if /^SDIRS=/; if ($sdirs) { my $dir; foreach $dir (@skip) { s/([ ])$dir /\1/; } } $sdirs = 0 unless /\\$/; s/^VERSION=.*/VERSION=$version/; s/^MAJOR=.*/MAJOR=$major/; s/^MINOR=.*/MINOR=$minor/; s/^SHLIB_VERSION_NUMBER=.*/SHLIB_VERSION_NUMBER=$shlib_version_number/; s/^SHLIB_VERSION_HISTORY=.*/SHLIB_VERSION_HISTORY=$shlib_version_history/; s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$shlib_major/; s/^SHLIB_MINOR=.*/SHLIB_MINOR=$shlib_minor/; s/^SHLIB_EXT=.*/SHLIB_EXT=$shared_extension/; s/^INSTALLTOP=.*$/INSTALLTOP=$prefix/; s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/; s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/; s/^PLATFORM=.*$/PLATFORM=$target/; s/^OPTIONS=.*$/OPTIONS=$options/; s/^CONFIGURE_ARGS=.*$/CONFIGURE_ARGS=$argvstring/; s/^CC=.*$/CC= $cc/; s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc"; s/^CFLAG=.*$/CFLAG= $cflags/; s/^DEPFLAG=.*$/DEPFLAG= $depflags/; s/^EX_LIBS=.*$/EX_LIBS= $lflags/; s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/; s/^CPUID_OBJ=.*$/CPUID_OBJ= $cpuid_obj/; s/^BN_ASM=.*$/BN_ASM= $bn_obj/; s/^DES_ENC=.*$/DES_ENC= $des_obj/; s/^AES_ASM_OBJ=.*$/AES_ASM_OBJ= $aes_obj/; s/^BF_ENC=.*$/BF_ENC= $bf_obj/; s/^CAST_ENC=.*$/CAST_ENC= $cast_obj/; s/^RC4_ENC=.*$/RC4_ENC= $rc4_obj/; s/^RC5_ENC=.*$/RC5_ENC= $rc5_obj/; s/^MD5_ASM_OBJ=.*$/MD5_ASM_OBJ= $md5_ob
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -