Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
176a6148
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
12 个月 前同步成功
通知
8
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,发现更多精彩内容 >>
提交
176a6148
编写于
11月 06, 2005
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
First draft for WCE PortSDK support. Once again! It's *draft* which requires
more work, i.e. more modifications are due...
上级
f858d222
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
62 addition
and
33 deletion
+62
-33
INSTALL.WCE
INSTALL.WCE
+50
-29
e_os.h
e_os.h
+3
-1
util/pl/VC-32.pl
util/pl/VC-32.pl
+9
-3
未找到文件。
INSTALL.WCE
浏览文件 @
176a6148
...
...
@@ -4,27 +4,36 @@
Building OpenSSL for Windows CE requires the following external tools:
* Microsoft eMbedded Visual C++ 3.0
* wcecompat compatibility library (www.essemer.com.au)
* Optionally ceutils for running automated tests (www.essemer.com.au)
You also need Perl for Win32. You will need ActiveState Perl, available
from http://www.activestate.com/ActivePerl.
Windows CE support in OpenSSL relies on wcecompat and therefore it's
appropriate to check http://www.essemer.com.au/windowsce/ for updates in
case of compilation problems. As for the moment of this writing version
1.1 is available and actually required for WCE 4.2 and newer platforms.
All Windows CE specific issues should be directed to www.essemer.com.au.
The C Runtime Library implementation for Windows CE that is included with
Microsoft eMbedded Visual C++ 3.0 is incomplete and in some places
incorrect. wcecompat plugs the holes and tries to bring the Windows CE
CRT to a level that is more compatible with ANSI C. wcecompat goes further
and provides low-level IO and stream IO support for stdin/stdout/stderr
(which Windows CE does not provide). This IO functionality is not needed
by the OpenSSL library itself but is used for the tests and openssl.exe.
More information is available at www.essemer.com.au.
* Microsoft eMbedded Visual C++ 3.0 or later
* Appropriate SDK might be required
* Perl for Win32 [commonly recommended ActiveState Perl is available
from http://www.activestate.com/Products/ActivePerl/]
* wcecompat compatibility library available at
http://www.essemer.com.au/windowsce/
* Optionally ceutils for running automated tests (same location)
_or_
* PocketConsole driver and PortSDK available at
http://www.symbolictools.de/public/pocketconsole/
* CMD command interpreter (same location)
As Windows CE support in OpenSSL relies on 3rd party compatibility
library, it's appropriate to check corresponding URL for updates. For
example if you choose wcecompat, note that as for the moment of this
writing version 1.2 is available and actually required for WCE 4.2
and newer platforms. All wcecompat issues should be directed to
www.essemer.com.au.
Why compatibility library at all? The C Runtime Library implementation
for Windows CE that is included with Microsoft eMbedded Visual C++ is
incomplete and in some places incorrect. Compatibility library plugs
the holes and tries to bring the Windows CE CRT to [more] usable level.
Most gaping hole in CRT is support for stdin/stdout/stderr IO, which
proposed compatibility libraries solve in two different ways: wcecompat
redirects IO to active sync link, while PortSDK - to NT-like console
driver on the handheld itself.
Building
--------
...
...
@@ -34,9 +43,21 @@
> "C:\Program Files\Microsoft eMbedded Tools\EVC\WCE300\BIN\WCEARM.BAT"
Next
indicate where wcecompat is located:
Next
pick compatibility library according to your preferences.
> set WCECOMPAT=C:\wcecompat
1. To choose wcecompat set up WCECOMPAT environment variable pointing
at the location of wcecompat tree "root":
> set WCECOMPAT=C:\wcecompat
> set PORTSDK_LIBPATH=
2. To choose PortSDK set up PORTSDK_LIBPATH to point at hardware-
specific location where your portlib.lib is installed:
> set PORTSDK_LIBPATH=C:\PortSDK\lib\ARM
> set WCECOMPAT=
Note that you may not set both variables.
Next you should run Configure:
...
...
@@ -52,16 +73,16 @@
Then from the VC++ environment at a prompt do:
- to build static libraries:
> nmake -f ms\cedll.mak
> nmake -f ms\ce.mak
[note that static builds are not supported under CE]
- or to build DLLs:
If all is well it should compile and you will have some DLLs and executables
in out32dll*.
> nmake -f ms\cedll.mak
<<< everyting below needs revision in respect to wcecompat vs. PortSDK >>>
If all is well it should compile and you will have some static libraries and
executables in out32, or some DLLs and executables in out32dll. If you want
If you want
to try the tests then make sure the ceutils are in the path and do:
> cd out32
...
...
e_os.h
浏览文件 @
176a6148
...
...
@@ -283,7 +283,9 @@ static unsigned int _strlen31(const char *str)
# ifdef OPENSSL_SYS_WINCE
# define OPENSSL_NO_POSIX_IO
# include <winsock_extras.h>
# if defined(_WIN32_WCE) && _WIN32_WCE<410
# include <winsock_extras.h>
# endif
# endif
# define ssize_t long
...
...
util/pl/VC-32.pl
浏览文件 @
176a6148
...
...
@@ -79,8 +79,10 @@ elsif ($FLAVOR =~ /CE/)
}
$cc
=
'
$(CC)
';
$base_cflags
=
'
/W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -
I$(WCECOMPAT)/include -
DOPENSSL_SMALL_FOOTPRINT
';
$base_cflags
=
'
/W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT
';
$base_cflags
.=
"
$wcecdefs
";
$base_cflags
.=
'
$(WCECOMPAT)/include
'
if
(
defined
(
$ENV
{'
WCECOMPAT
'}));
$base_cflags
.=
'
$(PORTSDK_LIBPATH)/../../include
'
if
(
defined
(
$ENV
{'
PORTSDK_LIBPATH
'}));
$opt_cflags
=
'
/MC /O1i
';
# optimize for space, but with intrinsics...
$dbg_clfags
=
'
/MC /Od -DDEBUG -D_DEBUG
';
$lflags
=
"
/nologo /opt:ref
$wcelflag
";
...
...
@@ -124,7 +126,8 @@ else { $ex_libs='wsock32.lib'; }
if
(
$FLAVOR
=~
/CE/
)
{
$ex_libs
.=
'
$(WCECOMPAT)/lib/wcecompatex.lib
';
$ex_libs
.=
'
$(WCECOMPAT)/lib/wcecompatex.lib
'
if
(
defined
(
$ENV
{'
WCECOMPAT
'}));
$ex_libs
.=
'
$(PORTSDK_LIBPATH)/portlib.lib
'
if
(
defined
(
$ENV
{'
PORTSDK_LIBPATH
'}));
$ex_libs
.=
'
/nodefaultlib:oldnames.lib coredll.lib corelibc.lib
'
if
(
$ENV
{'
TARGETCPU
'}
eq
"
X86
");
}
else
...
...
@@ -225,6 +228,7 @@ ___
elsif
(
$shlib
&&
$FLAVOR
=~
/CE/
)
{
$mlflags
.=
"
$lflags
/dll
";
$lflags
.=
'
/entry:mainCRTstartup
'
if
(
defined
(
$ENV
{'
PORTSDK_LIBPATH
'}));
$lib_cflag
=
"
-D_WINDLL -D_DLL
";
$out_def
=
'
out32dll_$(TARGETCPU)
';
$tmp_def
=
'
tmp32dll_$(TARGETCPU)
';
...
...
@@ -259,7 +263,9 @@ sub do_lib_rule
{}
elsif
(
$FLAVOR
=~
/CE/
)
{
$ex
.=
'
winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib
';
$ex
.=
'
winsock.lib
';
$ex
.=
'
$(WCECOMPAT)/lib/wcecompatex.lib
'
if
(
defined
(
$ENV
{'
WCECOMPAT
'}));
$ex
.=
'
$(PORTSDK_LIBPATH)/portlib.lib
'
if
(
defined
(
$ENV
{'
PORTSDK_LIBPATH
'}));
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录