rename to version specific patch
[buildroot.git] / package / openssl / openssl.mk
blobe539973211411a0e46181ab6e926a12f9fd8851e
1 #############################################################
3 # openssl
5 #############################################################
7 # TARGETS
8 OPENSSL_VERSION:=0.9.7m
9 OPENSSL_SITE:=http://www.openssl.org/source
10 OPENSSL_SOURCE:=openssl-$(OPENSSL_VERSION).tar.gz
11 OPENSSL_CAT:=$(ZCAT)
12 OPENSSL_DIR:=$(BUILD_DIR)/openssl-$(OPENSSL_VERSION)
14 OPENSSL_TARGET_ARCH:=
15 ifeq ($(BR2_i386),y)
16 ifneq ($(ARCH),i386)
17 OPENSSL_TARGET_ARCH:=i386-$(ARCH)
18 endif
19 ifeq ($(ARCH),i686)
20 OPENSSL_TARGET_ARCH:=i386-i686/cmov
21 endif
22 endif
23 ifeq ($(OPENSSL_TARGET_ARCH),)
24 OPENSSL_TARGET_ARCH:=$(ARCH)
25 endif
27 $(DL_DIR)/$(OPENSSL_SOURCE):
28 $(WGET) -P $(DL_DIR) $(OPENSSL_SITE)/$(OPENSSL_SOURCE)
30 openssl-unpack: $(OPENSSL_DIR)/.unpacked
31 $(OPENSSL_DIR)/.unpacked: $(DL_DIR)/$(OPENSSL_SOURCE)
32 $(OPENSSL_CAT) $(DL_DIR)/$(OPENSSL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
33 toolchain/patch-kernel.sh $(OPENSSL_DIR) package/openssl/ openssl-$(OPENSSL_VERSION)\*.patch
34 # sigh... we have to resort to this just to set a gcc flag.
35 # grumble.. and of course make sure to escape any '/' in CFLAGS
36 $(SED) 's,/CFLAG=,/CFLAG= $(TARGET_SOFT_FLOAT) ,g' \
37 $(OPENSSL_DIR)/Configure
38 $(SED) '/CFLAG=/s,/;, $(shell echo '$(TARGET_CFLAGS)' | sed -e 's/\//\\\\\//g')/;,' \
39 $(OPENSSL_DIR)/Configure
40 touch $@
42 $(OPENSSL_DIR)/Makefile: $(OPENSSL_DIR)/.unpacked
43 (cd $(OPENSSL_DIR); \
44 CFLAGS="-DOPENSSL_NO_KRB5 -DOPENSSL_NO_IDEA -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 $(TARGET_CFLAGS)" \
45 PATH=$(TARGET_PATH) \
46 ./Configure linux-$(OPENSSL_TARGET_ARCH) --prefix=/ \
47 --openssldir=/lib/ssl -L$(STAGING_DIR)/lib -ldl \
48 -I$(STAGING_DIR)/usr/include $(OPENSSL_OPTS) threads \
49 shared no-idea no-mdc2 no-rc5)
51 # --openssldir=/usr/lib/ssl results in files in /usr/usr/lib...
53 $(OPENSSL_DIR)/apps/openssl: $(OPENSSL_DIR)/Makefile
54 $(MAKE1) CC=$(TARGET_CC) -C $(OPENSSL_DIR) all build-shared
55 # Work around openssl build bug to link libssl.so with libcrypto.so.
56 -rm $(OPENSSL_DIR)/libssl.so.*.*.*
57 $(MAKE1) CC=$(TARGET_CC) -C $(OPENSSL_DIR) do_linux-shared
59 $(STAGING_DIR)/usr/lib/libcrypto.a: $(OPENSSL_DIR)/apps/openssl
60 $(MAKE) CC=$(TARGET_CC) INSTALL_PREFIX=$(STAGING_DIR)/usr -C $(OPENSSL_DIR) install
61 cp -fa $(OPENSSL_DIR)/libcrypto.so* $(STAGING_DIR)/usr/lib/
62 chmod a-x $(STAGING_DIR)/usr/lib/libcrypto.so.0.9.7
63 (cd $(STAGING_DIR)/usr/lib; \
64 ln -fs libcrypto.so.0.9.7 libcrypto.so; \
65 ln -fs libcrypto.so.0.9.7 libcrypto.so.0; \
67 cp -fa $(OPENSSL_DIR)/libssl.so* $(STAGING_DIR)/usr/lib/
68 chmod a-x $(STAGING_DIR)/usr/lib/libssl.so.0.9.7
69 (cd $(STAGING_DIR)/usr/lib; \
70 ln -fs libssl.so.0.9.7 libssl.so; \
71 ln -fs libssl.so.0.9.7 libssl.so.0; \
73 touch -c $@
75 $(TARGET_DIR)/usr/lib/libcrypto.so.0.9.7: $(STAGING_DIR)/usr/lib/libcrypto.a
76 mkdir -p $(TARGET_DIR)/usr/lib
77 cp -fa $(STAGING_DIR)/usr/lib/libcrypto.so* $(TARGET_DIR)/usr/lib/
78 cp -fa $(STAGING_DIR)/usr/lib/libssl.so* $(TARGET_DIR)/usr/lib/
79 #cp -fa $(STAGING_DIR)/bin/openssl $(TARGET_DIR)/bin/
80 -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libssl.so.0.9.7
81 -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libcrypto.so.0.9.7
83 $(TARGET_DIR)/usr/lib/libssl.a: $(STAGING_DIR)/usr/lib/libcrypto.a
84 mkdir -p $(TARGET_DIR)/usr/include
85 cp -a $(STAGING_DIR)/usr/include/openssl $(TARGET_DIR)/usr/include/
86 cp -dpf $(STAGING_DIR)/usr/lib/libssl.a $(TARGET_DIR)/usr/lib/
87 cp -dpf $(STAGING_DIR)/usr/lib/libcrypto.a $(TARGET_DIR)/usr/lib/
88 touch -c $@
90 openssl-headers: $(TARGET_DIR)/usr/lib/libssl.a
92 openssl: uclibc $(TARGET_DIR)/usr/lib/libcrypto.so.0.9.7
94 openssl-source: $(DL_DIR)/$(OPENSSL_SOURCE)
96 openssl-clean:
97 -$(MAKE) -C $(OPENSSL_DIR) clean
98 rm -f $(STAGING_DIR)/usr/bin/openssl $(TARGET_DIR)/usr/bin/openssl
99 rm -f $(STAGING_DIR)/usr/lib/libcrypto.so* $(TARGET_DIR)/usr/lib/libcrypto.so*
100 rm -f $(STAGING_DIR)/usr/lib/libssl.so* $(TARGET_DIR)/usr/lib/libssl.so*
101 rm -rf $(STAGING_DIR)/usr/include/openssl $(TARGET_DIR)/usr/include/openssl
103 openssl-dirclean:
104 rm -rf $(OPENSSL_DIR)
105 #############################################################
107 # Toplevel Makefile options
109 #############################################################
110 ifeq ($(BR2_PACKAGE_OPENSSL),y)
111 TARGETS+=openssl
112 endif
113 ifeq ($(BR2_PACKAGE_OPENSSL_TARGET_HEADERS),y)
114 TARGETS+=openssl-headers
115 endif