#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
#  dedicated to making software imaging solutions freely available.
#
#  You may not use this file except in compliance with the License.  You may
#  obtain a copy of the License at
#
#    https://imagemagick.org/script/license.php
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#
#  Makefile for Magick ImageMagick configuration files.

# Where architecture-independent configuration files get installed
# (share/ImageMagick-version)
configsharedir = $(SHARE_PATH)
configshare_DATA = \
	config/english.xml \
	config/francais.xml \
	config/locale.xml

# Where architecture-dependent configuration files get installed
# (share/arch/ImageMagick-version)
configsharearchdir = $(SHAREARCH_PATH)
configsharearch_DATA = \
	config/configure.xml

# Where architecture-dependent configuration files get installed
# (share/ImageMagick-version)
configlibdir =  $(CONFIGURE_PATH)
configlib_DATA = \
	config/colors.xml \
	config/delegates.xml \
	config/log.xml \
	config/mime.xml \
	config/policy.xml \
	config/quantization-table.xml \
	config/thresholds.xml \
	config/type.xml \
	config/type-apple.xml \
	config/type-dejavu.xml \
	config/type-ghostscript.xml \
	config/type-urw-base35.xml \
	config/type-windows.xml

CONFIG_EXTRA_DIST = \
	config/cmyk.icm \
	config/colors.xml \
	config/config.h.in \
	config/delegates.xml.in \
	config/english.xml \
	config/francais.xml \
	config/ImageMagick.rc \
	config/ImageMagick.rdf.in \
	config/lndir.sh \
	config/locale.md \
	config/locale.xml \
	config/log.xml \
	config/mime.xml \
	config/policy.xml \
	config/quantization-table.xml \
	config/sRGB.icm \
	config/thresholds.xml \
	config/type-apple.xml.in \
	config/type-dejavu.xml.in \
	config/type-ghostscript.xml.in \
	config/type-urw-base35.xml.in \
	config/type-windows.xml.in \
	config/type.xml.in
