Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
f5c174ff
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
大约 1 年 前同步成功
通知
9
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f5c174ff
编写于
2月 15, 2016
作者:
R
Richard Levitte
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Centralise the shared library / dso name info in unix-Makefile.tmpl
Reviewed-by:
N
Andy Polyakov
<
appro@openssl.org
>
上级
e987f9f2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
51 addition
and
13 deletion
+51
-13
Configurations/unix-Makefile.tmpl
Configurations/unix-Makefile.tmpl
+51
-13
未找到文件。
Configurations/unix-Makefile.tmpl
浏览文件 @
f5c174ff
...
...
@@ -4,6 +4,50 @@
## {- join("\n## ", @autowarntext) -}
{-
sub windowsdll { $config{target} =~ /^(?:Cygwin|mingw)/ }
# shlib and shlib_simple both take a static library name and figure
# out what the shlib name should be.
#
# When OpenSSL is configured "no-shared", these functions will just
# return empty lists, making them suitable to join().
#
# With Windows DLL producers, shlib($libname) will return the shared
# library name (which usually is different from the static library
# name) with the default shared extension appended to it, while
# shlib_simple($libname) will return the static library name with
# the shared extension followed by ".a" appended to it. The former
# result is used as the runtime shared library while the latter is
# used as the DLL import library.
#
# On all Unix systems, shlib($libname) will return the library name
# with the default shared extension, while shlib_simple($libname)
# will return the name from shlib($libname) with any SO version number
# removed. On some systems, they may therefore return the exact same
# string.
sub shlib {
return () if $config{no_shared};
my $lib = shift;
return $unified_info{sharednames}->{$lib} . '$(SHLIB_EXT)';
}
sub shlib_simple {
return () if $config{no_shared};
my $lib = shift;
if (windowsdll()) {
return $lib . '$(SHLIB_EXT_IMPORT)';
}
return $lib . '$(SHLIB_EXT_SIMPLE)';
}
# dso is a complement to shlib / shlib_simple that returns the
# given libname with the simple shared extension (possible SO version
# removed). This differs from shlib_simple() by being unconditional.
sub dso {
return () if $config{no_shared};
my $engine = shift;
return $engine . '$(DSO_EXT)';
}
-}
PLATFORM={- $config{target} -}
OPTIONS={- $config{options} -}
...
...
@@ -30,8 +74,8 @@ OBJ_EXT={- $target{obj_extension} || ".o" -}
DEP_EXT={- $target{dep_extension} || ".d" -}
LIBS={- join(" ", map { $_."\$(LIB_EXT)" } @{$unified_info{libraries}}) -}
SHLIBS={- join(" ", map {
$_."\$(SHLIB_EXT)" } map { $unified_info{sharednames}->{$_} || (
) } @{$unified_info{libraries}}) -}
ENGINES={- join(" ", map {
$_."\$(DSO_EXT)"
} @{$unified_info{engines}}) -}
SHLIBS={- join(" ", map {
shlib($_
) } @{$unified_info{libraries}}) -}
ENGINES={- join(" ", map {
dso($_)
} @{$unified_info{engines}}) -}
PROGRAMS={- join(" ", map { $_."\$(EXE_EXT)" } grep { !m|^test/| } @{$unified_info{programs}}) -}
TESTPROGS={- join(" ", map { $_."\$(EXE_EXT)" } grep { m|^test/| } @{$unified_info{programs}}) -}
SCRIPTS={- join(" ", @{$unified_info{scripts}}) -}
...
...
@@ -736,13 +780,7 @@ configdata.pm: {- $config{build_file_template} -} $(SRCDIR)/Configure $(SRCDIR)/
# Depending on shared libraries:
# On Windows POSIX layers, we depend on {libname}.dll.a
# On Unix platforms, we depend on {shlibname}.so
return map { if (windowsdll()) {
"$_\$(SHLIB_EXT_IMPORT)"
} else {
my $libname =
$unified_info{sharednames}->{$_} || $_;
"$libname\$(SHLIB_EXT_SIMPLE)"
} } @_;
return map { shlib_simple($_) } @_;
}
sub src2obj {
...
...
@@ -788,8 +826,7 @@ EOF
my $deps = join(" ",compute_lib_depends(@{$args{deps}}));
my $shlib_target = $target{shared_target};
my $ordinalsfile = defined($args{ordinals}) ? $args{ordinals}->[1] : "";
my $shlibtarget = windowsdll() ?
"$lib\$(SHLIB_EXT_IMPORT)" : "$shlib\$(SHLIB_EXT_SIMPLE)";
my $target = shlib_simple($lib);
return <<"EOF"
# With a build on a Windows POSIX layer (Cygwin or Mingw), we know for a fact
# that two files get produced, {shlibname}.dll and {libname}.dll.a.
...
...
@@ -798,7 +835,7 @@ EOF
# It's not necessary to have both as targets. The choice falls on the
# simplest, {libname}\$(SHLIB_EXT_IMPORT) for Windows POSIX layers and
# {libname}\$(SHLIB_EXT_SIMPLE) for the Unix platforms.
$
shlibtarget
: $lib\$(LIB_EXT) $deps $ordinalsfile
$
target
: $lib\$(LIB_EXT) $deps $ordinalsfile
\$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
PLATFORM=\$(PLATFORM) \\
PERL=\$(PERL) SRCDIR="\$(SRCDIR)" DSTDIR="$libd" \\
...
...
@@ -832,8 +869,9 @@ EOF
my $deps = join(" ",compute_lib_depends(@{$args{deps}}));
my $shlib_target = $target{shared_target};
my $objs = join(" ", map { $_."\$(OBJ_EXT)" } @{$args{objs}});
my $target = dso($lib);
return <<"EOF";
$
lib\$(DSO_EXT)
: $objs $deps
$
target
: $objs $deps
\$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
PLATFORM=\$(PLATFORM) \\
PERL=\$(PERL) SRCDIR="\$(SRCDIR)" DSTDIR="$libd" \\
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录