diff --git a/MagickCore/Makefile.am b/MagickCore/Makefile.am
index 4efb5e9..473b7b6 100644
--- a/MagickCore/Makefile.am
+++ b/MagickCore/Makefile.am
@@ -16,10 +16,13 @@
 # 
 
 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
@@ -54,7 +57,7 @@
 
 MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_LDFLAGS = -no-undefined \
   $(MagickCore_libMagickCore_la_LDFLAGS_VERSION) \
-  $(OSX_GCOV_LDFLAG) $(MAGICK_LT_RELEASE_OPTS) \
+  $(OSX_GCOV_LDFLAG) $(MAGICK_LT_RELEASE_OPTS) -version-info \
   $(MAGICK_LIBRARY_CURRENT):$(MAGICK_LIBRARY_REVISION):$(MAGICK_LIBRARY_AGE)
 MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_DEPENDENCIES =
 
@@ -165,6 +168,7 @@
 	MagickCore/magic.c \
 	MagickCore/magic.h \
 	MagickCore/magick.c \
+	MagickCore/magick-baseconfig.h \
 	MagickCore/magick-config.h \
 	MagickCore/magick-type.h \
 	MagickCore/magick.h \
@@ -350,7 +354,6 @@
 	MagickCore/magic-private.h \
 	MagickCore/magick.h \
 	MagickCore/magick-config.h \
-	MagickCore/magick-baseconfig.h \
 	MagickCore/magick-type.h \
 	MagickCore/matrix.h \
 	MagickCore/memory_.h \
@@ -461,6 +464,9 @@
 	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) \
diff --git a/MagickCore/magick-baseconfig.h b/MagickCore/magick-baseconfig.h
index f79c9cf..7089611 100644
--- a/MagickCore/magick-baseconfig.h
+++ b/MagickCore/magick-baseconfig.h
@@ -1060,14 +1060,19 @@
 #define MAGICKCORE_HAVE___ATTRIBUTE__ 1
 #endif
 
-/* accurately represent the wide range of intensity levels in real scenes */
-#ifndef MAGICKCORE_HDRI_SUPPORT
-#define MAGICKCORE_HDRI_SUPPORT 1
+/* Whether hdri is enabled or not */
+#ifndef MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H
+#define MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H 1
 #endif
 
 /* Define if you have umem memory allocation library */
 /* #undef HasUMEM */
 
+/* Directory where ImageMagick architecture headers live. */
+#ifndef MAGICKCORE_INCLUDEARCH_PATH
+#define MAGICKCORE_INCLUDEARCH_PATH "/usr/local/include/ImageMagick/"
+#endif
+
 /* Directory where ImageMagick headers live. */
 #ifndef MAGICKCORE_INCLUDE_PATH
 #define MAGICKCORE_INCLUDE_PATH "/usr/local/include/ImageMagick/"
@@ -1212,8 +1217,8 @@
 /* #undef PixelCacheThreshold */
 
 /* Number of bits in a pixel Quantum (8/16/32/64) */
-#ifndef MAGICKCORE_QUANTUM_DEPTH
-#define MAGICKCORE_QUANTUM_DEPTH 16
+#ifndef MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H
+#define MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H 16
 #endif
 
 /* Define as the return type of signal handlers (`int' or `void'). */
diff --git a/MagickCore/magick-config.h b/MagickCore/magick-config.h
index 3b223a8..9112ae3 100644
--- a/MagickCore/magick-config.h
+++ b/MagickCore/magick-config.h
@@ -24,6 +24,84 @@
 
 #include "MagickCore/magick-baseconfig.h"
 
+/* Compatibility block */
+#if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H)
+# warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default"
+# warning "this is an obsolete behavior please fix your makefile"
+# define MAGICKCORE_QUANTUM_DEPTH MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H
+#endif
+
+/* Number of bits in a pixel Quantum (8/16/32/64) */
+#ifndef MAGICKCORE_QUANTUM_DEPTH
+# error "you should set MAGICKCORE_QUANTUM_DEPTH"
+#endif
+
+/* check values */
+#if MAGICKCORE_QUANTUM_DEPTH != 8
+# if MAGICKCORE_QUANTUM_DEPTH != 16
+#  if MAGICKCORE_QUANTUM_DEPTH != 32
+#   if MAGICKCORE_QUANTUM_DEPTH != 64
+#    error "MAGICKCORE_QUANTUM_DEPTH is not 8/16/32/64 bits"
+#   endif
+#  endif
+# endif
+#endif
+
+
+#if !defined(MAGICKCORE_HDRI_ENABLE) && defined(MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H)
+# warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default"
+# warning "this is an obsolete behavior please fix yours makefile"
+# define MAGICKCORE_HDRI_ENABLE MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H
+#endif
+
+/* whether HDRI is enable */
+#if !defined(MAGICKCORE_HDRI_ENABLE)
+# error "you should set MAGICKCORE_HDRI_ENABLE"
+#endif
+
+#if MAGICKCORE_HDRI_ENABLE
+# define MAGICKCORE_HDRI_SUPPORT 1
+#endif
+
+/* Compatibility block */
+#if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H)
+# warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default"
+# warning "this is an obsolete behavior please fix yours makefile"
+# define MAGICKCORE_QUANTUM_DEPTH MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H
+#endif
+
+/* Number of bits in a pixel Quantum (8/16/32/64) */
+#ifndef MAGICKCORE_QUANTUM_DEPTH
+# error "you should set MAGICKCORE_QUANTUM_DEPTH"
+#endif
+
+/* check values */
+#if MAGICKCORE_QUANTUM_DEPTH != 8
+# if MAGICKCORE_QUANTUM_DEPTH != 16
+#  if MAGICKCORE_QUANTUM_DEPTH != 32
+#   if MAGICKCORE_QUANTUM_DEPTH != 64
+#    error "MAGICKCORE_QUANTUM_DEPTH is not 8/16/32/64 bits"
+#   endif
+#  endif
+# endif
+#endif
+
+
+#if !defined(MAGICKCORE_HDRI_ENABLE) && defined(MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H)
+# warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default"
+# warning "this is an obsolete behavior please fix yours makefile"
+# define MAGICKCORE_HDRI_ENABLE MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H
+#endif
+
+/* whether HDRI is enable */
+#if !defined(MAGICKCORE_HDRI_ENABLE)
+# error "you should set MAGICKCORE_HDRI_ENABLE"
+#endif
+
+#if MAGICKCORE_HDRI_ENABLE
+# define MAGICKCORE_HDRI_SUPPORT 1
+#endif
+
 #if defined __CYGWIN32__ && !defined __CYGWIN__
    /* For backwards compatibility with Cygwin b19 and
       earlier, we define __CYGWIN__ here, so that
diff --git a/MagickCore/version.h b/MagickCore/version.h
index 7d33f24..e066a20 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -27,14 +27,14 @@
 */
 #define MagickPackageName "ImageMagick"
 #define MagickCopyright  "Copyright (C) 1999-2013 ImageMagick Studio LLC"
-#define MagickSVNRevision  "10405:10419M"
+#define MagickSVNRevision  "10464M"
 #define MagickLibVersion  0x700
 #define MagickLibVersionText  "7.0.0"
 #define MagickLibVersionNumber  8,0,0
 #define MagickLibAddendum  "-0"
 #define MagickLibInterface  8
 #define MagickLibMinInterface  8
-#define MagickReleaseDate  "2012-12-29"
+#define MagickReleaseDate  "2012-12-31"
 #define MagickChangeDate   "20121005"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #define MagickFeatures "HDRI OpenMP"
diff --git a/Makefile.in b/Makefile.in
index aeb2faa..4ef6803 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -232,8 +232,9 @@
 TESTS = $(TESTS_TESTS) $(am__EXEEXT_5)
 XFAIL_TESTS = $(am__EXEEXT_6) $(am__EXEEXT_6)
 check_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_4)
-DIST_COMMON = $(MagickCoreinc_HEADERS) $(MagickWandinc_HEADERS) \
-	$(am__configure_deps) $(am__magickppinc_HEADERS_DIST) \
+DIST_COMMON = $(MagickCoreinc_HEADERS) $(MagickCoreincarch_HEADERS) \
+	$(MagickWandinc_HEADERS) $(am__configure_deps) \
+	$(am__magickppinc_HEADERS_DIST) \
 	$(am__magickpptopinc_HEADERS_DIST) $(include_HEADERS) \
 	$(noinst_HEADERS) $(srcdir)/ImageMagick.spec.in \
 	$(srcdir)/Magick++/Makefile.am \
@@ -372,6 +373,7 @@
 	"$(DESTDIR)$(configlibdir)" "$(DESTDIR)$(configsharedir)" \
 	"$(DESTDIR)$(configsharearchdir)" "$(DESTDIR)$(docdir)" \
 	"$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(MagickCoreincdir)" \
+	"$(DESTDIR)$(MagickCoreincarchdir)" \
 	"$(DESTDIR)$(MagickWandincdir)" "$(DESTDIR)$(includedir)" \
 	"$(DESTDIR)$(magickppincdir)" "$(DESTDIR)$(magickpptopincdir)"
 LTLIBRARIES = $(coders_LTLIBRARIES) $(filters_LTLIBRARIES) \
@@ -448,9 +450,9 @@
 	MagickCore/list.c MagickCore/list.h MagickCore/locale.c \
 	MagickCore/locale_.h MagickCore/log.c MagickCore/log.h \
 	MagickCore/mac.h MagickCore/magic.c MagickCore/magic.h \
-	MagickCore/magick.c MagickCore/magick-config.h \
-	MagickCore/magick-type.h MagickCore/magick.h \
-	MagickCore/matrix.c MagickCore/matrix.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 \
@@ -2219,9 +2221,10 @@
 	Magick++/lib/Magick++/Montage.h Magick++/lib/Magick++/Pixels.h \
 	Magick++/lib/Magick++/STL.h Magick++/lib/Magick++/TypeMetric.h
 am__magickpptopinc_HEADERS_DIST = Magick++/lib/Magick++.h
-HEADERS = $(MagickCoreinc_HEADERS) $(MagickWandinc_HEADERS) \
-	$(include_HEADERS) $(magickppinc_HEADERS) \
-	$(magickpptopinc_HEADERS) $(noinst_HEADERS)
+HEADERS = $(MagickCoreinc_HEADERS) $(MagickCoreincarch_HEADERS) \
+	$(MagickWandinc_HEADERS) $(include_HEADERS) \
+	$(magickppinc_HEADERS) $(magickpptopinc_HEADERS) \
+	$(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -2546,6 +2549,7 @@
 ILBMDecodeDelegate = @ILBMDecodeDelegate@
 ILBMEncodeDelegate = @ILBMEncodeDelegate@
 INCLUDEARCH_DIR = @INCLUDEARCH_DIR@
+INCLUDEARCH_PATH = @INCLUDEARCH_PATH@
 INCLUDE_DIR = @INCLUDE_DIR@
 INCLUDE_PATH = @INCLUDE_PATH@
 INFO_DIR = @INFO_DIR@
@@ -3975,11 +3979,15 @@
 coders_yuv_la_LDFLAGS = $(MODULECOMMONFLAGS)
 coders_yuv_la_LIBADD = $(MAGICKCORE_LIBS)
 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
 
@@ -4002,7 +4010,7 @@
 @HAVE_LD_VERSION_SCRIPT_TRUE@MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION = -Wl,--version-script=$(top_srcdir)/MagickCore/libMagickCore.map
 MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_LDFLAGS = -no-undefined \
   $(MagickCore_libMagickCore_la_LDFLAGS_VERSION) \
-  $(OSX_GCOV_LDFLAG) $(MAGICK_LT_RELEASE_OPTS) \
+  $(OSX_GCOV_LDFLAG) $(MAGICK_LT_RELEASE_OPTS) -version-info \
   $(MAGICK_LIBRARY_CURRENT):$(MAGICK_LIBRARY_REVISION):$(MAGICK_LIBRARY_AGE)
 
 MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_DEPENDENCIES = 
@@ -4114,6 +4122,7 @@
 	MagickCore/magic.c \
 	MagickCore/magic.h \
 	MagickCore/magick.c \
+	MagickCore/magick-baseconfig.h \
 	MagickCore/magick-config.h \
 	MagickCore/magick-type.h \
 	MagickCore/magick.h \
@@ -4294,7 +4303,6 @@
 	MagickCore/magic-private.h \
 	MagickCore/magick.h \
 	MagickCore/magick-config.h \
-	MagickCore/magick-baseconfig.h \
 	MagickCore/magick-type.h \
 	MagickCore/matrix.h \
 	MagickCore/memory_.h \
@@ -4405,6 +4413,9 @@
 	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) \
@@ -9822,6 +9833,27 @@
 	@list='$(MagickCoreinc_HEADERS)'; test -n "$(MagickCoreincdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(MagickCoreincdir)'; $(am__uninstall_files_from_dir)
+install-MagickCoreincarchHEADERS: $(MagickCoreincarch_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(MagickCoreincarch_HEADERS)'; test -n "$(MagickCoreincarchdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(MagickCoreincarchdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(MagickCoreincarchdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(MagickCoreincarchdir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(MagickCoreincarchdir)" || exit $$?; \
+	done
+
+uninstall-MagickCoreincarchHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(MagickCoreincarch_HEADERS)'; test -n "$(MagickCoreincarchdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(MagickCoreincarchdir)'; $(am__uninstall_files_from_dir)
 install-MagickWandincHEADERS: $(MagickWandinc_HEADERS)
 	@$(NORMAL_INSTALL)
 	@list='$(MagickWandinc_HEADERS)'; test -n "$(MagickWandincdir)" || list=; \
@@ -10417,7 +10449,7 @@
 
 installdirs: installdirs-recursive
 installdirs-am:
-	for dir in "$(DESTDIR)$(codersdir)" "$(DESTDIR)$(filtersdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(configlibdir)" "$(DESTDIR)$(configsharedir)" "$(DESTDIR)$(configsharearchdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(MagickCoreincdir)" "$(DESTDIR)$(MagickWandincdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(magickppincdir)" "$(DESTDIR)$(magickpptopincdir)"; do \
+	for dir in "$(DESTDIR)$(codersdir)" "$(DESTDIR)$(filtersdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(configlibdir)" "$(DESTDIR)$(configsharedir)" "$(DESTDIR)$(configsharearchdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(MagickCoreincdir)" "$(DESTDIR)$(MagickCoreincarchdir)" "$(DESTDIR)$(MagickWandincdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(magickppincdir)" "$(DESTDIR)$(magickpptopincdir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: $(BUILT_SOURCES)
@@ -10501,12 +10533,13 @@
 info-am:
 
 install-data-am: install-MagickCoreincHEADERS \
-	install-MagickWandincHEADERS install-codersLTLIBRARIES \
-	install-configlibDATA install-configshareDATA \
-	install-configsharearchDATA install-data-local install-docDATA \
-	install-filtersLTLIBRARIES install-includeHEADERS \
-	install-magickppincHEADERS install-magickpptopincHEADERS \
-	install-man install-pkgconfigDATA
+	install-MagickCoreincarchHEADERS install-MagickWandincHEADERS \
+	install-codersLTLIBRARIES install-configlibDATA \
+	install-configshareDATA install-configsharearchDATA \
+	install-data-local install-docDATA install-filtersLTLIBRARIES \
+	install-includeHEADERS install-magickppincHEADERS \
+	install-magickpptopincHEADERS install-man \
+	install-pkgconfigDATA
 
 install-dvi: install-dvi-recursive
 
@@ -10557,6 +10590,7 @@
 ps-am:
 
 uninstall-am: uninstall-MagickCoreincHEADERS \
+	uninstall-MagickCoreincarchHEADERS \
 	uninstall-MagickWandincHEADERS uninstall-binPROGRAMS \
 	uninstall-binSCRIPTS uninstall-codersLTLIBRARIES \
 	uninstall-configlibDATA uninstall-configshareDATA \
@@ -10584,24 +10618,27 @@
 	distclean-hdr distclean-libtool distclean-local distclean-tags \
 	distcleancheck distdir distuninstallcheck dvi dvi-am html \
 	html-am info info-am install install-MagickCoreincHEADERS \
-	install-MagickWandincHEADERS install-am install-binPROGRAMS \
-	install-binSCRIPTS install-codersLTLIBRARIES \
-	install-configlibDATA install-configshareDATA \
-	install-configsharearchDATA install-data install-data-am \
-	install-data-local install-docDATA install-dvi install-dvi-am \
-	install-exec install-exec-am install-exec-local \
-	install-filtersLTLIBRARIES install-html install-html-am \
-	install-includeHEADERS install-info install-info-am \
-	install-libLTLIBRARIES install-magickppincHEADERS \
-	install-magickpptopincHEADERS install-man install-man1 \
-	install-pdf install-pdf-am install-pkgconfigDATA install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic maintainer-clean-local mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am recheck tags tags-recursive uninstall \
-	uninstall-MagickCoreincHEADERS uninstall-MagickWandincHEADERS \
-	uninstall-am uninstall-binPROGRAMS uninstall-binSCRIPTS \
+	install-MagickCoreincarchHEADERS install-MagickWandincHEADERS \
+	install-am install-binPROGRAMS install-binSCRIPTS \
+	install-codersLTLIBRARIES install-configlibDATA \
+	install-configshareDATA install-configsharearchDATA \
+	install-data install-data-am install-data-local \
+	install-docDATA install-dvi install-dvi-am install-exec \
+	install-exec-am install-exec-local install-filtersLTLIBRARIES \
+	install-html install-html-am install-includeHEADERS \
+	install-info install-info-am install-libLTLIBRARIES \
+	install-magickppincHEADERS install-magickpptopincHEADERS \
+	install-man install-man1 install-pdf install-pdf-am \
+	install-pkgconfigDATA install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs installdirs-am \
+	maintainer-clean maintainer-clean-generic \
+	maintainer-clean-local mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	recheck tags tags-recursive uninstall \
+	uninstall-MagickCoreincHEADERS \
+	uninstall-MagickCoreincarchHEADERS \
+	uninstall-MagickWandincHEADERS uninstall-am \
+	uninstall-binPROGRAMS uninstall-binSCRIPTS \
 	uninstall-codersLTLIBRARIES uninstall-configlibDATA \
 	uninstall-configshareDATA uninstall-configsharearchDATA \
 	uninstall-docDATA uninstall-filtersLTLIBRARIES \
diff --git a/PerlMagick/Makefile.PL b/PerlMagick/Makefile.PL
index 13fda27..9551c83 100644
--- a/PerlMagick/Makefile.PL
+++ b/PerlMagick/Makefile.PL
@@ -163,7 +163,7 @@
 # defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile
 my $INC_magick = '-I../ -I.. -I/usr/include/freetype2 -I"' . $Config{'usrinc'} . '/ImageMagick"';
 my $LIBS_magick = '-L../MagickCore/.libs -lMagickCore-Q16HDRI -lperl -lm';
-my $CCFLAGS_magick = "$Config{'ccflags'} -fopenmp -g -O2 -Wall -pthread";
+my $CCFLAGS_magick = "$Config{'ccflags'} -fopenmp -g -O2 -Wall -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16";
 my $LDFLAGS_magick   = "-L../MagickCore/.libs -lMagickCore-Q16HDRI $Config{'ldflags'} -L/usr/lib";
 my $LDDLFLAGS_magick = "-L../MagickCore/.libs -lMagickCore-Q16HDRI $Config{'lddlflags'} -L/usr/lib";
 
diff --git a/config/config.h.in b/config/config.h.in
index db3e56b..45d2509 100644
--- a/config/config.h.in
+++ b/config/config.h.in
@@ -697,12 +697,15 @@
 /* define if your compiler has __attribute__ */
 #undef HAVE___ATTRIBUTE__
 
-/* accurately represent the wide range of intensity levels in real scenes */
-#undef HDRI_SUPPORT
+/* Whether hdri is enabled or not */
+#undef HDRI_ENABLE_OBSOLETE_IN_H
 
 /* Define if you have umem memory allocation library */
 #undef HasUMEM
 
+/* Directory where ImageMagick architecture headers live. */
+#undef INCLUDEARCH_PATH
+
 /* Directory where ImageMagick headers live. */
 #undef INCLUDE_PATH
 
@@ -809,7 +812,7 @@
 #undef PixelCacheThreshold
 
 /* Number of bits in a pixel Quantum (8/16/32/64) */
-#undef QUANTUM_DEPTH
+#undef QUANTUM_DEPTH_OBSOLETE_IN_H
 
 /* Define as the return type of signal handlers (`int' or `void'). */
 #undef RETSIGTYPE
diff --git a/configure b/configure
index 316eef1..f014b33 100755
--- a/configure
+++ b/configure
@@ -748,6 +748,7 @@
 MODULES_BASEDIRNAME
 LIBRARY_PATH
 EXECUTABLE_PATH
+INCLUDEARCH_PATH
 INCLUDE_PATH
 PERLMAINCC
 XML_LIBS
@@ -3649,7 +3650,7 @@
 
 MAGICK_LIBRARY_VERSION_INFO=$MAGICK_LIBRARY_CURRENT:$MAGICK_LIBRARY_REVISION:$MAGICK_LIBRARY_AGE
 
-MAGICK_SVN_REVISION=10405:10419M
+MAGICK_SVN_REVISION=10464M
 
 
 
@@ -20844,12 +20845,19 @@
 MAGICK_HDRI=""
 if test "$enable_hdri" = 'yes'; then
     MAGICK_HDRI="HDRI"
-
-$as_echo "#define HDRI_SUPPORT 1" >>confdefs.h
-
+    magick_hdri_enable='1';
     MAGICK_FEATURES="HDRI $MAGICK_FEATURES"
+else
+    magick_hdri_enable='0'
 fi
 
+cat >>confdefs.h <<_ACEOF
+#define HDRI_ENABLE_OBSOLETE_IN_H $magick_hdri_enable
+_ACEOF
+
+MAGICK_PCFLAGS="$MAGICK_PCFLAGS -DMAGICKCORE_HDRI_ENABLE=$magick_hdri_enable"
+CFLAGS="$CFLAGS -DMAGICKCORE_HDRI_ENABLE=$magick_hdri_enable"
+
 # Build a version of ImageMagick with assert statements.
 # Check whether --enable-assert was given.
 if test "${enable_assert+set}" = set; then :
@@ -21003,9 +21011,11 @@
 QUANTUM_DEPTH="$with_quantum_depth"
 
 cat >>confdefs.h <<_ACEOF
-#define QUANTUM_DEPTH $QUANTUM_DEPTH
+#define QUANTUM_DEPTH_OBSOLETE_IN_H $QUANTUM_DEPTH
 _ACEOF
 
+MAGICKCORE_PCFLAGS="$MAGICKCORE_PCFLAGS -DMAGICKCORE_QUANTUM_DEPTH=$QUANTUM_DEPTH"
+CFLAGS="$CFLAGS -DMAGICKCORE_QUANTUM_DEPTH=$QUANTUM_DEPTH"
 
 # define a lib suffix for abi purpose
 MAGICK_ABI_SUFFIX="Q${QUANTUM_DEPTH}"
@@ -31894,8 +31904,8 @@
 
 # Path to ImageMagick header files
 INCLUDE_RELATIVE_PATH="ImageMagick"
-INCLUDE_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}"
-DEFINE_INCLUDE_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}/"
+INCLUDE_PATH="${INCLUDE_DIR}/${INCLUDE_RELATIVE_PATH}"
+DEFINE_INCLUDE_PATH="${INCLUDE_DIR}/${INCLUDE_RELATIVE_PATH}/"
 case "${build_os}" in
   mingw* )
     DEFINE_INCLUDE_PATH=`$WinPathScript "$DEFINE_INCLUDE_PATH" 1`
@@ -31908,6 +31918,21 @@
 
 
 
+# Path to ImageMagick header files (arch part)
+INCLUDEARCH_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}"
+DEFINE_INCLUDEARCH_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}/"
+case "${build_os}" in
+  mingw* )
+    DEFINE_INCLUDEARCH_PATH=`$WinPathScript "$DEFINE_INCLUDEARCH_PATH" 1`
+    ;;
+esac
+
+cat >>confdefs.h <<_ACEOF
+#define INCLUDEARCH_PATH "$DEFINE_INCLUDE_PATH"
+_ACEOF
+
+
+
 # Subdirectory under lib to place ImageMagick lib files
 LIBRARY_RELATIVE_PATH="${PACKAGE_NAME}-${PACKAGE_VERSION}"
 
diff --git a/configure.ac b/configure.ac
index 2693736..429cf4f 100755
--- a/configure.ac
+++ b/configure.ac
@@ -610,10 +610,15 @@
 MAGICK_HDRI=""
 if test "$enable_hdri" = 'yes'; then
     MAGICK_HDRI="HDRI"
-    AC_DEFINE(HDRI_SUPPORT,1,[accurately represent the wide range of intensity levels in real scenes])
+    magick_hdri_enable='1';
     MAGICK_FEATURES="HDRI $MAGICK_FEATURES"
+else
+    magick_hdri_enable='0'
 fi
+AC_DEFINE_UNQUOTED(HDRI_ENABLE_OBSOLETE_IN_H,$magick_hdri_enable,[Whether hdri is enabled or not])
 AC_SUBST(MAGICK_HDRI)dnl
+MAGICK_PCFLAGS="$MAGICK_PCFLAGS -DMAGICKCORE_HDRI_ENABLE=$magick_hdri_enable"
+CFLAGS="$CFLAGS -DMAGICKCORE_HDRI_ENABLE=$magick_hdri_enable"
 
 # Build a version of ImageMagick with assert statements.
 AC_ARG_ENABLE([assert],
@@ -710,8 +715,10 @@
     * ) AC_MSG_ERROR("Pixel quantum depth must have value of 8, 16, 32, or 64") ;;
 esac
 QUANTUM_DEPTH="$with_quantum_depth"
-AC_DEFINE_UNQUOTED(QUANTUM_DEPTH,$QUANTUM_DEPTH,[Number of bits in a pixel Quantum (8/16/32/64)])
+AC_DEFINE_UNQUOTED(QUANTUM_DEPTH_OBSOLETE_IN_H,$QUANTUM_DEPTH,[Number of bits in a pixel Quantum (8/16/32/64)])
 AC_SUBST(QUANTUM_DEPTH)dnl
+MAGICKCORE_PCFLAGS="$MAGICKCORE_PCFLAGS -DMAGICKCORE_QUANTUM_DEPTH=$QUANTUM_DEPTH"
+CFLAGS="$CFLAGS -DMAGICKCORE_QUANTUM_DEPTH=$QUANTUM_DEPTH"
 
 # define a lib suffix for abi purpose
 MAGICK_ABI_SUFFIX="Q${QUANTUM_DEPTH}"
@@ -2963,8 +2970,8 @@
 
 # Path to ImageMagick header files
 INCLUDE_RELATIVE_PATH="ImageMagick"
-INCLUDE_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}"
-DEFINE_INCLUDE_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}/"
+INCLUDE_PATH="${INCLUDE_DIR}/${INCLUDE_RELATIVE_PATH}"
+DEFINE_INCLUDE_PATH="${INCLUDE_DIR}/${INCLUDE_RELATIVE_PATH}/"
 case "${build_os}" in
   mingw* )
     DEFINE_INCLUDE_PATH=`$WinPathScript "$DEFINE_INCLUDE_PATH" 1`
@@ -2973,6 +2980,17 @@
 AC_DEFINE_UNQUOTED(INCLUDE_PATH,"$DEFINE_INCLUDE_PATH",[Directory where ImageMagick headers live.])
 AC_SUBST(INCLUDE_PATH)
 
+# Path to ImageMagick header files (arch part)
+INCLUDEARCH_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}"
+DEFINE_INCLUDEARCH_PATH="${INCLUDEARCH_DIR}/${INCLUDE_RELATIVE_PATH}/"
+case "${build_os}" in
+  mingw* )
+    DEFINE_INCLUDEARCH_PATH=`$WinPathScript "$DEFINE_INCLUDEARCH_PATH" 1`
+    ;;
+esac
+AC_DEFINE_UNQUOTED(INCLUDEARCH_PATH,"$DEFINE_INCLUDE_PATH",[Directory where ImageMagick architecture headers live.])
+AC_SUBST(INCLUDEARCH_PATH)
+
 # Subdirectory under lib to place ImageMagick lib files
 LIBRARY_RELATIVE_PATH="${PACKAGE_NAME}-${PACKAGE_VERSION}"
 AC_DEFINE_UNQUOTED(LIBRARY_RELATIVE_PATH,"$LIBRARY_RELATIVE_PATH",[Subdirectory of lib where ImageMagick architecture dependent files are installed.])
