openssl裁剪

引言

网上关于openssl交叉编译,裁剪的文章很多,但大部分都需要修改Makefile。我写这篇文章只为自己做个笔记,方便以后自己复习。

openssl交叉编译及裁剪

交叉编译openssl的Makefile

SHELL=/bin/bash

CROSS_COMPILE = mipsisa32-elf-
PLATFORM=linux-elf-mips
INST=/works/libopenssl/inst

MY_CFLAG = "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Wno-write-strings -EL -mips32 -msoft-float -O2 -fno-exceptions -G0 -I."

CONFIG_EXTEND="no-shared no-zlib no-asm no-dso no-threads no-comp no-gmp 
no-krb5 no-rc5 no-zlib-dynamic no-hw no-cipher no-cms no-aes no-sse2 no-rfc3779  
no-idea no-md4 no-mdc2 no-ripemd no-cope no-ocsp no-pem no-jpake no-txt_db no-krb5 
no-seed no-store no-camellia no-pqueue no-whrlpool no-modes no-perlasm no-srp no-ts"

romfs:openssl/Makefile
        @pushd openssl;\
            make CC=$(CROSS_COMPILE)gcc AR="$(CROSS_COMPILE)ar r" && make CC=$(CROSS_COMPILE) install ;\
        popd

openssl/Makefile:
        pushd openssl; \
        ./Configure $(PLATFORM) $(CONFIG_EXTEND) --prefix=$(INST) linux:gcc:"$(MY_CFLAG)";\
        popd;

clean:
        @pushd openssl; \
        if [ -f Makefile ]; then \
                make clean; \
        fi; \
        popd; \
        rm -rf openssl/Makefile \
        rm -rf inst/*

注意:在make的时候不能加CFLAGS这个选项,一旦加入就会把openssl自己内部的CFLAGS取代,会引起编译的时候找不到头文件。所以是在configure配置得时候加上的MY_CFLAGS。

本配置只为最简化openssl,只要ecdh算法能用就行。算法的配置可在CONFIG_EXTEND选项中增减。如果只需要静态库,那么apps目录也可以直接删除不要了。但是就这样配置下来x86编译出来的libcrypto.a还是有2.1M,我的交叉编译器编译出来更是有2.5M。对于flash只有1M的人来说:::伤不起啊/(ㄒoㄒ)/~~

对于能力有限的我来说,直接到openssl里提取ecdh算法出来还真是个头疼的事情(各个模块关联太深)。如果哪有更为小的ecdh算法库,还请告知!!thank you,O(∩_∩)O谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值