source: trunk/package/openssl/Makefile @ 12511

Last change on this file since 12511 was 12511, checked in by nbd, 8 years ago

change the an openssl sed command to be safe for -Wl,-rpath-link in ldflags

  • Property svn:copyright set to Copyright (C) 2006 OpenWrt.org
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.0 KB
Line 
1#
2# Copyright (C) 2006 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7# $Id$
8
9include $(TOPDIR)/rules.mk
10
11PKG_NAME:=openssl
12PKG_VERSION:=0.9.8h
13PKG_RELEASE:=1
14
15PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
16PKG_SOURCE_URL:=http://www.openssl.org/source/ \
17        ftp://ftp.funet.fi/pub/crypt/cryptography/libs/openssl/source/ \
18        ftp://ftp.webmonster.de/pub/openssl/source/ \
19        ftp://ftp.sunet.se/pub/security/tools/net/openssl/source/
20PKG_MD5SUM:=7d3d41dafc76cf2fcb5559963b5783b3
21
22include $(INCLUDE_DIR)/package.mk
23
24define Package/openssl/Default
25  TITLE:=Open source SSL toolkit
26  URL:=http://www.openssl.org/
27endef
28
29define Package/openssl/Default/description
30 The OpenSSL Project is a collaborative effort to develop a robust,
31 commercial-grade, full-featured, and Open Source toolkit implementing the
32 Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) 
33 protocols as well as a full-strength general purpose cryptography library.
34endef
35
36define Package/libopenssl
37$(call Package/openssl/Default)
38  SECTION:=libs
39  CATEGORY:=Libraries
40  DEPENDS:=+zlib
41  TITLE+= (libraries)
42endef
43
44define Package/libopenssl/description
45$(call Package/openssl/Default/description)
46 This package contains the OpenSSL shared libraries, needed by other
47 programs.
48endef
49
50define Package/openssl-util
51  $(call Package/openssl/Default)
52  SECTION:=utils
53  CATEGORY:=Utilities
54  DEPENDS:=+libopenssl
55  TITLE+= (utility)
56endef
57
58define Package/openssl-util/conffiles
59/etc/ssl/openssl.cnf
60endef
61
62define Package/openssl-util/description
63$(call Package/openssl/Default/description)
64 This package contains the OpenSSL command-line utility.
65endef
66
67
68OPENSSL_NO_CIPHERS:= no-idea no-md2 no-mdc2 no-rc2 no-rc5 no-sha0 no-smime \
69                                        no-rmd160 no-aes192 no-ripemd no-camellia no-ans1 no-krb5
70ifeq ($(BOARD),ixp4xx)
71OPENSSL_OPTIONS:= shared no-ec no-err no-fips no-hw no-threads zlib-dynamic \
72                                        no-sse2 no-perlasm --with-cryptodev
73else
74OPENSSL_OPTIONS:= shared no-ec no-err no-fips no-hw no-threads zlib-dynamic \
75                                        no-engines no-sse2 no-perlasm
76endif
77
78
79define Build/Configure
80        (cd $(PKG_BUILD_DIR); \
81                ./Configure linux-openwrt \
82                        --prefix=/usr \
83                        --openssldir=/etc/ssl \
84                        $(TARGET_CPPFLAGS) \
85                        $(TARGET_LDFLAGS) -ldl \
86                        -DOPENSSL_SMALL_FOOTPRINT \
87                        $(OPENSSL_NO_CIPHERS) \
88                        $(OPENSSL_OPTIONS) \
89        )
90endef
91
92TARGET_CFLAGS += $(FPIC)
93
94define Build/Compile
95        rm -rf $(PKG_INSTALL_DIR)
96        mkdir -p $(PKG_INSTALL_DIR)
97        $(MAKE) -C $(PKG_BUILD_DIR) \
98                MAKEDEPPROG="$(TARGET_CROSS)gcc" \
99                OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \
100                depend
101        $(MAKE) -C $(PKG_BUILD_DIR) \
102                CC="$(TARGET_CC)" \
103                AR="$(TARGET_CROSS)ar r" \
104                RANLIB="$(TARGET_CROSS)ranlib" \
105                OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \
106                all build-shared
107        # Work around openssl build bug to link libssl.so with libcrypto.so.
108        -rm $(PKG_BUILD_DIR)/libssl.so.*.*.*
109        $(MAKE) -C $(PKG_BUILD_DIR) \
110                CC="$(TARGET_CC)" \
111                OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \
112                do_linux-shared
113        $(MAKE) -C $(PKG_BUILD_DIR) \
114                INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
115                install
116endef
117
118define Build/InstallDev
119        mkdir -p $(1)/usr/include
120        $(CP) $(PKG_INSTALL_DIR)/usr/include/openssl $(1)/usr/include/
121        mkdir -p $(1)/usr/lib/
122        $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{crypto,ssl}.{a,so*} $(1)/usr/lib/
123        mkdir -p $(1)/usr/lib/pkgconfig
124        $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/{openssl,libcrypto,libssl}.pc $(1)/usr/lib/pkgconfig/
125        $(SED) 's#$(TARGET_LDFLAGS)##g' $(1)/usr/lib/pkgconfig/{openssl,libcrypto,libssl}.pc
126endef
127
128define Package/libopenssl/install
129        $(INSTALL_DIR) $(1)/usr/lib
130        $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{crypto,ssl}.so.* $(1)/usr/lib/
131        chmod 0644 $(1)/usr/lib/*
132endef
133
134define Package/openssl-util/install
135        $(INSTALL_DIR) $(1)/etc/ssl
136        $(CP) $(PKG_INSTALL_DIR)/etc/ssl/openssl.cnf $(1)/etc/ssl/
137        $(INSTALL_DIR) $(1)/etc/ssl/certs
138        $(INSTALL_DIR) $(1)/etc/ssl/private
139        chmod 0700 $(1)/etc/ssl/private
140        $(INSTALL_DIR) $(1)/usr/bin
141        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/openssl $(1)/usr/bin/
142endef
143
144$(eval $(call BuildPackage,libopenssl))
145$(eval $(call BuildPackage,openssl-util))
Note: See TracBrowser for help on using the repository browser.