|
| 1 | +## OpenSSL ## |
| 2 | +include $(SRCDIR)/openssl.version |
| 3 | + |
| 4 | +ifneq ($(USE_BINARYBUILDER_OPENSSL),1) |
| 5 | + |
| 6 | +ifeq ($(OS),Darwin) |
| 7 | +ifeq ($(APPLE_ARCH),arm64) |
| 8 | +OPENSSL_TARGET := darwin64-arm64-cc |
| 9 | +else |
| 10 | +OPENSSL_TARGET := darwin64-x86_64-cc |
| 11 | +endif |
| 12 | +else ifeq ($(OS),WINNT) |
| 13 | +ifeq ($(ARCH),x86_64) |
| 14 | +OPENSSL_TARGET := mingw64 |
| 15 | +else |
| 16 | +OPENSSL_TARGET := mingw |
| 17 | +endif |
| 18 | +else ifeq ($(OS),FreeBSD) |
| 19 | +OPENSSL_TARGET := BSD-x86_64 |
| 20 | +else ifeq ($(OS),Linux) |
| 21 | +ifeq ($(ARCH),x86_64) |
| 22 | +OPENSSL_TARGET := linux-x86_64 |
| 23 | +else ifeq ($(ARCH),i686) |
| 24 | +OPENSSL_TARGET := linux-x86 |
| 25 | +else ifeq ($(ARCH),arm) |
| 26 | +OPENSSL_TARGET := linux-armv4 |
| 27 | +else ifeq ($(ARCH),aarch64) |
| 28 | +OPENSSL_TARGET := linux-aarch64 |
| 29 | +else ifeq ($(ARCH),ppc64le) |
| 30 | +OPENSSL_TARGET := linux-ppc64le |
| 31 | +else ifeq ($(ARCH),powerpc64le) |
| 32 | +OPENSSL_TARGET := linux-ppc64le |
| 33 | +endif |
| 34 | +else |
| 35 | +OPENSSL_TARGET := unknown |
| 36 | +endif |
| 37 | + |
| 38 | +$(SRCCACHE)/openssl-$(OPENSSL_VER).tar.gz: | $(SRCCACHE) |
| 39 | + $(JLDOWNLOAD) $@ https://www.openssl.org/source/$(notdir $@) |
| 40 | + |
| 41 | +$(SRCCACHE)/openssl-$(OPENSSL_VER)/source-extracted: $(SRCCACHE)/openssl-$(OPENSSL_VER).tar.gz |
| 42 | + $(JLCHECKSUM) $< |
| 43 | + cd $(dir $<) && $(TAR) -zxf $< |
| 44 | + touch -c $(SRCCACHE)/openssl-$(OPENSSL_VER)/configure # old target |
| 45 | + echo 1 > $@ |
| 46 | + |
| 47 | +checksum-openssl: $(SRCCACHE)/openssl-$(OPENSSL_VER).tar.gz |
| 48 | + $(JLCHECKSUM) $< |
| 49 | + |
| 50 | +# We cannot use $(CONFIGURE_COMMON) in this step, because openssl's Configure scripts is picky |
| 51 | +# and does not like that we pass make variables as arguments, it wants them in the environment |
| 52 | +$(BUILDDIR)/openssl-$(OPENSSL_VER)/build-configured: $(SRCCACHE)/openssl-$(OPENSSL_VER)/source-extracted |
| 53 | + mkdir -p $(dir $@) |
| 54 | + cd $(dir $@) && \ |
| 55 | + CC="$(CC) $(SANITIZE_OPTS)" CXX="$(CXX) $(SANITIZE_OPTS)" LDFLAGS="$(LDFLAGS) $(RPATH_ESCAPED_ORIGIN) $(SANITIZE_LDFLAGS)" \ |
| 56 | + $(dir $<)/Configure shared --prefix=$(abspath $(build_prefix)) $(OPENSSL_TARGET) |
| 57 | + echo 1 > $@ |
| 58 | + |
| 59 | +$(BUILDDIR)/openssl-$(OPENSSL_VER)/build-compiled: $(BUILDDIR)/openssl-$(OPENSSL_VER)/build-configured |
| 60 | + $(MAKE) -C $(dir $<) |
| 61 | + echo 1 > $@ |
| 62 | + |
| 63 | +$(BUILDDIR)/openssl-$(OPENSSL_VER)/build-checked: $(BUILDDIR)/openssl-$(OPENSSL_VER)/build-compiled |
| 64 | +ifeq ($(OS),$(BUILD_OS)) |
| 65 | + $(MAKE) -C $(dir $@) test |
| 66 | +endif |
| 67 | + echo 1 > $@ |
| 68 | + |
| 69 | +$(eval $(call staged-install, \ |
| 70 | + openssl,openssl-$(OPENSSL_VER), \ |
| 71 | + MAKE_INSTALL,,, \ |
| 72 | + $$(WIN_MAKE_HARD_LINK) $(build_bindir)/libcrypto-*.dll $(build_bindir)/libcrypto.dll && \ |
| 73 | + $$(WIN_MAKE_HARD_LINK) $(build_bindir)/libssl-*.dll $(build_bindir)/libssl.dll && \ |
| 74 | + $$(INSTALL_NAME_CMD)libcrypto.$$(SHLIB_EXT) $$(build_shlibdir)/libcrypto.$$(SHLIB_EXT) && \ |
| 75 | + $$(INSTALL_NAME_CMD)libssl.$$(SHLIB_EXT) $$(build_shlibdir)/libssl.$$(SHLIB_EXT) && \ |
| 76 | + $$(INSTALL_NAME_CHANGE_CMD) $$(build_shlibdir)/libcrypto.3.dylib @rpath/libcrypto.$$(SHLIB_EXT) $$(build_shlibdir)/libssl.$$(SHLIB_EXT))) |
| 77 | + |
| 78 | +clean-openssl: |
| 79 | + -rm -f $(BUILDDIR)/-openssl-$(OPENSSL_VER)/build-configured $(BUILDDIR)/-openssl-$(OPENSSL_VER)/build-compiled |
| 80 | + -$(MAKE) -C $(BUILDDIR)/-openssl-$(OPENSSL_VER) clean |
| 81 | + |
| 82 | +distclean-openssl: |
| 83 | + rm -rf $(SRCCACHE)/-openssl-$(OPENSSL_VER).tar.gz \ |
| 84 | + $(SRCCACHE)/-openssl-$(OPENSSL_VER) \ |
| 85 | + $(BUILDDIR)/-openssl-$(OPENSSL_VER) |
| 86 | + |
| 87 | +get-openssl: $(SRCCACHE)/openssl-$(OPENSSL_VER).tar.gz |
| 88 | +extract-openssl: $(SRCCACHE)/openssl-$(OPENSSL_VER)/source-extracted |
| 89 | +configure-openssl: $(BUILDDIR)/openssl-$(OPENSSL_VER)/build-configured |
| 90 | +compile-openssl: $(BUILDDIR)/openssl-$(OPENSSL_VER)/build-compiled |
| 91 | +fastcheck-openssl: check-openssl |
| 92 | +check-openssl: $(BUILDDIR)/openssl-$(OPENSSL_VER)/build-checked |
| 93 | + |
| 94 | +else # USE_BINARYBUILDER_OPENSSL |
| 95 | + |
| 96 | +$(eval $(call bb-install,openssl,OPENSSL,false)) |
| 97 | + |
| 98 | +endif |
0 commit comments