[binoculars-ng] added an old sixs test file
[hkl.git] / Makefile.am
blob18146da81f73a944ee8ea622f6f597fb1ff63813
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 --enable-binoculars
6 SUBDIRS = hkl third-party
7 if BINOCULARS
8 SUBDIRS += binoculars-ng
9 endif
10 if HKL3D
11 SUBDIRS += hkl3d data
12 endif
13 SUBDIRS += tests
14 if GUI
15 SUBDIRS += gui
16 endif
17 if HKL_DOC
18 SUBDIRS += Documentation
19 endif
20 if CONTRIB
21 SUBDIRS += contrib
22 endif
24 EXTRA_DIST = hkl.pc.in hkl3d.pc.in
26 installed_mainheaderdir = $(includedir)/hkl-@VMAJ@
27 dist_installed_mainheader_DATA = hkl.h
29 pkgconfigdir = $(libdir)/pkgconfig
30 pkgconfig_DATA = hkl.pc
32 if HKL3D
33 #for not do not install
34 noinst_DATA = hkl3d.pc
35 endif
37 release:
38         cd scripts && ./clean-all
39         -git commit -a -m "pre-release"
40         ./autogen.sh
41         ./configure $(AM_DISTCHECK_CONFIGURE_FLAGS)
42         $(MAKE)
43         $(MAKE) distcheck
44         git tag v`./configure -V | head -n 1 | awk '{print $$3}'`
47 ## lcov part
48 .PHONY: lcov genlcov lcov-clean release
49 # use recursive makes in order to ignore errors during check
50 lcov:
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
57 genlcov:
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
62 lcov-clean:
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.
71 dist-hook:
72         @if test -d "$(srcdir)/.git"; \
73         then \
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 ); \
81         else \
82                 echo A git clone is required to generate a ChangeLog >&2; \
83         fi
85 ## Update the ccan library
87 CCAN_PUBLIC_MODULES=darray
88 CCAN_PRIVATE_MODULES=array_size container_of autodata list generator
89 CCAN_LOCAL_REPO=/tmp/ccan
90 CCAN_LOCAL_EXTRACT=/tmp/ccan.tmp
91 CCAN_URL=https://github.com/rustyrussell/ccan.git
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
95 ccan-update:
96         @if test -d $(CCAN_LOCAL_REPO); \
97         then \
98                 cd $(CCAN_LOCAL_REPO) && git pull; \
99         else \
100                 git clone $(CCAN_URL) $(CCAN_LOCAL_REPO); \
101         fi
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>,'
110         @find $(CCAN_TMP_DEST)/ccan -maxdepth 2 -name '_info' | xargs rm -f
111         @find $(CCAN_TMP_DEST)/ccan -maxdepth 2 -name 'test' | xargs rm -rf
113         @$(CCAN_CREATE_TREE) $(CCAN_PUBLIC_MODULES)
115         @echo Generating the Makefile.am
116         @(\
117                 echo "AM_CFLAGS=-I\$$(top_srcdir)"; echo;\
118                 echo "noinst_PROGRAMS=configurator";\
119                 echo "BUILT_SOURCES=ccan_config.h";\
120                 echo "ccan_config.h: configurator";\
121                 (\
122                         echo -e "\t\$$(builddir)/configurator \$$(CC) \$$(CCAN_CFLAGS) > \$$@.tmp && mv \$$@.tmp \$$@";\
123                 );\
124                 echo "noinst_LTLIBRARIES=libccan.la";\
125                 echo "libccan_la_SOURCES = \\";\
126                 (\
127                         echo -e "\tccan_config.h \\";\
128                         cd $(CCAN_TMP_DEST)/ccan && find . -maxdepth 2 -name '*.[ch]'\
129                                 | sort\
130                                 | sed -e 's,^./,\t,;$$!s,$$, \\,'; echo;\
131                 );\
132                 echo "ccanincludedir=\$$(includedir)/hkl-@""VMAJ@/hkl/ccan";\
133                 echo "nobase_ccaninclude_HEADERS= \\";\
134                 (\
135                         cd $(CCAN_LOCAL_EXTRACT)/ccan && find . -maxdepth 2 -name '*.[h]'\
136                                 | sort\
137                                 | sed -e 's,^./,\t,;$$!s,$$, \\,';\
138                 );\
139                 echo "nodist_ccaninclude_HEADERS=ccan_config.h";\
140                 echo "EXTRA_DIST=configurator.c";\
141                 echo "CLEANFILES=configurator ccan_config.h";\
142         ) > $(CCAN_TMP_DEST)/ccan/Makefile.am
144         @echo Extracting the configurator
145         @rsync -av $(CCAN_LOCAL_REPO)/tools/configurator/configurator.c $(CCAN_TMP_DEST)/ccan
147         @echo purge the previous ccan directory
148         cd $(CCAN_DEST) && rm -rf licenses && find ccan -mindepth 1 -type d \! -name ".*" | xargs rm -rf
149         rsync -av $(CCAN_TMP_DEST)/* $(top_srcdir)/hkl
152 ## Update the metalang99 library
154 METALANG99_LOCAL_REPO=/tmp/metalang99
155 METALANG99_URL=https://github.com/Hirrolot/metalang99
156 METALANG99_DEST=$(top_srcdir)/third-party
157 metalang99-update:
158         @if [ -d $(METALANG99_LOCAL_REPO) ]; \
159         then \
160                 cd $(METALANG99_LOCAL_REPO) && git pull; \
161         else \
162                 git clone $(METALANG99_URL) $(METALANG99_LOCAL_REPO); \
163         fi
165         @echo Extracting all the modules
166         @rsync -av $(METALANG99_LOCAL_REPO)/include/* $(METALANG99_DEST)
168         @echo Generating the Makefile.am
169         @(\
170                 echo "EXTRA_DIST= \\";\
171                 (\
172                         cd $(METALANG99_DEST) && find . -name '*.[h]'\
173                                 | sort\
174                                 | sed -e 's,^./,\t,;$$!s,$$, \\,';\
175                 );\
176         ) > $(METALANG99_DEST)/Makefile.am
178         @echo Added all files to git
179         git add $(METALANG99_DEST)
181 ## Update the datatype99 library
183 DATATYPE99_LOCAL_REPO=/tmp/datatype99
184 DATATYPE99_URL=https://github.com/Hirrolot/datatype99
185 DATATYPE99_DEST=$(top_srcdir)/third-party
186 datatype99-update:
187         @if [ -d $(DATATYPE99_LOCAL_REPO) ]; \
188         then \
189                 cd $(DATATYPE99_LOCAL_REPO) && git pull; \
190         else \
191                 git clone $(DATATYPE99_URL) $(DATATYPE99_LOCAL_REPO); \
192         fi
194         @echo Extracting all the modules
195         @rsync -av $(DATATYPE99_LOCAL_REPO)/*.h $(DATATYPE99_DEST)
197         @echo Generating the Makefile.am
198         @(\
199                 echo "EXTRA_DIST= \\";\
200                 (\
201                         cd $(METALANG99_DEST) && find . -name '*.[h]'\
202                                 | sort\
203                                 | sed -e 's,^./,\t,;$$!s,$$, \\,';\
204                 );\
205         ) > $(METALANG99_DEST)/Makefile.am
207         @echo Added all files to git
208         git add $(METALANG99_DEST)