#  Copyright 1999-2020 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://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 building the MagickCore API.
#

MagickCoreincdir = $(INCLUDE_PATH)/MagickCore
MagickCoreincarchdir = $(INCLUDEARCH_PATH)/MagickCore

# Headers which are installed
MagickCoreinc_HEADERS = \
  $(MAGICKCORE_INCLUDE_HDRS)
MagickCoreincarch_HEADERS = \
  $(MAGICKCORE_INCLUDEARCH_HDRS)

MAGICKCORE_BIN_SCRPTS = \
  MagickCore/MagickCore-config

MAGICKCORE_PKGCONFIG = \
  MagickCore/ImageMagick.pc \
  MagickCore/MagickCore.pc \
  MagickCore/ImageMagick-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc \
  MagickCore/MagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc

OSX_GCOV_LDFLAG = @OSX_GCOV_LDFLAG@

MAGICKCORE_MANS = \
  MagickCore/MagickCore-config.1

MAGICKCORE_LIBS = MagickCore/libMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.la

if WITH_MODULES
MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES = $(MAGICKCORE_BASE_SRCS) $(MAGICKCORE_PLATFORM_SRCS)
MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LIBADD = $(MAGICK_DEP_LIBS)
else
MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES = $(MAGICKCORE_BASE_SRCS) $(MAGICKCORE_PLATFORM_SRCS) $(MAGICKCORE_CODER_SRCS) $(MAGICKCORE_FILTER_SRCS)
MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LIBADD = $(MAGICK_DEP_LIBS)
endif # WITH_MODULES

nodist_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES =
MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBRARY_EXTRA_CPPFLAGS)

if HAVE_LD_VERSION_SCRIPT
MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION =  -Wl,--version-script=$(top_srcdir)/MagickCore/libMagickCore.map
else
MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION = -export-symbols-regex ".*"
endif

MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS = -no-undefined \
  $(MagickCore_libMagickCore_la_LDFLAGS_VERSION) \
  $(OSX_GCOV_LDFLAG) $(MAGICK_LT_RELEASE_OPTS) -version-info \
  $(MAGICK_LIBRARY_CURRENT):$(MAGICK_LIBRARY_REVISION):$(MAGICK_LIBRARY_AGE)
MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_DEPENDENCIES =

# Library base sources
MAGICKCORE_BASE_SRCS = \
  MagickCore/MagickCore.h \
  MagickCore/accelerate.c \
  MagickCore/accelerate-private.h \
  MagickCore/accelerate-kernels-private.h \
  MagickCore/animate.c \
  MagickCore/animate.h \
  MagickCore/animate-private.h \
  MagickCore/annotate.c \
  MagickCore/annotate.h \
  MagickCore/artifact.c \
  MagickCore/artifact.h \
  MagickCore/attribute.c \
  MagickCore/attribute.h \
  MagickCore/blob.c \
  MagickCore/blob.h \
  MagickCore/blob-private.h \
  MagickCore/cache.c \
  MagickCore/cache.h \
  MagickCore/cache-private.h \
  MagickCore/cache-view.c \
  MagickCore/cache-view.h \
  MagickCore/channel.c \
  MagickCore/channel.h \
  MagickCore/cipher.c \
  MagickCore/cipher.h \
  MagickCore/client.c \
  MagickCore/client.h \
  MagickCore/coder.c \
  MagickCore/coder.h \
  MagickCore/color.c \
  MagickCore/color.h \
  MagickCore/color-private.h \
  MagickCore/colormap.c \
  MagickCore/colormap.h \
  MagickCore/colormap-private.h \
  MagickCore/colorspace.c \
  MagickCore/colorspace.h \
  MagickCore/colorspace-private.h \
  MagickCore/compare.c \
  MagickCore/compare.h \
  MagickCore/composite.c \
  MagickCore/composite.h \
  MagickCore/composite-private.h \
  MagickCore/compress.c \
  MagickCore/compress.h \
  MagickCore/configure.c \
  MagickCore/configure.h \
  MagickCore/constitute.c \
  MagickCore/constitute.h \
  MagickCore/decorate.c \
  MagickCore/decorate.h \
  MagickCore/delegate.c \
  MagickCore/delegate.h \
  MagickCore/delegate-private.h \
  MagickCore/deprecate.c \
  MagickCore/deprecate.h \
  MagickCore/display.c \
  MagickCore/display.h \
  MagickCore/display-private.h \
  MagickCore/distort.c \
  MagickCore/distort.h \
  MagickCore/distribute-cache.c \
  MagickCore/distribute-cache.h \
  MagickCore/distribute-cache-private.h \
  MagickCore/draw.c \
  MagickCore/draw.h \
  MagickCore/draw-private.h \
  MagickCore/effect.c \
  MagickCore/effect.h \
  MagickCore/enhance.c \
  MagickCore/enhance.h \
  MagickCore/exception.c \
  MagickCore/exception.h \
  MagickCore/exception-private.h \
  MagickCore/feature.c \
  MagickCore/feature.h \
  MagickCore/fourier.c \
  MagickCore/fourier.h \
  MagickCore/fx.c \
  MagickCore/fx.h \
  MagickCore/fx-private.h \
  MagickCore/gem.c \
  MagickCore/gem.h \
  MagickCore/gem-private.h \
  MagickCore/geometry.c \
  MagickCore/geometry.h \
  MagickCore/histogram.c \
  MagickCore/histogram.h \
  MagickCore/identify.c \
  MagickCore/identify.h \
  MagickCore/image.c \
  MagickCore/image.h \
  MagickCore/image-private.h \
  MagickCore/image-view.c \
  MagickCore/image-view.h \
  MagickCore/layer.c \
  MagickCore/layer.h \
  MagickCore/linked-list.c \
  MagickCore/linked-list.h \
  MagickCore/list.c \
  MagickCore/list.h \
  MagickCore/locale.c \
  MagickCore/locale_.h \
  MagickCore/log.c \
  MagickCore/log.h \
  MagickCore/magic.c \
  MagickCore/magic.h \
  MagickCore/magick.c \
  MagickCore/magick-baseconfig.h \
  MagickCore/magick-config.h \
  MagickCore/magick-type.h \
  MagickCore/magick.h \
  MagickCore/matrix.c \
  MagickCore/matrix.h \
  MagickCore/matrix-private.h \
  MagickCore/memory.c \
  MagickCore/memory_.h \
  MagickCore/memory-private.h \
  MagickCore/method-attribute.h \
  MagickCore/methods.h \
  MagickCore/mime.c \
  MagickCore/mime.h \
  MagickCore/module.c \
  MagickCore/module.h \
  MagickCore/monitor.c \
  MagickCore/monitor.h \
  MagickCore/monitor-private.h \
  MagickCore/montage.c \
  MagickCore/montage.h \
  MagickCore/morphology.c \
  MagickCore/morphology.h \
  MagickCore/morphology-private.h \
  MagickCore/mutex.h \
  MagickCore/nt-base.h \
  MagickCore/nt-base-private.h \
  MagickCore/nt-feature.h \
  MagickCore/opencl.c \
  MagickCore/opencl.h \
  MagickCore/opencl-private.h \
  MagickCore/option.c \
  MagickCore/option.h \
  MagickCore/option-private.h \
  MagickCore/paint.c \
  MagickCore/paint.h \
  MagickCore/pixel.c \
  MagickCore/pixel.h \
  MagickCore/pixel-accessor.h \
  MagickCore/pixel-private.h \
  MagickCore/policy.c \
  MagickCore/policy.h \
  MagickCore/policy-private.h \
  MagickCore/prepress.c \
  MagickCore/prepress.h \
  MagickCore/property.c \
  MagickCore/property.h \
  MagickCore/profile.c \
  MagickCore/profile.h \
  MagickCore/profile-private.h \
  MagickCore/quantize.c \
  MagickCore/quantize.h \
  MagickCore/quantum.c \
  MagickCore/quantum.h \
  MagickCore/quantum-export.c \
  MagickCore/quantum-import.c \
  MagickCore/quantum-private.h \
  MagickCore/random.c \
  MagickCore/random_.h \
  MagickCore/random-private.h \
  MagickCore/registry.c \
  MagickCore/registry.h \
  MagickCore/resample.c \
  MagickCore/resample.h \
  MagickCore/resample-private.h \
  MagickCore/resize.c \
  MagickCore/resize.h \
  MagickCore/resize-private.h \
  MagickCore/resource.c \
  MagickCore/resource_.h \
  MagickCore/resource-private.h \
  MagickCore/segment.c \
  MagickCore/segment.h \
  MagickCore/semaphore.c \
  MagickCore/semaphore.h \
  MagickCore/semaphore-private.h \
  MagickCore/shear.c \
  MagickCore/shear.h \
  MagickCore/signature.c \
  MagickCore/signature.h \
  MagickCore/signature-private.h \
  MagickCore/splay-tree.c \
  MagickCore/splay-tree.h \
  MagickCore/static.c \
  MagickCore/static.h \
  MagickCore/statistic.c \
  MagickCore/statistic.h \
  MagickCore/stream.c \
  MagickCore/stream.h \
  MagickCore/stream-private.h \
  MagickCore/string.c \
  MagickCore/string_.h \
  MagickCore/string-private.h \
  MagickCore/studio.h \
  MagickCore/thread.c \
  MagickCore/thread_.h \
  MagickCore/thread-private.h \
  MagickCore/timer.c \
  MagickCore/timer.h \
  MagickCore/timer-private.h \
  MagickCore/token.c \
  MagickCore/token.h \
  MagickCore/token-private.h \
  MagickCore/transform.c \
  MagickCore/transform.h \
  MagickCore/threshold.c \
  MagickCore/threshold.h \
  MagickCore/type.c \
  MagickCore/type.h \
  MagickCore/utility.c \
  MagickCore/utility.h \
  MagickCore/utility-private.h \
  MagickCore/version.c \
  MagickCore/version.h \
  MagickCore/version-private.h \
  MagickCore/visual-effects.c \
  MagickCore/visual-effects.h \
  MagickCore/vision.c \
  MagickCore/vision.h \
  MagickCore/widget.c \
  MagickCore/widget.h \
  MagickCore/widget-private.h \
  MagickCore/xml-tree.c \
  MagickCore/xml-tree.h \
  MagickCore/xml-tree-private.h \
  MagickCore/xwindow.c \
  MagickCore/xwindow.h

if WIN32_NATIVE_BUILD
MAGICKCORE_PLATFORM_SRCS = \
  MagickCore/nt-base.c \
  MagickCore/nt-base.h \
  MagickCore/nt-base-private.h \
  MagickCore/nt-feature.c \
  MagickCore/nt-feature.h
else
if CYGWIN_BUILD
MAGICKCORE_PLATFORM_SRCS = \
  MagickCore/nt-feature.c \
  MagickCore/nt-feature.h
else
MAGICKCORE_PLATFORM_SRCS =
endif # if CYGWIN_BUILD
endif # if WIN32_NATIVE_BUILD

MAGICKCORE_INCLUDE_HDRS = \
  MagickCore/MagickCore.h \
  MagickCore/animate.h \
  MagickCore/annotate.h \
  MagickCore/artifact.h \
  MagickCore/attribute.h \
  MagickCore/blob.h \
  MagickCore/cache.h \
  MagickCore/cache-view.h \
  MagickCore/channel.h \
  MagickCore/cipher.h \
  MagickCore/client.h \
  MagickCore/coder.h \
  MagickCore/color.h \
  MagickCore/colormap.h \
  MagickCore/colorspace.h \
  MagickCore/compare.h \
  MagickCore/composite.h \
  MagickCore/compress.h \
  MagickCore/configure.h \
  MagickCore/constitute.h \
  MagickCore/decorate.h \
  MagickCore/delegate.h \
  MagickCore/deprecate.h \
  MagickCore/display.h \
  MagickCore/distort.h \
  MagickCore/distribute-cache.h \
  MagickCore/draw.h \
  MagickCore/effect.h \
  MagickCore/enhance.h \
  MagickCore/exception.h \
  MagickCore/feature.h \
  MagickCore/fourier.h \
  MagickCore/fx.h \
  MagickCore/gem.h \
  MagickCore/geometry.h \
  MagickCore/histogram.h \
  MagickCore/identify.h \
  MagickCore/image.h \
  MagickCore/image-view.h \
  MagickCore/layer.h \
  MagickCore/linked-list.h \
  MagickCore/list.h \
  MagickCore/locale_.h \
  MagickCore/log.h \
  MagickCore/magic.h \
  MagickCore/magick.h \
  MagickCore/magick-config.h \
  MagickCore/magick-type.h \
  MagickCore/matrix.h \
  MagickCore/memory_.h \
  MagickCore/method-attribute.h \
  MagickCore/methods.h \
  MagickCore/mime.h \
  MagickCore/module.h \
  MagickCore/monitor.h \
  MagickCore/montage.h \
  MagickCore/morphology.h \
  MagickCore/nt-base.h \
  MagickCore/opencl.h \
  MagickCore/option.h \
  MagickCore/paint.h \
  MagickCore/pixel.h \
  MagickCore/pixel-accessor.h \
  MagickCore/policy.h \
  MagickCore/prepress.h \
  MagickCore/profile.h \
  MagickCore/property.h \
  MagickCore/quantize.h \
  MagickCore/quantum.h \
  MagickCore/random_.h \
  MagickCore/registry.h \
  MagickCore/resample.h \
  MagickCore/resize.h \
  MagickCore/resource_.h \
  MagickCore/segment.h \
  MagickCore/semaphore.h \
  MagickCore/shear.h \
  MagickCore/signature.h \
  MagickCore/splay-tree.h \
  MagickCore/static.h \
  MagickCore/statistic.h \
  MagickCore/stream.h \
  MagickCore/string_.h \
  MagickCore/studio.h \
  MagickCore/timer.h \
  MagickCore/token.h \
  MagickCore/transform.h \
  MagickCore/threshold.h \
  MagickCore/type.h \
  MagickCore/utility.h \
  MagickCore/version.h \
  MagickCore/vision.h \
  MagickCore/visual-effects.h \
  MagickCore/widget.h \
  MagickCore/xml-tree.h \
  MagickCore/xwindow.h

MAGICKCORE_NOINST_HDRS = \
  MagickCore/accelerate-private.h \
  MagickCore/accelerate-kernels-private.h \
  MagickCore/animate-private.h \
  MagickCore/annotate-private.h \
  MagickCore/blob-private.h \
  MagickCore/cache-private.h \
  MagickCore/cache-private.h \
  MagickCore/coder-private.h \
  MagickCore/colormap-private.h \
  MagickCore/color-private.h \
  MagickCore/color-private.h \
  MagickCore/colorspace-private.h \
  MagickCore/composite-private.h \
  MagickCore/configure-private.h \
  MagickCore/constitute-private.h \
  MagickCore/delegate-private.h \
  MagickCore/delegate-private.h \
  MagickCore/display-private.h \
  MagickCore/distribute-cache-private.h \
  MagickCore/draw-private.h \
  MagickCore/exception-private.h \
  MagickCore/fx-private.h \
  MagickCore/gem-private.h \
  MagickCore/image-private.h \
  MagickCore/locale-private.h \
  MagickCore/log-private.h \
  MagickCore/magick-private.h \
  MagickCore/magic-private.h \
  MagickCore/matrix-private.h \
  MagickCore/memory-private.h \
  MagickCore/methods-private.h \
  MagickCore/mime-private.h \
  MagickCore/mime-private.h \
  MagickCore/module-private.h \
  MagickCore/monitor-private.h \
  MagickCore/morphology-private.h \
  MagickCore/mutex.h \
  MagickCore/nt-base.h \
  MagickCore/nt-feature.h \
  MagickCore/opencl-private.h \
  MagickCore/option-private.h \
  MagickCore/pixel-private.h \
  MagickCore/policy-private.h \
  MagickCore/profile-private.h \
  MagickCore/quantum-private.h \
  MagickCore/random-private.h \
  MagickCore/registry-private.h \
  MagickCore/resample-private.h \
  MagickCore/resize-private.h \
  MagickCore/resource-private.h \
  MagickCore/resource-private.h \
  MagickCore/semaphore-private.h \
  MagickCore/semaphore-private.h \
  MagickCore/signature-private.h \
  MagickCore/stream-private.h \
  MagickCore/string-private.h \
  MagickCore/thread_.h \
  MagickCore/thread-private.h \
  MagickCore/timer-private.h \
  MagickCore/token-private.h \
  MagickCore/transform-private.h \
  MagickCore/type-private.h \
  MagickCore/utility-private.h \
  MagickCore/version-private.h \
  MagickCore/widget-private.h \
  MagickCore/xml-tree-private.h \
  MagickCore/xwindow-private.h

MAGICKCORE_INCLUDEARCH_HDRS = \
  MagickCore/magick-baseconfig.h

MAGICKCORE_EXTRA_DIST = \
  MagickCore/MagickCore-config.in \
  $(MAGICKCORE_MANS) \
  MagickCore/ImageMagick.pc.in \
  MagickCore/MagickCore.pc.in \
  MagickCore/libMagickCore.map \
  MagickCore/nt-base.c \
  MagickCore/nt-feature.c

if MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
libMagickCore_threshold_target = MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-threshold.lo
$(libMagickCore_threshold_target): MagickCore/threshold-map.h
nodist_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES += MagickCore/threshold-map.h
CLEANFILES += MagickCore/threshold-map.h
MagickCore/threshold-map.h: config/thresholds.xml Makefile
	$(AM_V_GEN){ printf '%s\n  %s=\n' 'static const char *const' BuiltinMap; sed -e 's/"/\\"/g; s/^.*$$/    "&\\n"/; $$s/$$/;/' $<; } >$@
endif
