version 1.56, 2004/07/28 21:01:38
|
version 1.135.4.1, 2007/02/02 18:25:19
|
|
|
|
#//%2006//////////////////////////////////////////////////////////////////////// |
|
#// |
|
#// 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. |
|
#// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
#// EMC Corporation; Symantec 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 |
|
|
ROOT = $(subst \,/,$(PEGASUS_ROOT)) | ROOT = $(subst \,/,$(PEGASUS_ROOT)) |
endif | endif |
| |
|
ifdef PEGASUS_ENVVAR_FILE |
|
include $(PEGASUS_ENVVAR_FILE) |
|
else |
include $(ROOT)/env_var.status | include $(ROOT)/env_var.status |
|
endif |
| |
ifdef PEGASUS_HOME | ifdef PEGASUS_HOME |
HOME_DIR = $(subst \,/,$(PEGASUS_HOME)) | HOME_DIR = $(subst \,/,$(PEGASUS_HOME)) |
else | else |
ERROR = pegasus_home_undefined |
$(error PEGASUS_HOME environment variable undefined) |
pegasus_home_undefined: |
|
@ echo PEGASUS_HOME environment variable undefined |
|
@ exit 1 |
|
endif | endif |
| |
ifdef PEGASUS_ROOT | ifdef PEGASUS_ROOT |
ROOT = $(subst \,/,$(PEGASUS_ROOT)) | ROOT = $(subst \,/,$(PEGASUS_ROOT)) |
else | else |
ERROR = pegasus_root_undefined |
$(error PEGASUS_ROOT environment variable undefined) |
pegasus_root_undefined: |
|
@ echo PEGASUS_ROOT environment variable undefined |
|
@ exit 1 |
|
endif | endif |
| |
# l10n | # l10n |
|
|
DISPLAYCONSUMER_DIR = $(subst \,/,$(PEGASUS_HOME)) | DISPLAYCONSUMER_DIR = $(subst \,/,$(PEGASUS_HOME)) |
endif | endif |
| |
VALID_PLATFORMS = \ |
ifdef PEGASUS_DEBUG |
WIN32_IX86_MSVC \ |
PEGASUS_USE_DEBUG_BUILD_OPTIONS = 1 |
LINUX_IX86_GNU \ |
endif |
LINUX_PPC_GNU \ |
|
LINUX_IA64_GNU \ |
PLATFORM_FILES=$(wildcard $(ROOT)/mak/platform*.mak) |
LINUX_ZSERIES_GNU \ |
PLATFORM_TEMP=$(subst $(ROOT)/mak/platform_,, $(PLATFORM_FILES)) |
AIX_RS_IBMCXX \ |
VALID_PLATFORMS=$(subst .mak, , $(PLATFORM_TEMP)) |
HPUX_PARISC_ACC \ |
|
HPUX_IA64_ACC \ |
|
TRU64_ALPHA_DECCXX \ |
|
SOLARIS_SPARC_GNU \ |
|
SOLARIS_SPARC_CC \ |
|
ZOS_ZSERIES_IBM \ |
|
NSK_NONSTOP_NMCPLUS \ |
|
DARWIN_PPC_GNU |
|
| |
ifndef PEGASUS_PLATFORM | ifndef PEGASUS_PLATFORM |
ERROR = pegasus_platform_undefined |
$(error PEGASUS_PLATFORM environment variable undefined. Please set to\ |
pegasus_platform_undefined: |
one of the following:$(VALID_PLATFORMS)) |
@ echo PEGASUS_PLATFORM environment variable undefined. Please set to\ |
|
one of the following: $(VALID_PLATFORMS) |
|
@ exit 1 |
|
endif | endif |
| |
################################################################################ | ################################################################################ |
|
ifeq ($(findstring _GNU, $(PEGASUS_PLATFORM)), _GNU) |
|
ifdef CXX |
|
GCC_VERSION = $(shell $(CXX) -dumpversion) |
|
else |
|
GCC_VERSION = $(shell g++ -dumpversion) |
|
endif |
|
else |
|
GCC_VERSION = |
|
endif |
| |
OBJ_DIR = $(HOME_DIR)/obj/$(DIR) | OBJ_DIR = $(HOME_DIR)/obj/$(DIR) |
BIN_DIR = $(HOME_DIR)/bin | BIN_DIR = $(HOME_DIR)/bin |
|
|
# define the location for the compiled messages | # define the location for the compiled messages |
MSG_ROOT = $(HOME_DIR)/msg | MSG_ROOT = $(HOME_DIR)/msg |
| |
|
############################################################################# |
|
## The following REPOSITORY_XXX variables are only used within the |
|
## makefiles for building the repository (cimmofl) and running the tests. |
|
## They have no effect on CIMconfig initial startup configuration. |
|
|
|
# |
# define the location for the repository | # define the location for the repository |
|
# |
|
# NOTE: There is another variable efined in many of the test makefiles |
|
# called REPOSITORYDIR. It is a local variable in each of those Makefiles |
|
# 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. |
|
# |
|
|
REPOSITORY_DIR = $(HOME_DIR) | REPOSITORY_DIR = $(HOME_DIR) |
REPOSITORY_ROOT = $(REPOSITORY_DIR)/repository |
|
|
# |
|
# WARNING: The REPOSITORY_NAME varible is not used by all the test, |
|
# many of them are still hardcoded to "repository". What this means |
|
# is that you can change the repository name and build it. But you |
|
# cannot run the test without many of them failing |
|
# |
|
|
|
REPOSITORY_NAME = repository |
|
|
|
|
|
REPOSITORY_ROOT = $(REPOSITORY_DIR)/$(REPOSITORY_NAME) |
|
|
|
# define the repository mode |
|
# XML = XML format |
|
# BIN = Binary format |
|
# |
|
ifndef PEGASUS_REPOSITORY_MODE |
|
## set to default value |
|
REPOSITORY_MODE = XML |
|
else |
|
## validate assigned value |
|
ifeq ($(PEGASUS_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 |
|
|
|
|
|
########################################################################### |
| |
# The two variables, CIM_SCHEMA_DIR and CIM_SCHEMA_VER, | # The two variables, CIM_SCHEMA_DIR and CIM_SCHEMA_VER, |
# are used to control the version of the CIM Schema | # are used to control the version of the CIM Schema |
|
|
# | # |
# To use the PEGASUS_CIM_SCHEMA variable the Schema mof | # To use the PEGASUS_CIM_SCHEMA variable the Schema mof |
# files must be placed in the directory | # files must be placed in the directory |
# $(PEGAUS_ROOT)/Schemas/$(PEGASUS_CIM_SCHEMA) |
# $(PEGASUS_ROOT)/Schemas/$(PEGASUS_CIM_SCHEMA) |
# | # |
# The value of PEGASUS_CIM_SCHEMA must conform to the | # The value of PEGASUS_CIM_SCHEMA must conform to the |
# following syntax: | # following syntax: |
|
|
| |
ifdef PEGASUS_CIM_SCHEMA | ifdef PEGASUS_CIM_SCHEMA |
CIM_SCHEMA_DIR=$(PEGASUS_ROOT)/Schemas/$(PEGASUS_CIM_SCHEMA) | CIM_SCHEMA_DIR=$(PEGASUS_ROOT)/Schemas/$(PEGASUS_CIM_SCHEMA) |
|
ifeq ($(findstring $(patsubst CIM%,%,$(patsubst CIMPrelim%,%,$(PEGASUS_CIM_SCHEMA))),1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 271 28),) |
|
CIM_SCHEMA_VER= |
|
else |
CIM_SCHEMA_VER=$(patsubst CIM%,%,$(patsubst CIMPrelim%,%,$(PEGASUS_CIM_SCHEMA))) | CIM_SCHEMA_VER=$(patsubst CIM%,%,$(patsubst CIMPrelim%,%,$(PEGASUS_CIM_SCHEMA))) |
|
endif |
else | else |
CIM_SCHEMA_DIR=$(PEGASUS_ROOT)/Schemas/CIM28 |
CIM_SCHEMA_DIR=$(PEGASUS_ROOT)/Schemas/CIM29 |
CIM_SCHEMA_VER=28 |
CIM_SCHEMA_VER= |
endif | endif |
| |
ifneq (, $(findstring Prelim, $(CIM_SCHEMA_DIR))) | ifneq (, $(findstring Prelim, $(CIM_SCHEMA_DIR))) |
|
|
| |
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 |
|
## Here is an example using the DIFFSORT function: |
|
## |
|
## difftest: FORCE |
|
## @ test > result |
|
## @ $(call DIFFSORT,result,standard_result) |
|
## @ $(ECHO) +++++ all test passed |
|
## |
|
|
|
define NL |
|
|
|
|
|
endef |
|
|
|
ifndef FORCE_NOCASE |
|
|
|
DIFFSORT = $(SORT) $(1) > $(1).tmp $(NL) \ |
|
$(SORT) $(2) > $(2).tmp $(NL) \ |
|
$(DIFF) $(1).tmp $(2).tmp $(NL) \ |
|
$(RM) -f $(1).tmp $(NL) \ |
|
$(RM) -f $(2).tmp $(NL) |
|
|
|
else |
|
|
|
DIFFSORT = $(SORT) -f $(1) > $(1).tmp $(NL) \ |
|
$(SORT) -f $(2) > $(2).tmp $(NL) \ |
|
$(DIFF) -i $(1).tmp $(2).tmp $(NL) \ |
|
$(RM) -f $(1).tmp $(NL) \ |
|
$(RM) -f $(2).tmp $(NL) |
|
|
|
endif |
|
|
|
DIFFSORTNOCASE = $(SORT) $(1) > $(1).tmp $(NL) \ |
|
$(SORT) $(2) > $(2).tmp $(NL) \ |
|
$(DIFF) -i $(1).tmp $(2).tmp $(NL) \ |
|
$(RM) -f $(1).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)" |
|
|
|
################################################################################ |
|
## |
|
## Attempt to include a platform configuration file: |
|
## |
|
################################################################################ |
|
|
|
PLATFORM_FILE = $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
ifneq ($(wildcard $(PLATFORM_FILE)), ) |
|
include $(PLATFORM_FILE) |
|
else |
|
$(error PEGASUS_PLATFORM environment variable must be set to one of\ |
|
the following:$(VALID_PLATFORMS)) |
|
endif |
|
|
################################################################################ | ################################################################################ |
## | ## |
## Default installation paths |
## Set up any platform independent compile conditionals by adding them to |
|
## precreated FLAGS parameter. |
|
## Assumes that the basic flags have been setup in FLAGS. |
|
## Assumes that compile time flags are controlled with -D CLI option. |
## | ## |
################################################################################ | ################################################################################ |
| |
## Default values to install files when 'make install' is invoked. |
|
| |
ifndef PREFIX |
################################################################################ |
PREFIX=$(HOME_DIR)/install |
## |
|
## 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 | endif |
| |
ifndef SYSCONF_PREFIX |
############################################################################## |
SYSCONF_PREFIX=$(PREFIX)/etc |
## |
|
## 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 | endif |
| |
ifndef LOCAL_STATE_PREFIX |
|
LOCAL_STATE_PREFIX=$(PREFIX)/var/ |
# Allow PEGASUS_ASSERT statements to be disabled. |
|
ifdef PEGASUS_NOASSERTS |
|
DEFINES += -DNDEBUG |
endif | endif |
| |
ifndef DEST_LIB_DIR |
# do not compile trace code. sometimes it causes problems debugging |
DEST_LIB_DIR = $(PREFIX)/lib |
ifdef PEGASUS_REMOVE_TRACE |
|
DEFINES += -DPEGASUS_REMOVE_TRACE |
endif | endif |
| |
ifndef DEST_BIN_DIR |
# PEP 161 |
DEST_BIN_DIR = $(PREFIX)/bin |
# Control whether utf-8 filenames are supported by the repository |
|
ifdef PEGASUS_SUPPORT_UTF8_FILENAME |
|
DEFINES += -DPEGASUS_SUPPORT_UTF8_FILENAME |
|
|
|
# Control whether utf-8 filenames in the repository are escaped |
|
ifdef PEGASUS_REPOSITORY_ESCAPE_UTF8 |
|
DEFINES += -DPEGASUS_REPOSITORY_ESCAPE_UTF8 |
|
endif |
endif | endif |
| |
ifndef DEST_SBIN_DIR |
# |
DEST_SBIN_DIR = $(PREFIX)/sbin |
# PEP 142 |
|
# The following flag need to be set to enable |
|
# user group authorization functionality. |
|
# |
|
ifdef PEGASUS_ENABLE_USERGROUP_AUTHORIZATION |
|
DEFINES += -DPEGASUS_ENABLE_USERGROUP_AUTHORIZATION |
endif | endif |
| |
ifndef DEST_ETC_DIR |
# |
DEST_ETC_DIR = $(SYSCONF_PREFIX)/pegasus |
# PEP 193 |
|
# The following flag need to be set to disable |
|
# CQL in indication subscriptions |
|
# |
|
ifdef PEGASUS_DISABLE_CQL |
|
DEFINES += -DPEGASUS_DISABLE_CQL |
endif | endif |
| |
ifndef DEST_MAN_DIR |
# |
DEST_MAN_DIR = $(PREFIX)/man |
# PEP 186 |
|
# Allow override of product name/version/status. A file |
|
# pegasus/src/Pegasus/Common/ProductVersion.h must exist when this |
|
# flag is defined. |
|
# |
|
ifdef PEGASUS_OVERRIDE_PRODUCT_ID |
|
DEFINES += -DPEGASUS_OVERRIDE_PRODUCT_ID |
endif | endif |
| |
ifndef DEST_VAR_DIR |
# |
DEST_VAR_DIR = $(LOCAL_STATE_PREFIX) |
# PEP 72 |
|
# Allow Out-of-Process Providers to be disabled by default |
|
# |
|
ifdef PEGASUS_DEFAULT_ENABLE_OOP |
|
ifeq ($(PEGASUS_DEFAULT_ENABLE_OOP),true) |
|
DEFINES += -DPEGASUS_DEFAULT_ENABLE_OOP |
|
else |
|
ifneq ($(PEGASUS_DEFAULT_ENABLE_OOP),false) |
|
$(error PEGASUS_DEFAULT_ENABLE_OOP ($(PEGASUS_DEFAULT_ENABLE_OOP)) invalid, must be true or false) |
|
endif |
|
endif |
endif | endif |
| |
################################################################################ |
# |
## |
# Allow to define the default value for the Provider User Context |
## Attempt to include a platform configuration file: |
# property as REQUESTOR. |
## |
# If is set and true use REQUESTOR |
################################################################################ |
# If is not set or false use PRIVILEGED |
|
# |
|
ifdef PEGASUS_DEFAULT_USERCTXT_REQUESTOR |
|
ifeq ($(PEGASUS_DEFAULT_USERCTXT_REQUESTOR),true) |
|
DEFINES += -DPEGASUS_DEFAULT_USERCTXT_REQUESTOR |
|
else |
|
ifneq ($(PEGASUS_DEFAULT_USERCTXT_REQUESTOR),false) |
|
$(error PEGASUS_DEFAULT_USERCTXT_REQUESTOR ($(PEGASUS_DEFAULT_USERCTXT_REQUESTOR)) invalid, must be true or false) |
|
endif |
|
endif |
|
endif |
| |
ifeq ($(PEGASUS_PLATFORM),WIN32_IX86_MSVC) |
# |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
# PEP 197 |
FOUND = true |
# Allow the Provider User Context feature to be disabled. |
|
# |
|
ifdef PEGASUS_DISABLE_PROV_USERCTXT |
|
DEFINES += -DPEGASUS_DISABLE_PROV_USERCTXT |
|
else |
|
ifdef PEGASUS_DISABLE_PROV_USERCTXT_REQUESTOR |
|
DEFINES += -DPEGASUS_DISABLE_PROV_USERCTXT_REQUESTOR |
|
endif |
|
ifdef PEGASUS_DISABLE_PROV_USERCTXT_DESIGNATED |
|
DEFINES += -DPEGASUS_DISABLE_PROV_USERCTXT_DESIGNATED |
|
endif |
|
ifdef PEGASUS_DISABLE_PROV_USERCTXT_PRIVILEGED |
|
DEFINES += -DPEGASUS_DISABLE_PROV_USERCTXT_PRIVILEGED |
|
endif |
|
ifdef PEGASUS_DISABLE_PROV_USERCTXT_CIMSERVER |
|
DEFINES += -DPEGASUS_DISABLE_PROV_USERCTXT_CIMSERVER |
|
endif |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),LINUX_IX86_GNU) |
# Bug 2147 |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
# Allow local domain socket usage to be disabled. |
FOUND = true |
ifdef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET |
|
DEFINES += -DPEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),LINUX_PPC_GNU) |
# PEP 211 |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
# Controls object normalization support. |
FOUND = true |
ifdef PEGASUS_ENABLE_OBJECT_NORMALIZATION |
|
DEFINES += -DPEGASUS_ENABLE_OBJECT_NORMALIZATION |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),LINUX_IA64_GNU) |
# PEP 233 |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
# Controls support for EmbeddedInstance properties |
FOUND = true |
# and parameters |
|
ifndef PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
PEGASUS_EMBEDDED_INSTANCE_SUPPORT = true |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),LINUX_ZSERIES_GNU) |
ifeq ($(PEGASUS_EMBEDDED_INSTANCE_SUPPORT), true) |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
DEFINES += -DPEGASUS_EMBEDDED_INSTANCE_SUPPORT |
FOUND = true |
else |
|
ifneq ($(PEGASUS_EMBEDDED_INSTANCE_SUPPORT), false) |
|
$(error PEGASUS_EMBEDDED_INSTANCE_SUPPORT ($(PEGASUS_EMBEDDED_INSTANCE_SUPPORT)) invalid, must be true or false) |
endif | endif |
|
endif |
|
|
| |
ifeq ($(PEGASUS_PLATFORM),AIX_RS_IBMCXX) |
# Allow ExecQuery functionality to be enabled |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
ifndef PEGASUS_ENABLE_EXECQUERY |
FOUND = true |
DEFINES += -DPEGASUS_DISABLE_EXECQUERY |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC) |
# Allow System Log Handler to be enabled |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
ifdef PEGASUS_ENABLE_SYSTEM_LOG_HANDLER |
FOUND = true |
DEFINES += -DPEGASUS_ENABLE_SYSTEM_LOG_HANDLER |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC) |
# Allow Email Handler to be enabled |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
ifdef PEGASUS_ENABLE_EMAIL_HANDLER |
FOUND = true |
DEFINES += -DPEGASUS_ENABLE_EMAIL_HANDLER |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),TRU64_ALPHA_DECCXX) |
# Allow qualifiers to be disabled for instance operations |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
ifdef PEGASUS_DISABLE_INSTANCE_QUALIFIERS |
FOUND = true |
DEFINES += -DPEGASUS_DISABLE_INSTANCE_QUALIFIERS |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),SOLARIS_SPARC_GNU) |
# Allow repository instance filtering to be disabled |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
ifdef PEGASUS_ENABLE_REPOSITORY_INSTANCE_FILTER |
FOUND = true |
ifeq ($(PEGASUS_ENABLE_REPOSITORY_INSTANCE_FILTER), false) |
|
DEFINES += -DPEGASUS_DISABLE_REPOSITORY_INSTANCE_FILTER |
|
else |
|
ifneq ($(PEGASUS_ENABLE_REPOSITORY_INSTANCE_FILTER), true) |
|
$(error PEGASUS_ENABLE_REPOSITORY_INSTANCE_FILTER ($(PEGASUS_ENABLE_REPOSITORY_INSTANCE_FILTER)) invalid, must be true or false) |
|
endif |
|
endif |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),SOLARIS_SPARC_CC) |
# Controls snmp indication handler to use NET-SNMP to deliver trap |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
ifdef PEGASUS_USE_NET_SNMP |
FOUND = true |
DEFINES += -DPEGASUS_USE_NET_SNMP |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),ZOS_ZSERIES_IBM) |
ifdef PEGASUS_HAS_SSL |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
ifndef OPENSSL_BIN |
FOUND = true |
OPENSSL_BIN = $(OPENSSL_HOME)/bin |
|
endif |
|
ifndef OPENSSL_COMMAND |
|
OPENSSL_COMMAND = $(OPENSSL_BIN)/openssl |
|
endif |
|
ifndef OPENSSL_SET_SERIAL_SUPPORTED |
|
ifneq (, $(findstring 0.9.6, $(shell $(OPENSSL_COMMAND) version))) |
|
OPENSSL_SET_SERIAL_SUPPORTED = false |
|
else |
|
OPENSSL_SET_SERIAL_SUPPORTED = true |
|
endif |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),NSK_NONSTOP_NMCPLUS) |
# Enable CRL verification |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
ifndef PEGASUS_ENABLE_SSL_CRL_VERIFICATION |
FOUND = true |
PEGASUS_ENABLE_SSL_CRL_VERIFICATION = true |
endif | endif |
| |
ifeq ($(PEGASUS_PLATFORM),DARWIN_PPC_GNU) |
# Check for Enable SSL CRL verification |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
ifdef PEGASUS_ENABLE_SSL_CRL_VERIFICATION |
FOUND = true |
ifeq ($(PEGASUS_ENABLE_SSL_CRL_VERIFICATION), true) |
|
DEFINES += -DPEGASUS_ENABLE_SSL_CRL_VERIFICATION |
|
else |
|
ifneq ($(PEGASUS_ENABLE_SSL_CRL_VERIFICATION), false) |
|
$(error PEGASUS_ENABLE_SSL_CRL_VERIFICATION\ |
|
($(PEGASUS_ENABLE_SSL_CRL_VERIFICATION)) invalid, \ |
|
must be true or false) |
|
endif |
|
endif |
|
endif |
endif | endif |
| |
ifneq ($(FOUND),true) |
# |
ERROR = pegasus_unknown_platform |
# PEP 258 |
pegasus_unknown_platform: |
# Allow Audit Logger to be disabled |
@ echo PEGASUS_PLATFORM environment variable must be set to one of\ |
# |
the following: $(VALID_PLATFORMS) |
ifdef PEGASUS_DISABLE_AUDIT_LOGGER |
@ exit 1 |
ifeq ($(PEGASUS_DISABLE_AUDIT_LOGGER),true) |
|
DEFINES += -DPEGASUS_DISABLE_AUDIT_LOGGER |
|
else |
|
ifneq ($(PEGASUS_DISABLE_AUDIT_LOGGER),false) |
|
$(error PEGASUS_DISABLE_AUDIT_LOGGER ($(PEGASUS_DISABLE_AUDIT_LOGGER)) \ |
|
invalid, must be true or false) |
|
endif |
|
endif |
endif | endif |
| |
################################################################################ |
# |
## |
# PEGASUS_ENABLE_SLP and PEGASUS_DISABLE_SLP |
## Default installation macros |
# |
## |
# PEGASUS_DISABLE_SLP has been depracated. New use model is: |
################################################################################ |
# |
|
# Use PEGASUS_ENABLE_SLP=true to enable compilation of SLP functions. |
|
# |
|
# Use PEGASUS_ENABLE_SLP=false to disable compilation of SLP functions. |
|
# |
|
# 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 |
|
# the variable PEGASUS_ENABLE_SLP. |
|
# |
|
# |
| |
## INSTALL_LIB creates the destination directory if missing, |
ifdef PEGASUS_ENABLE_SLP |
## copies the library and generates the symbolic link. |
ifdef PEGASUS_DISABLE_SLP |
|
$(error Conflicting defines PEGASUS_ENABLE_SLP and PEGASUS_DISABLE_SLP both set) |
|
endif |
|
endif |
|
|
|
ifdef PEGASUS_DISABLE_SLP |
|
$(error PEGASUS_DISABLE_SLP has been deprecated. Please use PEGASUS_ENABLE_SLP=[true/false] ) |
|
|
|
PEGASUS_ENABLE_SLP=false |
| |
ifndef INSTALL_LIBRARY |
|
## These macros are also defined in the Platform_<*>.mak files. |
|
INSTALL_LIBRARY = $(MKDIRHIER) $(DEST_LIB_DIR); $(COPY) $(FULL_LIB) $(DEST_LIB_DIR) |
|
endif | endif |
| |
## INSTALL_PROGRAM creates the destination directory if missing and |
ifdef PEGASUS_ENABLE_SLP |
## copies the file. |
ifeq ($(PEGASUS_ENABLE_SLP),true) |
ifndef INSTALL_PROGRAM |
DEFINES += -DPEGASUS_ENABLE_SLP |
INSTALL_PROGRAM = $(MKDIRHIER) $(DEST_BIN_DIR); $(COPY) $(FULL_PROGRAM) $(DEST_BIN_DIR) |
else |
|
ifneq ($(PEGASUS_ENABLE_SLP),false) |
|
$(error PEGASUS_ENABLE_SLP ($(PEGASUS_ENABLE_SLP)) invalid, must be true or false) |
|
endif |
endif | endif |
## INSTALL_PROGRAM creates the destination directory if missing and |
|
## copies the file. |
|
ifndef INSTALL_SBIN_PROGRAM |
|
INSTALL_SBIN_PROGRAM = $(MKDIRHIER) $(DEST_SBIN_DIR); $(COPY) $(FULL_PROGRAM) $(DEST_SBIN_DIR) |
|
endif | endif |
## The rest of the macros for DEST_MAN_DIR, DEST_VAR_DIR, etc. are not provided in this file. |
|
| |
################################################################################ |
|
## |
|
## Set up any platform independent compile conditionals by adding them to |
|
## precreated FLAGS parameter. |
|
## Assumes that the basic flags have been setup in FLAGS. |
|
## Assumes that compile time flags are controlled with -D CLI option. |
|
## |
|
################################################################################ |
|
| |
# Setup the conditional compile for client displays. |
############################################################################ |
|
# |
|
# PEGASUS_USE_OPENSLP |
|
# |
|
# Environment variable to set openslp as SLP environment to use |
|
# for SLP Directory and User Agents. |
|
# |
|
# Allows enabling use of openslp interfaces for slp instead of the |
|
# internal pegasus slp agent. Note that this does not disable the |
|
# compilation of the internal agent code, etc. However, it assumes |
|
# openslp is installed on the platform and changes the interfaces |
|
# to match this. At this moment, this is a change specifically for |
|
# adaptec but we expect to generalize it to provide openslp as a |
|
# generalized alternative to ldapslp. |
|
# to use this. To set this function up, |
|
# |
|
# Use this variable in conjunction with PEGASUS_OPENSLP_HOME |
|
# to enable OpenSlp as the slp implementation. |
|
# |
|
# NOTE that it has no affect if the PEGASUS_ENABLE_SLP etc. flags are not set. |
# | # |
ifdef PEGASUS_CLIENT_TRACE_ENABLE |
|
DEFINES+= -DPEGASUS_CLIENT_TRACE_ENABLE |
|
endif |
|
| |
# do not compile trace code. sometimes it causes problems debugging |
ifdef PEGASUS_USE_OPENSLP |
ifdef PEGASUS_REMOVE_TRACE |
ifeq ($(PEGASUS_ENABLE_SLP),true) |
DEFINES+= -DPEGASUS_REMOVE_TRACE |
DEFINES += -DPEGASUS_USE_OPENSLP |
|
else |
|
$(error PEGASUS_USE_OPENSLP defined but PEGASUS_ENABLE_SLP is not true. Please correct this inconsistency) |
|
endif |
endif | endif |
| |
# PEP 123 use monitor2 (the default) or not |
# PEP 267 |
#ifdef PEGASUS_USE_23HTTPMONITOR_SERVER |
# SLP reregistration support. |
DEFINES+= -DPEGASUS_USE_23HTTPMONITOR_SERVER |
# PEGASUS_SLP_REG_TIMEOUT is defined as the SLP registration timeout |
#endif |
# interval, in minutes. |
|
ifdef PEGASUS_SLP_REG_TIMEOUT |
#BUG 1170 Monitor2 Client Workaround |
ifeq ($(PEGASUS_ENABLE_SLP),true) |
#ifdef PEGASUS_USE_23HTTPMONITOR_CLIENT |
DEFINES += -DPEGASUS_SLP_REG_TIMEOUT=$(PEGASUS_SLP_REG_TIMEOUT) |
DEFINES+= -DPEGASUS_USE_23HTTPMONITOR_CLIENT |
else |
#endif |
$(error PEGASUS_SLP_REG_TIMEOUT defined but PEGASUS_ENABLE_SLP is not true. Please correct this inconsistency) |
|
|
# PEP 161 |
|
# Control whether utf-8 filenames are supported by the repository |
|
ifdef PEGASUS_SUPPORT_UTF8_FILENAME |
|
DEFINES+= -DPEGASUS_SUPPORT_UTF8_FILENAME |
|
|
|
# Control whether utf-8 filenames in the repository are escaped |
|
ifdef PEGASUS_REPOSITORY_ESCAPE_UTF8 |
|
DEFINES+= -DPEGASUS_REPOSITORY_ESCAPE_UTF8 |
|
endif | endif |
endif | endif |
| |
|
############################################################################ |
# | # |
# PEP 142 |
# PEGASUS_OPENSLP_HOME |
# The following flag need to be set to enable |
|
# user group authorization functionality. |
|
# | # |
ifdef PEGASUS_ENABLE_USERGROUP_AUTHORIZATION |
# Environment variable to set home location for OpenSLP include and library |
DEFINES += -DPEGASUS_ENABLE_USERGROUP_AUTHORIZATION |
# files if they are located somewhere other than /usr/include and /usr/lib. |
|
# |
|
# PEGASUS_USE_OPENSLP must also be defined for this environment variable |
|
# to have any effect. |
|
# |
|
# This is the directory level within which both the include and lib |
|
# directories holding the OpenSLP files will be found. |
|
# |
|
# EG: If the are located in /opt/OpenSLP/include and /opt/OpenSLP/lib |
|
# then this environment variable should be set to /opt/OpenSLP. |
|
# |
|
|
|
|
|
# |
|
# Enable this flag to allow the handshake to continue regardless of verification result |
|
# |
|
ifdef PEGASUS_OVERRIDE_SSL_CERT_VERIFICATION_RESULT |
|
DEFINES += -DPEGASUS_OVERRIDE_SSL_CERT_VERIFICATION_RESULT |
endif | endif |
| |
|
# set PEGASUS_DEBUG into the DEFINES if it exists. |
|
# Note that this flag is the general separator between |
|
# debug compiles and non-debug compiles and controls both |
|
# the use of any debug options on compilers and linkers |
|
# and general debug support that we want to be turned on in |
|
# debug mode. |
|
ifdef PEGASUS_DEBUG |
|
DEFINES += -DPEGASUS_DEBUG |
| |
# setup function to enable SLP functions in the Pegasus standard compile |
# Indications debugging options |
# Set the environment varaible PEGASUS_ENABLE_SLP to enable SLP code. |
ifdef PEGASUS_INDICATION_PERFINST |
ifdef PEGASUS_ENABLE_SLP |
DEFINES += -DPEGASUS_INDICATION_PERFINST |
DEFINES+= -DPEGASUS_ENABLE_SLP |
endif |
|
|
|
ifdef PEGASUS_INDICATION_HASHTRACE |
|
DEFINES += -DPEGASUS_INDICATION_HASHTRACE |
|
endif |
|
|
|
# Setup the conditional compile for client displays. |
|
ifdef PEGASUS_CLIENT_TRACE_ENABLE |
|
DEFINES += -DPEGASUS_CLIENT_TRACE_ENABLE |
|
endif |
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 |
|
ifdef PEGASUS_DISABLE_PERFINST |
|
DEFINES += -DPEGASUS_DISABLE_PERFINST |
|
endif |
|
|
|
# Set compile flag to control compilation of SNIA Extensions |
|
ifdef PEGASUS_SNIA_EXTENSIONS |
|
DEFINES += -DPEGASUS_SNIA_EXTENSIONS |
|
endif |
|
|
|
ifdef PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER |
|
ifeq ($(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER), true) |
|
DEFINES += -DPEGASUS_ENABLE_CMPI_PROVIDER_MANAGER |
|
else |
|
ifneq ($(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER), false) |
|
$(error PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER \ |
|
($(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER)) invalid, \ |
|
must be true or false) |
|
endif |
|
endif |
|
endif |
|
|
|
ifdef PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER |
|
ifeq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), true) |
|
DEFINES += -DPEGASUS_ENABLE_JMPI_PROVIDER_MANAGER |
|
else |
|
ifneq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), false) |
|
$(error PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER \ |
|
($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER)) invalid, \ |
|
must be true or false) |
|
endif |
|
endif |
|
endif |
|
|
|
# Allow remote CMPI functionality to be enabled |
|
ifdef PEGASUS_ENABLE_REMOTE_CMPI |
|
DEFINES += -DPEGASUS_ENABLE_REMOTE_CMPI |
|
endif |
| |
############################################################ | ############################################################ |
# | # |
|
|
# | # |
RMREPOSITORY = $(RMDIRHIER) | RMREPOSITORY = $(RMDIRHIER) |
| |
|
ifdef PEGASUS_USE_RELEASE_CONFIG_OPTIONS |
|
DEFINES += -DPEGASUS_USE_RELEASE_CONFIG_OPTIONS |
|
endif |
| |
|
ifdef PEGASUS_USE_RELEASE_DIRS |
|
DEFINES += -DPEGASUS_USE_RELEASE_DIRS |
|
endif |
| |
|
ifdef PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS |
|
DEFINES += -DPEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS |
|
endif |
|
|
|
# Unless otherwise specified, Pegasus libraries go in $(PEGASUS_HOME)/lib |
|
ifndef PEGASUS_DEST_LIB_DIR |
|
PEGASUS_DEST_LIB_DIR = lib |
|
endif |
| |
|
ifeq ($(OS),VMS) |
|
DEFINES += -DPEGASUS_DEST_LIB_DIR="""$(PEGASUS_DEST_LIB_DIR)""" |
|
else |
|
DEFINES += -DPEGASUS_DEST_LIB_DIR=\"$(PEGASUS_DEST_LIB_DIR)\" |
|
endif |
|
|
|
################################################################################ |
|
## |
|
## 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. |
|
## These flags are added to the compile/link commands. |
|
## |
|
################################################################################ |
|
|
|
ifdef PEGASUS_EXTRA_CXX_FLAGS |
|
EXTRA_CXX_FLAGS = $(PEGASUS_EXTRA_CXX_FLAGS) |
|
endif |
|
|
|
ifdef PEGASUS_EXTRA_C_FLAGS |
|
EXTRA_C_FLAGS = $(PEGASUS_EXTRA_C_FLAGS) |
|
endif |
|
|
|
ifdef PEGASUS_EXTRA_LINK_FLAGS |
|
EXTRA_LINK_FLAGS = $(PEGASUS_EXTRA_LINK_FLAGS) |
|
endif |
|
|
|
##============================================================================== |
|
## |
|
## By definining PEGASUS_USE_STATIC_LIBRARIES in the environment and STATIC |
|
## in the Makefile, a static library is produced rather than a shared one. |
|
## PEGASUS_USE_STATIC_LIBRARIES should be "true" or "false". |
|
## |
|
##============================================================================== |
|
|
|
ifdef PEGASUS_USE_STATIC_LIBRARIES |
|
ifeq ($(PEGASUS_USE_STATIC_LIBRARIES),true) |
|
else |
|
ifneq ($(PEGASUS_USE_STATIC_LIBRARIES),false) |
|
$(error PEGASUS_USE_STATIC_LIBRARIES ($(PEGASUS_USE_STATIC_LIBRARIES)) invalid, must be true or false) |
|
endif |
|
endif |
|
endif |
|
|
|
|
|
ifndef PEGASUS_JAVA_CLASSPATH_DELIMITER |
|
PEGASUS_JAVA_CLASSPATH_DELIMITER = : |
|
endif |
|
|
|
ifndef PEGASUS_JVM |
|
PEGASUS_JVM = sun |
|
endif |
|
ifeq ($(PEGASUS_JVM),gcj) |
|
PEGASUS_JAVA_COMPILER = gcj -C |
|
PEGASUS_JAVA_JAR = fastjar |
|
PEGASUS_JAVA_INTERPRETER = gij |
|
else |
|
PEGASUS_JAVA_COMPILER = javac -target 1.4 -source 1.4 |
|
PEGASUS_JAVA_JAR = jar |
|
PEGASUS_JAVA_INTERPRETER = java |
|
endif |