# $Id: Makefile.am 28171 2025-06-26 09:02:17Z yeti-dn $

# Some combinations of the tools do not give these us automatically.
abs_top_srcdir = @abs_top_srcdir@
abs_srcdir = @abs_srcdir@

SUBDIRS = \
	glmaterials \
	gradients

pkgconfigdatadir = $(libdir)/pkgconfig

if HOME_INSTALLATION
gwyddionappdir = $(XDG_DATA_HOME_DIR)/applications
gwyddionmimedir = $(XDG_DATA_HOME_DIR)/mime/packages
thumbnailerdir = $(XDG_DATA_HOME_DIR)/thumbnailers
# No place to put appdata files in homedir installation.  Probably.  So keep
# metainfofiles empty.
appdatadir = $(XDG_DATA_HOME_DIR)/metainfo
metainfofiles =
else
gwyddionappdir = $(datadir)/applications
gwyddionmimedir = $(datadir)/mime/packages
thumbnailerdir = $(datadir)/thumbnailers
appdatadir = $(datadir)/metainfo
metainfofiles = net.gwyddion.Gwyddion3.appdata.xml
endif

docsrc = $(top_builddir)/devel-docs
vim_syn_gen = $(abs_top_srcdir)/utils/gir-vim-syntax.py

gwyddionapp_DATA = gwyddion3.desktop
gwyddionmime_DATA = gwyddion3.xml
thumbnailer_DATA = gwyddion3.thumbnailer
appdata_DATA = $(metainfofiles)
man1_MANS = gwyddion3.1

EXTRA_DIST = \
	gwyddion3.desktop.in \
	gwyddion3.nsit.in \
	gwyddion3.spec.in \
	gwyddion3.thumbnailer.in \
	gwyddion3.vim \
	gwyddion3.1 \
	mingw-gwyddion3-libs.spec.in \
	net.gwyddion.Gwyddion3.appdata.xml \
	$(gwyddionmime_DATA)

# gwyddion3.vim generation
gwyddion_vim_sources = \
	$(top_builddir)/libgwyddion/Gwyddion-$(GWY_VERSION_MAJOR).$(GWY_VERSION_MINOR).gir \
	$(top_builddir)/libgwyui/GwyUI-$(GWY_VERSION_MAJOR).$(GWY_VERSION_MINOR).gir \
	$(top_builddir)/libgwyapp/GwyApp-$(GWY_VERSION_MAJOR).$(GWY_VERSION_MINOR).gir

file_magic_sources = \
	$(top_srcdir)/modules/file/*.c \
	$(top_srcdir)/modules/file/*.cc \
	$(top_srcdir)/modules/file/hdf5/*.c

CLEANFILES = \
	gwyddion3.thumbnailer

MAINTAINERCLEANFILES = \
	gwyddion3.vim \
	gwyddion3.xml

# FIXME: this breaks VPATH build
# Maintainer mode and VPATH are exclusive!
if MAINTAINER_MODE
gwyddion3.vim: $(gwyddion_vim_sources) $(vim_syn_gen)
	$(AM_V_GEN)$(PYTHON) $(vim_syn_gen) --name gwyddion3 $(gwyddion_vim_sources) >gwyddion3.vim

# Freedesktop MIME associations
gwyddion3.xml: $(top_srcdir)/utils/extract-file-magic.py $(file_magic_sources)
	$(AM_V_GEN)$(PYTHON) $(top_srcdir)/utils/extract-file-magic.py \
	  FREEDESKTOP $(file_magic_sources) >gwyddion3.xml

# File format table for user guide
file-format-table.xml: $(top_srcdir)/utils/extract-file-magic.py $(file_magic_sources)
	$(AM_V_GEN)$(PYTHON) $(top_srcdir)/utils/extract-file-magic.py \
	  USERGUIDE $(file_magic_sources) >file-format-table.xml

# File format table for file(1) magic
magic: $(top_srcdir)/utils/extract-file-magic.py $(file_magic_sources)
	$(AM_V_GEN)$(PYTHON) $(top_srcdir)/utils/extract-file-magic.py \
	  FILEMAGIC $(file_magic_sources) >magic
endif

# Generate gwyddion3.desktop from gwyddion3.xml to keep the file format list in
# sync.
# NB: We must use sed, not autoconf @-replacements, because that would leave
# unexpanded ${prefix} in the desktop file.
# Depend on Makefile, this may run this rule perhaps too often but ensures
# the paths are updated every time they should.
gwyddion3.desktop: gwyddion3.desktop.in $(srcdir)/gwyddion3.xml Makefile
	$(AM_V_GEN)x=`$(SED) -e '/^<mime-type/ s/.*<mime-type type="\(.*\)">.*/\1;/' -e t -e d <$(srcdir)/gwyddion3.xml | tr -d '\n'` \
	&& $(SED) -e "s#@MIME_TYPE_LIST@#$$x#" \
	  -e 's#[@]datadir[@]#$(datadir)#' \
	  <gwyddion3.desktop.in >gwyddion3.desktop

# Generate gwyddion3.thumbnailer from gwyddion3.xml to keep the file format list
# in sync.
gwyddion3.thumbnailer: gwyddion3.thumbnailer.in $(srcdir)/gwyddion3.xml
	$(AM_V_GEN)x=`$(SED) -e '/^<mime-type/ s/.*<mime-type type="\(.*\)">.*/\1;/' -e t -e d <$(srcdir)/gwyddion3.xml | tr -d '\n'` \
	&& $(SED) \
	     -e "s#@MIME_TYPE_LIST@#$$x#" \
	     -e "s#[@]EXEEXT[@]#$(EXEEXT)#" \
	     -e "s#[@]bindir[@]#$(bindir)#" \
	     <gwyddion3.thumbnailer.in >gwyddion3.thumbnailer

# Desktop file installation
# FIXME: Maybe not according to current standards
install-data-hook:
if DESKTOP_FILE_UPDATE
	if test -z "$(DESTDIR)"; then \
		test -d $(gwyddionappdir) || $(MKDIR_P) $(gwyddionappdir); \
		$(UPDATE_DESKTOP_DATABASE) $(gwyddionappdir); \
		test -d $(gwyddionmimedir) || $(MKDIR_P) $(gwyddionmimedir); \
		$(UPDATE_MIME_DATABASE) `dirname $(gwyddionmimedir)`; \
	fi
endif

uninstall-hook:
if DESKTOP_FILE_UPDATE
	if test -z "$(DESTDIR)"; then \
		$(UPDATE_DESKTOP_DATABASE) $(gwyddionappdir); \
		$(UPDATE_MIME_DATABASE) `dirname $(gwyddionmimedir)`; \
	fi
endif
