1TRACE_LEVEL=@TRACE_VAR@ 2 3RPMBUILD ?= $(PWD)/rpmbuild 4 5#Some old versions of automake don't define builddir 6builddir ?= . 7 8dist_noinst_DATA = \ 9 m4 \ 10 COPYING \ 11 COPYING.LESSER \ 12 path_utils/libpath_utils.sym \ 13 dhash/libdhash.sym \ 14 collection/libcollection.sym \ 15 refarray/libref_array.sym \ 16 basicobjects/libbasicobjects.sym \ 17 ini/libini_config.sym 18 19############################################################################## 20# Common 21############################################################################## 22AM_CFLAGS = 23if HAVE_GCC 24 AM_CFLAGS += \ 25 -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \ 26 -Wcast-align -Wwrite-strings -Wextra -Wno-unused-parameter \ 27 -Wno-sign-compare -Wformat-security -Wmissing-prototypes -Wundef 28endif 29 30AM_CPPFLAGS = \ 31 -I$(srcdir)/collection \ 32 -I$(srcdir)/path_utils \ 33 -I$(srcdir)/refarray \ 34 -I$(srcdir)/dhash \ 35 -I$(srcdir)/ini \ 36 -I$(srcdir)/basicobjects \ 37 -I$(srcdir) \ 38 -I$(srcdir)/trace \ 39 $(TRACE_LEVEL) 40 41ACLOCAL_AMFLAGS = -I m4 42 43DOXYGEN = @DOXYGEN@ 44 45pkgconfigdir = $(libdir)/pkgconfig 46 47dist_pkgconfig_DATA = 48dist_doc_DATA = 49dist_examples_DATA = 50dist_include_HEADERS = 51lib_LTLIBRARIES = 52check_PROGRAMS = 53TESTS = 54 55examplesdir = $(docdir)/examples 56 57############################################################################## 58# Path Utils 59############################################################################## 60 61lib_LTLIBRARIES += libpath_utils.la 62dist_pkgconfig_DATA += path_utils/path_utils.pc 63dist_include_HEADERS += path_utils/path_utils.h 64 65libpath_utils_la_SOURCES = path_utils/path_utils.c 66libpath_utils_la_DEPENDENCIES = path_utils/libpath_utils.sym 67libpath_utils_la_LDFLAGS = \ 68 -version-info 1:1:0 \ 69 -Wl,--version-script=$(top_srcdir)/path_utils/libpath_utils.sym 70 71if HAVE_CHECK 72 check_PROGRAMS += path_utils_ut \ 73 ini_augment_ut_check \ 74 ini_configmod_ut_check \ 75 ini_parse_ut_check \ 76 ini_validators_ut_check \ 77 $(NULL) 78 TESTS += path_utils_ut \ 79 ini_augment_ut_check \ 80 ini_configmod_ut_check \ 81 ini_parse_ut_check \ 82 ini_validators_ut_check \ 83 $(NULL) 84endif 85 86path_utils_ut_SOURCES = path_utils/path_utils_ut.c 87path_utils_ut_CFLAGS = \ 88 $(AM_CFLAGS) \ 89 $(CHECK_CFLAGS) 90path_utils_ut_LDADD = \ 91 $(CHECK_LIBS) \ 92 libpath_utils.la 93 94path_utils-docs: 95if HAVE_DOXYGEN 96 cd path_utils; \ 97 $(DOXYGEN) path_utils.cfg.doxy; 98endif 99 100dist_doc_DATA += path_utils/README.path_utils 101 102############################################################################## 103# dhash 104############################################################################## 105 106lib_LTLIBRARIES += libdhash.la 107dist_pkgconfig_DATA += dhash/dhash.pc 108dist_include_HEADERS += dhash/dhash.h 109 110libdhash_la_SOURCES = dhash/dhash.c 111libdhash_la_DEPENDENCIES = dhash/libdhash.sym 112libdhash_la_LDFLAGS = \ 113 -version-info 2:0:1 \ 114 -Wl,--version-script=$(top_srcdir)/dhash/libdhash.sym 115 116check_PROGRAMS += dhash_test dhash_example 117TESTS += dhash_test dhash_example 118 119if HAVE_CHECK 120 check_PROGRAMS += dhash_ut_check 121 TESTS += dhash_ut_check 122endif 123 124 125dhash_test_SOURCES = dhash/examples/dhash_test.c 126dhash_test_LDADD = libdhash.la 127 128dhash_example_SOURCES = dhash/examples/dhash_example.c 129dhash_example_LDADD = libdhash.la 130 131dhash_ut_check_SOURCES = dhash/dhash_ut_check.c 132dhash_ut_chech_CFLAGS = $(AM_CFLAGS) \ 133 $(CHECK_CFLAGS) \ 134 $(NULL) 135dhash_ut_check_LDADD = libdhash.la \ 136 $(CHECK_LIBS) \ 137 $(NULL) 138 139dist_examples_DATA += \ 140 dhash/examples/dhash_test.c \ 141 dhash/examples/dhash_example.c 142 143dist_doc_DATA += dhash/README.dhash 144 145############################################################################## 146# collection 147############################################################################## 148 149lib_LTLIBRARIES += libcollection.la 150dist_pkgconfig_DATA += collection/collection.pc 151dist_include_HEADERS += \ 152 collection/collection.h \ 153 collection/collection_tools.h \ 154 collection/collection_queue.h \ 155 collection/collection_stack.h 156 157libcollection_la_SOURCES = \ 158 collection/collection.c \ 159 collection/collection_tools.c \ 160 collection/collection_cnv.c \ 161 collection/collection_queue.c \ 162 collection/collection_stack.c \ 163 collection/collection_cmp.c \ 164 collection/collection_iter.c \ 165 collection/collection_priv.h \ 166 trace/trace.h 167libcollection_la_DEPENDENCIES = collection/libcollection.sym 168libcollection_la_LDFLAGS = \ 169 -version-info 5:1:1 \ 170 -Wl,--version-script=$(top_srcdir)/collection/libcollection.sym 171 172check_PROGRAMS += \ 173 collection_ut \ 174 collection_stack_ut \ 175 collection_queue_ut 176TESTS += \ 177 collection_ut \ 178 collection_stack_ut \ 179 collection_queue_ut 180 181collection_ut_SOURCES = collection/collection_ut.c 182collection_ut_LDADD = libcollection.la 183collection_stack_ut_SOURCES = collection/collection_stack_ut.c 184collection_stack_ut_LDADD = libcollection.la 185collection_queue_ut_SOURCES = collection/collection_queue_ut.c 186collection_queue_ut_LDADD = libcollection.la 187 188collection-docs: 189if HAVE_DOXYGEN 190 cd collection; \ 191 $(DOXYGEN) collection.cfg.doxy 192endif 193 194############################################################################## 195# refarray 196############################################################################## 197 198lib_LTLIBRARIES += libref_array.la 199dist_pkgconfig_DATA += refarray/ref_array.pc 200dist_include_HEADERS += refarray/ref_array.h 201 202libref_array_la_SOURCES = \ 203 refarray/ref_array.c \ 204 trace/trace.h 205libref_array_la_DEPENDENCIES = refarray/libref_array.sym 206libref_array_la_LDFLAGS = \ 207 -version-info 3:1:2 \ 208 -Wl,--version-script=$(top_srcdir)/refarray/libref_array.sym 209 210check_PROGRAMS += ref_array_ut 211TESTS += ref_array_ut 212ref_array_ut_SOURCES = refarray/ref_array_ut.c 213ref_array_ut_LDADD = libref_array.la 214 215dist_doc_DATA += refarray/README.ref_array 216 217ref_array-docs: 218if HAVE_DOXYGEN 219 cd refarray; \ 220 $(DOXYGEN) ref_array.cfg.doxy 221endif 222 223############################################################################## 224# basicobjects 225############################################################################## 226 227lib_LTLIBRARIES += libbasicobjects.la 228dist_pkgconfig_DATA += basicobjects/basicobjects.pc 229dist_include_HEADERS += basicobjects/simplebuffer.h 230 231libbasicobjects_la_SOURCES = \ 232 basicobjects/simplebuffer.c \ 233 trace/trace.h 234libbasicobjects_la_DEPENDENCIES = basicobjects/libbasicobjects.sym 235libbasicobjects_la_LDFLAGS = \ 236 -version-info 1:0:1 \ 237 -Wl,--version-script=$(top_srcdir)/basicobjects/libbasicobjects.sym 238 239check_PROGRAMS += simplebuffer_ut 240TESTS += simplebuffer_ut 241simplebuffer_ut_SOURCES = basicobjects/simplebuffer_ut.c 242simplebuffer_ut_LDADD = libbasicobjects.la 243 244basicobjects-docs: 245if HAVE_DOXYGEN 246 cd basicobjects; \ 247 $(DOXYGEN) basicobjects.cfg.doxy 248endif 249 250 251############################################################################## 252# ini_config 253############################################################################## 254 255lib_LTLIBRARIES += libini_config.la 256dist_pkgconfig_DATA += ini/ini_config.pc 257dist_include_HEADERS += ini/ini_config.h ini/ini_configobj.h \ 258 ini/ini_valueobj.h ini/ini_comment.h \ 259 ini/ini_configmod.h 260 261libini_config_la_SOURCES = \ 262 ini/ini_config.c \ 263 ini/ini_config.h \ 264 ini/ini_get_value.c \ 265 ini/ini_get_array.c \ 266 ini/ini_list.c \ 267 ini/ini_print.c \ 268 ini/ini_parse.c \ 269 ini/ini_metadata.c \ 270 ini/ini_metadata.h \ 271 ini/ini_defines.h \ 272 ini/ini_comment.c \ 273 ini/ini_comment.h \ 274 ini/ini_valueobj.c \ 275 ini/ini_valueobj.h \ 276 ini/ini_serialize.c \ 277 ini/ini_fileobj.c \ 278 ini/ini_configobj.c \ 279 ini/ini_configobj.h \ 280 ini/ini_configmod.h \ 281 ini/ini_configmod.c \ 282 ini/ini_config_priv.h \ 283 ini/ini_get_valueobj.c \ 284 ini/ini_get_array_valueobj.c \ 285 ini/ini_list_valueobj.c \ 286 ini/ini_augment.c \ 287 trace/trace.h 288EXTRA_libini_config_la_DEPENDENCIES = ini/libini_config.sym 289libini_config_la_LIBADD = \ 290 libcollection.la \ 291 libpath_utils.la \ 292 libref_array.la \ 293 libbasicobjects.la 294libini_config_la_LDFLAGS = \ 295 -version-info 7:1:2 \ 296 -Wl,--version-script=$(top_srcdir)/ini/libini_config.sym 297 298dist_noinst_DATA += \ 299 ini/ini.conf \ 300 ini/ini.d/real.conf \ 301 ini/ini.d/test.conf \ 302 ini/ini.d/ipa.conf \ 303 ini/ini.d/foo.conf.in \ 304 ini/ini.d/mysssd.conf \ 305 ini/ini.d/smerge.conf \ 306 ini/ini.d/sexpect.conf \ 307 ini/ini.d/first.conf \ 308 ini/ini.d/second.conf \ 309 ini/ini.d/space.conf \ 310 ini/ini.d/mergecheck.conf \ 311 ini/ini.d/comment.conf \ 312 ini/ini.d/real8.conf \ 313 ini/ini.d/real16be.conf \ 314 ini/ini.d/real16le.conf \ 315 ini/ini.d/real32be.conf \ 316 ini/ini.d/real32le.conf \ 317 ini/ini.d/symbols.conf \ 318 ini/ini.d/new_line.conf \ 319 ini/ini.d/merge.validator \ 320 ini/ini2.d/real8.conf \ 321 ini/ini2.d/real16be.conf \ 322 ini/ini2.d/real16le.conf \ 323 ini/ini2.d/real32be.conf \ 324 ini/ini2.d/real32le.conf 325 326 327check_PROGRAMS += \ 328 ini_config_ut \ 329 ini_comment_ut \ 330 ini_valueobj_ut \ 331 ini_parse_ut \ 332 ini_augment_ut \ 333 ini_configmod_ut \ 334 ini_save_ut 335 336TESTS += \ 337 ini_config_ut \ 338 ini_comment_ut \ 339 ini_valueobj_ut \ 340 ini_parse_ut \ 341 ini_augment_ut \ 342 ini_configmod_ut \ 343 ini_save_ut 344 345 346ini_config_ut_SOURCES = ini/ini_config_ut.c 347ini_config_ut_LDADD = \ 348 libini_config.la \ 349 libcollection.la 350 351ini_comment_ut_SOURCES = ini/ini_comment_ut.c 352ini_comment_ut_LDADD = libini_config.la 353 354ini_valueobj_ut_SOURCES = ini/ini_valueobj_ut.c 355ini_valueobj_ut_LDADD = libini_config.la libbasicobjects.la 356 357ini_parse_ut_SOURCES = ini/ini_parse_ut.c 358ini_parse_ut_LDADD = libini_config.la libcollection.la libbasicobjects.la 359 360ini_augment_ut_SOURCES = ini/ini_augment_ut.c 361ini_augment_ut_LDADD = libini_config.la libcollection.la \ 362 libbasicobjects.la libpath_utils.la libref_array.la 363 364ini_configmod_ut_SOURCES = ini/ini_configmod_ut.c 365ini_configmod_ut_LDADD = libini_config.la libcollection.la \ 366 libbasicobjects.la libpath_utils.la libref_array.la 367 368ini_augment_ut_check_SOURCES = ini/ini_augment_ut_check.c 369ini_augment_ut_check_CFLAGS = $(AM_CFLAGS) $(CHECK_CFLAGS) 370ini_augment_ut_check_LDADD = libini_config.la $(CHECK_LIBS) \ 371 libref_array.la 372 373ini_configmod_ut_check_SOURCES = ini/ini_configmod_ut_check.c 374ini_configmod_ut_check_CFLAGS = $(AM_CFLAGS) $(CHECK_CFLAGS) 375ini_configmod_ut_check_LDADD = libini_config.la libcollection.la \ 376 libbasicobjects.la libpath_utils.la \ 377 libref_array.la \ 378 $(CHECK_LIBS) 379 380ini_parse_ut_check_SOURCES = ini/ini_parse_ut_check.c 381ini_parse_ut_check_CFLAGS = $(AM_CFLAGS) $(CHECK_CFLAGS) 382ini_parse_ut_check_LDADD = libini_config.la \ 383 libref_array.la \ 384 $(CHECK_LIBS) 385 386ini_validators_ut_check_SOURCES = ini/ini_validators_ut_check.c 387ini_validators_ut_check_CFLAGS = $(AM_CFLAGS) $(CHECK_CFLAGS) 388ini_validators_ut_check_LDADD = libini_config.la $(CHECK_LIBS) 389 390 391ini_save_ut_SOURCES = ini/ini_save_ut.c 392ini_save_ut_LDADD = libini_config.la libcollection.la \ 393 libbasicobjects.la libpath_utils.la libref_array.la 394 395ini_config-docs: 396if HAVE_DOXYGEN 397 cd ini; \ 398 $(DOXYGEN) ini_config.cfg.doxy 399endif 400 401clean-local-ini_config: 402 rm -f ./*.out 403 rm -f test.ini 404 rm -f ./foo.conf ./bom* #From ini_parse_ut 405 rm -f ./merge.validator.* #From ini_augment_ut 406 rm -f ./real.conf.manual 407 rm -f ./modtest.conf.real 408 rm -f ./modtest.conf.exp 409 rm -f ./test_* 410 411 412 413############################################################################## 414# Additional rules 415############################################################################## 416 417 418rpmroot: 419 mkdir -p $(RPMBUILD)/BUILD 420 mkdir -p $(RPMBUILD)/RPMS 421 mkdir -p $(RPMBUILD)/SOURCES 422 mkdir -p $(RPMBUILD)/SPECS 423 mkdir -p $(RPMBUILD)/SRPMS 424 425rpms: dist-gzip rpmroot 426 cp $(builddir)/contrib/ding-libs.spec $(RPMBUILD)/SPECS 427 cp $(distdir).tar.gz $(RPMBUILD)/SOURCES 428 cd $(RPMBUILD); \ 429 rpmbuild --define "_topdir $(RPMBUILD)" -ba SPECS/ding-libs.spec 430 431if GIT_CHECKOUT 432prerelease-rpms: 433 cp $(srcdir)/version.m4 $(srcdir)/version.m4.orig 434 sed -e "s/m4_define(\[PRERELEASE_VERSION_NUMBER\], \[.*\])/m4_define(\[PRERELEASE_VERSION_NUMBER\], \[.`date +%Y%m%d%H`git`git log -1 --pretty=format:%h`\])/" < $(srcdir)/version.m4.orig > $(srcdir)/version.m4 435 $(MAKE) rpms 436 mv $(srcdir)/version.m4.orig $(srcdir)/version.m4 437endif 438 439# make srpms will use the old digest algorithm to be compatible 440# with RHEL5 441srpm: dist-gzip rpmroot 442 cp $(builddir)/contrib/ding-libs.spec $(RPMBUILD)/SPECS 443 cp $(distdir).tar.gz $(RPMBUILD)/SOURCES 444 cd $(RPMBUILD); \ 445 rpmbuild --define "_topdir $(RPMBUILD)" \ 446 --define _source_filedigest_algorithm=1 \ 447 -bs SPECS/ding-libs.spec 448 449if GIT_CHECKOUT 450prerelease-srpm: 451 cp $(srcdir)/version.m4 $(srcdir)/version.m4.orig 452 sed -e "s/m4_define(\[PRERELEASE_VERSION_NUMBER\], \[.*\])/m4_define(\[PRERELEASE_VERSION_NUMBER\], \[.`date +%Y%m%d%H`git`git log -1 --pretty=format:%h`\])/" < $(srcdir)/version.m4.orig > $(srcdir)/version.m4 453 $(MAKE) srpm 454 mv $(srcdir)/version.m4.orig $(srcdir)/version.m4 455endif 456 457tests: all $(check_PROGRAMS) 458 459docs: path_utils-docs collection-docs ref_array-docs ini_config-docs basicobjects-docs 460 461clean-local: clean-local-ini_config 462 rm -Rf doc 463