1 #############################################################
5 #############################################################
8 OPENSSL_VERSION
:=0.9.8h
9 OPENSSL_SITE
:=http
://www.openssl.org
/source
10 OPENSSL_SOURCE
:=openssl-
$(OPENSSL_VERSION
).
tar.gz
12 OPENSSL_DIR
:=$(BUILD_DIR
)/openssl-
$(OPENSSL_VERSION
)
14 #Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [enable-montasm] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]
19 OPENSSL_TARGET_ARCH
:=i386-
$(ARCH
)
20 OPENSSL_TARGET_ARCH
:=generic32
23 OPENSSL_TARGET_ARCH
:=i386-i686
/cmov
24 OPENSSL_TARGET_ARCH
:=elf
29 OPENSSL_TARGET_ARCH
:=linux-alpha-gcc
32 ifeq ($(OPENSSL_TARGET_ARCH
),)
33 OPENSSL_TARGET_ARCH
:=$(ARCH
)
36 OPENSSL_CFLAGS
:= -DTERMIO
37 OPENSSL_CFLAGS
+=-DOPENSSL_NO_KRB5
-DOPENSSL_NO_IDEA
-DOPENSSL_NO_MDC2
-DOPENSSL_NO_RC5
38 ifeq ($(BR2_PTHREADS_NONE
),y
)
39 OPENSSL_THREADS
=no-threads
41 OPENSSL_THREADS
=threads
42 OPENSSL_CFLAGS
+=-D_REENTRANT
45 ifeq ($(BR2_ENDIAN
),"BIG")
46 OPENSSL_CFLAGS
+=-DB_ENDIAN
48 OPENSSL_CFLAGS
+=-DL_ENDIAN
50 ifeq ($(BR2_PACKAGE_ZLIB
),y
)
51 OPENSSL_OPTS
+=zlib-dynamic
55 OPENSSL_OPTS
+=no-zlib no-zlib-dynamic
58 $(DL_DIR
)/$(OPENSSL_SOURCE
):
59 $(WGET
) -P
$(DL_DIR
) $(OPENSSL_SITE
)/$(OPENSSL_SOURCE
)
61 openssl-unpack
: $(OPENSSL_DIR
)/.unpacked
62 $(OPENSSL_DIR
)/.unpacked
: $(DL_DIR
)/$(OPENSSL_SOURCE
)
63 $(OPENSSL_CAT
) $(DL_DIR
)/$(OPENSSL_SOURCE
) |
tar -C
$(BUILD_DIR
) $(TAR_OPTIONS
) -
64 toolchain
/patch-kernel.sh
$(OPENSSL_DIR
) package
/openssl
/ openssl-
$(OPENSSL_VERSION
)\
*.patch
65 # sigh... hit perl script with a clue bait
66 # grumble.. and of course make sure to escape any '/' in CFLAGS
67 $(SED
) 's,/CFLAG=,/CFLAG= $(TARGET_SOFT_FLOAT) ,g' \
68 $(OPENSSL_DIR
)/Configure
69 $(SED
) '/CFLAG=/s,/;, $(shell echo '$(TARGET_CFLAGS
) $(OPENSSL_CFLAGS
)' | sed -e 's
/\
//\\\\\
//g
')/;,' \
70 $(OPENSSL_DIR
)/Configure
71 $(SED
) '/linux-uclibc/s,gcc:,$(TARGET_CC) $(TARGET_CFLAGS):,' \
72 -e
'/linux-uclibc/s,:ranlib:,:$(TARGET_RANLIB):,' \
73 -e
'/linux-uclibc/s,:-ldl:,:$(TARGET_LDFLAGS) -ldl $(OPENSSL_EXT_LIBS):,' \
74 $(OPENSSL_DIR
)/Configure
77 $(OPENSSL_DIR
)/Makefile
: $(OPENSSL_DIR
)/.unpacked
79 CFLAGS
="$(TARGET_CFLAGS) $(OPENSSL_CFLAGS)" \
80 RANLIB
="$(TARGET_RANLIB)" \
82 .
/Configure linux-uclibc
--prefix=/ --openssldir
=/lib
/ssl \
83 -L
$(STAGING_DIR
)/usr
/lib
-ldl \
84 -I
$(STAGING_DIR
)/usr
/include \
87 shared no-idea no-mdc2 no-rc5
)
89 $(OPENSSL_DIR
)/apps
/openssl
: $(OPENSSL_DIR
)/Makefile
90 $(MAKE1
) -C
$(OPENSSL_DIR
) all build-shared
91 # Work around openssl build bug to link libssl.so with libcrypto.so.
92 -rm $(OPENSSL_DIR
)/libssl.so.
*.
*.
*
93 $(MAKE1
) -C
$(OPENSSL_DIR
) do_linux-shared
95 $(STAGING_DIR
)/usr
/lib
/libcrypto.a
: $(OPENSSL_DIR
)/apps
/openssl
96 $(MAKE1
) INSTALL_PREFIX
="$(STAGING_DIR)/usr" \
97 INSTALLTOP
=/ ENGINESDIR
=/lib
/ssl
/engines \
98 -C
$(OPENSSL_DIR
) install
99 cp
-dpf
$(OPENSSL_DIR
)/libcrypto.so
* $(STAGING_DIR
)/usr
/lib
/
100 chmod a-x
$(STAGING_DIR
)/usr
/lib
/libcrypto.so
.0.9.8
101 (cd
$(STAGING_DIR
)/usr
/lib
; \
102 ln
-fs libcrypto.so
.0.9.8 libcrypto.so
; \
103 ln
-fs libcrypto.so
.0.9.8 libcrypto.so
.0; \
105 cp
-dpf
$(OPENSSL_DIR
)/libssl.so
* $(STAGING_DIR
)/usr
/lib
/
106 chmod a-x
$(STAGING_DIR
)/usr
/lib
/libssl.so
.0.9.8
107 (cd
$(STAGING_DIR
)/usr
/lib
; \
108 ln
-fs libssl.so
.0.9.8 libssl.so
; \
109 ln
-fs libssl.so
.0.9.8 libssl.so
.0; \
113 $(TARGET_DIR
)/usr
/lib
/libcrypto.so
.0.9.8: $(STAGING_DIR
)/usr
/lib
/libcrypto.a
115 $(INSTALL
) -m
0755 -t
$(@D
) $(STAGING_DIR
)/usr
/lib
/libcrypto.so
*
116 $(INSTALL
) -m
0755 -t
$(@D
) $(STAGING_DIR
)/usr
/lib
/libssl.so
*
117 #cp -fa $(STAGING_DIR)/bin/openssl $(TARGET_DIR)/bin/
118 -$(STRIPCMD
) $(STRIP_STRIP_UNNEEDED
) $(TARGET_DIR
)/usr
/lib
/libssl.so
.0.9.8
119 -$(STRIPCMD
) $(STRIP_STRIP_UNNEEDED
) $(TARGET_DIR
)/usr
/lib
/libcrypto.so
.0.9.8
121 $(TARGET_DIR
)/usr
/lib
/libssl.a
: $(STAGING_DIR
)/usr
/lib
/libcrypto.a
122 ifneq ($(BR2_HAVE_HEADERS
),y
)
123 $(INSTALL
) -d
$(TARGET_DIR
)/usr
/include
124 cp
-rpfR
$(STAGING_DIR
)/usr
/include/openssl
$(TARGET_DIR
)/usr
/include/
126 $(INSTALL
) -D
-m
0644 $(STAGING_DIR
)/usr
/lib
/libssl.a
$@
127 $(INSTALL
) -m
0644 $(STAGING_DIR
)/usr
/lib
/libcrypto.a
$(TARGET_DIR
)/usr
/lib
/libcrypto.a
130 openssl-headers
: $(TARGET_DIR
)/usr
/lib
/libssl.a
132 openssl
: uclibc
$(OPENSSL_PREREQ
) $(TARGET_DIR
)/usr
/lib
/libcrypto.so
.0.9.8
134 openssl-source
: $(DL_DIR
)/$(OPENSSL_SOURCE
)
137 -$(MAKE
) -C
$(OPENSSL_DIR
) clean
138 rm -f
$(STAGING_DIR
)/usr
/bin
/openssl
$(TARGET_DIR
)/usr
/bin
/openssl
139 rm -f
$(STAGING_DIR
)/usr
/lib
/libcrypto.
* $(TARGET_DIR
)/usr
/lib
/libcrypto.
*
140 rm -f
$(STAGING_DIR
)/usr
/lib
/libssl.
* $(TARGET_DIR
)/usr
/lib
/libssl.
*
141 rm -rf
$(STAGING_DIR
)/usr
/include/openssl
$(TARGET_DIR
)/usr
/include/openssl
142 rm -rf
$(STAGING_DIR
)/usr
/lib
/ssl
$(TARGET_DIR
)/usr
/lib
/ssl
143 rm -f
$(STAGING_DIR
)/usr
/lib
/pkgconfig
/libssl.
pc \
144 $(STAGING_DIR
)/usr
/lib
/pkgconfig
/openssl.
pc \
145 $(STAGING_DIR
)/usr
/lib
/pkgconfig
/libcrypto.
pc
146 rm -f
$(TARGET_DIR
)/usr
/lib
/pkgconfig
/libssl.
pc \
147 $(TARGET_DIR
)/usr
/lib
/pkgconfig
/openssl.
pc \
148 $(TARGET_DIR
)/usr
/lib
/pkgconfig
/libcrypto.
pc \
149 $(TARGET_DIR
)/usr
/include/openssl
152 rm -rf
$(OPENSSL_DIR
)
153 #############################################################
155 # Toplevel Makefile options
157 #############################################################
158 ifeq ($(BR2_PACKAGE_OPENSSL
),y
)
161 ifeq ($(BR2_PACKAGE_OPENSSL_TARGET_HEADERS
),y
)
162 TARGETS
+=openssl-headers