version 1.128, 2006/07/25 19:40:50
|
version 1.210, 2013/05/28 12:34:23
|
|
|
#//%2006//////////////////////////////////////////////////////////////////////// |
#//%LICENSE//////////////////////////////////////////////////////////////// |
#// | #// |
#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
#// Licensed to The Open Group (TOG) under one or more contributor license |
#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
#// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with |
#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.; |
#// this work for additional information regarding copyright ownership. |
#// IBM Corp.; EMC Corporation, The Open Group. |
#// Each contributor licenses this file to you under the OpenPegasus Open |
#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; |
#// Source License; you may not use this file except in compliance with the |
#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
#// License. |
#// 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 |
#// Permission is hereby granted, free of charge, to any person obtaining a |
#// of this software and associated documentation files (the "Software"), to |
#// copy of this software and associated documentation files (the "Software"), |
#// deal in the Software without restriction, including without limitation the |
#// to deal in the Software without restriction, including without limitation |
#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
#// the rights to use, copy, modify, merge, publish, distribute, sublicense, |
#// sell copies of the Software, and to permit persons to whom the Software is |
#// and/or sell copies of the Software, and to permit persons to whom the |
#// furnished to do so, subject to the following conditions: |
#// Software is furnished to do so, subject to the following conditions: |
#// | #// |
#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN |
#// The above copyright notice and this permission notice shall be included |
#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED |
#// in all copies or substantial portions of the Software. |
#// "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. |
|
#// | #// |
#//============================================================================== |
#// 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 |
|
|
$(error PEGASUS_ROOT environment variable undefined) | $(error PEGASUS_ROOT environment variable undefined) |
endif | endif |
| |
# l10n |
|
ifdef ICU_ROOT |
|
ICUROOT = $(subst \,/,$(ICU_ROOT)) |
|
endif |
|
|
|
ifdef PEGASUS_TMP | ifdef PEGASUS_TMP |
TMP_DIR = $(subst \,/,$(PEGASUS_TMP)) | TMP_DIR = $(subst \,/,$(PEGASUS_TMP)) |
else | else |
|
|
GCC_VERSION = | GCC_VERSION = |
endif | endif |
| |
|
############################################################################# |
|
## As a general rule, the directory structure for the object files mirrors |
|
## the directory structure of the source files. E.g., |
|
## $PEGASUS_HOME/obj/Pegasus/Common contains the object files for the |
|
## source files in $PEGASUS_ROOT/src/Pegasus/Common. Each source-level |
|
## Makefile includes a DIR value that defines this common path (e.g., |
|
## Pegasus/Common). In a small number of cases, source files are built |
|
## multiple times with difference compile options. |
|
## To handle this situation, the ALT_OBJ_DIR variable can be used to |
|
## specify an alternative object directory for use in building the |
|
## objects defined in the Makefile. |
|
## |
|
|
|
ifndef ALT_OBJ_DIR |
|
ifeq ($(PEGASUS_INTERNAL_ENABLE_32BIT_PROVIDER_SUPPORT),true) |
|
OBJ_DIR = $(HOME_DIR)/obj32/$(DIR) |
|
else |
OBJ_DIR = $(HOME_DIR)/obj/$(DIR) | OBJ_DIR = $(HOME_DIR)/obj/$(DIR) |
|
endif |
|
else |
|
ifeq ($(PEGASUS_INTERNAL_ENABLE_32BIT_PROVIDER_SUPPORT),true) |
|
OBJ_DIR = $(HOME_DIR)/obj/$(ALT_OBJ_DIR)32 |
|
else |
|
OBJ_DIR = $(HOME_DIR)/obj/$(ALT_OBJ_DIR) |
|
endif |
|
endif |
|
|
|
############################################################################# |
|
|
|
ifdef PEGASUS_TEST_VALGRIND_LOG_DIR |
|
BIN_DIR = $(HOME_DIR)/bin_exe |
|
VALGRIND_SCRIPT_BIN_DIR = $(HOME_DIR)/bin |
|
else |
BIN_DIR = $(HOME_DIR)/bin | BIN_DIR = $(HOME_DIR)/bin |
|
endif |
|
|
|
ifeq ($(PEGASUS_INTERNAL_ENABLE_32BIT_PROVIDER_SUPPORT),true) |
|
LIB_DIR = $(HOME_DIR)/lib32 |
|
else |
LIB_DIR = $(HOME_DIR)/lib | LIB_DIR = $(HOME_DIR)/lib |
|
endif |
| |
# l10n | # l10n |
# define the location for the compiled messages | # define the location for the compiled messages |
|
|
# option of the mof compiler needs to be set. | # option of the mof compiler needs to be set. |
# ***** | # ***** |
| |
ifdef PEGASUS_CIM_SCHEMA |
## Sets default CIM Schema if PEGASUS_CIM_SCHEMA not defined. |
|
## NOTE: If the default below is changed, please update the definition |
|
## of default for this variable in pegasus/doc/BuildAndReleaseOptions.html |
|
ifndef PEGASUS_CIM_SCHEMA |
|
PEGASUS_CIM_SCHEMA=CIM236 |
|
endif |
|
|
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),) | 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= | CIM_SCHEMA_VER= |
else | else |
CIM_SCHEMA_VER=$(patsubst CIM%,%,$(patsubst CIMPrelim%,%,$(PEGASUS_CIM_SCHEMA))) | CIM_SCHEMA_VER=$(patsubst CIM%,%,$(patsubst CIMPrelim%,%,$(PEGASUS_CIM_SCHEMA))) |
endif | endif |
else |
|
CIM_SCHEMA_DIR=$(PEGASUS_ROOT)/Schemas/CIM29 |
|
CIM_SCHEMA_VER= |
|
endif |
|
| |
ifneq (, $(findstring Prelim, $(CIM_SCHEMA_DIR))) | ifneq (, $(findstring Prelim, $(CIM_SCHEMA_DIR))) |
ALLOW_EXPERIMENTAL = -aE | ALLOW_EXPERIMENTAL = -aE |
|
|
## | ## |
################################################################################ | ################################################################################ |
| |
|
############################################################################ |
|
# OpenPegasus relies on the existence of an external set of libraries to |
|
# support localized messages. Today, the only supported package is |
|
# the International Components for Unicode (ICU) OSS project, |
|
# http://oss.software.ibm.com/icu. If PEGASUS_HAS_ICU is true, |
|
# OpenPegasus will use the ICU library. |
|
# |
|
# ICU_INSTALL points to the directory containing the ICU installation. |
|
# If set, the OpenPegasus will use this variable to locate the ICU |
|
# include files and libraries. If not set, the ICU libraries are expected |
|
# to be installed in a directory that is searched by default. |
|
# |
|
# If PEGASUS_HAS_ICU is not set and ICU_INSTALL is set, the value of |
|
# PEGASUS_HAS_ICU will be set to true. |
|
############################################################################ |
|
|
|
ifdef PEGASUS_HAS_ICU |
|
ifneq ($(PEGASUS_HAS_ICU),true) |
|
ifneq ($(PEGASUS_HAS_ICU),false) |
|
$(error PEGASUS_HAS_ICU ($(PEGASUS_HAS_ICU)) \ |
|
invalid, must be true or false) |
|
endif |
|
endif |
|
else |
|
ifdef ICU_INSTALL |
|
PEGASUS_HAS_ICU = true |
|
endif |
|
endif |
|
|
|
ifdef PEGASUS_HAS_MESSAGES |
|
DEFINES += -DPEGASUS_HAS_MESSAGES |
|
|
|
ifneq ($(PEGASUS_HAS_ICU),true) |
|
$(error Support for localized messages in OpenPegasus \ |
|
requires PEGASUS_HAS_ICU to be true) |
|
endif |
|
endif |
|
|
|
|
|
ifeq ($(PEGASUS_HAS_ICU),true) |
|
DEFINES += -DPEGASUS_HAS_ICU |
|
|
|
#################################### |
|
## |
|
## ICU_ROOT_BUNDLE_LANG if set, specifies the language that the root |
|
## resource bundle will be generated from. Defaults to _en if not set. |
|
## If set, for any directory containing resource bundles, there must |
|
## exist a file name: package($ICU_ROOT_BUNDLE_LANG).txt or the make |
|
## messages target will fail. |
|
## |
|
#################################### |
|
|
|
ifdef ICU_ROOT_BUNDLE_LANG |
|
MSG_ROOT_SOURCE = $(ICU_ROOT_BUNDLE_LANG) |
|
else |
|
MSG_ROOT_SOURCE = _en |
|
endif |
|
|
|
ifdef ICU_INSTALL |
|
MSG_COMPILE = $(ICU_INSTALL)/bin/genrb |
|
else |
|
MSG_COMPILE = genrb |
|
endif |
|
|
|
MSG_FLAGS = |
|
MSG_SOURCE_EXT = .txt |
|
MSG_COMPILE_EXT = .res |
|
|
|
ifeq ($(OS),linux) |
|
CNV_ROOT_CMD = $(BIN_DIR)/cnv2rootbundle |
|
else |
|
CNV_ROOT_CMD = cnv2rootbundle |
|
endif |
|
|
|
# The library path option is needed on all link commands with some ICU |
|
# builds, because internal ICU library dependencies are resolved |
|
# dynamically. |
|
ifdef ICU_INSTALL |
|
ifeq ($(OS),zos) |
|
# On z/OS, the -L option must appear before the -o option and |
|
# the object (.o) and sidedeck (.x) files in the link command. |
|
FLAGS += -L$(ICU_INSTALL)/lib |
|
PR_FLAGS += -L$(ICU_INSTALL)/lib |
|
else |
|
EXTRA_LIBRARIES += -L$(ICU_INSTALL)/lib |
|
endif |
|
endif |
|
|
|
# The ICU include path and library dependencies are restricted to |
|
# where they are specifically needed. |
|
ifeq ($(HAS_ICU_DEPENDENCY),true) |
|
ifdef ICU_INSTALL |
|
SYS_INCLUDES += -I$(ICU_INSTALL)/include |
|
endif |
|
|
|
ifeq ($(OS),windows) |
|
EXTRA_LIBRARIES += \ |
|
$(ICU_INSTALL)/lib/icuuc.lib \ |
|
$(ICU_INSTALL)/lib/icuin.lib \ |
|
$(ICU_INSTALL)/lib/icudt.lib |
|
else |
|
ifeq ($(OS),zos) |
|
EXTRA_LIBRARIES += \ |
|
$(ICU_INSTALL)/lib/libicui18n$(DYNLIB_SUFFIX) \ |
|
$(ICU_INSTALL)/lib/libicuuc$(DYNLIB_SUFFIX) |
|
else |
|
EXTRA_LIBRARIES += -licuuc -licui18n |
|
ifeq ($(OS),linux) |
|
EXTRA_LIBRARIES += -licudata |
|
endif |
|
endif |
|
endif |
|
endif |
|
endif |
| |
################################################################################ | ################################################################################ |
## | ## |
|
|
DEFINES += -DMAX_THREADS_PER_SVC_QUEUE=$(PEGASUS_MAX_THREADS_PER_SVC_QUEUE) | DEFINES += -DMAX_THREADS_PER_SVC_QUEUE=$(PEGASUS_MAX_THREADS_PER_SVC_QUEUE) |
endif | endif |
| |
############################################################################## |
# Allow PEGASUS_ASSERT statements to be disabled. |
## |
ifdef PEGASUS_NOASSERTS |
## PEGASUS_INDICATIONS_Q_THRESHOLD |
DEFINES += -DNDEBUG -DPEGASUS_NOASSERTS |
## |
endif |
## 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 |
# do not compile trace code. sometimes it causes problems debugging |
DEFINES += -DPEGASUS_INDICATIONS_Q_THRESHOLD=$(PEGASUS_INDICATIONS_Q_THRESHOLD) |
ifdef PEGASUS_REMOVE_TRACE |
|
DEFINES += -DPEGASUS_REMOVE_TRACE |
endif | endif |
| |
| |
# Setup the conditional compile for client displays. |
ifdef PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT |
# |
PLATFORM_FILE_32 = $(ROOT)/mak/platform_$(PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT).mak |
ifdef PEGASUS_CLIENT_TRACE_ENABLE |
ifeq ($(wildcard $(PLATFORM_FILE_32)), ) |
DEFINES += -DPEGASUS_CLIENT_TRACE_ENABLE |
$(error PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT environment variable must be set to one of\ |
|
the following:$(VALID_PLATFORMS)) |
|
endif |
|
DEFINES += -DPEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT |
|
ifdef PEGASUS_PROVIDER_MANAGER_32BIT_LIB_DIR |
|
DEFINES += -DPEGASUS_PROVIDER_MANAGER_32BIT_LIB_DIR=\"$(PEGASUS_PROVIDER_MANAGER_32BIT_LIB_DIR)\" |
|
endif |
endif | endif |
| |
# Allow PEGASUS_ASSERT statements to be disabled. |
# PEP 315 |
ifdef PEGASUS_NOASSERTS |
# Control whether compile with or without method entertexit trace code. |
DEFINES += -DNDEBUG |
# A value other than 'true' or 'false' will cause a make error. |
|
ifdef PEGASUS_REMOVE_METHODTRACE |
|
ifeq ($(PEGASUS_REMOVE_METHODTRACE),true) |
|
DEFINES += -DPEGASUS_REMOVE_METHODTRACE |
|
else |
|
ifneq ($(PEGASUS_REMOVE_METHODTRACE),false) |
|
$(error PEGASUS_REMOVE_METHODTRACE ($(PEGASUS_REMOVE_METHODTRACE)) invalid, must be true or false) |
|
endif |
|
endif |
endif | endif |
| |
# do not compile trace code. sometimes it causes problems debugging |
# Control whether the class definitions in the repository contain elements |
ifdef PEGASUS_REMOVE_TRACE |
# propagated from superclass definitions. |
DEFINES += -DPEGASUS_REMOVE_TRACE |
|
|
ifndef PEGASUS_REPOSITORY_STORE_COMPLETE_CLASSES |
|
PEGASUS_REPOSITORY_STORE_COMPLETE_CLASSES = false |
|
endif |
|
|
|
ifeq ($(PEGASUS_REPOSITORY_STORE_COMPLETE_CLASSES),true) |
|
DEFINES += -DPEGASUS_REPOSITORY_STORE_COMPLETE_CLASSES |
|
else |
|
ifneq ($(PEGASUS_REPOSITORY_STORE_COMPLETE_CLASSES),false) |
|
$(error PEGASUS_REPOSITORY_STORE_COMPLETE_CLASSES ($(PEGASUS_REPOSITORY_STORE_COMPLETE_CLASSES)) invalid, must be true or false) |
|
endif |
|
endif |
|
|
|
# SQLite repository support |
|
|
|
ifndef PEGASUS_USE_SQLITE_REPOSITORY |
|
PEGASUS_USE_SQLITE_REPOSITORY = false |
|
endif |
|
|
|
ifeq ($(PEGASUS_USE_SQLITE_REPOSITORY),true) |
|
ifeq ($(PEGASUS_REPOSITORY_STORE_COMPLETE_CLASSES),true) |
|
$(error PEGASUS_REPOSITORY_STORE_COMPLETE_CLASSES may not be set to true when PEGASUS_USE_SQLITE_REPOSITORY is true) |
|
endif |
|
DEFINES += -DPEGASUS_USE_SQLITE_REPOSITORY |
|
else |
|
ifneq ($(PEGASUS_USE_SQLITE_REPOSITORY),false) |
|
$(error PEGASUS_USE_SQLITE_REPOSITORY ($(PEGASUS_USE_SQLITE_REPOSITORY)) invalid, must be true or false) |
|
endif |
endif | endif |
| |
# PEP 161 | # PEP 161 |
# Control whether utf-8 filenames are supported by the repository |
# Control whether utf-8 filenames are supported by the repository. |
|
# Note: These options only apply to the file-based repository, not SQLite. |
ifdef PEGASUS_SUPPORT_UTF8_FILENAME | ifdef PEGASUS_SUPPORT_UTF8_FILENAME |
DEFINES += -DPEGASUS_SUPPORT_UTF8_FILENAME | DEFINES += -DPEGASUS_SUPPORT_UTF8_FILENAME |
| |
|
|
DEFINES += -DPEGASUS_ENABLE_USERGROUP_AUTHORIZATION | DEFINES += -DPEGASUS_ENABLE_USERGROUP_AUTHORIZATION |
endif | endif |
| |
|
############################################################################ |
|
# |
|
# PEGASUS_ENABLE_CQL and PEGASUS_DISABLE_CQL |
|
# Set to enable CQL processor in indication subscriptions and query execution |
|
# PEGASUS_DISABLE_CQL (PEP 193) has been depracated. New use model is: |
# | # |
# PEP 193 |
# Use PEGASUS_ENABLE_CQL=true to enable compilation of CQL functions. |
# The following flag need to be set to disable |
|
# CQL in indication subscriptions |
|
# | # |
|
# Use PEGASUS_ENABLE_CQL=false to disable compilation of CQL functions. |
|
# |
|
# Default is PEGASUS_ENABLE_CQL=true if not defined external to config.mak |
|
# |
|
|
ifdef PEGASUS_DISABLE_CQL | ifdef PEGASUS_DISABLE_CQL |
DEFINES += -DPEGASUS_DISABLE_CQL |
$(error PEGASUS_DISABLE_CQL has been deprecated. Please use PEGASUS_ENABLE_CQL=[true/false]) |
endif | endif |
| |
|
ifndef PEGASUS_ENABLE_CQL |
|
# Default is true. CQL is enabled normally on all platforms unless specifically defined |
|
PEGASUS_ENABLE_CQL=true |
|
endif |
|
|
|
ifeq ($(PEGASUS_ENABLE_CQL),true) |
|
DEFINES += -DPEGASUS_ENABLE_CQL |
|
else |
|
ifneq ($(PEGASUS_ENABLE_CQL),false) |
|
$(error PEGASUS_ENABLE_CQL ($(PEGASUS_ENABLE_CQL)) invalid, must be true or false) |
|
endif |
|
endif |
|
|
|
############################################################################ |
# | # |
|
# PEGASUS_OVERRIDE_PRODUCT_ID |
# PEP 186 | # PEP 186 |
# Allow override of product name/version/status. A file | # Allow override of product name/version/status. A file |
# pegasus/src/Pegasus/Common/ProductVersion.h must exist when this | # pegasus/src/Pegasus/Common/ProductVersion.h must exist when this |
|
|
endif | endif |
| |
# | # |
|
# Allow to define the default value for the Provider User Context |
|
# 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 |
|
|
|
# |
# PEP 197 | # PEP 197 |
# Allow the Provider User Context feature to be disabled. | # Allow the Provider User Context feature to be disabled. |
# | # |
ifdef PEGASUS_DISABLE_PROV_USERCTXT | ifdef PEGASUS_DISABLE_PROV_USERCTXT |
DEFINES += -DPEGASUS_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 |
| |
# Bug 2147 | # Bug 2147 |
|
|
DEFINES += -DPEGASUS_ENABLE_OBJECT_NORMALIZATION | DEFINES += -DPEGASUS_ENABLE_OBJECT_NORMALIZATION |
endif | endif |
| |
# PEP 233 |
|
# Controls support for EmbeddedInstance properties |
|
# and parameters |
|
ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
ifeq ($(PEGASUS_EMBEDDED_INSTANCE_SUPPORT), true) |
|
DEFINES += -DPEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
else |
|
ifneq ($(PEGASUS_EMBEDDED_INSTANCE_SUPPORT), false) |
|
$(error PEGASUS_EMBEDDED_INSTANCE_SUPPORT ($(PEGASUS_EMBEDDED_INSTANCE_SUPPORT)) invalid, must be true or false) |
|
endif |
|
endif |
|
else |
|
DEFINES += -DPEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
endif |
|
|
|
# Allow ExecQuery functionality to be enabled | # Allow ExecQuery functionality to be enabled |
ifndef PEGASUS_ENABLE_EXECQUERY | ifndef PEGASUS_ENABLE_EXECQUERY |
DEFINES += -DPEGASUS_DISABLE_EXECQUERY | DEFINES += -DPEGASUS_DISABLE_EXECQUERY |
|
|
DEFINES += -DPEGASUS_USE_NET_SNMP | DEFINES += -DPEGASUS_USE_NET_SNMP |
endif | endif |
| |
|
# Controls snmp indication handler to use NET-SNMP V3 features. |
|
ifndef PEGASUS_ENABLE_NET_SNMPV3 |
|
ifdef PEGASUS_USE_NET_SNMP |
|
PEGASUS_ENABLE_NET_SNMPV3=true |
|
else |
|
PEGASUS_ENABLE_NET_SNMPV3=false |
|
endif |
|
endif |
|
|
|
ifeq ($(PEGASUS_ENABLE_NET_SNMPV3),true) |
|
ifndef PEGASUS_USE_NET_SNMP |
|
$(error PEGASUS_USE_NET_SNMP should be set when PEGASUS_ENABLE_NET_SNMPV3 is true) |
|
endif |
|
DEFINES += -DPEGASUS_ENABLE_NET_SNMPV3 |
|
else |
|
ifneq ($(PEGASUS_ENABLE_NET_SNMPV3),false) |
|
$(error PEGASUS_ENABLE_NET_SNMPV3 ($(PEGASUS_ENABLE_NET_SNMPV3)) invalid, must be true or false) |
|
endif |
|
endif |
|
|
ifdef PEGASUS_HAS_SSL | ifdef PEGASUS_HAS_SSL |
ifndef OPENSSL_BIN |
DEFINES += -DPEGASUS_HAS_SSL |
OPENSSL_BIN = $(OPENSSL_HOME)/bin |
|
|
# Enable SSL Random file by default. |
|
ifndef PEGASUS_USE_SSL_RANDOMFILE |
|
PEGASUS_USE_SSL_RANDOMFILE = true |
|
endif |
|
|
|
# Allow SSL Random file functionality to be optionally disabled. |
|
ifdef PEGASUS_USE_SSL_RANDOMFILE |
|
ifeq ($(PEGASUS_USE_SSL_RANDOMFILE), true) |
|
DEFINES += -DPEGASUS_SSL_RANDOMFILE |
|
else |
|
ifneq ($(PEGASUS_USE_SSL_RANDOMFILE), false) |
|
$(error PEGASUS_USE_SSL_RANDOMFILE\ |
|
($(PEGASUS_USE_SSL_RANDOMFILE)) invalid, \ |
|
must be true or false) |
|
endif |
|
endif |
endif | endif |
|
|
ifndef OPENSSL_COMMAND | ifndef OPENSSL_COMMAND |
|
ifdef OPENSSL_BIN |
OPENSSL_COMMAND = $(OPENSSL_BIN)/openssl | OPENSSL_COMMAND = $(OPENSSL_BIN)/openssl |
|
else |
|
OPENSSL_COMMAND = openssl |
|
endif |
endif | endif |
ifndef OPENSSL_SET_SERIAL_SUPPORTED | ifndef OPENSSL_SET_SERIAL_SUPPORTED |
ifneq (, $(findstring 0.9.6, $(shell $(OPENSSL_COMMAND) version))) | ifneq (, $(findstring 0.9.6, $(shell $(OPENSSL_COMMAND) version))) |
|
|
# Check for Enable SSL CRL verification | # Check for Enable SSL CRL verification |
ifdef PEGASUS_ENABLE_SSL_CRL_VERIFICATION | ifdef PEGASUS_ENABLE_SSL_CRL_VERIFICATION |
ifeq ($(PEGASUS_ENABLE_SSL_CRL_VERIFICATION), true) | ifeq ($(PEGASUS_ENABLE_SSL_CRL_VERIFICATION), true) |
FLAGS += -DPEGASUS_ENABLE_SSL_CRL_VERIFICATION |
DEFINES += -DPEGASUS_ENABLE_SSL_CRL_VERIFICATION |
else | else |
ifneq ($(PEGASUS_ENABLE_SSL_CRL_VERIFICATION), false) | ifneq ($(PEGASUS_ENABLE_SSL_CRL_VERIFICATION), false) |
$(error PEGASUS_ENABLE_SSL_CRL_VERIFICATION\ | $(error PEGASUS_ENABLE_SSL_CRL_VERIFICATION\ |
|
|
endif | endif |
| |
# | # |
|
# PEP 258 |
|
# Allow Audit Logger to be disabled. It is enabled by default. |
|
# |
|
|
|
ifndef PEGASUS_ENABLE_AUDIT_LOGGER |
|
PEGASUS_ENABLE_AUDIT_LOGGER = true |
|
endif |
|
|
|
ifdef PEGASUS_ENABLE_AUDIT_LOGGER |
|
ifeq ($(PEGASUS_ENABLE_AUDIT_LOGGER),true) |
|
DEFINES += -DPEGASUS_ENABLE_AUDIT_LOGGER |
|
else |
|
ifneq ($(PEGASUS_ENABLE_AUDIT_LOGGER),false) |
|
$(error PEGASUS_ENABLE_AUDIT_LOGGER \ |
|
($(PEGASUS_ENABLE_AUDIT_LOGGER)) invalid, must be true or false) |
|
endif |
|
endif |
|
endif |
|
|
|
# Check for use of deprecated variable |
|
ifdef PEGASUS_DISABLE_AUDIT_LOGGER |
|
$(error The PEGASUS_DISABLE_AUDIT_LOGGER variable is deprecated. \ |
|
Use PEGASUS_ENABLE_AUDIT_LOGGER=false instead) |
|
endif |
|
|
|
|
|
# |
|
# PEP 291 |
|
# Enable IPv6 support |
|
# |
|
|
|
ifndef PEGASUS_ENABLE_IPV6 |
|
PEGASUS_ENABLE_IPV6 = true |
|
endif |
|
|
|
# Check for Enable IPv6 support |
|
ifdef PEGASUS_ENABLE_IPV6 |
|
ifeq ($(PEGASUS_ENABLE_IPV6),true) |
|
DEFINES += -DPEGASUS_ENABLE_IPV6 |
|
else |
|
ifneq ($(PEGASUS_ENABLE_IPV6),false) |
|
$(error PEGASUS_ENABLE_IPV6 ($(PEGASUS_ENABLE_IPV6)) \ |
|
invalid, must be true or false) |
|
endif |
|
endif |
|
endif |
|
|
|
# Verify Test IPv6 support |
|
# If PEGASUS_ENABLE_IPV6 is defined and PEGASUS_TEST_IPV6 is not defined, we set |
|
# PEGASUS_TEST_IPV6 to the same value as PEGASUS_ENABLE_IPV6. |
|
# You can explicitly set PEGASUS_TEST_IPV6 to false if you don't want to run the |
|
# IPv6 tests (for example, on an IPv4 system that is running an IPv6-enabled |
|
# version of Pegasus). |
|
# |
|
ifdef PEGASUS_TEST_IPV6 |
|
ifneq ($(PEGASUS_TEST_IPV6),true) |
|
ifneq ($(PEGASUS_TEST_IPV6),false) |
|
$(error PEGASUS_TEST_IPV6 ($(PEGASUS_TEST_IPV6)) \ |
|
invalid, must be true or false) |
|
endif |
|
endif |
|
else |
|
PEGASUS_TEST_IPV6 = $(PEGASUS_ENABLE_IPV6) |
|
endif |
|
|
|
# |
|
# PEP 322 |
|
# Allow tracking generated indications data to be disabled. It is enabled |
|
# by default. |
|
# |
|
|
|
ifndef PEGASUS_ENABLE_INDICATION_COUNT |
|
PEGASUS_ENABLE_INDICATION_COUNT = true |
|
endif |
|
|
|
ifdef PEGASUS_ENABLE_INDICATION_COUNT |
|
ifeq ($(PEGASUS_ENABLE_INDICATION_COUNT),true) |
|
DEFINES += -DPEGASUS_ENABLE_INDICATION_COUNT |
|
else |
|
ifneq ($(PEGASUS_ENABLE_INDICATION_COUNT),false) |
|
$(error PEGASUS_ENABLE_INDICATION_COUNT \ |
|
($(PEGASUS_ENABLE_INDICATION_COUNT)) invalid, must be true or false) |
|
endif |
|
endif |
|
endif |
|
|
|
############################################################################ |
|
# |
# PEGASUS_ENABLE_SLP and PEGASUS_DISABLE_SLP | # PEGASUS_ENABLE_SLP and PEGASUS_DISABLE_SLP |
# | # |
# PEGASUS_DISABLE_SLP has been depracated. New use model is: |
# PEGASUS_DISABLE_SLP has been deprecated. New use model is: |
# | # |
# Use PEGASUS_ENABLE_SLP=true to enable compilation of SLP functions. | # Use PEGASUS_ENABLE_SLP=true to enable compilation of SLP functions. |
# | # |
# Use PEGASUS_ENABLE_SLP=false to disable 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. | # 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. |
|
|
############################################################################ | ############################################################################ |
# | # |
# PEGASUS_USE_OPENSLP | # PEGASUS_USE_OPENSLP |
|
|
|
## NOTE: This variable has been deprecated and superceeded by the use of |
|
## PEGASUS_USE_EXTERNAL_SLP. The use of this variable may be |
|
## removed from Pegasus in future releases. It is converted to the |
|
## PEGASUS_USE_EXTERNAL_SLP variable in the following function. |
|
## Do not allow PEGASUS_USE_EXTERNAL_SLP if PEGASUS_ENABLE_SLP not set and |
|
## insure that PEGASUS_USE_OPENSLP and PEGASUS_USE_EXTERNAL_SLP are not used |
|
## simultaneously |
# | # |
# Environment variable to set openslp as SLP environment to use | # Environment variable to set openslp as SLP environment to use |
# for SLP Directory and User Agents. | # for SLP Directory and User Agents. |
|
|
# internal pegasus slp agent. Note that this does not disable the | # internal pegasus slp agent. Note that this does not disable the |
# compilation of the internal agent code, etc. However, it assumes | # compilation of the internal agent code, etc. However, it assumes |
# openslp is installed on the platform and changes the interfaces | # openslp is installed on the platform and changes the interfaces |
# to match this. At this moment, this is a change specifically for |
# to match this. |
# 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 | # Use this variable in conjunction with PEGASUS_OPENSLP_HOME |
# to enable OpenSlp as the slp implementation. | # to enable OpenSlp as the slp implementation. |
|
|
# | # |
| |
ifdef PEGASUS_USE_OPENSLP | ifdef PEGASUS_USE_OPENSLP |
|
ifdef PEGASUS_USE_EXTERNAL_SLP |
|
$(error Both PEGASUS_USE_OPENSLP and PEGASUS_USE_EXTERNAL_SLP defined. \ |
|
Please use PEGASUS_USE_EXTERNAL_SLP) |
|
endif |
|
## if PEGASUS_USE_OPENSLP used, convert to EXTERNAL_SLP variables |
|
## as defined for openslp |
|
ifeq ($(PEGASUS_USE_OPENSLP),true) |
ifeq ($(PEGASUS_ENABLE_SLP),true) | ifeq ($(PEGASUS_ENABLE_SLP),true) |
DEFINES += -DPEGASUS_USE_OPENSLP |
export PEGASUS_USE_EXTERNAL_SLP=openslp |
|
PEGASUS_USE_OPENSLP= |
|
else |
|
$(error PEGASUS_USE_OPENSLP defined but PEGASUS_ENABLE_SLP is not true. \ |
|
Please correct this inconsistency) |
|
endif |
else | else |
$(error PEGASUS_USE_OPENSLP defined but PEGASUS_ENABLE_SLP is not true. Please correct this inconsistency) |
ifneq ($(PEGASUS_USE_OPENSLP), false) |
|
$(error PEGASUS_USE_OPENSLP \ |
|
($(PEGASUS_USE_OPENSLP)) \ |
|
invalid, must be true or false) |
|
endif |
endif | endif |
endif | endif |
| |
|
######################################################################### |
|
# PEP 267 |
|
# SLP reregistration support. |
|
# PEGASUS_SLP_REG_TIMEOUT is defined as the SLP registration timeout |
|
# interval, in minutes. |
|
ifdef PEGASUS_SLP_REG_TIMEOUT |
|
ifeq ($(PEGASUS_ENABLE_SLP),true) |
|
DEFINES += -DPEGASUS_SLP_REG_TIMEOUT=$(PEGASUS_SLP_REG_TIMEOUT) |
|
else |
|
$(error PEGASUS_SLP_REG_TIMEOUT defined but PEGASUS_ENABLE_SLP is not true. \ |
|
Please correct this inconsistency) |
|
endif |
|
endif |
|
|
|
############################################################################ |
|
# |
|
# PEGASUS_USE_EXTERNAL_SLP |
|
|
|
# Environment variable to set an external slp implementation as the SLP |
|
# environment to use for SLP Directory Agents. |
|
|
|
# This allows setting any one of several possible external SLP SAs as the |
|
# interface for the SLP provider to communicate with in managing SLP templates |
|
# in place of the internal SLP agent provided with Pegasus. |
|
# Note: This does not disable the compilation of the internal agent code since |
|
# this is used for the SLP UA defined with the pegasus client. |
|
# Pegasus assumes that the external SLP defined is installed on the platform |
|
# and running when pegasus is started. It changes the interfaces from the SLP |
|
# provider to match the defined SLP implementation. |
|
|
|
# This environment variable superceedes the use of PEGASUS_USE_OPENSLP since |
|
# openslp is considered one of the valid external SLP environments usable by |
|
# pegasus. |
|
|
|
# The variable uses the value component to define a name for the external SLP |
|
# environment that must match one of the names defined below. |
|
|
|
# This variable is not allowed if the PEGASUS_ENABLE_SLP flag is not set. |
|
|
|
# Allow only predefined string values for the variable corresponding |
|
# to external slp types that pegasus knows. |
|
# Valid types are openslp (1) and solarisslp (2) |
|
EXTERNAL_SLP_TYPES = openslp solarisslp |
|
|
|
ifdef PEGASUS_USE_EXTERNAL_SLP |
|
ifeq ($(PEGASUS_ENABLE_SLP),true) |
|
ifeq ($(PEGASUS_USE_EXTERNAL_SLP),openslp) |
|
DEFINES += -DPEGASUS_USE_EXTERNAL_SLP_TYPE=1 |
|
else |
|
ifeq ($(PEGASUS_USE_EXTERNAL_SLP),solarisslp) |
|
DEFINES += -DPEGASUS_USE_EXTERNAL_SLP_TYPE=2 |
|
else |
|
$(error PEGASUS_USE_EXTERNAL_SLP value ($(PEGASUS_USE_EXTERNAL_SLP)) \ |
|
invalid. It must be one of valid SLP external types \ |
|
($(EXTERNAL_SLP_TYPES)) ) |
|
endif |
|
endif |
|
endif |
|
endif |
| |
############################################################################ | ############################################################################ |
# | # |
# PEGASUS_OPENSLP_HOME | # PEGASUS_OPENSLP_HOME |
# | # |
|
# PEGASUS_OPENSLP_HOME superceeded by PEGASUS_OPEN_EXTERNAL_SLP_HOME. If |
|
# PEGASUS_OPENSLP_HOME is encountered it will create PEGASUS_OPEN_EXTERNAL_SLP_HOME |
|
# |
# Environment variable to set home location for OpenSLP include and library | # Environment variable to set home location for OpenSLP include and library |
# files if they are located somewhere other than /usr/include and /usr/lib. | # files if they are located somewhere other than /usr/include and /usr/lib. |
# | # |
|
|
# then this environment variable should be set to /opt/OpenSLP. | # then this environment variable should be set to /opt/OpenSLP. |
# | # |
| |
|
ifdef PEGASUS_OPENSLP_HOME |
|
ifdef PEGASUS_OPEN_EXTERNAL_SLP_HOME |
|
$(error Both PEGASUS_OPENSLP_HOME and PEGASUS_OPEN_EXTERNAL_SLP_HOME defined. \ |
|
Please use PEGASUS_OPEN_EXTERNAL_SLP_HOME) |
|
else |
|
export PEGASUS_EXTERNAL_SLP_HOME=$(PEGASUS_OPENSLP_HOME) |
|
endif |
|
endif |
|
############################################################################ |
|
# |
|
# PEGASUS_EXTERNAL_SLP_HOME |
|
# |
|
# Environment variable to set home location for External SLP include and library |
|
# files if they are located somewhere other than /usr/include and /usr/lib. |
|
# |
|
# This variable superceeds PEGASUS_OPENSLP_HOME to match the use of |
|
# PEGASUS_USE_EXTERNAL_SLP variable. |
|
# |
|
# PEGASUS_USE_EXTERNAL_SLP 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 | # Enable this flag to allow the handshake to continue regardless of verification result |
# | # |
|
|
DEFINES += -DPEGASUS_OVERRIDE_SSL_CERT_VERIFICATION_RESULT | DEFINES += -DPEGASUS_OVERRIDE_SSL_CERT_VERIFICATION_RESULT |
endif | endif |
| |
|
############################################################################ |
|
# |
|
# PEGASUS_ENABLE_INTEROP_PROVIDER |
|
# Enables the interop provider AND the server profile. |
|
# initially this was activated by setting either the perfinst or slp enable |
|
# flags. This allows activating this function without any either perfinst or |
|
# slp enabled. Note that if either of these are enabled, this funtion is also |
|
# enabled |
|
|
|
## if either slp or perfinst are enabled and this is false, flag error |
|
## This gets messy because should account for both postive and negative on |
|
## interop so we don't get multiples. |
|
|
|
ifdef PEGASUS_ENABLE_SLP |
|
ifeq ($(PEGASUS_ENABLE_SLP),true) |
|
ifndef PEGASUS_ENABLE_INTEROP_PROVIDER |
|
PEGASUS_ENABLE_INTEROP_PROVIDER = true |
|
else |
|
ifeq ($(PEGASUS_ENABLE_INTEROP_PROVIDER),false) |
|
$(error PEGASUS_ENABLE_INTEROP_PROVIDER ($(PEGASUS_ENABLE_INTEROP_PROVIDER)) invalid, must be true if SLP enabled) |
|
endif |
|
endif |
|
endif |
|
endif |
|
|
|
## if PERFINST enabled, set to force interop. |
|
ifndef PEGASUS_DISABLE_PERFINST |
|
ifndef PEGASUS_ENABLE_INTEROP_PROVIDER |
|
PEGASUS_ENABLE_INTEROP_PROVIDER = true |
|
else |
|
ifeq ($(PEGASUS_ENABLE_INTEROP_PROVIDER),false) |
|
$(error PEGASUS_ENABLE_INTEROP_PROVIDER ($(PEGASUS_ENABLE_INTEROP_PROVIDER)) invalid, must be true if PERFINST enabled) |
|
endif |
|
endif |
|
endif |
|
|
|
# |
|
## PEP 323, DMTF Indications Profile support, stage 1 |
|
# |
|
ifdef PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT |
|
ifeq ($(PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT), true) |
|
ifndef PEGASUS_ENABLE_INTEROP_PROVIDER |
|
PEGASUS_ENABLE_INTEROP_PROVIDER = true |
|
else |
|
ifeq ($(PEGASUS_ENABLE_INTEROP_PROVIDER),false) |
|
$(error PEGASUS_ENABLE_INTEROP_PROVIDER ($(PEGASUS_ENABLE_INTEROP_PROVIDER)) invalid, must be true if DMTF Indications profile support is enabled) |
|
endif |
|
endif |
|
DEFINES += -DPEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT -DPEGASUS_ENABLE_INDICATION_ORDERING |
|
else |
|
ifneq ($(PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT),false) |
|
$(error PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT ($(PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT)) invalid, must be true or false) |
|
endif |
|
endif |
|
endif |
|
|
|
ifdef PEGASUS_ENABLE_INTEROP_PROVIDER |
|
ifeq ($(PEGASUS_ENABLE_INTEROP_PROVIDER),true) |
|
DEFINES += -DPEGASUS_ENABLE_INTEROP_PROVIDER |
|
else |
|
ifneq ($(PEGASUS_ENABLE_INTEROP_PROVIDER),false) |
|
$(error PEGASUS_ENABLE_INTEROP_PROVIDER ($(PEGASUS_ENABLE_INTEROP_PROVIDER)) invalid, must be true or false) |
|
endif |
|
endif |
|
endif |
|
|
|
|
|
############################################################################ |
# set PEGASUS_DEBUG into the DEFINES if it exists. | # set PEGASUS_DEBUG into the DEFINES if it exists. |
# Note that this flag is the general separator between | # Note that this flag is the general separator between |
# debug compiles and non-debug compiles and controls both | # debug compiles and non-debug compiles and controls both |
|
|
ifdef PEGASUS_INDICATION_HASHTRACE | ifdef PEGASUS_INDICATION_HASHTRACE |
DEFINES += -DPEGASUS_INDICATION_HASHTRACE | DEFINES += -DPEGASUS_INDICATION_HASHTRACE |
endif | endif |
|
|
endif | endif |
| |
# compile in the experimental APIs | # compile in the experimental APIs |
|
|
| |
# 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 |
DEFINES += -DPEGASUS_DISABLE_PERFINST |
endif | endif |
| |
# Set compile flag to control compilation of SNIA Extensions | # Set compile flag to control compilation of SNIA Extensions |
ifdef PEGASUS_SNIA_EXTENSIONS | ifdef PEGASUS_SNIA_EXTENSIONS |
FLAGS += -DPEGASUS_SNIA_EXTENSIONS |
DEFINES += -DPEGASUS_SNIA_EXTENSIONS |
endif | endif |
| |
ifdef PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER | ifdef PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER |
ifeq ($(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER), true) | ifeq ($(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER), true) |
FLAGS += -DPEGASUS_ENABLE_CMPI_PROVIDER_MANAGER |
DEFINES += -DPEGASUS_ENABLE_CMPI_PROVIDER_MANAGER |
else | else |
ifneq ($(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER), false) | ifneq ($(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER), false) |
$(error PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER \ | $(error PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER \ |
|
|
| |
ifdef PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER | ifdef PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER |
ifeq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), true) | ifeq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), true) |
FLAGS += -DPEGASUS_ENABLE_JMPI_PROVIDER_MANAGER |
DEFINES += -DPEGASUS_ENABLE_JMPI_PROVIDER_MANAGER |
|
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 |
|
|
else | else |
ifneq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), false) | ifneq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), false) |
$(error PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER \ | $(error PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER \ |
|
|
| |
# Allow remote CMPI functionality to be enabled | # Allow remote CMPI functionality to be enabled |
ifdef PEGASUS_ENABLE_REMOTE_CMPI | ifdef PEGASUS_ENABLE_REMOTE_CMPI |
FLAGS += -DPEGASUS_ENABLE_REMOTE_CMPI |
DEFINES += -DPEGASUS_ENABLE_REMOTE_CMPI |
endif |
|
|
|
############################################################ |
|
# |
|
# Set any vendor-specific compile flags |
|
# |
|
############################################################ |
|
|
|
ifdef PEGASUS_VENDOR_HP |
|
DEFINES+= -DPEGASUS_VENDOR_HP |
|
endif | endif |
| |
| |
|
|
# | # |
RMREPOSITORY = $(RMDIRHIER) | RMREPOSITORY = $(RMDIRHIER) |
| |
ifdef PEGASUS_USE_RELEASE_CONFIG_OPTIONS |
ifndef PEGASUS_USE_RELEASE_CONFIG_OPTIONS |
FLAGS += -DPEGASUS_USE_RELEASE_CONFIG_OPTIONS |
PEGASUS_USE_RELEASE_CONFIG_OPTIONS=false |
|
endif |
|
|
|
ifeq ($(PEGASUS_USE_RELEASE_CONFIG_OPTIONS),true) |
|
DEFINES += -DPEGASUS_USE_RELEASE_CONFIG_OPTIONS |
|
else |
|
ifneq ($(PEGASUS_USE_RELEASE_CONFIG_OPTIONS),false) |
|
$(error PEGASUS_USE_RELEASE_CONFIG_OPTIONS \ |
|
($(PEGASUS_USE_RELEASE_CONFIG_OPTIONS)) invalid, must be true or false) |
|
endif |
endif | endif |
| |
ifdef PEGASUS_USE_RELEASE_DIRS | ifdef PEGASUS_USE_RELEASE_DIRS |
FLAGS += -DPEGASUS_USE_RELEASE_DIRS |
DEFINES += -DPEGASUS_USE_RELEASE_DIRS |
endif | endif |
| |
ifdef PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS | ifdef PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS |
FLAGS += -DPEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS |
DEFINES += -DPEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS |
endif | endif |
| |
# Unless otherwise specified, Pegasus libraries go in $(PEGASUS_HOME)/lib | # Unless otherwise specified, Pegasus libraries go in $(PEGASUS_HOME)/lib |
|
|
##============================================================================== | ##============================================================================== |
| |
ifdef PEGASUS_USE_STATIC_LIBRARIES | ifdef PEGASUS_USE_STATIC_LIBRARIES |
ifeq ($(PEGASUS_USE_STATIC_LIBRARIES),true) |
ifeq ($(OS_TYPE),windows) |
|
$(error PEGASUS_USE_STATIC_LIBRARIES is not support on windows.) |
else | else |
ifneq ($(PEGASUS_USE_STATIC_LIBRARIES),false) |
ifneq ($(PEGASUS_USE_STATIC_LIBRARIES),true) |
$(error PEGASUS_USE_STATIC_LIBRARIES ($(PEGASUS_USE_STATIC_LIBRARIES)) invalid, must be true or false) |
$(error PEGASUS_USE_STATIC_LIBRARIES \ |
|
($(PEGASUS_USE_STATIC_LIBRARIES)) invalid, must be true.) |
endif | endif |
endif | endif |
endif | endif |
| |
|
##============================================================================== |
|
## |
|
## PEGASUS_ENABLE_PRIVILEGE_SEPARATION |
|
## |
|
## Enables privilege separation support (uses the executor process to |
|
## perform privileged operations). |
|
## |
|
##============================================================================== |
| |
ifndef PEGASUS_JAVA_CLASSPATH_DELIMITER |
ifdef PEGASUS_ENABLE_PRIVILEGE_SEPARATION |
PEGASUS_JAVA_CLASSPATH_DELIMITER = : |
ifeq ($(PEGASUS_ENABLE_PRIVILEGE_SEPARATION),true) |
|
DEFINES += -DPEGASUS_ENABLE_PRIVILEGE_SEPARATION |
|
else |
|
ifneq ($(PEGASUS_ENABLE_PRIVILEGE_SEPARATION),false) |
|
$(error PEGASUS_ENABLE_PRIVILEGE_SEPARATION \ |
|
($(PEGASUS_ENABLE_PRIVILEGE_SEPARATION)) invalid, must be true or false) |
|
endif |
endif | endif |
|
|
|
## Defines the user context of the cimservermain process when privilege |
|
## separation is enabled. |
|
PEGASUS_CIMSERVERMAIN_USER = cimsrvr |
|
DEFINES += -DPEGASUS_CIMSERVERMAIN_USER=\"$(PEGASUS_CIMSERVERMAIN_USER)\" |
|
endif |
|
|
|
|
|
##============================================================================== |
|
## |
|
## PEGASUS_ENABLE_PROTOCOL_WSMAN |
|
## |
|
## Enables the WS-Management protocol in the CIM Server. |
|
## |
|
##============================================================================== |
|
|
|
ifndef PEGASUS_ENABLE_PROTOCOL_WSMAN |
|
PEGASUS_ENABLE_PROTOCOL_WSMAN = false |
|
endif |
|
|
|
ifeq ($(PEGASUS_ENABLE_PROTOCOL_WSMAN),true) |
|
DEFINES += -DPEGASUS_ENABLE_PROTOCOL_WSMAN |
|
else |
|
ifneq ($(PEGASUS_ENABLE_PROTOCOL_WSMAN),false) |
|
$(error PEGASUS_ENABLE_PROTOCOL_WSMAN ($(PEGASUS_ENABLE_PROTOCOL_WSMAN)) invalid, must be true or false) |
|
endif |
|
endif |
|
|
|
##============================================================================== |
|
## |
|
## PEGASUS_PAM_SESSION_SECURITY |
|
## |
|
## This is a new method to handle authentication with PAM in case it is required |
|
## to keep the PAM session established by pam_start() open across an |
|
## entire CIM request. |
|
## |
|
## This feature contradicts PEGASUS_PAM_AUTHENTICATION and |
|
## PEGASUS_USE_PAM_STANDALONE_PROC |
|
## Because of the additional process this feature is not compatible with |
|
## Privilege Separation. |
|
## |
|
##============================================================================== |
|
|
|
ifeq ($(PEGASUS_PAM_SESSION_SECURITY),true) |
|
ifdef PEGASUS_PAM_AUTHENTICATION |
|
$(error "PEGASUS_PAM_AUTHENTICATION must NOT be defined when PEGASUS_PAM_SESSION_SECURITY is defined") |
|
endif |
|
ifdef PEGASUS_USE_PAM_STANDALONE_PROC |
|
$(error "PEGASUS_USE_PAM_STANDALONE_PROC must NOT be defined when PEGASUS_PAM_SESSION_SECURITY is defined") |
|
endif |
|
ifdef PEGASUS_ENABLE_PRIVILEGE_SEPARATION |
|
$(error "PEGASUS_ENABLE_PRIVILEGE_SEPARATION must NOT be defined when PEGASUS_PAM_SESSION_SECURITY is defined") |
|
endif |
|
# Compile in the code required for PAM |
|
# and compile out the code that uses the password file. |
|
DEFINES += -DPEGASUS_PAM_SESSION_SECURITY -DPEGASUS_NO_PASSWORDFILE |
|
# Link with libpam only where it is needed. |
|
ifeq ($(HAS_PAM_DEPENDENCY),true) |
|
SYS_LIBS += -lpam |
|
endif |
|
endif |
|
|
|
|
|
##============================================================================== |
|
## |
|
## PEGASUS_PAM_AUTHENTICATION |
|
## |
|
##============================================================================== |
|
|
|
ifdef PEGASUS_PAM_AUTHENTICATION |
|
# Compile in the code required for PAM authentication |
|
# and compile out the code that uses the password file. |
|
DEFINES += -DPEGASUS_PAM_AUTHENTICATION -DPEGASUS_NO_PASSWORDFILE |
|
|
|
# Link with libpam only where it is needed. |
|
ifeq ($(HAS_PAM_DEPENDENCY),true) |
|
SYS_LIBS += -lpam |
|
endif |
|
endif |
|
|
|
##============================================================================== |
|
## |
|
## PEGASUS_USE_PAM_STANDALONE_PROC |
|
## |
|
##============================================================================== |
|
|
|
ifdef PEGASUS_USE_PAM_STANDALONE_PROC |
|
ifndef PEGASUS_PAM_AUTHENTICATION |
|
$(error "PEGASUS_PAM_AUTHENTICATION must be defined when PEGASUS_USE_PAM_STANDALONE_PROC is defined") |
|
endif |
|
DEFINES += -DPEGASUS_USE_PAM_STANDALONE_PROC |
|
endif |
|
|
|
##============================================================================== |
|
|
|
# Disable client timeouts when we're doing a valgrind build |
|
ifdef PEGASUS_TEST_VALGRIND_LOG_DIR |
|
DEFINES += -DPEGASUS_DISABLE_CLIENT_TIMEOUT -DPEGASUS_TEST_VALGRIND |
|
endif |
|
|
|
## ====================================================================== |
|
## |
|
## PEGASUS_ALLOW_ABSOLUTEPATH_IN_PROVIDERMODULE |
|
## This controls allowing the path specified in the Location property of |
|
## PG_ProviderModule class. |
|
## |
|
## Set to "true", It allows the absolute path specified in the Location property |
|
## of PG_ProviderModule class. Otherwise it does not allow the absolute path. |
|
## see bug 7289 for background information concerning this config variable. |
|
## |
|
|
|
ifndef PEGASUS_ALLOW_ABSOLUTEPATH_IN_PROVIDERMODULE |
|
PEGASUS_ALLOW_ABSOLUTEPATH_IN_PROVIDERMODULE=false |
|
endif |
|
|
|
ifdef PEGASUS_ALLOW_ABSOLUTEPATH_IN_PROVIDERMODULE |
|
ifeq ($(PEGASUS_ALLOW_ABSOLUTEPATH_IN_PROVIDERMODULE),true) |
|
DEFINES += -DPEGASUS_ALLOW_ABSOLUTEPATH_IN_PROVIDERMODULE |
|
else |
|
ifneq ($(PEGASUS_ALLOW_ABSOLUTEPATH_IN_PROVIDERMODULE),false) |
|
$(error PEGASUS_ALLOW_ABSOLUTEPATH_IN_PROVIDERMODULE \ |
|
($(PEGASUS_ALLOW_ABSOLUTEPATH_IN_PROVIDERMODULE)) \ |
|
invalid, must be true or false) |
|
endif |
|
endif |
|
endif |
|
|
|
##============================================================================== |
|
## |
|
## PEGASUS_ENABLE_PROTOCOL_BINARY |
|
## |
|
## Enables the binary protocol between clients and cimserver. With provider |
|
## agent, both requests and responses are binary. For "ordinary" clients, |
|
## requests are XML and responses are binary. By default, this only affects |
|
## the protocol used over local domain sockets. |
|
## |
|
##============================================================================== |
|
|
|
ifndef PEGASUS_ENABLE_PROTOCOL_BINARY |
|
PEGASUS_ENABLE_PROTOCOL_BINARY=false |
|
endif |
|
|
|
ifeq ($(PEGASUS_ENABLE_PROTOCOL_BINARY),true) |
|
DEFINES += -DPEGASUS_ENABLE_PROTOCOL_BINARY |
|
else |
|
ifneq ($(PEGASUS_ENABLE_PROTOCOL_BINARY),false) |
|
$(error "PEGASUS_ENABLE_PROTOCOL_BINARY must be true or false") |
|
endif |
|
endif |
|
|
|
## ====================================================================== |
|
## |
|
## PLATFORM_CORE_PATTERN |
|
## This variable describes the pattern used to search for core files. |
|
## If not defined, this variable will be set to core*. |
|
## Only wildcard characters supported by the make wildcard function |
|
## may be used. |
|
|
|
ifndef PLATFORM_CORE_PATTERN |
|
PLATFORM_CORE_PATTERN = core* |
|
endif |
|
|
|
ifdef PEGASUS_FLAVOR |
|
ifdef PEGASUS_USE_RELEASE_DIRS |
|
ifndef PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS |
|
$(error "PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS must be defined when both PEGASUS_FLAVOR and PEGASUS_USE_RELEASE_DIRS options are used") |
|
endif |
|
endif |
|
ifneq ($(PEGASUS_FLAVOR), tog) |
|
DEFINES += -DPEGASUS_FLAVOR=\"$(PEGASUS_FLAVOR)\" |
|
endif |
|
endif |
|
|
|
ifdef PEGASUS_EXTRA_PROVIDER_LIB_DIR |
|
ifndef PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS |
|
$(error "PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS must be defined when PEGASUS_EXTRA_PROVIDER_LIB_DIR defined.") |
|
endif |
|
DEFINES += -DPEGASUS_EXTRA_PROVIDER_LIB_DIR=\"$(PEGASUS_EXTRA_PROVIDER_LIB_DIR):\" |
|
else |
|
DEFINES += -DPEGASUS_EXTRA_PROVIDER_LIB_DIR=\"\" |
|
endif |
|
|
|
################################################################################ |
|
## |
|
## PEGASUS_INITIAL_THREADSTACK_SIZE |
|
## |
|
## This environment variable sets the initial size of the stack on new threads. |
|
## When it is undefined, the size defaults to something relatively small |
|
## (see src/Pegasus/Common/Config.h or if overridden by platform see |
|
## src/Pegasus/Common/Platform_$(PEGASUS_PLATFORM).h). |
|
## Value is specified in number of bytes. |
|
## |
|
################################################################################ |
|
|
|
ifdef PEGASUS_INITIAL_THREADSTACK_SIZE |
|
DEFINES += -DPEGASUS_INITIAL_THREADSTACK_SIZE=$(PEGASUS_INITIAL_THREADSTACK_SIZE) |
|
endif |
|
|
|
ifndef PEGASUS_INTEROP_NAMESPACE |
|
PEGASUS_INTEROP_NAMESPACE=root/PG_InterOp |
|
else |
|
ifeq ($(PEGASUS_INTEROP_NAMESPACE),root/interop) |
|
DEFINES += -DNS_ROOT_INTEROP |
|
endif |
|
ifeq ($(PEGASUS_INTEROP_NAMESPACE),interop) |
|
DEFINES += -DNS_INTEROP |
|
endif |
|
endif |
|
|
|
##These namespaces will be used in Makefiles. |
|
|
|
NAMESPACE_INTEROP = interop |
|
|
|
NAMESPACE_ROOT_INTEROP = root/interop |