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