1 # Copyright © 2008-2018, The AROS Development Team. All rights reserved.
4 include $(SRCDIR)/config/aros-contrib.cfg
6 REPOSITORIES = http://www.openssl.org/source/ \
7 ftp://mirror.switch.ch/mirror/openssl/source/
9 ARCHBASE := openssl-$(OPENSSL_VERSION)
10 OPENSSL_SOURCE := $(PORTSDIR)/openssl/$(ARCHBASE)
11 OPENSSL_BUILD_DIR := $(GENDIR)/$(CURDIR)/$(ARCHBASE)
13 NOWARN_FLAGS := $(NOWARN_FORMAT_SECURITY) $(NOWARN_UNUSED_BUT_SET_VARIABLE) \
14 $(NOWARN_UNUSED_VALUE) $(NOWARN_UNUSED_VARIABLE) \
15 $(NOWARN_MISLEADING_INDENTATION) $(NOWARN_MAYBE_UNINITIALIZED)
16 USER_CFLAGS := $(NOWARN_FLAGS) -DOPENSSL_NO_SECURE_MEMORY
18 OPENSSL_OPTIONS=no-threads no-sse2 no-ssl3
20 #MM- contrib-openssl : contrib-openssl-install contrib-openssl-installtests
21 #MM contrib-openssl-setup : contrib-openssl-fetch
22 #MM contrib-openssl-configure : contrib-openssl-setup
23 #MM contrib-openssl-build : contrib-openssl-configure
24 #MM contrib-openssl-install : contrib-openssl-build
26 %fetch mmake=contrib-openssl-fetch archive=$(ARCHBASE) destination=$(PORTSDIR)/openssl \
27 location=$(PORTSSOURCEDIR) archive_origins=$(REPOSITORIES) suffixes="tar.gz" \
28 patches_specs=$(ARCHBASE)-aros.diff:$(ARCHBASE):-p1
30 # After patch creation remove diff about test/ssltest.c and include/openssl/e_os2.h
31 # These are sym linked files and would be patched twice. They cannot easily
32 # be excluded without breaking other things
33 %create_patch mmake=contrib-openssl-create-patch \
34 archive=$(ARCHBASE) destination=$(PORTSDIR)/openssl \
35 excludes="fips_aes_data Makefile.org.orig include"
37 $(OPENSSL_BUILD_DIR)/.links-created : $(TOP)/$(CURDIR)/mmakefile
39 %mkdir_q dir=$(OPENSSL_BUILD_DIR)
40 @cd $(OPENSSL_SOURCE); \
41 find . -type d -exec mkdir -p $(OPENSSL_BUILD_DIR)/\{\} \;;\
42 find . -type f -exec ln -fs $(OPENSSL_SOURCE)/\{\} $(OPENSSL_BUILD_DIR)/\{\} \;;
46 contrib-openssl-setup : $(OPENSSL_BUILD_DIR)/.links-created
48 $(OPENSSL_BUILD_DIR)/.build-configured : $(OPENSSL_BUILD_DIR)/.links-created
50 @$(ECHO) "Configuring build in $(subst $(TOP)/,,$(OPENSSL_BUILD_DIR))"
51 @cd $(OPENSSL_BUILD_DIR); \
52 env -i PATH=$(PATH) AROS_CC="$(strip $(CC) $(TARGET_SYSROOT))" AROS_CFLAGS="$(CFLAGS)" AROS_RANLIB="$(RANLIB)" AR="$(AR_PLAIN)" ./Configure "aros-$(AROS_TARGET_CPU)-buildsys" $(OPENSSL_OPTIONS) --prefix=/$(AROS_DIR_DEVELOPER) --openssldir=/$(AROS_DIR_DEVELOPER)/etc/ssl
56 contrib-openssl-configure : $(OPENSSL_BUILD_DIR)/.build-configured
58 $(OPENSSL_BUILD_DIR)/.build-flag : $(OPENSSL_BUILD_DIR)/.build-configured
60 @$(ECHO) "Building OpenSSL..."
61 @cd $(OPENSSL_BUILD_DIR); \
62 env -i PATH=$(PATH) HOME=$(HOME) make
66 contrib-openssl-build : $(OPENSSL_BUILD_DIR)/.build-flag
68 $(OPENSSL_BUILD_DIR)/.install-flag : $(OPENSSL_BUILD_DIR)/.build-flag
70 @$(ECHO) "Installing OpenSSL..."
71 @for file in $(OPENSSL_BUILD_DIR)/Makefile; \
73 $(SED) -i -e "s@=/Developer@=$(AROS_DEVELOPER)@" $$file; \
75 @cd $(OPENSSL_BUILD_DIR); \
76 env -i PATH=$(PATH) make install
77 for file in $(AROS_DEVELOPER)/etc/ssl/openssl.cnf; \
79 $(SED) -i -e 's@$$dir/certs @/ENV/SYS/Certificates@' $$file; \
84 contrib-openssl-install : $(OPENSSL_BUILD_DIR)/.install-flag
86 $(OPENSSL_BUILD_DIR)/.installtest-flag : $(OPENSSL_BUILD_DIR)/.build-flag $(AROS_TESTS)/openssl
88 @$(ECHO) "Installing OpenSSL Tests..."
89 @$(CP) -R $(OPENSSL_BUILD_DIR)/test/* $(AROS_TESTS)/openssl/
90 @$(RM) $(AROS_TESTS)/openssl/*.c
91 @$(RM) $(AROS_TESTS)/openssl/*.h
92 @$(RM) $(AROS_TESTS)/openssl/*.d
93 @$(RM) $(AROS_TESTS)/openssl/*.o
94 @$(RM) $(AROS_TESTS)/openssl/generate_buildtest.pl
95 @$(RM) $(AROS_TESTS)/openssl/generate_ssl_test.pl
96 @$(RM) $(AROS_TESTS)/openssl/*.info
99 $(AROS_TESTS)/openssl:
103 contrib-openssl-installtests : $(OPENSSL_BUILD_DIR)/.installtest-flag