# $Id: Makefile.am 30154 2026-06-25 13:32:45Z yeti-dn $

# Put sources that are for some reason disabled yet present in svn checkouts
# here.  This makes them distributed and translations of their messages are
# kept.  If we remove them completely, various bits can get lost.
disabled_sources =

imagedir = $(libdir)/gwyddion3/modules/image

# Only bundle modules without own dependencies.  If something goes wrong with
# any required libraries at run-time, it will at most break these individual
# unbundled modules, not the bundle.
bundlable_modules = \
	acf2d.la \
	angle_dist.la \
	arc-revolve.la \
	arithmetic.la \
	averaging.la \
	basicops.la \
	binning.la \
	blockstep.la \
	calibrate.la \
	classify.la \
	coerce.la \
	convolution_filter.la \
	convolve.la \
	correct_affine.la \
	correct_perspective.la \
	crosscor.la \
	curvature.la \
	cwt.la \
	ddd.la \
	deconvolve.la \
	displfield.la \
	drift.la \
	dwt.la \
	dwtanisotropy.la \
	edge.la \
	entropy.la \
	extend.la \
	extract_path.la \
	facet-level.la \
	facet_analysis.la \
	facet_measure.la \
	fft.la \
	fft_filter_1d.la \
	fft_filter_2d.la \
	psdf2d.la \
	fit-shape.la \
	flatten_base.la \
	fraccor.la \
	fractal.la \
	freq_split.la \
	gaussian_step.la \
	good_profile.la \
	gradient.la \
	grain_cross.la \
	grain_dist.la \
	grain_filter.la \
	grain_edge.la \
	grain_makesel.la \
	grain_mark.la \
	grain_number.la \
	grain_stat.la \
	grain_summary.la \
	grain_wshed.la \
	hertz.la \
	hough.la \
	immerse.la \
	indent_analyze.la \
	laplace.la \
	latsim.la \
	level.la \
	level_grains.la \
	linecorrect.la \
	linematch.la \
	local_contrast.la \
	logistic.la \
	mark_disconn.la \
	mark_with.la \
	maskcor.la \
	mask_distribute.la \
	mask_edt.la \
	mask_morph.la \
	mask_noisify.la \
	mask_shift.la \
	maskops.la \
	mcrop.la \
	measure_lattice.la \
	median-bg.la \
	merge.la \
	mfm_field.la \
	mfm_findshift.la \
	mfm_recalc.la \
	mfm_shift.la \
	multiprofile.la \
	neural.la \
	otsu_threshold.la \
	outliers.la \
	pfm.la \
	pid.la \
	polydistort.la \
	polylevel.la \
	presentationops.la \
	psdf_logphi.la \
	psf.la \
	psf-fit.la \
	ptranslate.la \
	rank.la \
	rank_filter.la \
	raveraging.la \
	relate.la \
	reorder.la \
	resample.la \
	rotate.la \
	semsim.la \
	scale.la \
	scars.la \
	shade.la \
	slope_dist.la \
	smm.la \
	smm_apply.la \
	sphere-revolve.la \
	stitch.la \
	straighten_path.la \
	terracefit.la \
	threshold.la \
	tilt.la \
	tip_blind.la \
	tip_model.la \
	tipops.la \
	tipshape.la \
	trimmed-mean.la \
	volumize.la \
	volumize_layers.la \
	wpour_mark.la \
	wrapvalue.la \
	xydenoise.la \
	xyz_channels.la \
	xyzize.la \
	zero_crossing.la

# image_modules is either the bundle or all the individual modules.
if MODULE_BUNDLING
image_modules = image.la
BUILT_SOURCES = image.c
image_la_CFLAGS = $(AM_CFLAGS) -DGWY_MODULE_BUNDLING
else
image_modules = $(bundlable_modules)
endif

image_LTLIBRARIES = \
	$(image_modules)

EXTRA_DIST = \
	$(disabled_sources)

if OS_MSWIN
no_undefined = -no-undefined
endif

if MODULE_DEPENDENCIES
module_libadd = \
	$(top_builddir)/libgwyapp/libgwyapp3.la \
	$(top_builddir)/libgwyddion/libgwyddion3.la \
	$(top_builddir)/libgwyui/libgwyui3.la \
	@GTK_LIBS@ @LIBM@
else
module_libadd = @LIBM@
endif

AM_CPPFLAGS = -I$(top_srcdir) -DG_LOG_DOMAIN=\"Gwy-Module\"
AM_CFLAGS = @GTK_CFLAGS@ @COMMON_CFLAGS@ @OPENMP_CFLAGS@
AM_LDFLAGS = -avoid-version -module $(no_undefined) $(module_libadd) @OPENMP_CFLAGS@

# Bundlable modules, must be listed in image_la_SOURCES below.
acf2d_la_SOURCES               = acf2d.c
angle_dist_la_SOURCES          = angle_dist.c
arc_revolve_la_SOURCES         = arc-revolve.c
arithmetic_la_SOURCES          = arithmetic.c
averaging_la_SOURCES           = averaging.c
basicops_la_SOURCES            = basicops.c
binning_la_SOURCES             = binning.c
blockstep_la_SOURCES           = blockstep.c
calibrate_la_SOURCES           = calibrate.c
classify_la_SOURCES            = classify.c
coerce_la_SOURCES              = coerce.c
convolution_filter_la_SOURCES  = convolution_filter.c convolution-filter.h
convolve_la_SOURCES            = convolve.c
correct_affine_la_SOURCES      = correct_affine.c
correct_perspective_la_SOURCES = correct_perspective.c
crosscor_la_SOURCES            = crosscor.c
cwt_la_SOURCES                 = cwt.c
curvature_la_SOURCES           = curvature.c
ddd_la_SOURCES                 = ddd.c
deconvolve_la_SOURCES          = deconvolve.c
displfield_la_SOURCES          = displfield.c
drift_la_SOURCES               = drift.c
dwt_la_SOURCES                 = dwt.c
dwtanisotropy_la_SOURCES       = dwtanisotropy.c
edge_la_SOURCES                = edge.c
entropy_la_SOURCES             = entropy.c
extend_la_SOURCES              = extend.c
extract_path_la_SOURCES        = extract_path.c
facet_analysis_la_SOURCES      = facet_analysis.c
facet_measure_la_SOURCES       = facet_measure.c
facet_level_la_SOURCES         = facet-level.c
fft_filter_1d_la_SOURCES       = fft_filter_1d.c
fft_filter_2d_la_SOURCES       = fft_filter_2d.c
fft_la_SOURCES                 = fft.c
fit_shape_la_SOURCES           = fit-shape.c
flatten_base_la_SOURCES        = flatten_base.c
fractal_la_SOURCES             = fractal.c
fraccor_la_SOURCES             = fraccor.c
freq_split_la_SOURCES          = freq_split.c
gaussian_step_la_SOURCES       = gaussian_step.c
good_profile_la_SOURCES        = good_profile.c
gradient_la_SOURCES            = gradient.c
grain_cross_la_SOURCES         = grain_cross.c
grain_dist_la_SOURCES          = grain_dist.c
grain_edge_la_SOURCES          = grain_edge.c
grain_filter_la_SOURCES        = grain_filter.c
grain_mark_la_SOURCES          = grain_mark.c
grain_number_la_SOURCES        = grain_number.c
grain_makesel_la_SOURCES       = grain_makesel.c
grain_stat_la_SOURCES          = grain_stat.c
grain_summary_la_SOURCES       = grain_summary.c
grain_wshed_la_SOURCES         = grain_wshed.c
hertz_la_SOURCES               = hertz.c
hough_la_SOURCES               = hough.c
immerse_la_SOURCES             = immerse.c
indent_analyze_la_SOURCES      = indent_analyze.c
laplace_la_SOURCES             = laplace.c
latsim_la_SOURCES              = latsim.c
level_la_SOURCES               = level.c
level_grains_la_SOURCES        = level_grains.c
linecorrect_la_SOURCES         = linecorrect.c
linematch_la_SOURCES           = linematch.c
local_contrast_la_SOURCES      = local_contrast.c
logistic_la_SOURCES            = logistic.c
mark_disconn_la_SOURCES        = mark_disconn.c
mark_with_la_SOURCES           = mark_with.c
maskcor_la_SOURCES             = maskcor.c
mask_distribute_la_SOURCES     = mask_distribute.c
mask_edt_la_SOURCES            = mask_edt.c
mask_morph_la_SOURCES          = mask_morph.c
mask_noisify_la_SOURCES        = mask_noisify.c
mask_shift_la_SOURCES          = mask_shift.c
maskops_la_SOURCES             = maskops.c
mcrop_la_SOURCES               = mcrop.c
measure_lattice_la_SOURCES     = measure_lattice.c
median_bg_la_SOURCES           = median-bg.c
merge_la_SOURCES               = merge.c
mfm_field_la_SOURCES           = mfm_field.c mfmops.h
mfm_findshift_la_SOURCES       = mfm_findshift.c mfmops.h
mfm_recalc_la_SOURCES          = mfm_recalc.c mfmops.h
mfm_shift_la_SOURCES           = mfm_shift.c mfmops.h
multiprofile_la_SOURCES        = multiprofile.c
neural_la_SOURCES              = neural.c neuraldata.h
otsu_threshold_la_SOURCES      = otsu_threshold.c
outliers_la_SOURCES            = outliers.c
pfm_la_SOURCES                 = pfm.c
pid_la_SOURCES                 = pid.c
polylevel_la_SOURCES           = polylevel.c
polydistort_la_SOURCES         = polydistort.c
presentationops_la_SOURCES     = presentationops.c
psdf2d_la_SOURCES              = psdf2d.c
psdf_logphi_la_SOURCES         = psdf_logphi.c
psf_la_SOURCES                 = psf.c mfmops.h
psf_fit_la_SOURCES             = psf-fit.c
ptranslate_la_SOURCES          = ptranslate.c
rank_la_SOURCES                = rank.c
rank_filter_la_SOURCES         = rank-filter.c
raveraging_la_SOURCES          = raveraging.c
relate_la_SOURCES              = relate.c
reorder_la_SOURCES             = reorder.c
resample_la_SOURCES            = resample.c
rotate_la_SOURCES              = rotate.c
scale_la_SOURCES               = scale.c
scars_la_SOURCES               = scars.c
semsim_la_SOURCES              = semsim.c
shade_la_SOURCES               = shade.c
slope_dist_la_SOURCES          = slope_dist.c
smm_la_SOURCES                 = smm.c
smm_apply_la_SOURCES           = smm_apply.c
sphere_revolve_la_SOURCES      = sphere-revolve.c
stitch_la_SOURCES              = stitch.c
straighten_path_la_SOURCES     = straighten_path.c
terracefit_la_SOURCES          = terracefit.c
threshold_la_SOURCES           = threshold.c
tilt_la_SOURCES                = tilt.c
tip_blind_la_SOURCES           = tip_blind.c
tip_model_la_SOURCES           = tip_model.c
tipops_la_SOURCES              = tipops.c
tipshape_la_SOURCES            = tipshape.c
trimmed_mean_la_SOURCES        = trimmed-mean.c
volumize_la_SOURCES            = volumize.c
volumize_layers_la_SOURCES     = volumize_layers.c
wpour_mark_la_SOURCES          = wpour_mark.c
wrapvalue_la_SOURCES           = wrapvalue.c
xydenoise_la_SOURCES           = xydenoise.c
xyz_channels_la_SOURCES        = xyz_channels.c
xyzize_la_SOURCES              = xyzize.c
zero_crossing_la_SOURCES       = zero_crossing.c

image_la_SOURCES = \
	$(acf2d_la_SOURCES) \
	$(angle_dist_la_SOURCES) \
	$(arc_revolve_la_SOURCES) \
	$(arithmetic_la_SOURCES) \
	$(averaging_la_SOURCES) \
	$(basicops_la_SOURCES) \
	$(binning_la_SOURCES) \
	$(blockstep_la_SOURCES) \
	$(calibrate_la_SOURCES) \
	$(classify_la_SOURCES) \
	$(coerce_la_SOURCES) \
	$(convolution_filter_la_SOURCES) \
	$(convolve_la_SOURCES) \
	$(correct_affine_la_SOURCES) \
	$(correct_perspective_la_SOURCES) \
	$(crosscor_la_SOURCES) \
	$(cwt_la_SOURCES) \
	$(curvature_la_SOURCES) \
	$(ddd_la_SOURCES) \
	$(deconvolve_la_SOURCES) \
	$(displfield_la_SOURCES) \
	$(drift_la_SOURCES) \
	$(dwt_la_SOURCES) \
	$(dwtanisotropy_la_SOURCES) \
	$(edge_la_SOURCES) \
	$(entropy_la_SOURCES) \
	$(extend_la_SOURCES) \
	$(extract_path_la_SOURCES) \
	$(facet_analysis_la_SOURCES) \
	$(facet_measure_la_SOURCES) \
	$(facet_level_la_SOURCES) \
	$(fft_filter_1d_la_SOURCES) \
	$(fft_filter_2d_la_SOURCES) \
	$(fft_la_SOURCES) \
	$(fit_shape_la_SOURCES) \
	$(flatten_base_la_SOURCES) \
	$(fractal_la_SOURCES) \
	$(fraccor_la_SOURCES) \
	$(freq_split_la_SOURCES) \
	$(gaussian_step_la_SOURCES) \
	$(good_profile_la_SOURCES) \
	$(gradient_la_SOURCES) \
	$(grain_cross_la_SOURCES) \
	$(grain_dist_la_SOURCES) \
	$(grain_edge_la_SOURCES) \
	$(grain_filter_la_SOURCES) \
	$(grain_makesel_la_SOURCES) \
	$(grain_mark_la_SOURCES) \
	$(grain_number_la_SOURCES) \
	$(grain_stat_la_SOURCES) \
	$(grain_summary_la_SOURCES) \
	$(grain_wshed_la_SOURCES) \
	$(hertz_la_SOURCES) \
	$(hough_la_SOURCES) \
	$(immerse_la_SOURCES) \
	$(indent_analyze_la_SOURCES) \
	$(laplace_la_SOURCES) \
	$(latsim_la_SOURCES) \
	$(level_la_SOURCES) \
	$(level_grains_la_SOURCES) \
	$(linecorrect_la_SOURCES) \
	$(linematch_la_SOURCES) \
	$(local_contrast_la_SOURCES) \
	$(logistic_la_SOURCES) \
	$(mark_disconn_la_SOURCES) \
	$(mark_with_la_SOURCES) \
	$(maskcor_la_SOURCES) \
	$(mask_distribute_la_SOURCES) \
	$(mask_edt_la_SOURCES) \
	$(mask_morph_la_SOURCES) \
	$(mask_noisify_la_SOURCES) \
	$(mask_shift_la_SOURCES) \
	$(maskops_la_SOURCES) \
	$(mcrop_la_SOURCES) \
	$(measure_lattice_la_SOURCES) \
	$(median_bg_la_SOURCES) \
	$(merge_la_SOURCES) \
	$(mfm_field_la_SOURCES) \
	$(mfm_findshift_la_SOURCES) \
	$(mfm_recalc_la_SOURCES) \
	$(mfm_shift_la_SOURCES) \
	$(multiprofile_la_SOURCES) \
	$(neural_la_SOURCES) \
	$(otsu_threshold_la_SOURCES) \
	$(outliers_la_SOURCES) \
	$(pfm_la_SOURCES) \
	$(pid_la_SOURCES) \
	$(polydistort_la_SOURCES) \
	$(polylevel_la_SOURCES) \
	$(presentationops_la_SOURCES) \
	$(psdf2d_la_SOURCES) \
	$(psdf_logphi_la_SOURCES) \
	$(psf_la_SOURCES) \
	$(psf_fit_la_SOURCES) \
	$(ptranslate_la_SOURCES) \
	$(rank_la_SOURCES) \
	$(rank_filter_la_SOURCES) \
	$(raveraging_la_SOURCES) \
	$(relate_la_SOURCES) \
	$(reorder_la_SOURCES) \
	$(resample_la_SOURCES) \
	$(rotate_la_SOURCES) \
	$(scale_la_SOURCES) \
	$(scars_la_SOURCES) \
	$(semsim_la_SOURCES) \
	$(shade_la_SOURCES) \
	$(slope_dist_la_SOURCES) \
	$(smm_la_SOURCES) \
	$(smm_apply_la_SOURCES) \
	$(sphere_revolve_la_SOURCES) \
	$(stitch_la_SOURCES) \
	$(straighten_path_la_SOURCES) \
	$(terracefit_la_SOURCES) \
	$(threshold_la_SOURCES) \
	$(tilt_la_SOURCES) \
	$(tip_blind_la_SOURCES) \
	$(tip_model_la_SOURCES) \
	$(tipops_la_SOURCES) \
	$(tipshape_la_SOURCES) \
	$(trimmed_mean_la_SOURCES) \
	$(volumize_la_SOURCES) \
	$(volumize_layers_la_SOURCES) \
	$(wpour_mark_la_SOURCES) \
	$(wrapvalue_la_SOURCES) \
	$(xydenoise_la_SOURCES) \
	$(xyz_channels_la_SOURCES) \
	$(xyzize_la_SOURCES) \
	$(zero_crossing_la_SOURCES) \
	image.c

image.c: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/gen-module-bundle.sh
	$(SHELL) $(top_srcdir)/build-aux/gen-module-bundle.sh image.c $(bundlable_modules)

CLEAN_FILES = image.c

clean-local:
	rm -f core.* *~

