# Makefile - to prepare openssl350 for compilation. # # Copyright (c) 2026 Wind River Systems, Inc. # # The right to copy, distribute, modify or otherwise make use # of this software may be licensed only pursuant to the terms # of an applicable Wind River license agreement. # TGT_DIR=$(WIND_BASE)/target BUILD_DIR_3PP=$(VSB_DIR)/3pp PKG_SRC_BUILD_DIR=$(VSB_DIR)/3pp/openssl-3.5.0 OPENSSL_DIR=$(WIND_HOME)/vxworks-6.9/target/src/openssl/OPENSSL KERNEL_PUBLIC_INCLUDE_DIR=$(PKG_SRC_BUILD_DIR)/krnl/h/public #for applying patch PATCH=$(WIND_HOME)/vxworks-6.9/host/msys2-x86-win64/usr/bin/patch.exe OPENSSL_SRC_DIR=$(WIND_HOME)/vxworks-6.9/target/src/openssl/openssl_src SRC_PATCH_DIR=$(WIND_HOME)/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0 # hardcoded for now - _WRS_CONFIG_OPENSSL_OPTIONS= no-aria no-blake2 no-camellia no-chacha no-md2 no-ocb no-poly1305 no-rc2 no-scrypt no-seed no-siphash no-sm2 no-sm3 no-sm4 no-cms no-cmp no-err no-autoerrinit no-filenames no-ct no-ec2m no-multiblock no-rfc3779 no-srp no-tests _WRS_CONFIG_OPENSSL_IPNET_OPTIONS= VXWORKS_MAK=vxworks.krnl.mak VXE=openssl PKG_NAME=openssl-3.5.0 MAKECMDGOALS=_mk include $(VSB_DIR)/h/config/auto.conf PKG_VER := 3.5.0 PKG_URL := https://github.com/openssl/openssl/archive/openssl-$(PKG_VER).tar.gz PKG_SHA256 := 7f013434c535a0366a610995c4530db6cde0554a0fac331a71a8e98a32b2635f PKG_FILE_TYPE := unpack PKG_BUILD_DIR := openssl-openssl-$(PKG_VER) PKG_BUILD_TARGETS := openssl ifdef _WRS_CONFIG_ARM_ERRATA_782772 EXCLUDED_PATCHES = else EXCLUDED_PATCHES = armv4cpuid.pl.patch endif ifeq 'x86-win32' '$(WIND_HOST_TYPE)' export PERL_NAME := $(WIND_BASE)/host/msys2-x86-win64/usr/bin/perl5 else # PERL5LIB is required by perl5 export PERL_NAME := perl5 export PERL5LIB := $(WIND_BASE)/host/$(WIND_VX7_HOST_TYPE)/lib/perl5 endif ifdef _WRS_CONFIG_ARCH_ppc ifdef _WRS_CONFIG_LP64 OPENSSL_TARGET := vxworks-ppc64 else OPENSSL_TARGET := vxworks-ppc32 endif endif ifdef _WRS_CONFIG_ARCH_arm ifdef _WRS_CONFIG_LP64 OPENSSL_TARGET := vxworks-arm64 else ifdef _WRS_CONFIG_ARM_ARMV7M OPENSSL_TARGET := vxworks-arm32-armv7m else ifdef _WRS_CONFIG_THUMB2_ISA OPENSSL_TARGET := vxworks-arm32-thumb else OPENSSL_TARGET := vxworks-arm32 endif endif ifdef _WRS_CONFIG_HAS_CTX_A5 OPENSSL_TARGET := vxworks-arm32-armv7m endif ifdef _WRS_CONFIG_HAS_CTX_A7 OPENSSL_TARGET := vxworks-arm32-armv7a endif endif endif ifdef _WRS_CONFIG_ARCH_i86 ifdef _WRS_CONFIG_LP64 OPENSSL_TARGET := vxworks-x86-64 else OPENSSL_TARGET := vxworks-x86 endif endif ifdef _WRS_CONFIG_ARCH_simlinux ifdef _WRS_CONFIG_LP64 OPENSSL_TARGET := vxworks-simlinux64 else OPENSSL_TARGET := vxworks-simlinux32 endif endif ifdef _WRS_CONFIG_ARCH_simpc ifdef _WRS_CONFIG_LP64 OPENSSL_TARGET := vxworks-simpc64 else OPENSSL_TARGET := vxworks-simpc32 endif endif ifdef _WRS_CONFIG_ARCH_riscv ifdef _WRS_CONFIG_LP64 OPENSSL_TARGET := vxworks-riscv64 else OPENSSL_TARGET := vxworks-riscv32 endif endif ifdef _WRS_CONFIG_DEBUG_FLAG BUILD_TYPE := --debug else BUILD_TYPE := --release endif OPENSSL_VSB_OPTIONS = $(_WRS_CONFIG_OPENSSL_OPTIONS) $(_WRS_CONFIG_OPENSSL_IPNET_OPTIONS) ifeq (, $(findstring enable-fips, $(_WRS_CONFIG_OPENSSL_OPTIONS))) export CONFIGURE_CMD := Configure $(OPENSSL_TARGET) $(OPENSSL_VSB_OPTIONS) $(BUILD_TYPE) --openssldir="/" --with-rand-seed=none no-rdrand no-dso no-dynamic-engine no-padlockeng no-comp no-makedepend -Dasm=__asm__ else export CONFIGURE_CMD := Configure $(OPENSSL_TARGET) $(OPENSSL_VSB_OPTIONS) $(BUILD_TYPE) --with-rand-seed=none no-rdrand no-dynamic-engine no-padlockeng no-comp no-makedepend -Dasm=__asm__ endif ifndef _WRS_CONFIG_AUTO_FP_TASK export CONFIGURE_CMD += no-asm endif ifeq 'x86-win32' '$(WIND_HOST_TYPE)' export CONFIGURE_CMD := $(CONFIGURE_CMD) PERL=$(WIND_BASE)/host/msys2-x86-win64/usr/bin/perl5 endif PUBLIC_INCLUDE_DIRS = include/openssl PUBLIC_INCLUDE_DIRS := $(PKG_SRC_BUILD_DIR)/$(PUBLIC_INCLUDE_DIRS) OPENSSL_TEST_PATH := $(PKG_SRC_BUILD_DIR)/test OPENSSL_TEST_SCRIPT_DIR := vx-test-script OPENSSL_TEST_SCRIPT_PATH := $(OPENSSL_TEST_PATH)/$(OPENSSL_TEST_SCRIPT_DIR) target: get-openssl $(OPENSSL_TEST_SCRIPT_PATH) $(PKG_SRC_BUILD_DIR)/include/openssl/configuration.h apply-patches: @echo "Applying patches from $(OPENSSL_SRC_DIR) to $(SRC_PATCH_DIR)..." @for p in $(OPENSSL_SRC_DIR)/*.patch; do \ echo "Applying $$p"; \ $(PATCH) -d $(SRC_PATCH_DIR) -p1 -N < $$p || exit 1; \ done get-openssl: @if [ -d "$(BUILD_DIR_3PP)" ]; then \ rm -rf $(BUILD_DIR_3PP) || true;\ fi cd $(VSB_DIR) && mkdir -p 3pp cp -r $(OPENSSL_DIR)/$(PKG_NAME) $(VSB_DIR)/3pp/ $(OPENSSL_TEST_SCRIPT_PATH) : $(OPENSSL_TEST_SCRIPT_DIR)/generate_test_buildinfo $(OPENSSL_TEST_SCRIPT_DIR)/adapt_test_src_file @echo "pre-process openssl test" mkdir -p $(OPENSSL_TEST_SCRIPT_PATH) cp -r -u -L $(OPENSSL_TEST_SCRIPT_DIR)/* $(OPENSSL_TEST_SCRIPT_PATH) cp -r -u -L ../ipcrypto/test/*.c $(OPENSSL_TEST_PATH) cp -r -u -L ../ipcrypto/vxRandLib.c $(PKG_SRC_BUILD_DIR)/crypto cp -r -u -L $(PKG_SRC_BUILD_DIR)/apps/lib/engine.c $(PKG_SRC_BUILD_DIR)/apps/lib/engine_lib.c cd $(OPENSSL_TEST_PATH) && sh $(OPENSSL_TEST_SCRIPT_DIR)/generate_test_buildinfo cd $(OPENSSL_TEST_PATH) && sh $(OPENSSL_TEST_SCRIPT_DIR)/adapt_test_src_file cd $(OPENSSL_TEST_PATH) && sh $(OPENSSL_TEST_SCRIPT_DIR)/generate-vx-test-main $(PKG_SRC_BUILD_DIR)/include/openssl/configuration.h: @echo "generating configuration.h and other generated headers" cd $(PKG_SRC_BUILD_DIR); \ $(PERL_NAME) $(CONFIGURE_CMD) > /dev/null 2>&1; \ $(MAKE) build_generated;