version 1.59, 2004/08/06 15:56:16
|
version 1.90, 2005/04/28 11:52:46
|
|
|
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 = \ |
PLATFORM_FILES=$(wildcard $(ROOT)/mak/platform*.mak) |
WIN32_IX86_MSVC \ |
PLATFORM_TEMP=$(subst $(ROOT)/mak/platform_,, $(PLATFORM_FILES)) |
LINUX_IX86_GNU \ |
VALID_PLATFORMS=$(subst .mak,, $(PLATFORM_TEMP)) |
LINUX_PPC_GNU \ |
|
LINUX_IA64_GNU \ |
|
LINUX_ZSERIES_GNU \ |
|
AIX_RS_IBMCXX \ |
|
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 |
| |
################################################################################ | ################################################################################ |
|
|
# 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. |
|
# |
|
ifndef REPOSITORY_DIR |
REPOSITORY_DIR = $(HOME_DIR) | REPOSITORY_DIR = $(HOME_DIR) |
REPOSITORY_ROOT = $(REPOSITORY_DIR)/repository |
endif |
|
|
|
# |
|
# 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 |
|
# |
|
ifndef REPOSITORY_NAME |
|
REPOSITORY_NAME = repository |
|
endif |
|
|
|
REPOSITORY_ROOT = $(REPOSITORY_DIR)/$(REPOSITORY_NAME) |
|
|
|
# define the repository mode |
|
# XML = XML format |
|
# BIN = Binary format |
|
# |
|
ifndef REPOSITORY_MODE |
|
REPOSITORY_MODE = XML |
|
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 |
|
|
CIM_SCHEMA_VER=$(patsubst CIM%,%,$(patsubst CIMPrelim%,%,$(PEGASUS_CIM_SCHEMA))) | CIM_SCHEMA_VER=$(patsubst CIM%,%,$(patsubst CIMPrelim%,%,$(PEGASUS_CIM_SCHEMA))) |
endif | 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 |
| |
################################################################################ |
## ======================================================================== |
|
## DIFFSORT function definition |
|
## Here is an example using the DIFFSORT function: |
## | ## |
## Default installation paths |
## difftest: FORCE |
|
## @ test > result |
|
## @ $(call DIFFSORT,result,standard_result) |
|
## @ $(ECHO) +++++ all test passed |
## | ## |
################################################################################ |
|
|
|
## Default values to install files when 'make install' is invoked. |
|
| |
ifndef PREFIX |
define NL |
PREFIX=$(HOME_DIR)/install |
|
endif |
|
|
|
ifndef SYSCONF_PREFIX |
|
SYSCONF_PREFIX=$(PREFIX)/etc |
|
endif |
|
| |
ifndef LOCAL_STATE_PREFIX |
|
LOCAL_STATE_PREFIX=$(PREFIX)/var/ |
|
endif |
|
| |
ifndef DEST_LIB_DIR |
endef |
DEST_LIB_DIR = $(PREFIX)/lib |
|
endif |
|
|
|
ifndef DEST_BIN_DIR |
|
DEST_BIN_DIR = $(PREFIX)/bin |
|
endif |
|
|
|
ifndef DEST_SBIN_DIR |
|
DEST_SBIN_DIR = $(PREFIX)/sbin |
|
endif |
|
|
|
ifndef DEST_ETC_DIR |
|
DEST_ETC_DIR = $(SYSCONF_PREFIX)/pegasus |
|
endif |
|
| |
ifndef DEST_MAN_DIR |
DIFFSORT = $(SORT) $(1) > $(1).tmp $(NL) \ |
DEST_MAN_DIR = $(PREFIX)/man |
$(SORT) $(2) > $(2).tmp $(NL) \ |
endif |
$(DIFF) $(1).tmp $(2).tmp $(NL) \ |
|
$(RM) -f $(1).tmp $(NL) \ |
|
$(RM) -f $(2).tmp $(NL) |
| |
ifndef DEST_VAR_DIR |
|
DEST_VAR_DIR = $(LOCAL_STATE_PREFIX) |
|
endif |
|
| |
################################################################################ | ################################################################################ |
## | ## |
|
|
## | ## |
################################################################################ | ################################################################################ |
| |
ifeq ($(PEGASUS_PLATFORM),WIN32_IX86_MSVC) |
PLATFORM_FILE = $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
ifneq ($(wildcard $(PLATFORM_FILE)), ) |
FOUND = true |
include $(PLATFORM_FILE) |
endif |
else |
|
$(error PEGASUS_PLATFORM environment variable must be set to one of\ |
ifeq ($(PEGASUS_PLATFORM),LINUX_IX86_GNU) |
the following:$(VALID_PLATFORMS)) |
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),LINUX_PPC_GNU) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),LINUX_IA64_GNU) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),LINUX_ZSERIES_GNU) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),AIX_RS_IBMCXX) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),TRU64_ALPHA_DECCXX) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),SOLARIS_SPARC_GNU) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),SOLARIS_SPARC_CC) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),ZOS_ZSERIES_IBM) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),NSK_NONSTOP_NMCPLUS) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifeq ($(PEGASUS_PLATFORM),DARWIN_PPC_GNU) |
|
include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak |
|
FOUND = true |
|
endif |
|
|
|
ifneq ($(FOUND),true) |
|
ERROR = pegasus_unknown_platform |
|
pegasus_unknown_platform: |
|
@ echo PEGASUS_PLATFORM environment variable must be set to one of\ |
|
the following: $(VALID_PLATFORMS) |
|
@ exit 1 |
|
endif |
|
|
|
################################################################################ |
|
## |
|
## Default installation macros |
|
## |
|
################################################################################ |
|
|
|
## INSTALL_LIB creates the destination directory if missing, |
|
## copies the library and generates the symbolic link. |
|
|
|
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 |
|
|
|
## INSTALL_PROGRAM creates the destination directory if missing and |
|
## copies the file. |
|
ifndef INSTALL_PROGRAM |
|
INSTALL_PROGRAM = $(MKDIRHIER) $(DEST_BIN_DIR); $(COPY) $(FULL_PROGRAM) $(DEST_BIN_DIR) |
|
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. |
|
| |
################################################################################ | ################################################################################ |
## | ## |
|
|
DEFINES+= -DPEGASUS_CLIENT_TRACE_ENABLE | DEFINES+= -DPEGASUS_CLIENT_TRACE_ENABLE |
endif | endif |
| |
|
# Allow PEGASUS_ASSERT statements to be disabled. |
|
ifdef PEGASUS_NOASSERTS |
|
DEFINES += -DNDEBUG |
|
endif |
|
|
# do not compile trace code. sometimes it causes problems debugging | # do not compile trace code. sometimes it causes problems debugging |
ifdef PEGASUS_REMOVE_TRACE | ifdef PEGASUS_REMOVE_TRACE |
DEFINES+= -DPEGASUS_REMOVE_TRACE | DEFINES+= -DPEGASUS_REMOVE_TRACE |
endif | endif |
| |
# PEP 123 use monitor2 (the default) or not |
|
#ifdef PEGASUS_USE_23HTTPMONITOR_SERVER |
|
DEFINES+= -DPEGASUS_USE_23HTTPMONITOR_SERVER |
|
#endif |
|
|
|
#BUG 1170 Monitor2 Client Workaround |
|
#ifdef PEGASUS_USE_23HTTPMONITOR_CLIENT |
|
DEFINES+= -DPEGASUS_USE_23HTTPMONITOR_CLIENT |
|
#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 |
ifdef PEGASUS_SUPPORT_UTF8_FILENAME | ifdef PEGASUS_SUPPORT_UTF8_FILENAME |
|
|
DEFINES += -DPEGASUS_ENABLE_USERGROUP_AUTHORIZATION | DEFINES += -DPEGASUS_ENABLE_USERGROUP_AUTHORIZATION |
endif | endif |
| |
|
# |
|
# PEP 193 |
|
# The following flag need to be set to disable |
|
# CQL in indication subscriptions |
|
# |
|
ifdef PEGASUS_DISABLE_CQL |
|
DEFINES += -DPEGASUS_DISABLE_CQL |
|
endif |
|
|
|
# |
|
# 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 |
|
|
|
# |
|
# PEP 197 |
|
# 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 |
|
|
|
# Bug 2147 |
|
# Allow local domain socket usage to be disabled. |
|
ifdef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET |
|
DEFINES += -DPEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET |
|
endif |
|
|
|
# PEP 211 |
|
# Controls object normalization support. |
|
ifdef PEGASUS_ENABLE_OBJECT_NORMALIZATION |
|
DEFINES += -DPEGASUS_ENABLE_OBJECT_NORMALIZATION |
|
endif |
|
|
|
# Allow ExecQuery functionality to be enabled |
|
ifndef PEGASUS_ENABLE_EXECQUERY |
|
DEFINES += -DPEGASUS_DISABLE_EXECQUERY |
|
endif |
|
|
|
# Allow System Log Handler to be enabled |
|
ifdef PEGASUS_ENABLE_SYSTEM_LOG_HANDLER |
|
DEFINES += -DPEGASUS_ENABLE_SYSTEM_LOG_HANDLER |
|
endif |
|
|
|
# Allow Email Handler to be enabled |
|
ifdef PEGASUS_ENABLE_EMAIL_HANDLER |
|
DEFINES += -DPEGASUS_ENABLE_EMAIL_HANDLER |
|
endif |
| |
# setup function to enable SLP functions in the Pegasus standard compile | # setup function to enable SLP functions in the Pegasus standard compile |
# Set the environment varaible PEGASUS_ENABLE_SLP to enable SLP code. | # Set the environment varaible PEGASUS_ENABLE_SLP to enable SLP code. |
|
# NOTE. Effective with Bug # 2633 some platforms now enable SLP. |
|
# To see which platforms look for platform make files that set |
|
# the variable PEGASUS_ENABLE_SLP |
ifdef PEGASUS_ENABLE_SLP | ifdef PEGASUS_ENABLE_SLP |
DEFINES+= -DPEGASUS_ENABLE_SLP | DEFINES+= -DPEGASUS_ENABLE_SLP |
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 |
|
|
|
# Indications debugging options |
|
ifdef PEGASUS_INDICATION_PERFINST |
|
DEFINES += -DPEGASUS_INDICATION_PERFINST |
|
endif |
|
|
|
ifdef PEGASUS_INDICATION_HASHTRACE |
|
DEFINES += -DPEGASUS_INDICATION_HASHTRACE |
|
endif |
|
endif |
|
|
# compile in the experimental APIs | # compile in the experimental APIs |
DEFINES+= -DPEGASUS_USE_EXPERIMENTAL_INTERFACES | DEFINES+= -DPEGASUS_USE_EXPERIMENTAL_INTERFACES |
| |
# Set compile flag to control compilation of CIMOM statistics | # Set compile flag to control compilation of CIMOM statistics |
ifdef PEGASUS_HAS_PERFINST |
ifdef PEGASUS_DISABLE_PERFINST |
FLAGS += -DPEGASUS_HAS_PERFINST |
FLAGS += -DPEGASUS_DISABLE_PERFINST |
endif | endif |
| |
############################################################ | ############################################################ |
|
|
# | # |
RMREPOSITORY = $(RMDIRHIER) | RMREPOSITORY = $(RMDIRHIER) |
| |
|
ifdef PEGASUS_USE_RELEASE_CONFIG_OPTIONS |
|
FLAGS += -DPEGASUS_USE_RELEASE_CONFIG_OPTIONS |
|
endif |
| |
|
ifdef PEGASUS_USE_RELEASE_DIRS |
|
FLAGS += -DPEGASUS_USE_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 |
|
|
|
################################################################################ |
|
## |
|
## 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 |
| |