version 1.90, 2005/04/28 11:52:46
|
version 1.106, 2005/11/08 21:38:03
|
|
|
|
#//%2005//////////////////////////////////////////////////////////////////////// |
|
#// |
|
#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
|
#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
|
#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
#// IBM Corp.; EMC Corporation, The Open Group. |
|
#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
#// EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
#// |
|
#// Permission is hereby granted, free of charge, to any person obtaining a copy |
|
#// of this software and associated documentation files (the "Software"), to |
|
#// deal in the Software without restriction, including without limitation the |
|
#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
|
#// sell copies of the Software, and to permit persons to whom the Software is |
|
#// furnished to do so, subject to the following conditions: |
|
#// |
|
#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN |
|
#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED |
|
#// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT |
|
#// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
|
#// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
|
#// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
|
#// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
|
#// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
#// |
|
#//============================================================================== |
################################################################################ | ################################################################################ |
## | ## |
## Get external environment variables. Note that all external environment | ## Get external environment variables. Note that all external environment |
|
|
DISPLAYCONSUMER_DIR = $(subst \,/,$(PEGASUS_HOME)) | DISPLAYCONSUMER_DIR = $(subst \,/,$(PEGASUS_HOME)) |
endif | endif |
| |
|
ifdef PEGASUS_DEBUG |
|
PEGASUS_USE_DEBUG_BUILD_OPTIONS = 1 |
|
endif |
|
|
PLATFORM_FILES=$(wildcard $(ROOT)/mak/platform*.mak) | PLATFORM_FILES=$(wildcard $(ROOT)/mak/platform*.mak) |
PLATFORM_TEMP=$(subst $(ROOT)/mak/platform_,, $(PLATFORM_FILES)) | PLATFORM_TEMP=$(subst $(ROOT)/mak/platform_,, $(PLATFORM_FILES)) |
VALID_PLATFORMS=$(subst .mak,, $(PLATFORM_TEMP)) | VALID_PLATFORMS=$(subst .mak,, $(PLATFORM_TEMP)) |
|
|
# to localally control where the temporay small repository they | # to localally control where the temporay small repository they |
# build, use and then delete is located. Most of the time it is set to TMP_DIR. | # build, use and then delete is located. Most of the time it is set to TMP_DIR. |
# | # |
ifndef REPOSITORY_DIR |
|
REPOSITORY_DIR = $(HOME_DIR) | REPOSITORY_DIR = $(HOME_DIR) |
endif |
|
| |
# | # |
# WARNING: The REPOSITORY_NAME varible is not used by all the test, | # WARNING: The REPOSITORY_NAME varible is not used by all the test, |
|
|
# is that you can change the repository name and build it. But you | # is that you can change the repository name and build it. But you |
# cannot run the test without many of them failing | # cannot run the test without many of them failing |
# | # |
ifndef REPOSITORY_NAME |
|
REPOSITORY_NAME = repository | REPOSITORY_NAME = repository |
endif |
|
| |
REPOSITORY_ROOT = $(REPOSITORY_DIR)/$(REPOSITORY_NAME) | REPOSITORY_ROOT = $(REPOSITORY_DIR)/$(REPOSITORY_NAME) |
| |
|
|
# XML = XML format | # XML = XML format |
# BIN = Binary format | # BIN = Binary format |
# | # |
ifndef REPOSITORY_MODE |
ifndef PEGASUS_REPOSITORY_MODE |
|
## set to default value |
|
REPOSITORY_MODE = XML |
|
else |
|
## validate assigned value |
|
ifeq ($(PEGASUS_REPOSITORY_MODE),XML) |
REPOSITORY_MODE = XML | REPOSITORY_MODE = XML |
|
else |
|
ifeq ($(PEGASUS_REPOSITORY_MODE),BIN) |
|
REPOSITORY_MODE = BIN |
|
else |
|
$(error PEGASUS_REPOSITORY_MODE ($(PEGASUS_REPOSITORY_MODE)) \ |
|
is invalid. It must be set to either XML or BIN) |
|
endif |
endif | endif |
|
endif |
|
|
| |
########################################################################### | ########################################################################### |
| |
|
|
| |
LEX = flex | LEX = flex |
| |
|
## ====================================================================== |
|
## |
|
## PEGASUS_ENABLE_SORTED_DIFF |
|
## This controls if the DIFFSORT function is used rather than a simple DIFF of |
|
## of the test results files to the static results file. |
|
## |
|
## Set to "true" enables the sorted diffs of results to static results files. |
|
## otherwise results in regular diffs of results to static results files. |
|
## see bug 2283 for background information concerning this config variable. |
|
## |
|
## Defaults to true. |
|
## |
|
## |
|
ifndef PEGASUS_ENABLE_SORTED_DIFF |
|
PEGASUS_ENABLE_SORTED_DIFF=true |
|
endif |
|
|
## ======================================================================== | ## ======================================================================== |
## DIFFSORT function definition | ## DIFFSORT function definition |
## Here is an example using the DIFFSORT function: | ## Here is an example using the DIFFSORT function: |
|
|
$(RM) -f $(1).tmp $(NL) \ | $(RM) -f $(1).tmp $(NL) \ |
$(RM) -f $(2).tmp $(NL) | $(RM) -f $(2).tmp $(NL) |
| |
|
# |
|
# The following is used to define the usage message for MakeFile |
|
# |
|
# See the pegasus/Makfile for an exampleof its usage. |
|
# |
|
USAGE = @$(ECHO) " $(1)" |
| |
################################################################################ | ################################################################################ |
## | ## |
|
|
## | ## |
################################################################################ | ################################################################################ |
| |
|
|
|
################################################################################ |
|
## |
|
## PEGASUS_MAX_THREADS_PER_SVC_QUEUE |
|
## |
|
## Controls the maximum number of threads allowed per message service queue. |
|
## It is allowed to range between 1 and MAX_THREADS_PER_SVC_QUEUE_LIMIT |
|
## as set in pegasus/src/Pegasus/Common/MessageQueueService.cpp. If the |
|
## specified value is out of range, MAX_THREADS_PER_SVC_QUEUE_LIMIT is |
|
## used. The default value is MAX_THREADS_PER_SVC_QUEUE_DEFAULT, as |
|
## defined in pegasus/src/Pegasus/Common/MessageQueueService.cpp. |
|
## |
|
## Label Current value |
|
## -------------------------------------- ------------- |
|
## MAX_THREADS_PER_SVC_QUEUE_LIMIT 5000 |
|
## MAX_THREADS_PER_SVC_QUEUE_DEFAULT 5 |
|
## |
|
## |
|
|
|
ifdef PEGASUS_MAX_THREADS_PER_SVC_QUEUE |
|
DEFINES += -DMAX_THREADS_PER_SVC_QUEUE=$(PEGASUS_MAX_THREADS_PER_SVC_QUEUE) |
|
endif |
|
|
|
############################################################################## |
|
## |
|
## PEGASUS_INDICATIONS_Q_THRESHOLD |
|
## |
|
## Controls if indications providers are stalled if the indications |
|
## service queue is too large. |
|
## |
|
## defaults to not set. |
|
## |
|
## It can be set to any positive value. |
|
## |
|
## If not set providers are never stalled. This implies that the |
|
## indications service queue may become as large as neccesary to hold all |
|
## the indicaitons generated. |
|
## |
|
## If set to any value then providers are stalled by forcing them to sleep |
|
## when they try to deliver an indication and the indications service queue |
|
## exceeds this value. They are resumed when the queue count falls 10 percent |
|
## below this value. |
|
## |
|
## Stall and resume log entries are made to inform the administrator |
|
## the condition has occured. |
|
## |
|
## WARNING: This also affects the Out of Process Providers (OOP Providers) |
|
## The OOP Providers use two one way pipes for communication. |
|
## By stalling the Provider this prevents the pipe from being read |
|
## which will cause the pipe to fill up and the remote side will block. |
|
## OOP Prividers mix indications and operations on these two pipes. |
|
## This means the operations will also be blocked as a side effect of |
|
## the indications being stalled. |
|
## |
|
## |
|
|
|
ifdef PEGASUS_INDICATIONS_Q_THRESHOLD |
|
DEFINES += -DPEGASUS_INDICATIONS_Q_THRESHOLD=$(PEGASUS_INDICATIONS_Q_THRESHOLD) |
|
endif |
|
|
|
|
# Setup the conditional compile for client displays. | # Setup the conditional compile for client displays. |
# | # |
ifdef PEGASUS_CLIENT_TRACE_ENABLE | ifdef PEGASUS_CLIENT_TRACE_ENABLE |
|
|
endif | endif |
| |
# | # |
|
# PEP 72 |
|
# Allow Out-of-Process Providers to be disabled by default |
|
# |
|
ifdef PEGASUS_DEFAULT_OOP_FALSE |
|
DEFINES += -DPEGASUS_DEFAULT_OOP_FALSE |
|
endif |
|
|
|
# |
# PEP 197 | # PEP 197 |
# Allow the Provider User Context feature to be disabled. | # Allow the Provider User Context feature to be disabled. |
# | # |
|
|
DEFINES += -DPEGASUS_ENABLE_EMAIL_HANDLER | DEFINES += -DPEGASUS_ENABLE_EMAIL_HANDLER |
endif | endif |
| |
# setup function to enable SLP functions in the Pegasus standard compile |
# |
# Set the environment varaible PEGASUS_ENABLE_SLP to enable SLP code. |
# PEGASUS_ENABLE_SLP and PEGASUS_DISABLE_SLP |
# NOTE. Effective with Bug # 2633 some platforms now enable SLP. |
# |
|
# Use PEGASUS_ENABLE_SLP to enable SLP functions in the Pegasus standard |
|
# compile on those platforms that do not enable it by default. |
|
# |
|
# Use PEGASUS_DISABLE_SLP to disable SLP on those platforms that enable |
|
# it by default. |
|
# |
|
# Currently (Aug. 12, 2005) Windows is the only platform that enables SLP |
|
# by default. |
|
# |
|
# NOTE. Effective with Bug # 2633 some platforms enable SLP. |
# To see which platforms look for platform make files that set | # To see which platforms look for platform make files that set |
# the variable PEGASUS_ENABLE_SLP |
# the variable PEGASUS_ENABLE_SLP. |
|
# |
|
# |
ifdef PEGASUS_ENABLE_SLP | ifdef PEGASUS_ENABLE_SLP |
|
ifdef PEGASUS_DISABLE_SLP |
|
$(error Conflicting defines PEGASUS_ENABLE_SLP and PEGASUS_DISABLE_SLP both set) |
|
endif |
DEFINES += -DPEGASUS_ENABLE_SLP | DEFINES += -DPEGASUS_ENABLE_SLP |
endif | endif |
| |
|
|
# compile in the experimental APIs | # compile in the experimental APIs |
DEFINES += -DPEGASUS_USE_EXPERIMENTAL_INTERFACES | DEFINES += -DPEGASUS_USE_EXPERIMENTAL_INTERFACES |
| |
|
# Ensure that the deprecated interfaces are defined in the Pegasus libraries. |
|
# One may wish to disable these interfaces if binary compatibility with |
|
# previous Pegasus releases is not required. |
|
ifndef PEGASUS_DISABLE_DEPRECATED_INTERFACES |
|
DEFINES += -DPEGASUS_USE_DEPRECATED_INTERFACES |
|
endif |
|
|
# Set compile flag to control compilation of CIMOM statistics | # Set compile flag to control compilation of CIMOM statistics |
ifdef PEGASUS_DISABLE_PERFINST | ifdef PEGASUS_DISABLE_PERFINST |
FLAGS += -DPEGASUS_DISABLE_PERFINST | FLAGS += -DPEGASUS_DISABLE_PERFINST |
endif | endif |
| |
|
# Set compile flag to control compilation of SNIA Extensions |
|
ifdef PEGASUS_SNIA_EXTENSIONS |
|
FLAGS += -DPEGASUS_SNIA_EXTENSIONS |
|
endif |
|
|
|
# Allow remote CMPI functionality to be enabled |
|
ifdef PEGASUS_ENABLE_REMOTE_CMPI |
|
FLAGS += -DPEGASUS_ENABLE_REMOTE_CMPI |
|
endif |
|
|
############################################################ | ############################################################ |
# | # |
# Set any vendor-specific compile flags | # Set any vendor-specific compile flags |
|
|
| |
################################################################################ | ################################################################################ |
## | ## |
|
## PEGASUS_CLASS_CACHE_SIZE |
|
## |
|
## This environment variable gives the size of the class cache used by |
|
## the CIM repository. When it is undefined, the size defaults to something |
|
## relatively small (see src/Pegasus/Repository/CIMRepository.cpp). If |
|
## defined, it gives the size of the class cache. If it is 0 , the class |
|
## cache is not defined compiled in at all. |
|
## |
|
################################################################################ |
|
|
|
ifdef PEGASUS_CLASS_CACHE_SIZE |
|
DEFINES += -DPEGASUS_CLASS_CACHE_SIZE=$(PEGASUS_CLASS_CACHE_SIZE) |
|
endif |
|
|
|
################################################################################ |
|
## |
## Additional build flags passed in through environment variables. | ## Additional build flags passed in through environment variables. |
## These flags are added to the compile/link commands. | ## These flags are added to the compile/link commands. |
## | ## |