Files
m241Neelima/vxworks-6.9/target/src/openssl/openssl_src/ossl350.prepare.mak
T

180 lines
5.6 KiB
Makefile

# 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;