Add Copy headers support for RTEMS-libbsd
来源:互联网 发布:数据新闻报道方向 编辑:程序博客网 时间:2024/05/16 18:43
在移植OpenSSL库的过程中,碰到了问题:
当我从FreeBSD import 文件并port to RTEMS时,被include的头文件的文件路径和其实际的文件路径不同时,会造成编译错误,因为编译器waf找不到头文件。一个例子就是:the <openssl/opensslv.h>. The source for this file is in freebsd/crypto/openssl/crypto/opensslv.h.
针对这个bug,可以将这种头文件copy to 一个暂时的文件夹中,接下来才就详细描述如何实现:
1. Add a temporary catalog in builder.py
def includes(): return ['-Irtemsbsd/include', + '-Ilibbsd_build/include', '-Ifreebsd/sys', '-Ifreebsd/sys/contrib/pf', '-Ifreebsd/sys/net',
2.Add the copy method in waf_generator.py
## Add a copy rule for all headers where the install path and the source# path are not the same.#self.add(' # copy headers if necessary')headerPaths = builder.headerPaths()self.add(' header_build_copy_paths = [')for hp in headerPaths:if hp[2] != '' and not hp[0].endswith(hp[2]):self.add(' %s,' % (str(hp)))self.add(' ]')self.add(' for headers in header_build_copy_paths:')self.add(' target = os.path.join("libbsd_build/include", headers[2])')self.add(' start_dir = bld.path.find_dir(headers[0])')self.add(' for header in start_dir.ant_glob("**/" + headers[1]):')self.add(' relsourcepath = os.path.relpath(str(header), start=str(start_dir))')self.add(' targetheader = os.path.join(target, relsourcepath)')self.add(' bld(features = \'subst\',')self.add(' target = targetheader,')self.add(' source = header,')self.add(' is_copy = True)')self.add('')
So if the imported files installed into a directory with a different name then it's source directory, then this files will be copied into build/arm-rtems4.12-beagleboneblack/libbsd_build/include folder.
因此如果imported file 的路径和其源文件路径不同时,该文件会被copy至build/arm-rtems4.12-beagleboneblack/libbsd_build/include文件夹下。
阅读全文
0 0
- Add Copy headers support for RTEMS-libbsd
- RTEMS-libbsd实现FDT support for BBB
- Add wpa_supplicant_fork command on RTEMS-libbsd
- 添加OpenSSL库支持for WPA on RTEMS-libbsd
- 添加WEP 加密WiFi支持 for RTEMS-libbsd on BBB BSP
- RTEMS实现FDT support for Beaglebone
- RTEMS USB support for BBB 文档
- RTEMS-libbsd 解决无法使用中断问题
- RTEMS-libbsd 生成驱动设备firmware
- RTEMS-libbsd 实现beaglebone black USB驱动
- Port WPA supplicant to RTEMS-libbsd
- 基于ubuntu的rtems-libbsd编译运行beagleboneblack bsp
- mmc: Add support for SDHC cards
- ARM: S5PC100: Add RTC support for S5PC100
- Liferay 7 CE: How to add support for Oracle DB
- HTTP Headers for Dummies
- firefox add innerText support
- Dockerfile: ADD vs COPY
- 一个游戏是如何被设计和开发出来的
- Python 使用 pylab 库实现画线功能的方法详解
- sql 心得(一)
- 简单辨析:循环、递归、迭代、遍历
- 2017/8/7-2017/8/13 周结
- Add Copy headers support for RTEMS-libbsd
- 【广告项目】换行符</br>和/n区别
- poj 2536小问题而已。
- Django 图片 头像 文件 上传 展示
- 构造动态数组
- Opengl学习之模型加载——Assimp
- 我理解的设计模式之观察者模模式
- Android Xutils和Xutils3的基本使用
- C++左值右值和移动语义