#  Copyright 1999-2016 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
#
#    http://www.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/coder.xml \
	config/colors.xml \
	config/delegates.xml \
	config/log.xml \
	config/magic.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-windows.xml

CONFIG_EXTRA_DIST = \
	config/cmyk.icm \
	config/coder.xml \
	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.xml \
	config/log.xml \
	config/magic.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-windows.xml.in \
	config/type.xml.in
