1 krisbash 1.1 .PHONY: world
2 .PHONY: check
3 .PHONY: install
4 .PHONY: server
5 .PHONY: tests
6
7 ifndef OUTPUTDIR
8 $(error OUTPUTDIR is undefined)
9 endif
10
11 include $(OUTPUTDIR)/config.mak
12
13 TOP=.
14
15 ##==============================================================================
16 ##
17 ## Export CONFIG_TARGET (buildtool uses it)
18 ##
19 ##==============================================================================
20
21 export CONFIG_TARGET
22 krisbash 1.1
23 ##==============================================================================
24 ##
25 ## WORLD -- the 'WORLD" variable indicates that we are building for test
26 ## (./cofigure-world).
27 ##
28 ##==============================================================================
29
30 ifeq ($(CONFIG_PREFIX),$(CONFIGUREDIR))
31 WORLD=1
32 endif
33
34 ##==============================================================================
35 ##
36 ## Build tests:
37 ##
38 ##==============================================================================
39
40 ifdef WORLD
41 BUILD_TESTS=1
42 endif
43 krisbash 1.1
44 ##==============================================================================
45 ##
46 ## rules targets:
47 ##
48 ##==============================================================================
49
50 DIRECTORIES =
51 DIRECTORIES += chkshlib
52 DIRECTORIES += tools
53
54 DIRECTORIES += pal
55 DIRECTORIES += pal/nitspal
56
57 DIRECTORIES += nits
58
59 DIRECTORIES += ut
60 ifeq ($(COMPILER),GNU)
61 DIRECTORIES += strhash
62 endif
63 DIRECTORIES += mof
64 krisbash 1.1 DIRECTORIES += base
65 DIRECTORIES += sock
66 DIRECTORIES += oi/gen_c/common
67 DIRECTORIES += oi/gen_c/cmdline
68 DIRECTORIES += wql
69 DIRECTORIES += gen
70 DIRECTORIES += provreg
71 DIRECTORIES += provmgr
72 DIRECTORIES += disp
73 DIRECTORIES += omi_error
74 DIRECTORIES += miapi
75 DIRECTORIES += protocol
76 DIRECTORIES += http
77 DIRECTORIES += wsman
78 DIRECTORIES += xml
79 DIRECTORIES += xmlserializer
80 DIRECTORIES += providers
81 DIRECTORIES += midll
82 DIRECTORIES += micxx
83 DIRECTORIES += omiclient
|
85 krisbash 1.1 DIRECTORIES += cli
86 DIRECTORIES += omireg
87 DIRECTORIES += check
88 DIRECTORIES += samples
89
90 ifndef DISABLE_INDICATION
91 DIRECTORIES += indication/common
92 DIRECTORIES += indication/indimgr
93 endif
94
95 ifdef CONFIG_SINGLEIMAGE
96 DIRECTORIES += image
97 else
98 DIRECTORIES += server agent
99 endif
100
101 TESTDIRS += tests/util
102 TESTDIRS += tests/io
103 TESTDIRS += tests/mof
104 TESTDIRS += tests/base
105 TESTDIRS += tests/provreg
106 krisbash 1.1 TESTDIRS += tests/provmgr
107 TESTDIRS += tests/micxx
108 TESTDIRS += tests/sock
109 TESTDIRS += tests/protocol
110 TESTDIRS += tests/http
111 TESTDIRS += tests/cli
112 TESTDIRS += tests/wsman
113 TESTDIRS += tests/wql
114 TESTDIRS += tests/strhash
115 TESTDIRS += tests/xml
116 TESTDIRS += tests/xmlserializer
117 TESTDIRS += samples/Providers/tests/PersonProvider
118 TESTDIRS += tests/miapi
119 TESTDIRS += tests/oi
120
121 ifndef DISABLE_INDICATION
122 TESTDIRS += samples/Providers/Test_Indication
123 TESTDIRS += tests/indication
124 endif
125
126 TESTDIRS += tests/pal
127 krisbash 1.1
128 ##==============================================================================
129 ##
130 ## rules targets for DSC:
131 ##
132 ##==============================================================================
133
134 ifdef ENABLE_DSC
135 DIRECTORIES += omiutils
136 DIRECTORIES += codec/mof
137 DIRECTORIES += codec/mof/parser
138 DIRECTORIES += dsc/engine/EngineHelper
139 DIRECTORIES += dsc/engine/ca/CAInfrastructure
140 DIRECTORIES += dsc/engine/ca/CALogInfrastructure
141 DIRECTORIES += dsc/engine/ConfigurationManager
142 DIRECTORIES += dsc/engine/ModuleLoader/ModuleLibrary
143 DIRECTORIES += dsc/engine/lcm
144 DIRECTORIES += dsc/engine/ConsistencyInvoker
145 TESTDIRS += dsc/tests/Engine/TestProvider
146 TESTDIRS += dsc/tests/Engine/TestFileProvider
147 TESTDIRS += dsc/tests/Engine/CA
148 krisbash 1.1 TESTDIRS += dsc/tests/Engine/ModuleLoader
149 TESTDIRS += dsc/tests/Engine/LCM
150 TESTDIRS += dsc/tests/Engine/E2E
151 endif
152
153 ifdef BUILD_TESTS
154 DIRECTORIES += $(TESTDIRS)
155 endif
156
157 -include $(ROOT)/mak/rules.mak
158
159 ##==============================================================================
160 ##
161 ## deploy DSC:
162 ##
163 ##==============================================================================
164
165 deploydsc:
166 mkdir -p $(SYSCONFDIR)/dsc
167 mkdir -p $(SYSCONFDIR)/dsc/configuration
168 mkdir -p $(SYSCONFDIR)/dsc/configuration/schema
169 krisbash 1.1 mkdir -p $(SYSCONFDIR)/dsc/configuration/schema/MSFT_LogResource
170 mkdir -p $(SYSCONFDIR)/dsc/configuration/baseregistration
171 mkdir -p $(SYSCONFDIR)/dsc/configuration/registration
172 mkdir -p $(SYSCONFDIR)/dsc/configuration/registration/MSFT_LogResource
173 mkdir -p $(SYSCONFDIR)/dsc/configuration/BuiltinProvCache
174 mkdir -p $(DATADIR)/dsc
175 mkdir -p $(DATADIR)/dsc/configuration
176 mkdir -p $(DATADIR)/dsc/configuration/schema
177 mkdir -p $(DATADIR)/dsc/configuration/registration
178 cp -r $(ROOT)/dsc/mof/OMI_BaseResourceUE.mof $(SYSCONFDIR)/dsc/configuration/baseregistration/baseresource.schema.mof
179 cp -r $(ROOT)/dsc/mof/MSFT_DSCMetaConfiguration.mof $(SYSCONFDIR)/dsc/configuration/baseregistration/MSFT_DSCMetaConfiguration.mof
180 cp -r $(ROOT)/dsc/mof/MSFT_LogResource.schema.mof $(SYSCONFDIR)/dsc/configuration/schema/MSFT_LogResource
181 cp -r $(ROOT)/dsc/mof/MSFT_LogResource.registration.mof $(SYSCONFDIR)/dsc/configuration/registration/MSFT_LogResource
182 $(BINDIR)/omireg -n "dsc" $(LIBDIR)/libdsccore.so
183
184
185 ##==============================================================================
186 ##
187 ## deploy DSC Test:
188 ##
189 ##==============================================================================
190 krisbash 1.1
191 deploydsctest:
192 mkdir -p $(SYSCONFDIR)/dsc/configuration/registration/TestResourceModule
193 mkdir -p $(SYSCONFDIR)/dsc/configuration/registration/Test2ResourceModule
194 mkdir -p $(SYSCONFDIR)/dsc/configuration/registration/Test3UserResourceModule
195 mkdir -p $(SYSCONFDIR)/dsc/configuration/registration/TestStopResourceModule
196 mkdir -p $(SYSCONFDIR)/dsc/configuration/registration/MSFT_FileDirectoryConfiguration
197 mkdir -p $(SYSCONFDIR)/dsc/configuration/schema/MSFT_FileDirectoryConfiguration
198 mkdir -p $(SYSCONFDIR)/dsc/configuration/schema/TestResourceModule
199 mkdir -p $(SYSCONFDIR)/dsc/configuration/schema/Test2ResourceModule
200 mkdir -p $(SYSCONFDIR)/dsc/configuration/schema/Test3UserResourceModule
201 mkdir -p $(SYSCONFDIR)/dsc/configuration/schema/TestStopResourceModule
202 cp -r $(ROOT)/dsc/tests/Module/Reg/OMI_TestResourceModule/* $(SYSCONFDIR)/dsc/configuration/registration/TestResourceModule/
203 cp -r $(ROOT)/dsc/tests/Module/Reg/OMI_Test2ResourceModule/* $(SYSCONFDIR)/dsc/configuration/registration/Test2ResourceModule/
204 cp -r $(ROOT)/dsc/tests/Module/Reg/OMI_Test3UserResourceModule/* $(SYSCONFDIR)/dsc/configuration/registration/Test3UserResourceModule/
205 cp -r $(ROOT)/dsc/tests/Module/Reg/OMI_TestStopResourceModule/* $(SYSCONFDIR)/dsc/configuration/registration/TestStopResourceModule/
206 cp -r $(ROOT)/dsc/tests/Module/Sch/TestResourceModule/* $(SYSCONFDIR)/dsc/configuration/schema/TestResourceModule/
207 cp -r $(ROOT)/dsc/tests/Module/Sch/Test2ResourceModule/* $(SYSCONFDIR)/dsc/configuration/schema/Test2ResourceModule/
208 cp -r $(ROOT)/dsc/tests/Module/Sch/Test3UserResourceModule/* $(SYSCONFDIR)/dsc/configuration/schema/Test3UserResourceModule/
209 cp -r $(ROOT)/dsc/tests/Module/Sch/TestStopResourceModule/* $(SYSCONFDIR)/dsc/configuration/schema/TestStopResourceModule/
210 cp -r $(ROOT)/dsc/tests/Engine/TestFileProvider/MSFT_FileDirectoryConfiguration.schema.mof $(SYSCONFDIR)/dsc/configuration/schema/MSFT_FileDirectoryConfiguration
211 krisbash 1.1 cp -r $(ROOT)/dsc/tests/Engine/TestFileProvider/MSFT_FileDirectoryConfiguration.registration.mof $(SYSCONFDIR)/dsc/configuration/registration/MSFT_FileDirectoryConfiguration
212 $(BINDIR)/omireg -n "dsc" $(LIBDIR)/libNITSDSCFileTestProvider.so
213 $(BINDIR)/omireg -n "dsc" $(LIBDIR)/libNITSDSCTestProvider.so
214
215
216
217 ##==============================================================================
218 ##
219 ## distclean:
220 ##
221 ##==============================================================================
222
223 distclean:
224 rm -rf $(OUTPUTDIR)
225 rm -rf $(CONFIGUREDIR)/GNUmakefile
226
227 ##==============================================================================
228 ##
229 ## tests:
230 ##
231 ##==============================================================================
232 krisbash 1.1
233 ifdef BUILD_TESTS
234 tests:
235 ( LD_LIBRARY_PATH=$(LIBDIR) export LD_LIBRARY_PATH; $(BINDIR)/nits -file:$(TMPDIR)/nitsargs.txt )
236 dsctests:
237 ( LD_LIBRARY_PATH=$(LIBDIR) export LD_LIBRARY_PATH; $(BINDIR)/nits -file:$(TMPDIR)/nitsdscargs.txt )
238 endif
239
240 ##==============================================================================
241 ##
242 ## dscworld:
243 ##
244 ##==============================================================================
245
246 __dscworld:
247 $(MAKE) -f $(ROOT)/build.mak clean
248 $(MAKE) -f $(ROOT)/build.mak depend
249 $(MAKE) -f $(ROOT)/build.mak
250 $(MAKE) -f $(ROOT)/build.mak deploydsc
251 $(MAKE) -f $(ROOT)/build.mak deploydsctest
252 $(BINDIR)/omiserver &
253 krisbash 1.1 $(MAKE) -f $(ROOT)/build.mak dsctests
254 killall -r omiserver
255
256 dscworld:
257 time $(MAKE) -f $(ROOT)/build.mak __dscworld
258 @ echo
259 $(MAKE) -f $(ROOT)/build.mak -s size
260
261
262 ##==============================================================================
263 ##
264 ## world:
265 ##
266 ##==============================================================================
267
268 __world:
269 $(MAKE) -f $(ROOT)/build.mak clean
270 $(MAKE) -f $(ROOT)/build.mak depend
271 $(MAKE) -f $(ROOT)/build.mak
272 $(MAKE) -f $(ROOT)/build.mak tests
273
274 krisbash 1.1 world:
275 time $(MAKE) -f $(ROOT)/build.mak __world
276 @ echo
277 $(MAKE) -f $(ROOT)/build.mak -s size
278
279 ##==============================================================================
280 ##
281 ## gen:
282 ##
283 ##==============================================================================
284
285 GENDIRECTORIES = \
286 providers/identify \
287 samples/Providers/Color \
288 samples/Providers/Connector \
289 samples/Providers/ConnectorCXX \
290 samples/Providers/Fan \
291 samples/Providers/Fastener \
292 samples/Providers/Number \
293 samples/Providers/Demo-i2 \
294 samples/Providers/PersonProvider \
295 krisbash 1.1 samples/Providers/PersonProviderCXX \
296 samples/Providers/President \
297 ut/base/tests \
298 doc/omi/samples/frog \
299 doc/omi/samples/connector
300
301 GENFILES=`grep -r -l '@''migen@' .`
302
303 lsgen:
304 @ echo $(GENFILES)
305
306 gen:
307 @ $(foreach i, $(GENDIRECTORIES), $(MAKE) -C $i gen $(NL) )
308
309 ##==============================================================================
310 ##
311 ## install/uninstall
312 ##
313 ##==============================================================================
314
315 SO=$(shell $(BUILDTOOL) shlibext $(BUILDTOOLOPTS)
316 krisbash 1.1
317 ifneq ($(WORLD)$(DESTDIR),1)
318
319 install:
320 ifdef DESTDIR
321 ( cd $(CONFIGUREDIR); $(OUTPUTDIR)/install --destdir=$(DESTDIR) )
322 else
323 ( cd $(CONFIGUREDIR); $(OUTPUTDIR)/install )
324 endif
325
326 uninstall:
327 ( $(OUTPUTDIR)/uninstall )
328
329 endif
330
331 ##==============================================================================
332 ##
333 ## dist:
334 ## dist.zip:
335 ##
336 ##==============================================================================
337 krisbash 1.1
338 DISTTMPDIR=/tmp/omi/$(USER)
339 DIST=omi-$(CONFIG_VERSION)
340
341 DISTTAR=$(CONFIGUREDIR)/$(DIST).tar
342
343 DISTTestProviders=samples/Providers
344
345 distcommon:
346 @ rm -rf $(DISTTMPDIR)
347 @ rm -f $(DISTTAR).gz
348 @ mkdir -p $(DISTTMPDIR)/$(DIST)
349 @ cp -r . $(DISTTMPDIR)/$(DIST)/
350 @ rm -rf $(DISTTMPDIR)/$(DIST)/$(OUTPUTDIRNAME)
351 @ ( cd $(DISTTMPDIR); rm -rf `find . -name CVS` )
352 @ ( cd $(DISTTMPDIR)/$(DIST); rm -rf scriptext )
353 @ ( cd $(DISTTMPDIR)/$(DIST); rm -rf wmiadapter )
354 @ ( cd $(DISTTMPDIR)/$(DIST); rm -rf `find . -name "buildchk.*"` )
355 @ ( cd $(DISTTMPDIR)/$(DIST); rm -f ./nits/NITS.docx )
356 @ ( cd $(DISTTMPDIR)/$(DIST); rm -rf ./tools/changes )
357 @ ( cd $(DISTTMPDIR)/$(DIST); rm -rf ./tools/striplic )
358 krisbash 1.1 @ ( cd $(DISTTMPDIR)/$(DIST); rm -rf ./tools/dos2unix )
359 @ ( cd $(DISTTMPDIR)/$(DIST); rm -rf ./GNUmakefile )
360 @ ( cd $(DISTTMPDIR)/$(DIST)/$(DISTTestProviders); rm -rf Test_BigProvider )
361 @ ( cd $(DISTTMPDIR)/$(DIST)/$(DISTTestProviders); rm -rf TestClass_ComplexGraphs )
362 @ ( cd $(DISTTMPDIR)/$(DIST)/$(DISTTestProviders); rm -rf Test_Perf_WMIv2_SingleThread )
363 @ ( cd $(DISTTMPDIR)/$(DIST)/$(DISTTestProviders); rm -rf Test_TorSwitchSchema )
364 @ ( cd $(DISTTMPDIR)/$(DIST)/$(DISTTestProviders); rm -f TestProviders.mak )
365
366 dist: distcommon
367 @ ( cd $(DISTTMPDIR); tar cf $(DISTTAR) $(DIST) )
368 @ gzip $(DISTTAR)
369 @ rm -rf $(DISTTMPDIR)
370 @ echo "Created $(DISTTAR).gz"
371
372 DISTZIP=$(CONFIGUREDIR)/$(DIST).zip
373
374 dist.zip: distcommon
375 @ ( cd $(DISTTMPDIR); zip -r -q $(DISTZIP) $(DIST); )
376 @ rm -rf $(DISTTMPDIR)
377 @ echo "Created $(DISTZIP)"
378
379 krisbash 1.1 ##==============================================================================
380 ##
381 ## check: check validity of build.
382 ##
383 ##==============================================================================
384
385 CHECKDIR=/tmp/omicheck.$(shell ./buildtool username)
386
387 check:
388 rm -rf $(CHECKDIR)
389 ( cd $(CONFIGUREDIR); $(OUTPUTDIR)/install --destdir=$(CHECKDIR) )
390 $(CHECKDIR)/$(CONFIG_BINDIR)/omiserver -i -d --livetime 60 --httpport 0 --httpsport 0 --destdir=$(CHECKDIR)
391 sleep 2
392 ( export LD_LIBRARY_PATH=$(CHECKDIR)/$(CONFIG_LIBDIR); $(CHECKDIR)/$(CONFIG_BINDIR)/omicheck --destdir=$(CHECKDIR) )
393 sleep 2
394 $(CHECKDIR)/$(CONFIG_BINDIR)/omiserver -s --destdir=$(CHECKDIR)
395 sleep 2
396 rm -rf $(CHECKDIR)
397
398 ##==============================================================================
399 ##
400 krisbash 1.1 ## size: print size of omiserver
401 ##
402 ##==============================================================================
403
404 size:
405 size $(BINDIR)/omiserver
406
407 ##==============================================================================
408 ##
409 ## timestamp: generate TIMESTAMP file.
410 ##
411 ##==============================================================================
412
413 TIMESTAMP=$(shell ./scripts/timestamp)
414
415 timestamp:
416 @ rm -f ./TIMESTAMP
417 @ echo $(TIMESTAMP) > ./TIMESTAMP
418
419 ##==============================================================================
420 ##
421 krisbash 1.1 ## cleanlog: remove the log files and trace files.
422 ##
423 ##==============================================================================
424
425 cleanlog:
426 rm -f $(CONFIG_LOCALSTATEDIR)/log/*.log
427 rm -f $(CONFIG_LOCALSTATEDIR)/log/*.trc
428
429 ##==============================================================================
430 ##
431 ## run:
432 ##
433 ##==============================================================================
434
435 run:
436 $(BINDIR)/omiserver -i --testopts
437
438 ##==============================================================================
439 ##
440 ## start:
441 ##
442 krisbash 1.1 ##==============================================================================
443
444 start:
445 $(BINDIR)/omiserver -i -d
446
447 ##==============================================================================
448 ##
449 ## stop:
450 ##
451 ##==============================================================================
452
453 stop:
454 $(BINDIR)/omiserver -s
455
456 ##==============================================================================
457 ##
458 ## oigenc:
459 ##
460 ##==============================================================================
461
462 OIGENC_IN=./base/oi_traces.h
463 krisbash 1.1 OIGENC_OUT=./base/oiomi.h
464
465 oigenc:
466 chmod +w $(OIGENC_IN)
467 chmod +w $(OIGENC_OUT)
468 $(BINDIR)/oigenc FILE $(OIGENC_IN) $(OIGENC_OUT)
469
470 ##==============================================================================
471 ##
472 ## cachegrind arguments:
473 ##
474 ##==============================================================================
475
476 CACHEGRIND_ARGS = $(BINDIR)/omiserver -i --testopts -l
|