1 ## Process this file with automake to produce Makefile.in
3 ACLOCAL_AMFLAGS = -I m4
4 AM_DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-introspection --enable-hkl3d
14 SUBDIRS += Documentation
21 EXTRA_DIST = hkl.pc.in hkl3d.pc.in
23 installed_mainheaderdir = $(includedir)/hkl-@VMAJ@
24 dist_installed_mainheader_DATA = hkl.h
26 pkgconfigdir = $(libdir)/pkgconfig
27 pkgconfig_DATA = hkl.pc
30 #for not do not install
31 noinst_DATA = hkl3d.pc
37 cd scripts && ./clean-all
38 git commit -a -m "pre-release"
40 git merge -m "release" next
43 git tag v`./configure -V | head -n 1 | awk '{print $$3}'`
48 .PHONY: lcov genlcov lcov-clean release
49 # use recursive makes in order to ignore errors during check
51 -$(MAKE) $(AM_MAKEFLAGS) -k check
52 $(MAKE) $(AM_MAKEFLAGS) genlcov
54 # we have to massage the lcov.info file slightly to hide the effect of libtool
55 # placing the objects files in the .libs/ directory separate from the *.c
56 # we also have to delete tests/.libs/*.gcda
58 rm -f $(top_builddir)/test/hkl/.libs/*.gcda
59 $(LTP) --directory $(top_builddir) --capture --output-file hkl-lcov.info --test-name hkl-lcov --no-checksum --compat-libtool
60 LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory hkl-lcov --title "hkl Code Coverage" --legend --show-details hkl-lcov.info
63 -$(LTP) --directory $(top_builddir) -z
64 -rm -rf hkl-lcov.info hkl-lcov
65 -find -name '*.gcda' -print | xargs rm
66 -find -name '*.gcno' -print | xargs rm
68 distclean-local: lcov-clean
70 ## Generate the Changelog file for the distribution.
72 @if test -d "$(srcdir)/.git"; \
74 echo Creating ChangeLog && \
75 ( cd "$(top_srcdir)" && \
76 echo '# Generated by Makefile. Do not edit.'; echo; \
77 $(top_srcdir)/config/missing --run git log --stat ) > ChangeLog.tmp \
78 && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \
79 || ( rm -f ChangeLog.tmp ; \
80 echo Failed to generate ChangeLog >&2 ); \
82 echo A git clone is required to generate a ChangeLog >&2; \
85 ## Update the ccan library
87 CCAN_PUBLIC_MODULES=darray
88 CCAN_PRIVATE_MODULES=array_size container_of autodata list
89 CCAN_LOCAL_REPO=/tmp/ccan
90 CCAN_LOCAL_EXTRACT=/tmp/ccan.tmp
91 CCAN_URL=git://git.ozlabs.org/~ccan/ccan
92 CCAN_CREATE_TREE=rm -rf $(CCAN_LOCAL_EXTRACT) && cd $(CCAN_LOCAL_REPO) && tools/create-ccan-tree -b automake $(CCAN_LOCAL_EXTRACT)
93 CCAN_DEST=$(top_srcdir)/hkl/
94 CCAN_TMP_DEST=/tmp/ccan.next
96 @if test -d $(CCAN_LOCAL_REPO); \
98 cd $(CCAN_LOCAL_REPO) && git pull; \
100 git clone $(CCAN_URL) $(CCAN_LOCAL_REPO); \
103 @echo Extracting all the modules
104 @$(CCAN_CREATE_TREE) $(CCAN_PUBLIC_MODULES) $(CCAN_PRIVATE_MODULES)
106 @rm -rf $(CCAN_TMP_DEST) && mkdir -p $(CCAN_TMP_DEST)
107 @rsync -av --exclude=Makefile.am $(CCAN_LOCAL_EXTRACT)/* $(CCAN_TMP_DEST)
108 @find $(CCAN_TMP_DEST)/ccan -maxdepth 2 -name '*.[ch]' | xargs sed -i -e 's,ccan/,hkl/ccan/,'
109 @find $(CCAN_TMP_DEST)/ccan -maxdepth 2 -name '*.[ch]' | xargs sed -i -e 's,"config.h",<hkl/ccan/ccan_config.h>,'
111 @$(CCAN_CREATE_TREE) $(CCAN_PUBLIC_MODULES)
113 @echo Generating the Makefile.am
115 echo "AM_CFLAGS=-I\$$(top_srcdir)"; echo;\
116 echo "noinst_PROGRAMS=configurator";\
117 echo "BUILT_SOURCES=ccan_config.h";\
118 echo "ccan_config.h: configurator";\
120 echo -e "\t\$$(builddir)/configurator \$$(CC) \$$(CCAN_CFLAGS) > \$$@.tmp && mv \$$@.tmp \$$@";\
122 echo "noinst_LTLIBRARIES=libccan.la";\
123 echo "libccan_la_SOURCES = \\";\
125 echo -e "\tccan_config.h \\";\
126 cd $(CCAN_TMP_DEST)/ccan && find . -maxdepth 2 -name '*.[ch]'\
127 | sed -e 's,^./,\t,;$$!s,$$, \\,'; echo;\
129 echo "ccanincludedir=\$$(includedir)/hkl-@""VMAJ@/hkl/ccan";\
130 echo "nobase_ccaninclude_HEADERS= \\";\
132 cd $(CCAN_LOCAL_EXTRACT)/ccan && find . -maxdepth 2 -name '*.[h]'\
133 | sed -e 's,^./,\t,;$$!s,$$, \\,';\
135 echo "nodist_ccaninclude_HEADERS=ccan_config.h";\
136 echo "EXTRA_DIST=configurator.c";\
137 echo "CLEANFILES=configurator ccan_config.h";\
138 ) > $(CCAN_TMP_DEST)/ccan/Makefile.am
140 @echo Extracting the configurator
141 @rsync -av $(CCAN_LOCAL_REPO)/tools/configurator/configurator.c $(CCAN_TMP_DEST)/ccan
143 @echo purge the previous ccan directory
144 cd $(CCAN_DEST) && rm -rf licenses && find ccan -mindepth 1 -type d \! -name ".*" | xargs rm -rf
145 rsync -av $(CCAN_TMP_DEST)/* $(top_srcdir)/hkl