1# Makefile.am for MINC2
2#
3AUTOMAKE_OPTIONS = check-news subdir-objects
4ACLOCAL_AMFLAGS = -I m4
5
6AM_CFLAGS =
7AM_YFLAGS = -d --debug
8
9SUBDIRS = . volume_io testdir doc
10if MINC2
11SUBDIRS += libsrc2/test
12endif
13
14# how to build man pages from POD
15progs/minccomplete/minccomplete.man1: progs/minccomplete/minccomplete
16	$(POD2MAN) --section=1 $< > $@
17progs/minchistory/minchistory.man1: progs/minchistory/minchistory
18	$(POD2MAN) --section=1 $< > $@
19progs/mincpik/mincpik.man1: progs/mincpik/mincpik
20	$(POD2MAN) --section=1 $< > $@
21
22# Add these to the include searches.
23#
24INCLUDES = \
25	-I$(top_srcdir)/libsrc \
26	-I$(top_builddir)/volume_io/Include \
27	-I$(top_srcdir)/volume_io/Include \
28	-I$(top_srcdir)/progs/Proglib \
29	-I$(top_srcdir)/conversion/Acr_nema
30
31if MINC2
32INCLUDES += -I$(top_srcdir)/libsrc2
33endif
34
35# Headers which must be installed.
36#
37include_HEADERS = \
38	libsrc/minc.h \
39	libsrc/ParseArgv.h \
40	libsrc/voxel_loop.h \
41	libsrc/nd_loop.h \
42	libsrc/time_stamp.h \
43	libsrc/minc_compat.h \
44	volume_io/Include/volume_io.h \
45	libsrc2/minc2.h \
46	libsrc/minc_simple.h
47
48include_volume_iodir = $(includedir)/volume_io
49
50include_volume_io_HEADERS = \
51	volume_io/Include/volume_io/alloc.h \
52	volume_io/Include/volume_io/arrays.h \
53	volume_io/Include/volume_io/basic.h \
54	volume_io/Include/volume_io/def_math.h \
55	volume_io/Include/volume_io/files.h \
56	volume_io/Include/volume_io/geom_structs.h \
57	volume_io/Include/volume_io/geometry.h \
58	volume_io/Include/internal_volume_io.h \
59	volume_io/Include/volume_io/multidim.h \
60	volume_io/Include/volume_io/progress.h \
61	volume_io/Include/volume_io/string_funcs.h \
62	volume_io/Include/volume_io/system_dependent.h \
63	volume_io/Include/volume_io/transforms.h \
64	volume_io/Include/volume_io/vol_io_prototypes.h \
65	volume_io/Include/volume_io/volume.h \
66	volume_io/Include/volume_io/volume_cache.h
67
68# Header files which must be included in the distribution but which are
69# not part of the installation.
70#
71noinst_HEADERS = \
72	libsrc/read_file_names.h \
73	libsrc/minc_basic.h \
74	libsrc/minc_config.h \
75	libsrc/minc_error.h \
76	libsrc/minc_private.h \
77	libsrc/minc_routines.h \
78	libsrc/minc_structures.h \
79	libsrc/minc_useful.h \
80	libsrc/minc_varlists.h \
81	libsrc/type_limits.h \
82	libsrc/hdf_convenience.h \
83	progs/Proglib/convert_origin_to_start.h \
84	progs/Proglib/minc_def.h \
85	progs/minccalc/errx.h \
86	progs/minccalc/node.h \
87	progs/minccalc/gram.h \
88	progs/mincmorph/kernel_io.h \
89	progs/mincmorph/kernel_ops.h \
90	progs/mincresample/mincresample.h \
91	progs/mincreshape/mincreshape.h \
92	progs/mincsample/mt19937ar.h \
93	libsrc2/minc2_private.h \
94	progs/mincdump/mincdump.h \
95	progs/mincdump/dumplib.h \
96	progs/mincdump/vardata.h \
97	progs/mincgen/generic.h \
98	progs/mincgen/genlib.h \
99	progs/mincgen/ncgen.h \
100	progs/mincgen/ncgentab.h \
101	conversion/ecattominc/ecat_file.h \
102	conversion/ecattominc/machine_indep.h \
103	conversion/ecattominc/ecat_header_definition.h \
104	conversion/minctoecat/ecat_write.h \
105	conversion/minctoecat/machine_indep.h \
106	conversion/nifti1/nifti1.h \
107	conversion/nifti1/nifti1_io.h \
108	conversion/nifti1/nifti1_local.h \
109	conversion/nifti1/znzlib.h \
110	conversion/nifti1/analyze75.h \
111	conversion/dcm2mnc/acr_element_defs.h \
112	conversion/dcm2mnc/dcm2mnc.h \
113	conversion/dcm2mnc/dicom_read.h \
114	conversion/dcm2mnc/dicom_to_minc.h \
115	conversion/dcm2mnc/ext_element_defs.h \
116	conversion/dcm2mnc/minc_file.h \
117	conversion/dcm2mnc/progress.h \
118	conversion/dcm2mnc/siemens_to_dicom.h \
119	conversion/dcm2mnc/siemens_header_defs.h \
120	conversion/dcm2mnc/siemens_header_table.h \
121	conversion/dcm2mnc/spi_element_defs.h \
122	conversion/dcm2mnc/string_to_filename.h \
123	conversion/dcm2mnc/pms_element_defs.h \
124	conversion/dcm2mnc/gems_element_defs.h \
125	conversion/vff2mnc/vff2mnc.h
126
127if ACR_NEMA_TOOLS
128include_HEADERS += conversion/Acr_nema/acr_nema.h
129
130include_acr_nemadir = $(includedir)/acr_nema
131
132include_acr_nema_HEADERS = \
133	conversion/Acr_nema/acr_nema/acr_io.h \
134	conversion/Acr_nema/acr_nema/dicom_client_routines.h \
135	conversion/Acr_nema/acr_nema/dicom_network.h \
136	conversion/Acr_nema/acr_nema/element.h \
137	conversion/Acr_nema/acr_nema/file_io.h \
138	conversion/Acr_nema/acr_nema/group.h \
139	conversion/Acr_nema/acr_nema/message.h \
140	conversion/Acr_nema/acr_nema/value_repr.h
141
142else
143#
144# If not installing the full ACR/NEMA package, just add these headers to
145# list of headers not to be installed.
146#
147noinst_HEADERS += \
148	conversion/Acr_nema/acr_nema.h \
149	conversion/Acr_nema/acr_nema/acr_io.h \
150	conversion/Acr_nema/acr_nema/dicom_client_routines.h \
151	conversion/Acr_nema/acr_nema/dicom_network.h \
152	conversion/Acr_nema/acr_nema/element.h \
153	conversion/Acr_nema/acr_nema/file_io.h \
154	conversion/Acr_nema/acr_nema/group.h \
155	conversion/Acr_nema/acr_nema/message.h \
156	conversion/Acr_nema/acr_nema/value_repr.h
157
158endif
159
160
161# Libraries which must be built and installed.
162#
163lib_LTLIBRARIES = libminc2.la libvolume_io2.la
164
165# Conditionally install the libacr_nema.la library.  It must always be
166# built even if it is not installed.
167#
168if ACR_NEMA_TOOLS
169lib_LTLIBRARIES += libacr_nema.la
170else
171noinst_LTLIBRARIES = libacr_nema.la
172endif
173
174# Scripts we install: sh or perl.
175#
176dist_bin_SCRIPTS = \
177	progs/mincdiff/mincdiff \
178	progs/mincedit/mincedit \
179	progs/mincheader/mincheader \
180	progs/mincview/mincview
181
182# Scripts that we process (to add version #s) before install
183bin_SCRIPTS = \
184	progs/minccomplete/minccomplete \
185	progs/minchistory/minchistory \
186	progs/mincpik/mincpik \
187   progs/xfm/xfmflip
188
189# Programs we build and install.
190#
191bin_PROGRAMS = \
192	voxeltoworld \
193	worldtovoxel \
194	minc_modify_header \
195	mincaverage \
196	mincblob \
197	minccalc \
198	minccmp \
199	mincconcat \
200	minccopy \
201	mincexpand \
202	mincextract \
203	mincgen \
204	mincinfo \
205	minclookup \
206	mincmakescalar \
207	mincmakevector \
208	mincmath \
209	mincmorph \
210	mincresample \
211	mincreshape \
212	mincsample \
213	mincstats \
214	minctoraw \
215	invert_raw_image \
216	mincwindow \
217	rawtominc \
218	transformtags \
219	xfm2def \
220	xfmconcat \
221	xfminvert \
222	mincconvert \
223	mincdump \
224	ecattominc \
225	minctoecat \
226	mnc2nii \
227	nii2mnc \
228	upet2mnc \
229	dcm2mnc \
230	vff2mnc
231
232if ACR_NEMA_TOOLS
233bin_PROGRAMS += \
234	acr_test \
235	dump_acr_nema \
236	extract_acr_nema \
237	read_acr_nema \
238	dicom_test \
239	copy_acr_nema \
240	byte_swap \
241	extract
242endif
243
244noinst_PROGRAMS = \
245	mincexample1 \
246	mincexample2
247
248LDADD = libvolume_io2.la libminc2.la
249
250EXTRA_DIST = \
251	$(m4_files) \
252	$(ezMINC_files) \
253	progs/minccomplete/minccomplete.in \
254	progs/minchistory/minchistory.in \
255	progs/mincpik/mincpik.in \
256	progs/xfm/xfmflip.in \
257	libsrc/strdup.c \
258	epm-header.in \
259	libsrc/config.h.msvc-win32 \
260	Makefile.msvc-win32 \
261	conversion/Acr_nema/dicom.txt \
262	INSTALL.minc \
263	CMakeLists.txt \
264	config.h.cmake \
265	UseMINC2.cmake.in \
266	MINC2Config.cmake.in \
267	progs/CMakeLists.txt \
268	conversion/CMakeLists.txt \
269	cmake-modules/FindHDF5.cmake \
270	cmake-modules/FindNETCDF.cmake
271
272m4_files = \
273	m4/mni_REQUIRE_LIB.m4 \
274	m4/smr_WITH_BUILD_PATH.m4
275
276ezMINC_files = \
277	ezminc/examples/volume_msq_dist.cpp \
278	ezminc/examples/CMakeLists.txt \
279	ezminc/examples/fuzzy_volume_similarity.cpp \
280	ezminc/examples/trilinear_resample.cpp \
281	ezminc/examples/volume_avg.cpp \
282	ezminc/examples/volume_gtc_similarity.cpp \
283	ezminc/examples/volume_similarity.cpp \
284	ezminc/minc_1_simple_rw.cpp \
285	ezminc/minc_1_simple_rw.h \
286	ezminc/minc_io_4d_volume.h \
287	ezminc/minc_io_fixed_vector.h \
288	ezminc/minc_io_simple_volume.h \
289	ezminc/tests/minc_rw_test2.cpp \
290	ezminc/tests/minc_rw_test_4d.cpp \
291	ezminc/tests/minc_rw_test_simple.cpp \
292	ezminc/tests/CMakeLists.txt \
293	ezminc/tests/ezminc_rw_test.cpp \
294	ezminc/tests/ezminc_stats.cpp \
295	ezminc/minc_1_simple.h \
296	ezminc/CMakeLists.txt \
297	ezminc/minc_1_rw.cpp \
298	ezminc/minc_1_rw.h \
299	ezminc/minc_io_exceptions.h
300
301voxeltoworld_SOURCES = progs/coordinates/voxeltoworld.c
302
303worldtovoxel_SOURCES = progs/coordinates/worldtovoxel.c
304
305minc_modify_header_SOURCES = progs/minc_modify_header/minc_modify_header.c
306
307mincaverage_SOURCES = progs/mincaverage/mincaverage.c
308
309mincblob_SOURCES = progs/mincblob/mincblob.c
310
311minccalc_CFLAGS = -Iprogs/minccalc -I$(srcdir)/progs/minccalc
312minccalc_SOURCES = \
313	progs/minccalc/minccalc.c \
314	progs/minccalc/gram.y \
315	progs/minccalc/eval.c \
316	progs/minccalc/ident.c \
317	progs/minccalc/lex.l \
318	progs/minccalc/node.c \
319	progs/minccalc/optim.c \
320	progs/minccalc/scalar.c \
321	progs/minccalc/sym.c \
322	progs/minccalc/vector.c
323
324mincconcat_SOURCES = progs/mincconcat/mincconcat.c
325
326minccopy_SOURCES = progs/minccopy/minccopy.c
327
328minccmp_SOURCES = progs/minccmp/minccmp.c
329
330mincexample1_SOURCES = progs/mincexample/mincexample1.c
331
332mincexample2_SOURCES = progs/mincexample/mincexample2.c
333
334mincexpand_SOURCES = progs/mincexpand/mincexpand.c
335
336mincextract_SOURCES = progs/mincextract/mincextract.c
337
338mincgen_SOURCES = \
339	progs/mincgen/escapes.c \
340	progs/mincgen/genlib.c \
341	progs/mincgen/getfill.c \
342	progs/mincgen/init.c \
343	progs/mincgen/load.c \
344	progs/mincgen/main.c \
345	progs/mincgen/ncgentab.y \
346	progs/mincgen/ncgenyy.l
347
348
349mincinfo_SOURCES = progs/mincinfo/mincinfo.c
350
351minclookup_SOURCES = progs/minclookup/minclookup.c
352
353mincmakescalar_SOURCES = progs/mincmakescalar/mincmakescalar.c
354
355mincmakevector_SOURCES = progs/mincmakevector/mincmakevector.c
356
357mincmath_SOURCES = progs/mincmath/mincmath.c
358
359mincmorph_CFLAGS = -Iprogs/mincmorph -I$(srcdir)/progs/mincmorph
360mincmorph_SOURCES = \
361	progs/mincmorph/mincmorph.c \
362	progs/mincmorph/kernel_io.c \
363	progs/mincmorph/kernel_ops.c
364
365mincsample_CFLAGS = -Iprogs/mincsample -I$(srcdir)/progs/mincsample
366mincresample_SOURCES = \
367	progs/mincresample/mincresample.c \
368	progs/mincresample/resample_volumes.c \
369	progs/Proglib/convert_origin_to_start.c
370
371mincreshape_SOURCES = \
372	progs/mincreshape/mincreshape.c \
373	progs/mincreshape/copy_data.c
374
375mincsample_SOURCES = \
376	progs/mincsample/mincsample.c \
377	progs/mincsample/mt19937ar.c
378
379mincstats_SOURCES = progs/mincstats/mincstats.c
380
381minctoraw_SOURCES = progs/minctoraw/minctoraw.c
382
383invert_raw_image_SOURCES = progs/mincview/invert_raw_image.c
384
385mincwindow_SOURCES = progs/mincwindow/mincwindow.c
386
387rawtominc_SOURCES = \
388	progs/rawtominc/rawtominc.c \
389	progs/Proglib/convert_origin_to_start.c
390
391transformtags_SOURCES = progs/xfm/transformtags.c
392
393xfm2def_SOURCES = progs/xfm/xfm2def.c
394
395xfmconcat_SOURCES = progs/xfm/xfmconcat.c
396
397xfminvert_SOURCES = progs/xfm/xfminvert.c
398
399mincconvert_SOURCES = progs/mincconvert/mincconvert.c
400
401mincdump_SOURCES = \
402	progs/mincdump/mincdump.c \
403	progs/mincdump/vardata.c \
404	progs/mincdump/dumplib.c
405
406ecattominc_SOURCES = \
407	conversion/ecattominc/ecattominc.c \
408	conversion/ecattominc/insertblood.c \
409	conversion/ecattominc/ecat_file.c \
410	conversion/ecattominc/machine_indep.c
411
412minctoecat_SOURCES = \
413	conversion/minctoecat/minctoecat.c \
414	conversion/minctoecat/ecat_write.c \
415	conversion/minctoecat/machine_indep.c
416
417nii2mnc_SOURCES = \
418	conversion/nifti1/nii2mnc.c \
419	conversion/nifti1/nifti1_io.c \
420	conversion/nifti1/znzlib.c
421
422mnc2nii_SOURCES = \
423	conversion/nifti1/mnc2nii.c \
424	conversion/nifti1/nifti1_io.c \
425	conversion/nifti1/znzlib.c
426
427upet2mnc_SOURCES = \
428	conversion/micropet/upet2mnc.c
429
430dcm2mnc_LDADD = libacr_nema.la $(LDADD)
431
432dcm2mnc_SOURCES = \
433	conversion/dcm2mnc/dcm2mnc.c \
434	conversion/dcm2mnc/dicom_to_minc.c \
435	conversion/dcm2mnc/siemens_to_dicom.c \
436	conversion/dcm2mnc/dicom_read.c \
437	conversion/dcm2mnc/minc_file.c \
438	conversion/dcm2mnc/progress.c \
439	conversion/dcm2mnc/string_to_filename.c
440
441vff2mnc_SOURCES = \
442	conversion/vff2mnc/vff2mnc.c
443
444acr_test_LDADD = libacr_nema.la
445
446acr_test_SOURCES = conversion/Acr_nema/acr_test.c
447
448dump_acr_nema_LDADD = libacr_nema.la
449
450dump_acr_nema_SOURCES = conversion/Acr_nema/dump_acr_nema.c
451
452extract_acr_nema_LDADD = libacr_nema.la
453
454extract_acr_nema_SOURCES = conversion/Acr_nema/extract_acr_nema.c
455
456read_acr_nema_LDADD = libacr_nema.la
457
458read_acr_nema_SOURCES = conversion/Acr_nema/read_acr_nema.c
459
460dicom_test_LDADD = libacr_nema.la
461
462dicom_test_SOURCES = conversion/Acr_nema/dicom_test.c
463
464copy_acr_nema_LDADD = libacr_nema.la
465
466copy_acr_nema_SOURCES = conversion/Acr_nema/copy_acr_nema.c
467
468extract_SOURCES = conversion/image_filters/extract.c
469byte_swap_SOURCES = conversion/image_filters/byte_swap.c
470
471
472libminc2_la_LDFLAGS = -version-info 3:0:0
473libminc2_la_SOURCES = \
474	libsrc/ParseArgv.c \
475	libsrc/read_file_names.c \
476	libsrc/dim_conversion.c \
477	libsrc/image_conversion.c \
478	libsrc/minc_convenience.c \
479	libsrc/minc_error.c \
480	libsrc/nd_loop.c \
481	libsrc/netcdf_convenience.c \
482	libsrc/time_stamp.c \
483	libsrc/value_conversion.c \
484	libsrc/voxel_loop.c \
485	libsrc/hdf_convenience.c \
486	libsrc/minc_compat.c \
487	libsrc/minc_simple.c
488
489if MINC2
490libminc2_la_SOURCES += \
491	libsrc2/convert.c \
492	libsrc2/datatype.c \
493	libsrc2/dimension.c \
494	libsrc2/free.c \
495	libsrc2/grpattr.c \
496	libsrc2/hyper.c \
497	libsrc2/label.c \
498	libsrc2/m2util.c \
499	libsrc2/record.c \
500	libsrc2/slice.c \
501	libsrc2/valid.c \
502	libsrc2/volprops.c \
503	libsrc2/volume.c
504else
505EXTRA_DIST += \
506	libsrc2/convert.c \
507	libsrc2/datatype.c \
508	libsrc2/dimension.c \
509	libsrc2/free.c \
510	libsrc2/grpattr.c \
511	libsrc2/hyper.c \
512	libsrc2/label.c \
513	libsrc2/m2util.c \
514	libsrc2/record.c \
515	libsrc2/slice.c \
516	libsrc2/valid.c \
517	libsrc2/volprops.c \
518	libsrc2/volume.c
519endif
520
521libvolume_io2_la_LDFLAGS = -version-info 3:0:0
522libvolume_io2_la_SOURCES = \
523	volume_io/Geometry/colour.c \
524	volume_io/Geometry/colour_def.c \
525	volume_io/Geometry/gaussian.c \
526	volume_io/Geometry/inverse.c \
527	volume_io/Geometry/newton.c \
528	volume_io/Geometry/points.c \
529	volume_io/Geometry/splines.c \
530	volume_io/Geometry/tensors.c \
531	volume_io/Geometry/transforms.c \
532	volume_io/MNI_formats/gen_xf_io.c \
533	volume_io/MNI_formats/gen_xfs.c \
534	volume_io/MNI_formats/grid_transforms.c \
535	volume_io/MNI_formats/mni_io.c \
536	volume_io/MNI_formats/tag_points.c \
537	volume_io/MNI_formats/thin_plate_spline.c \
538	volume_io/Prog_utils/alloc.c \
539	volume_io/Prog_utils/alloc_check.c \
540	volume_io/Prog_utils/arrays.c \
541	volume_io/Prog_utils/files.c \
542	volume_io/Prog_utils/print.c \
543	volume_io/Prog_utils/progress.c \
544	volume_io/Prog_utils/string.c \
545	volume_io/Prog_utils/time.c \
546	volume_io/Volumes/evaluate.c \
547	volume_io/Volumes/get_hyperslab.c \
548	volume_io/Volumes/input_free.c \
549	volume_io/Volumes/input_mnc.c \
550	volume_io/Volumes/input_volume.c \
551	volume_io/Volumes/multidim_arrays.c \
552	volume_io/Volumes/output_mnc.c \
553	volume_io/Volumes/output_volume.c \
554	volume_io/Volumes/set_hyperslab.c \
555	volume_io/Volumes/volume_cache.c \
556	volume_io/Volumes/volumes.c
557
558libacr_nema_la_SOURCES = \
559	conversion/Acr_nema/acr_io.c \
560	conversion/Acr_nema/dicom_client_routines.c \
561	conversion/Acr_nema/dicom_network.c \
562	conversion/Acr_nema/element.c \
563	conversion/Acr_nema/file_io.c \
564	conversion/Acr_nema/globals.c \
565	conversion/Acr_nema/group.c \
566	conversion/Acr_nema/message.c \
567	conversion/Acr_nema/value_repr.c
568
569# MAN pages go here.  The "dist_" prefix signals that they
570# are to be included in source distribution.
571#
572dist_man1_MANS = \
573	progs/coordinates/voxeltoworld.man1 \
574	progs/minc_modify_header/minc_modify_header.man1 \
575	progs/mincaverage/mincaverage.man1 \
576	progs/mincblob/mincblob.man1 \
577	progs/minccalc/minccalc.man1 \
578	progs/minccomplete/minccomplete.man1 \
579	progs/mincconcat/mincconcat.man1 \
580	progs/minccmp/minccmp.man1 \
581	progs/minccopy/minccopy.man1 \
582	progs/mincdiff/mincdiff.man1 \
583	progs/mincedit/mincedit.man1 \
584	progs/mincexpand/mincexpand.man1 \
585	progs/mincextract/mincextract.man1 \
586	progs/mincgen/mincgen.man1 \
587	progs/mincheader/mincheader.man1 \
588	progs/minchistory/minchistory.man1 \
589	progs/mincinfo/mincinfo.man1 \
590	progs/minclookup/minclookup.man1 \
591	progs/mincmakescalar/mincmakescalar.man1 \
592	progs/mincmakevector/mincmakevector.man1 \
593	progs/mincmath/mincmath.man1 \
594	progs/mincpik/mincpik.man1 \
595	progs/mincresample/mincresample.man1 \
596	progs/mincreshape/mincreshape.man1 \
597	progs/mincstats/mincstats.man1 \
598	progs/minctoraw/minctoraw.man1 \
599	progs/mincview/invert_raw_image.man1 \
600	progs/mincview/mincview.man1 \
601	progs/mincwindow/mincwindow.man1 \
602	progs/rawtominc/rawtominc.man1 \
603	progs/xfm/transformtags.man1 \
604	progs/xfm/xfm2def.man1 \
605	progs/xfm/xfmconcat.man1 \
606	progs/xfm/xfminvert.man1 \
607	progs/xfm/xfmflip.man1 \
608	progs/mincconvert/mincconvert.man1 \
609	conversion/ecattominc/ecattominc.man1 \
610	conversion/minctoecat/minctoecat.man1 \
611	conversion/nifti1/nii2mnc.man1 \
612	conversion/nifti1/mnc2nii.man1 \
613	conversion/micropet/upet2mnc.man1 \
614	conversion/dcm2mnc/dcm2mnc.man1 \
615	conversion/vff2mnc/vff2mnc.man1
616
617dist_man3_MANS = libsrc/ParseArgv.man3
618