1 martin 1.59 #//%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.60 #//
|
3 martin 1.59 #// Licensed to The Open Group (TOG) under one or more contributor license
4 #// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 #// this work for additional information regarding copyright ownership.
6 #// Each contributor licenses this file to you under the OpenPegasus Open
7 #// Source License; you may not use this file except in compliance with the
8 #// License.
|
9 martin 1.60 #//
|
10 martin 1.59 #// Permission is hereby granted, free of charge, to any person obtaining a
11 #// copy of this software and associated documentation files (the "Software"),
12 #// to deal in the Software without restriction, including without limitation
13 #// the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 #// and/or sell copies of the Software, and to permit persons to whom the
15 #// Software is furnished to do so, subject to the following conditions:
|
16 martin 1.60 #//
|
17 martin 1.59 #// The above copyright notice and this permission notice shall be included
18 #// in all copies or substantial portions of the Software.
|
19 martin 1.60 #//
|
20 martin 1.59 #// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.60 #// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22 martin 1.59 #// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 #// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 #// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 #// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 #// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27 martin 1.60 #//
|
28 martin 1.59 #//////////////////////////////////////////////////////////////////////////
|
29 kumpf 1.7 # Configuration options for Pegasus on all architectures running Linux
30
31 include $(ROOT)/mak/config-unix.mak
32
33 PEGASUS_PLATFORM_LINUX_GENERIC_GNU = 1
34 DEFINES += -DPEGASUS_PLATFORM_LINUX_GENERIC_GNU
35 DEFINES += -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM)
36
|
37 jim.wunderlich 1.38 #########################################################################
38 ##
39 ## Platform specific compile options controlled by environment variables
|
40 kumpf 1.61 ## are set here.
|
41 jim.wunderlich 1.38 ##
42 #########################################################################
43
44
45 # Enable OOP by default if preference not already set in the environment
46 #
|
47 jim.wunderlich 1.39 ifndef PEGASUS_DEFAULT_ENABLE_OOP
48 PEGASUS_DEFAULT_ENABLE_OOP = true
|
49 jim.wunderlich 1.38 endif
50
51
|
52 konrad.r 1.27 # Enable CMPI by default.
53 #
|
54 denise.eckstein 1.45 ifndef PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER
|
55 denise.eckstein 1.46 PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER=true
|
56 denise.eckstein 1.45 endif
|
57 konrad.r 1.27
|
58 jim.wunderlich 1.38 #########################################################################
59
|
60 kumpf 1.7 OS = linux
61
62 COMPILER = gnu
63
64 PLATFORM_VERSION_SUPPORTED = yes
65
|
66 konrad.r 1.17 ifndef CXX
|
67 kumpf 1.7 CXX = g++
|
68 konrad.r 1.17 endif
|
69 kumpf 1.7
70 SH = sh
71
|
72 david.dillard 1.30 YACC = bison
|
73 kumpf 1.7
|
74 jim.wunderlich 1.32 RM = rm -f
75
76 DIFF = diff
77
78 SORT = sort
79
|
80 kumpf 1.7 COPY = cp
81
82 MOVE = mv
83
|
84 konrad.r 1.15 MKDIRHIER = mkdir -p
85
|
86 kumpf 1.7 PEGASUS_SUPPORTS_DYNLIB = yes
87
88 MAJOR_VERSION_NUMBER = 1
89
90 LIB_SUFFIX = .so.$(MAJOR_VERSION_NUMBER)
91
|
92 kumpf 1.11 DEFINES += -DPEGASUS_USE_SYSLOGS
93
|
94 mike 1.49 SYS_LIBS = -ldl -lpthread -lcrypt
|
95 kumpf 1.7
|
96 mike 1.49 FLAGS += -W -Wall -Wno-unused -D_GNU_SOURCE -DTHREAD_SAFE -D_REENTRANT
97
98 ##==============================================================================
99 ##
100 ## The DYNAMIC_FLAGS variable defines linker flags that only apply to shared
101 ## libraries.
102 ##
103 ##==============================================================================
104 DYNAMIC_FLAGS += -fPIC
|
105 kumpf 1.7
|
106 kumpf 1.61 ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS
|
107 mike 1.43 FLAGS += -g
|
108 kumpf 1.7 else
|
109 mike 1.43 FLAGS += -s
110 #
111 # The -fno-enforce-eh-specs is not available in 2.9.5 and it probably
112 # appeared in the 3.0 series of compilers.
113 #
114 ifeq ($(shell expr $(GCC_VERSION) '>=' 3.0), 1)
115 EXTRA_CXX_FLAGS += -fno-enforce-eh-specs
116 endif
|
117 karl 1.26 ifdef PEGASUS_OPTIMIZE_FOR_SIZE
118 FLAGS += -Os
119 else
120 FLAGS += -O2
121 endif
|
122 kumpf 1.7 endif
123
|
124 w.otsuka 1.41 FLAGS += $(CXX_MACHINE_OPTIONS)
125
|
126 dave.sudlik 1.44 ifdef PEGASUS_ENABLE_GCOV
127 FLAGS += -ftest-coverage -fprofile-arcs
128 SYS_LIBS += -lgcc -lgcov
129 EXTRA_LIBRARIES += -lgcc -lgcov
130 endif
131
|
132 kumpf 1.7 ifndef PEGASUS_USE_MU_DEPEND
133 PEGASUS_HAS_MAKEDEPEND = yes
134 endif
135
|
136 mike 1.48 ##==============================================================================
137 ##
|
138 kumpf 1.61 ## Set the default visibility symbol to hidden for shared libraries. This
|
139 mike 1.48 ## feature is only available in GCC 4.0 and later.
140 ##
141 ##==============================================================================
142
143 ifeq ($(shell expr $(GCC_VERSION) '>=' 4.0), 1)
|
144 kumpf 1.61 FLAGS += -fvisibility=hidden
|
145 mike 1.48 endif
146
|
147 w.otsuka 1.47 ifndef PEGASUS_ARCH_LIB
148 ifeq ($(PEGASUS_PLATFORM),LINUX_X86_64_GNU)
149 PEGASUS_ARCH_LIB = lib64
150 else
151 PEGASUS_ARCH_LIB = lib
152 endif
153 endif
154 DEFINES += -DPEGASUS_ARCH_LIB=\"$(PEGASUS_ARCH_LIB)\"
|