genode/libports/ports/openssl.mk
Josef Söntgen ab951175c0 libports: fix openssl issues and update to 1.0.1c
libcrypto provides certain optimized assembler functions which
unfortunatly are non-pic. Therefore this asm code is removed
and libcrypto is build with -DOPENSSL_NO_ASM.
Because the asm code is not needed anymore, its generation is
also removed from openssl.mk.

import-libssl.mk was also added because it is essential for building
programs which depend on libssl.

Fixes #291.
Fixes #294.
2012-07-20 14:43:35 +02:00

59 lines
1.8 KiB
Makefile

OPENSSL_VERSION = 1.0.1c
OPENSSL = openssl-$(OPENSSL_VERSION)
OPENSSL_TGZ = $(OPENSSL).tar.gz
OPENSSL_URL = https://www.openssl.org/source/$(OPENSSL_TGZ)
# local openssl src
OPENSSL_SRC = src/lib/openssl
#
# Interface to top-level prepare Makefile
#
PORTS += $(OPENSSL)
prepare-openssl: $(CONTRIB_DIR)/$(OPENSSL) include/openssl generate_asm
#$(CONTRIB_DIR)/$(OPENSSL):
#
# Port-specific local rules
#
$(DOWNLOAD_DIR)/$(OPENSSL_TGZ):
$(VERBOSE)wget -c -P $(DOWNLOAD_DIR) $(OPENSSL_URL) && touch $@
$(CONTRIB_DIR)/$(OPENSSL): $(DOWNLOAD_DIR)/$(OPENSSL_TGZ)
$(VERBOSE)tar xfz $< -C $(CONTRIB_DIR) && touch $@
#
# Generate ASM codes
#
generate_asm: $(OPENSSL_SRC)/x86_64/modexp512.s $(OPENSSL_SRC)/x86_64/rc4_md5.s
$(OPENSSL_SRC)/x86_64/modexp512.s:
$(VERBOSE)perl $(CONTRIB_DIR)/$(OPENSSL)/crypto/bn/asm/modexp512-x86_64.pl \
$(CONTRIB_DIR)/$(OPENSSL_DIR)/crypto/perlasm/x86as.pl > $@
$(OPENSSL_SRC)/x86_64/rc4_md5.s:
$(VERBOSE)perl $(CONTRIB_DIR)/$(OPENSSL)/crypto/rc4/asm/rc4-md5-x86_64.pl \
$(CONTRIB_DIR)/$(OPENSSL_DIR)/crypto/perlasm/x86as.pl > $@
#
# Install openssl headers
#
include/openssl:
$(VERBOSE)mkdir -p $@
$(VERBOSE)for i in `find $(CONTRIB_DIR)/$(OPENSSL)/include -name *.h`; do \
ln -fs ../../$$i include/openssl/; done
$(VERBOSE)rm include/openssl/opensslconf.h
$(VERBOSE)ln -fs ../../$(CONTRIB_DIR)/$(OPENSSL)/e_os.h include/openssl/
$(VERBOSE)ln -fs ../../$(CONTRIB_DIR)/$(OPENSSL)/crypto/md2/md2.h include/openssl/
$(VERBOSE)ln -fs ../../$(CONTRIB_DIR)/$(OPENSSL)/crypto/rc5/rc5.h include/openssl/
$(VERBOSE)ln -fs ../../$(CONTRIB_DIR)/$(OPENSSL)/crypto/store/store.h include/openssl/
clean-openssl:
$(VERBOSE)rm -rf include/openssl
$(VERBOSE)rm -rf $(CONTRIB_DIR)/$(OPENSSL)
$(VERBOSE)rm -rf $(OPENSSL_SRC)/x86_32/*.s $(OPENSSL_SRC)/x86_64/*.s