Files
vxWorks/h/make/defs.option
2025-08-20 18:25:46 +08:00

184 lines
5.1 KiB
Plaintext

# defs.option - makefile definitions related to option builds
#
# Copyright (c) 1984-2005 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.
#
#
# modification history
# --------------------
# 01h,15apr05,kch Changed 'inet6_fr' to '-inet6_fr' and 'inet6_vs_fr'
# to '-inet6_vs_fr'.
# 01g,14apr05,kch Fixed SUPPORTED_OPTIONS such that virtual stack build
# options will be supported for MSP only. Added ROUTER_STACK
# setting to virtual stack option builds.
# 01f,31mar05,kch Added the -vs, -vs_fr, -inet6_vs and inet6_vs_fr build
# options for virtual stack.
# 01e,23sep04,dlk Use OPT_DEFINE instead of EXTRA_DEFINE. Using
# EXTRA_DEFINE requires 'override', which breaks later
# additions to EXTRA_DEFINE (e.g. in some BSPs) which
# don't use 'override'.
# 01d,02sep04,dlk Remove dsi from -inet6 builds. Tighten check
# on OPT validity. Add aim to free build libraries.
# Do not modify ADDED_CFLAGS.
# 01c,04may04,dlk Added the -inet6_fr build option. Remove references
# to the fpio library.
# 01b,20apr04,dlk Added -inet6 build option.
# 01a,04feb04,dlk written.
#
# DESCRIPTION
#
# This file is included in Makefiles to establish information related
# to option builds, in particular the lists of libraries which support
# particular option builds.
#
# Protect against multiple inclusion.
ifeq ($(DEFS_OPTION),)
DEFS_OPTION = TRUE
# For GPP build, the environment variable $FEATURE_SET is either set to "gpp"
# or simply not defined at all. Here it is assumed that the top-level Feature
# Set Makefile (if exist) has verified the setting of the $FEATURE_SET
# variable (if defined).
ifeq ($(FEATURE_SET),)
_GPP_BUILD = TRUE
else
ifeq ($(FEATURE_SET),gpp)
_GPP_BUILD = TRUE
endif
endif
# Supported build options for all products
SUPPORTED_OPTIONS = -fr -inet6 -inet6_fr
# Supported build options for MSP platform products.
ifeq ($(_GPP_BUILD),)
SUPPORTED_OPTIONS += -vs -vs_fr -inet6_vs -inet6_vs_fr
endif
# Check that OPT is valid. If not, fail.
_empty_ =
_space_ = $(_empty_) $(_empty_)
ifneq ($(OPT),)
ifneq ($(findstring $(_space_),$(OPT)),)
$(error OPT may not contain spaces: "$(OPT)")
endif
ifeq ($(filter $(OPT), $(SUPPORTED_OPTIONS)),)
$(error OPT="$(OPT)" is unsupported. Allowed: $(SUPPORTED_OPTIONS))
endif
endif
ifeq ($(OPT),-fr)
export _FREE_VERSION := 1
OPT_DEFINE += -D_FREE_VERSION
# Temporary hack until network makefiles check OPT before
# defining INCLUDE_WVNETD.
ifeq ($(LIB_BASE_NAME),net)
OPT_DEFINE += -UINCLUDE_WVNETD
endif
endif
LIB_BASE_NAMES-fr := net arch os wind hwdb aim
ifeq ($(OPT),-inet6)
export _INET6_BUILD := 1
OPT_DEFINE += -DINET6
endif
LIB_BASE_NAMES-inet6 := net ppp
ifeq ($(OPT),-inet6_fr)
export _INET6_BUILD := 1
export _FREE_VERSION := 1
OPT_DEFINE += -D_FREE_VERSION -DINET6
# Temporary hack until network makefiles check OPT before
# defining INCLUDE_WVNETD.
ifeq ($(LIB_BASE_NAME),net)
OPT_DEFINE += -UINCLUDE_WVNETD
endif
endif # ifeq ($(OPT),-inet6_fr)
# This should be the union of LIB_BASE_NAMES-fr and LIB_BASE_NAMES-inet6
LIB_BASE_NAMES-inet6_fr := $(LIB_BASE_NAMES-inet6)
LIB_BASE_NAMES-inet6_fr += \
$(filter-out $(LIB_BASE_NAMES-inet6),$(LIB_BASE_NAMES-fr))
# For (ipv4 only) virtual stack support (OPT=-vs)
ifeq ($(OPT),-vs)
export _VIRTUAL_STACK_BUILD := 1
OPT_DEFINE += -DVIRTUAL_STACK -DROUTER_STACK
endif
# For virtual stack, the rpc directory must be rebuild.
LIB_BASE_NAMES-vs := $(LIB_BASE_NAMES-inet6) rpc
# For (ipv4 only) virtual stack + free build support (OPT=-vs_fr)
ifeq ($(OPT),-vs_fr)
export _VIRTUAL_STACK_BUILD := 1
export _FREE_VERSION := 1
OPT_DEFINE += -D_FREE_VERSION -DVIRTUAL_STACK -DROUTER_STACK
# Temporary hack until network makefiles check OPT before
# defining INCLUDE_WVNETD.
ifeq ($(LIB_BASE_NAME),net)
OPT_DEFINE += -UINCLUDE_WVNETD
endif
endif # ifeq ($(OPT),-vs_fr)
LIB_BASE_NAMES-vs_fr := $(LIB_BASE_NAMES-vs)
LIB_BASE_NAMES-vs_fr += \
$(filter-out $(LIB_BASE_NAMES-vs),$(LIB_BASE_NAMES-fr))
# For virtual stack + inet6 support (OPT=-inet6_vs)
ifeq ($(OPT),-inet6_vs)
export _INET6_BUILD := 1
export _VIRTUAL_STACK_BUILD := 1
OPT_DEFINE += -DINET6 -DVIRTUAL_STACK -DROUTER_STACK
endif
LIB_BASE_NAMES-inet6_vs := $(LIB_BASE_NAMES-vs)
# For virtual stack + inet6 + free build support (OPT=-inet6_vs_fr)
ifeq ($(OPT),-inet6_vs_fr)
export _INET6_BUILD := 1
export _VIRTUAL_STACK_BUILD := 1
export _FREE_VERSION := 1
OPT_DEFINE += -DINET6 -D_FREE_VERSION -DVIRTUAL_STACK -DROUTER_STACK
# Temporary hack until network makefiles check OPT before
# defining INCLUDE_WVNETD.
ifeq ($(LIB_BASE_NAME),net)
OPT_DEFINE += -UINCLUDE_WVNETD
endif
endif # ifeq ($(OPT),-inet6_vs_fr)
LIB_BASE_NAMES-inet6_vs_fr := $(LIB_BASE_NAMES-vs)
LIB_BASE_NAMES-inet6_vs_fr += \
$(filter-out $(LIB_BASE_NAMES-vs),$(LIB_BASE_NAMES-fr))
endif # ifeq ($(DEFS_OPTION),)