diff --git a/.gitattributes b/.gitattributes
index 0769189a45..bb596a316a 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1274,6 +1274,35 @@ packages/base/ibase/mkdb.bat -text
packages/base/ibase/mkdb.sqd -text
packages/base/ibase/testib40.pp svneol=native#text/plain
packages/base/ibase/testib60.pp svneol=native#text/plain
+packages/base/imagemagick/Makefile svneol=native#text/plain
+packages/base/imagemagick/Makefile.fpc svneol=native#text/plain
+packages/base/imagemagick/buildim.pp svneol=native#text/plain
+packages/base/imagemagick/demo1/image.png -text svneol=unset#image/png
+packages/base/imagemagick/demo1/wanddemo.dpr -text
+packages/base/imagemagick/demo1/wanddemo.lpi svneol=native#text/plain
+packages/base/imagemagick/demo1/wanddemo.lpr -text
+packages/base/imagemagick/demo2/screenshot.lpi svneol=native#text/plain
+packages/base/imagemagick/demo2/screenshot.lpi.bak -text
+packages/base/imagemagick/demo2/screenshot.lpr -text
+packages/base/imagemagick/magick/cache_view.inc svneol=native#text/plain
+packages/base/imagemagick/magick/compare.inc svneol=native#text/plain
+packages/base/imagemagick/magick/constitute.inc svneol=native#text/plain
+packages/base/imagemagick/magick/draw.inc svneol=native#text/plain
+packages/base/imagemagick/magick/effect.inc svneol=native#text/plain
+packages/base/imagemagick/magick/fx.inc svneol=native#text/plain
+packages/base/imagemagick/magick/imagemagick.pas svneol=native#text/plain
+packages/base/imagemagick/magick/magick_type.inc svneol=native#text/plain
+packages/base/imagemagick/magick/pixel.inc svneol=native#text/plain
+packages/base/imagemagick/magick/quantize.inc svneol=native#text/plain
+packages/base/imagemagick/magick/semaphore.inc svneol=native#text/plain
+packages/base/imagemagick/magick/statistic.inc svneol=native#text/plain
+packages/base/imagemagick/magick/type.inc svneol=native#text/plain
+packages/base/imagemagick/wand/drawing_wand.inc svneol=native#text/plain
+packages/base/imagemagick/wand/magick_attribute.inc svneol=native#text/plain
+packages/base/imagemagick/wand/magick_image.inc svneol=native#text/plain
+packages/base/imagemagick/wand/magick_wand.pas svneol=native#text/plain
+packages/base/imagemagick/wand/pixel_iterator.inc svneol=native#text/plain
+packages/base/imagemagick/wand/pixel_wand.inc svneol=native#text/plain
packages/base/libasync/Makefile svneol=native#text/plain
packages/base/libasync/Makefile.fpc svneol=native#text/plain
packages/base/libasync/fpmake.inc svneol=native#text/plain
diff --git a/packages/base/Makefile b/packages/base/Makefile
index f4d8ce8880..c3573f0838 100644
--- a/packages/base/Makefile
+++ b/packages/base/Makefile
@@ -1,5 +1,5 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2006/04/23]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2006/05/20]
#
default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-palmos arm-wince powerpc64-linux
@@ -231,28 +231,28 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
endif
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph libc
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph imagemagick libc
endif
ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint graph
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint mysql ibase odbc sqlite postgres oracle graph
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint mysql ibase odbc sqlite postgres oracle graph imagemagick
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync graph mysql ibase postgres oracle odbc sqlite pthreads
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync graph mysql ibase postgres oracle odbc sqlite pthreads imagemagick
endif
ifeq ($(FULL_TARGET),i386-beos)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc imagemagick
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb libasync mysql ibase postgres oracle odbc sqlite pthreads
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick
endif
ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
@@ -261,13 +261,13 @@ ifeq ($(FULL_TARGET),i386-netware)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc imagemagick
endif
ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb libasync mysql ibase postgres oracle odbc sqlite pthreads
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick
endif
ifeq ($(FULL_TARGET),i386-emx)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
@@ -282,13 +282,13 @@ ifeq ($(FULL_TARGET),i386-wince)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb ibase sqlite postgres
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph imagemagick
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync graph mysql ibase postgres oracle odbc sqlite pthreads
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync graph mysql ibase postgres oracle odbc sqlite pthreads imagemagick
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc imagemagick
endif
ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
@@ -297,46 +297,46 @@ ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc imagemagick
endif
ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph imagemagick
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc imagemagick
endif
ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb libasync mysql ibase postgres oracle odbc sqlite pthreads
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph imagemagick
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc imagemagick
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb libasync mysql ibase postgres oracle odbc sqlite pthreads
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph libc
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph imagemagick libc
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync graph mysql ibase postgres oracle odbc sqlite pthreads
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync graph mysql ibase postgres oracle odbc sqlite pthreads imagemagick
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb mysql ibase odbc sqlite postgres oracle
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph imagemagick
endif
ifeq ($(FULL_TARGET),arm-palmos)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
@@ -345,7 +345,7 @@ ifeq ($(FULL_TARGET),arm-wince)
override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb ibase sqlite postgres
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph
+override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite graph imagemagick
endif
override INSTALL_FPCPACKAGE=y
override INSTALL_FPCSUBDIR=packages/base
@@ -1422,6 +1422,7 @@ TARGET_DIRS_ODBC=1
TARGET_DIRS_PTHREADS=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_GRAPH=1
+TARGET_DIRS_IMAGEMAGICK=1
TARGET_DIRS_LIBC=1
endif
ifeq ($(FULL_TARGET),i386-go32v2)
@@ -1447,6 +1448,7 @@ TARGET_DIRS_SQLITE=1
TARGET_DIRS_POSTGRES=1
TARGET_DIRS_ORACLE=1
TARGET_DIRS_GRAPH=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),i386-os2)
TARGET_DIRS_HASH=1
@@ -1471,6 +1473,7 @@ TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_PTHREADS=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),i386-beos)
TARGET_DIRS_HASH=1
@@ -1492,6 +1495,7 @@ TARGET_DIRS_IBASE=1
TARGET_DIRS_POSTGRES=1
TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),i386-solaris)
TARGET_DIRS_HASH=1
@@ -1507,6 +1511,7 @@ TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_PTHREADS=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),i386-qnx)
TARGET_DIRS_HASH=1
@@ -1535,6 +1540,7 @@ TARGET_DIRS_IBASE=1
TARGET_DIRS_POSTGRES=1
TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),i386-wdosx)
TARGET_DIRS_HASH=1
@@ -1557,6 +1563,7 @@ TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_PTHREADS=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),i386-emx)
TARGET_DIRS_HASH=1
@@ -1605,6 +1612,7 @@ TARGET_DIRS_ODBC=1
TARGET_DIRS_PTHREADS=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_GRAPH=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
TARGET_DIRS_HASH=1
@@ -1622,6 +1630,7 @@ TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_PTHREADS=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
TARGET_DIRS_HASH=1
@@ -1636,6 +1645,7 @@ TARGET_DIRS_IBASE=1
TARGET_DIRS_POSTGRES=1
TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),m68k-amiga)
TARGET_DIRS_HASH=1
@@ -1664,6 +1674,7 @@ TARGET_DIRS_IBASE=1
TARGET_DIRS_POSTGRES=1
TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),m68k-palmos)
TARGET_DIRS_HASH=1
@@ -1688,6 +1699,7 @@ TARGET_DIRS_ODBC=1
TARGET_DIRS_PTHREADS=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_GRAPH=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
TARGET_DIRS_HASH=1
@@ -1702,6 +1714,7 @@ TARGET_DIRS_IBASE=1
TARGET_DIRS_POSTGRES=1
TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),powerpc-macos)
TARGET_DIRS_HASH=1
@@ -1724,6 +1737,7 @@ TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_PTHREADS=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
TARGET_DIRS_HASH=1
@@ -1748,6 +1762,7 @@ TARGET_DIRS_ODBC=1
TARGET_DIRS_PTHREADS=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_GRAPH=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
TARGET_DIRS_HASH=1
@@ -1762,6 +1777,7 @@ TARGET_DIRS_IBASE=1
TARGET_DIRS_POSTGRES=1
TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),sparc-solaris)
TARGET_DIRS_HASH=1
@@ -1777,6 +1793,7 @@ TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_PTHREADS=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),x86_64-linux)
TARGET_DIRS_HASH=1
@@ -1794,6 +1811,7 @@ TARGET_DIRS_ODBC=1
TARGET_DIRS_PTHREADS=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_GRAPH=1
+TARGET_DIRS_IMAGEMAGICK=1
TARGET_DIRS_LIBC=1
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
@@ -1812,6 +1830,7 @@ TARGET_DIRS_ORACLE=1
TARGET_DIRS_ODBC=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_PTHREADS=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),x86_64-win64)
TARGET_DIRS_HASH=1
@@ -1819,12 +1838,6 @@ TARGET_DIRS_PASZLIB=1
TARGET_DIRS_PASJPEG=1
TARGET_DIRS_REGEXPR=1
TARGET_DIRS_NETDB=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_IBASE=1
-TARGET_DIRS_ODBC=1
-TARGET_DIRS_SQLITE=1
-TARGET_DIRS_POSTGRES=1
-TARGET_DIRS_ORACLE=1
endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_HASH=1
@@ -1842,6 +1855,7 @@ TARGET_DIRS_ODBC=1
TARGET_DIRS_PTHREADS=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_GRAPH=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifeq ($(FULL_TARGET),arm-palmos)
TARGET_DIRS_HASH=1
@@ -1876,6 +1890,7 @@ TARGET_DIRS_ODBC=1
TARGET_DIRS_PTHREADS=1
TARGET_DIRS_SQLITE=1
TARGET_DIRS_GRAPH=1
+TARGET_DIRS_IMAGEMAGICK=1
endif
ifdef TARGET_DIRS_HASH
hash_all:
@@ -2552,6 +2567,51 @@ graph:
$(MAKE) -C graph all
.PHONY: graph_all graph_debug graph_smart graph_release graph_units graph_examples graph_shared graph_install graph_sourceinstall graph_exampleinstall graph_distinstall graph_zipinstall graph_zipsourceinstall graph_zipexampleinstall graph_zipdistinstall graph_clean graph_distclean graph_cleanall graph_info graph_makefiles graph
endif
+ifdef TARGET_DIRS_IMAGEMAGICK
+imagemagick_all:
+ $(MAKE) -C imagemagick all
+imagemagick_debug:
+ $(MAKE) -C imagemagick debug
+imagemagick_smart:
+ $(MAKE) -C imagemagick smart
+imagemagick_release:
+ $(MAKE) -C imagemagick release
+imagemagick_units:
+ $(MAKE) -C imagemagick units
+imagemagick_examples:
+ $(MAKE) -C imagemagick examples
+imagemagick_shared:
+ $(MAKE) -C imagemagick shared
+imagemagick_install:
+ $(MAKE) -C imagemagick install
+imagemagick_sourceinstall:
+ $(MAKE) -C imagemagick sourceinstall
+imagemagick_exampleinstall:
+ $(MAKE) -C imagemagick exampleinstall
+imagemagick_distinstall:
+ $(MAKE) -C imagemagick distinstall
+imagemagick_zipinstall:
+ $(MAKE) -C imagemagick zipinstall
+imagemagick_zipsourceinstall:
+ $(MAKE) -C imagemagick zipsourceinstall
+imagemagick_zipexampleinstall:
+ $(MAKE) -C imagemagick zipexampleinstall
+imagemagick_zipdistinstall:
+ $(MAKE) -C imagemagick zipdistinstall
+imagemagick_clean:
+ $(MAKE) -C imagemagick clean
+imagemagick_distclean:
+ $(MAKE) -C imagemagick distclean
+imagemagick_cleanall:
+ $(MAKE) -C imagemagick cleanall
+imagemagick_info:
+ $(MAKE) -C imagemagick info
+imagemagick_makefiles:
+ $(MAKE) -C imagemagick makefiles
+imagemagick:
+ $(MAKE) -C imagemagick all
+.PHONY: imagemagick_all imagemagick_debug imagemagick_smart imagemagick_release imagemagick_units imagemagick_examples imagemagick_shared imagemagick_install imagemagick_sourceinstall imagemagick_exampleinstall imagemagick_distinstall imagemagick_zipinstall imagemagick_zipsourceinstall imagemagick_zipexampleinstall imagemagick_zipdistinstall imagemagick_clean imagemagick_distclean imagemagick_cleanall imagemagick_info imagemagick_makefiles imagemagick
+endif
ifdef TARGET_DIRS_LIBC
libc_all:
$(MAKE) -C libc all
diff --git a/packages/base/Makefile.fpc b/packages/base/Makefile.fpc
index 48c2a506d7..6db13063f9 100644
--- a/packages/base/Makefile.fpc
+++ b/packages/base/Makefile.fpc
@@ -7,21 +7,21 @@ dirs=hash paszlib pasjpeg regexpr netdb
dirs_i386_linux=libc
dirs_x86_64_linux=libc
dirs_linux=gdbint libasync mysql ibase postgres oracle odbc \
- pthreads sqlite graph
-dirs_win32=gdbint mysql ibase odbc sqlite postgres oracle graph
+ pthreads sqlite graph imagemagick
+dirs_win32=gdbint mysql ibase odbc sqlite postgres oracle graph imagemagick
dirs_win64=mysql ibase odbc sqlite postgres oracle
dirs_wince=ibase sqlite postgres
dirs_go32v2=gdbint graph
dirs_netbsd=gdbint libasync \
- mysql ibase postgres oracle odbc
+ mysql ibase postgres oracle odbc imagemagick
dirs_openbsd=gdbint libasync \
- mysql ibase postgres oracle odbc
+ mysql ibase postgres oracle odbc imagemagick
dirs_freebsd=gdbint libasync graph \
- mysql ibase postgres oracle odbc sqlite pthreads
+ mysql ibase postgres oracle odbc sqlite pthreads imagemagick
dirs_darwin=libasync \
- mysql ibase postgres oracle odbc sqlite pthreads
+ mysql ibase postgres oracle odbc sqlite pthreads imagemagick
dirs_solaris=libasync \
- mysql ibase postgres oracle odbc sqlite pthreads
+ mysql ibase postgres oracle odbc sqlite pthreads imagemagick
[install]
fpcpackage=y
diff --git a/packages/base/imagemagick/Makefile b/packages/base/imagemagick/Makefile
new file mode 100644
index 0000000000..4f4dec4a88
--- /dev/null
+++ b/packages/base/imagemagick/Makefile
@@ -0,0 +1,2085 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2006/05/20]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-palmos arm-wince powerpc64-linux
+BSDs = freebsd netbsd openbsd darwin
+UNIXs = linux $(BSDs) solaris qnx
+LIMIT83fs = go32v2 os2 emx watcom
+FORCE:
+.PHONY: FORCE
+override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
+ifneq ($(findstring darwin,$(OSTYPE)),)
+inUnix=1 #darwin
+SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
+else
+ifeq ($(findstring ;,$(PATH)),)
+inUnix=1
+SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
+else
+SEARCHPATH:=$(subst ;, ,$(PATH))
+endif
+endif
+SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
+PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
+ifeq ($(PWD),)
+PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
+ifeq ($(PWD),)
+$(error You need the GNU utils package to use this Makefile)
+else
+PWD:=$(firstword $(PWD))
+SRCEXEEXT=
+endif
+else
+PWD:=$(firstword $(PWD))
+SRCEXEEXT=.exe
+endif
+ifndef inUnix
+ifeq ($(OS),Windows_NT)
+inWinNT=1
+else
+ifdef OS2_SHELL
+inOS2=1
+endif
+endif
+else
+ifneq ($(findstring cygdrive,$(PATH)),)
+inCygWin=1
+endif
+endif
+ifdef inUnix
+SRCBATCHEXT=.sh
+else
+ifdef inOS2
+SRCBATCHEXT=.cmd
+else
+SRCBATCHEXT=.bat
+endif
+endif
+ifdef inUnix
+PATHSEP=/
+else
+PATHSEP:=$(subst /,\,/)
+ifdef inCygWin
+PATHSEP=/
+endif
+endif
+ifdef PWD
+BASEDIR:=$(subst \,/,$(shell $(PWD)))
+ifdef inCygWin
+ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
+BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
+BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
+BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
+endif
+endif
+else
+BASEDIR=.
+endif
+ifdef inOS2
+ifndef ECHO
+ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO=echo
+else
+ECHO:=$(firstword $(ECHO))
+endif
+else
+ECHO:=$(firstword $(ECHO))
+endif
+endif
+export ECHO
+endif
+override DEFAULT_FPCDIR=../../..
+ifndef FPC
+ifdef PP
+FPC=$(PP)
+endif
+endif
+ifndef FPC
+FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
+ifneq ($(FPCPROG),)
+FPCPROG:=$(firstword $(FPCPROG))
+FPC:=$(shell $(FPCPROG) -PB)
+ifneq ($(findstring Error,$(FPC)),)
+override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+endif
+else
+override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+endif
+endif
+override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
+override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
+FOUNDFPC:=$(strip $(wildcard $(FPC)))
+ifeq ($(FOUNDFPC),)
+FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
+ifeq ($(FOUNDFPC),)
+$(error Compiler $(FPC) not found)
+endif
+endif
+ifndef FPC_COMPILERINFO
+FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
+endif
+ifndef FPC_VERSION
+FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
+endif
+export FPC FPC_VERSION FPC_COMPILERINFO
+unexport CHECKDEPEND ALLDEPENDENCIES
+ifndef CPU_TARGET
+ifdef CPU_TARGET_DEFAULT
+CPU_TARGET=$(CPU_TARGET_DEFAULT)
+endif
+endif
+ifndef OS_TARGET
+ifdef OS_TARGET_DEFAULT
+OS_TARGET=$(OS_TARGET_DEFAULT)
+endif
+endif
+ifneq ($(words $(FPC_COMPILERINFO)),5)
+FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
+FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
+FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
+FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
+endif
+ifndef CPU_SOURCE
+CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
+endif
+ifndef CPU_TARGET
+CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
+endif
+ifndef OS_SOURCE
+OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
+endif
+ifndef OS_TARGET
+OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
+endif
+FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
+FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+TARGETSUFFIX=$(OS_TARGET)
+SOURCESUFFIX=$(OS_SOURCE)
+else
+TARGETSUFFIX=$(FULL_TARGET)
+SOURCESUFFIX=$(FULL_SOURCE)
+endif
+ifneq ($(FULL_TARGET),$(FULL_SOURCE))
+CROSSCOMPILE=1
+endif
+ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
+ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
+$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
+endif
+endif
+ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
+BSDhier=1
+endif
+ifeq ($(OS_TARGET),linux)
+linuxHier=1
+endif
+export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
+ifdef FPCDIR
+override FPCDIR:=$(subst \,/,$(FPCDIR))
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR=wrong
+endif
+else
+override FPCDIR=wrong
+endif
+ifdef DEFAULT_FPCDIR
+ifeq ($(FPCDIR),wrong)
+override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR=wrong
+endif
+endif
+endif
+ifeq ($(FPCDIR),wrong)
+ifdef inUnix
+override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
+ifeq ($(wildcard $(FPCDIR)/units),)
+override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
+endif
+else
+override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR=c:/pp
+endif
+endif
+endif
+endif
+endif
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
+endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
+ifdef CROSSCOMPILE
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
+endif
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
+ifeq ($(UNITSDIR),)
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+endif
+PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+override PACKAGE_NAME=gtk2
+override PACKAGE_VERSION=2.0.0
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=buildim
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_IMPLICITUNITS+=magick_wand imagemagick
+endif
+override INSTALL_BUILDUNIT=buildgtk2
+override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_UNITDIR+=magick wand
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_UNITDIR+=magick wand
+endif
+override SHARED_BUILD=n
+override SHARED_BUILD=n
+ifdef REQUIRE_UNITSDIR
+override UNITSDIR+=$(REQUIRE_UNITSDIR)
+endif
+ifdef REQUIRE_PACKAGESDIR
+override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
+endif
+ifdef ZIPINSTALL
+ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
+UNIXHier=1
+endif
+else
+ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
+UNIXHier=1
+endif
+endif
+ifndef INSTALL_PREFIX
+ifdef PREFIX
+INSTALL_PREFIX=$(PREFIX)
+endif
+endif
+ifndef INSTALL_PREFIX
+ifdef UNIXHier
+INSTALL_PREFIX=/usr/local
+else
+ifdef INSTALL_FPCPACKAGE
+INSTALL_BASEDIR:=/pp
+else
+INSTALL_BASEDIR:=/$(PACKAGE_NAME)
+endif
+endif
+endif
+export INSTALL_PREFIX
+ifdef INSTALL_FPCSUBDIR
+export INSTALL_FPCSUBDIR
+endif
+ifndef DIST_DESTDIR
+DIST_DESTDIR:=$(BASEDIR)
+endif
+export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
+else
+COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
+ifndef INSTALL_BASEDIR
+ifdef UNIXHier
+ifdef INSTALL_FPCPACKAGE
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
+else
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
+endif
+else
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)
+endif
+endif
+ifndef INSTALL_BINDIR
+ifdef UNIXHier
+INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
+else
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
+ifdef INSTALL_FPCPACKAGE
+ifdef CROSSCOMPILE
+ifdef CROSSINSTALL
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
+else
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
+endif
+else
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
+endif
+endif
+endif
+endif
+ifndef INSTALL_UNITDIR
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
+ifdef INSTALL_FPCPACKAGE
+ifdef PACKAGE_NAME
+INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
+endif
+endif
+endif
+ifndef INSTALL_LIBDIR
+ifdef UNIXHier
+INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
+else
+INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
+endif
+endif
+ifndef INSTALL_SOURCEDIR
+ifdef UNIXHier
+ifdef BSDhier
+SRCPREFIXDIR=share/src
+else
+ifdef linuxHier
+SRCPREFIXDIR=share/src
+else
+SRCPREFIXDIR=src
+endif
+endif
+ifdef INSTALL_FPCPACKAGE
+ifdef INSTALL_FPCSUBDIR
+INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
+else
+INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
+endif
+else
+INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+endif
+else
+ifdef INSTALL_FPCPACKAGE
+ifdef INSTALL_FPCSUBDIR
+INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
+else
+INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
+endif
+else
+INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
+endif
+endif
+endif
+ifndef INSTALL_DOCDIR
+ifdef UNIXHier
+ifdef BSDhier
+DOCPREFIXDIR=share/doc
+else
+ifdef linuxHier
+DOCPREFIXDIR=share/doc
+else
+DOCPREFIXDIR=doc
+endif
+endif
+ifdef INSTALL_FPCPACKAGE
+INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
+else
+INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+endif
+else
+ifdef INSTALL_FPCPACKAGE
+INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
+else
+INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
+endif
+endif
+endif
+ifndef INSTALL_EXAMPLEDIR
+ifdef UNIXHier
+ifdef INSTALL_FPCPACKAGE
+ifdef BSDhier
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
+else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
+else
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
+endif
+endif
+else
+ifdef BSDhier
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+else
+INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+endif
+endif
+endif
+else
+ifdef INSTALL_FPCPACKAGE
+INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
+else
+INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
+endif
+endif
+endif
+ifndef INSTALL_DATADIR
+INSTALL_DATADIR=$(INSTALL_BASEDIR)
+endif
+ifndef INSTALL_SHAREDDIR
+INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
+endif
+ifdef CROSSCOMPILE
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
+ifeq ($(CROSSBINDIR),)
+CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
+endif
+endif
+else
+CROSSBINDIR=
+endif
+ifeq ($(OS_SOURCE),linux)
+ifndef GCCLIBDIR
+ifeq ($(CPU_TARGET),i386)
+ifneq ($(findstring x86_64,$(shell uname -a)),)
+ifeq ($(BINUTILSPREFIX),)
+GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
+endif
+endif
+endif
+ifeq ($(CPU_TARGET),powerpc64)
+ifeq ($(BINUTILSPREFIX),)
+GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
+endif
+endif
+endif
+ifndef GCCLIBDIR
+CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
+ifneq ($(CROSSGCC),)
+GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`)
+endif
+endif
+ifndef OTHERLIBDIR
+OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
+endif
+endif
+ifdef inUnix
+ifeq ($(OS_SOURCE),netbsd)
+OTHERLIBDIR+=/usr/pkg/lib
+endif
+export GCCLIBDIR OTHERLIB
+endif
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.so
+SHAREDLIBPREFIX=libfp
+STATICLIBPREFIX=libp
+IMPORTLIBPREFIX=libimp
+RSTEXT=.rst
+ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
+ifeq ($(OS_TARGET),go32v1)
+STATICLIBPREFIX=
+SHORTSUFFIX=v1
+endif
+ifeq ($(OS_TARGET),go32v2)
+STATICLIBPREFIX=
+SHORTSUFFIX=dos
+endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+OEXT=.obj
+ASMEXT=.asm
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=wat
+endif
+ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
+ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=fbs
+endif
+ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=nbs
+endif
+ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=obs
+endif
+ifeq ($(OS_TARGET),win32)
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=w32
+endif
+ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
+AOUTEXT=.out
+STATICLIBPREFIX=
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=os2
+ECHO=echo
+endif
+ifeq ($(OS_TARGET),emx)
+BATCHEXT=.cmd
+AOUTEXT=.out
+STATICLIBPREFIX=
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=emx
+ECHO=echo
+endif
+ifeq ($(OS_TARGET),amiga)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=amg
+endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=mos
+endif
+ifeq ($(OS_TARGET),atari)
+EXEEXT=.ttp
+SHORTSUFFIX=ata
+endif
+ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=be
+endif
+ifeq ($(OS_TARGET),solaris)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=sun
+endif
+ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=qnx
+endif
+ifeq ($(OS_TARGET),netware)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+SHORTSUFFIX=nw
+endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+SHORTSUFFIX=nwl
+endif
+ifeq ($(OS_TARGET),macos)
+BATCHEXT=
+EXEEXT=
+DEBUGSYMEXT=.xcoff
+SHORTSUFFIX=mac
+endif
+ifeq ($(OS_TARGET),darwin)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=dwn
+endif
+else
+ifeq ($(OS_TARGET),go32v1)
+PPUEXT=.pp1
+OEXT=.o1
+ASMEXT=.s1
+SMARTEXT=.sl1
+STATICLIBEXT=.a1
+SHAREDLIBEXT=.so1
+STATICLIBPREFIX=
+SHORTSUFFIX=v1
+endif
+ifeq ($(OS_TARGET),go32v2)
+STATICLIBPREFIX=
+SHORTSUFFIX=dos
+endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+SHORTSUFFIX=wat
+endif
+ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
+ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=fbs
+endif
+ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=nbs
+endif
+ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=obs
+endif
+ifeq ($(OS_TARGET),win32)
+PPUEXT=.ppw
+OEXT=.ow
+ASMEXT=.sw
+SMARTEXT=.slw
+STATICLIBEXT=.aw
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=w32
+endif
+ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
+PPUEXT=.ppo
+ASMEXT=.so2
+OEXT=.oo2
+AOUTEXT=.out
+SMARTEXT=.sl2
+STATICLIBPREFIX=
+STATICLIBEXT=.ao2
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=os2
+ECHO=echo
+endif
+ifeq ($(OS_TARGET),amiga)
+EXEEXT=
+PPUEXT=.ppu
+ASMEXT=.asm
+OEXT=.o
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.library
+SHORTSUFFIX=amg
+endif
+ifeq ($(OS_TARGET),atari)
+PPUEXT=.ppu
+ASMEXT=.s
+OEXT=.o
+SMARTEXT=.sl
+STATICLIBEXT=.a
+EXEEXT=.ttp
+SHORTSUFFIX=ata
+endif
+ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
+PPUEXT=.ppu
+ASMEXT=.s
+OEXT=.o
+SMARTEXT=.sl
+STATICLIBEXT=.a
+EXEEXT=
+SHORTSUFFIX=be
+endif
+ifeq ($(OS_TARGET),solaris)
+BATCHEXT=.sh
+PPUEXT=.ppu
+ASMEXT=.s
+OEXT=.o
+SMARTEXT=.sl
+STATICLIBEXT=.a
+EXEEXT=
+SHORTSUFFIX=sun
+endif
+ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
+PPUEXT=.ppu
+ASMEXT=.s
+OEXT=.o
+SMARTEXT=.sl
+STATICLIBEXT=.a
+EXEEXT=
+SHORTSUFFIX=qnx
+endif
+ifeq ($(OS_TARGET),netware)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+EXEEXT=.nlm
+SHORTSUFFIX=nw
+endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+EXEEXT=.nlm
+SHORTSUFFIX=nwl
+endif
+ifeq ($(OS_TARGET),macos)
+BATCHEXT=
+PPUEXT=.ppu
+ASMEXT=.s
+OEXT=.o
+SMARTEXT=.sl
+STATICLIBEXT=.a
+EXEEXT=
+DEBUGSYMEXT=.xcoff
+SHORTSUFFIX=mac
+endif
+endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade.$(SHORTSUFFIX)
+ZIPSUFFIX=$(SHORTSUFFIX)
+ZIPCROSSPREFIX=
+ZIPSOURCESUFFIX=src
+ZIPEXAMPLESUFFIX=exm
+else
+FPCMADE=fpcmade.$(TARGETSUFFIX)
+ZIPSOURCESUFFIX=.source
+ZIPEXAMPLESUFFIX=.examples
+ifdef CROSSCOMPILE
+ZIPSUFFIX=.$(SOURCESUFFIX)
+ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+else
+ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPCROSSPREFIX=
+endif
+endif
+ifndef ECHO
+ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO= __missing_command_ECHO
+else
+ECHO:=$(firstword $(ECHO))
+endif
+else
+ECHO:=$(firstword $(ECHO))
+endif
+endif
+export ECHO
+ifndef DATE
+DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE= __missing_command_DATE
+else
+DATE:=$(firstword $(DATE))
+endif
+else
+DATE:=$(firstword $(DATE))
+endif
+endif
+export DATE
+ifndef GINSTALL
+GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(GINSTALL),)
+GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(GINSTALL),)
+GINSTALL= __missing_command_GINSTALL
+else
+GINSTALL:=$(firstword $(GINSTALL))
+endif
+else
+GINSTALL:=$(firstword $(GINSTALL))
+endif
+endif
+export GINSTALL
+ifndef CPPROG
+CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(CPPROG),)
+CPPROG= __missing_command_CPPROG
+else
+CPPROG:=$(firstword $(CPPROG))
+endif
+endif
+export CPPROG
+ifndef RMPROG
+RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(RMPROG),)
+RMPROG= __missing_command_RMPROG
+else
+RMPROG:=$(firstword $(RMPROG))
+endif
+endif
+export RMPROG
+ifndef MVPROG
+MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MVPROG),)
+MVPROG= __missing_command_MVPROG
+else
+MVPROG:=$(firstword $(MVPROG))
+endif
+endif
+export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command_MKDIRPROG
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
+ifndef ECHOREDIR
+ifndef inUnix
+ECHOREDIR=echo
+else
+ECHOREDIR=$(ECHO)
+endif
+endif
+ifndef COPY
+COPY:=$(CPPROG) -fp
+endif
+ifndef COPYTREE
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
+endif
+ifndef MOVE
+MOVE:=$(MVPROG) -f
+endif
+ifndef DEL
+DEL:=$(RMPROG) -f
+endif
+ifndef DELTREE
+DELTREE:=$(RMPROG) -rf
+endif
+ifndef INSTALL
+ifdef inUnix
+INSTALL:=$(GINSTALL) -c -m 644
+else
+INSTALL:=$(COPY)
+endif
+endif
+ifndef INSTALLEXE
+ifdef inUnix
+INSTALLEXE:=$(GINSTALL) -c -m 755
+else
+INSTALLEXE:=$(COPY)
+endif
+endif
+ifndef MKDIR
+MKDIR:=$(GINSTALL) -m 755 -d
+endif
+export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
+ifndef PPUMOVE
+PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUMOVE),)
+PPUMOVE= __missing_command_PPUMOVE
+else
+PPUMOVE:=$(firstword $(PPUMOVE))
+endif
+endif
+export PPUMOVE
+ifndef FPCMAKE
+FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(FPCMAKE),)
+FPCMAKE= __missing_command_FPCMAKE
+else
+FPCMAKE:=$(firstword $(FPCMAKE))
+endif
+endif
+export FPCMAKE
+ifndef ZIPPROG
+ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ZIPPROG),)
+ZIPPROG= __missing_command_ZIPPROG
+else
+ZIPPROG:=$(firstword $(ZIPPROG))
+endif
+endif
+export ZIPPROG
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG= __missing_command_TARPROG
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+ASNAME=$(BINUTILSPREFIX)as
+LDNAME=$(BINUTILSPREFIX)ld
+ARNAME=$(BINUTILSPREFIX)ar
+RCNAME=$(BINUTILSPREFIX)rc
+ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
+ifeq ($(OS_TARGET),win32)
+ifeq ($(CROSSBINDIR),)
+ASNAME=asw
+LDNAME=ldw
+ARNAME=arw
+endif
+endif
+endif
+ifndef ASPROG
+ifdef CROSSBINDIR
+ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
+else
+ASPROG=$(ASNAME)
+endif
+endif
+ifndef LDPROG
+ifdef CROSSBINDIR
+LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
+else
+LDPROG=$(LDNAME)
+endif
+endif
+ifndef RCPROG
+ifdef CROSSBINDIR
+RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
+else
+RCPROG=$(RCNAME)
+endif
+endif
+ifndef ARPROG
+ifdef CROSSBINDIR
+ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
+else
+ARPROG=$(ARNAME)
+endif
+endif
+AS=$(ASPROG)
+LD=$(LDPROG)
+RC=$(RCPROG)
+AR=$(ARPROG)
+PPAS=ppas$(SRCBATCHEXT)
+ifdef inUnix
+LDCONFIG=ldconfig
+else
+LDCONFIG=
+endif
+ifdef DATE
+DATESTR:=$(shell $(DATE) +%Y%m%d)
+else
+DATESTR=
+endif
+ifndef UPXPROG
+ifeq ($(OS_TARGET),go32v2)
+UPXPROG:=1
+endif
+ifeq ($(OS_TARGET),win32)
+UPXPROG:=1
+endif
+ifdef UPXPROG
+UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(UPXPROG),)
+UPXPROG=
+else
+UPXPROG:=$(firstword $(UPXPROG))
+endif
+else
+UPXPROG=
+endif
+endif
+export UPXPROG
+ZIPOPT=-9
+ZIPEXT=.zip
+ifeq ($(USETAR),bz2)
+TAROPT=vj
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
+endif
+override REQUIRE_PACKAGES=rtl
+ifeq ($(FULL_TARGET),i386-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifdef REQUIRE_PACKAGES_RTL
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_RTL),)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
+else
+UNITDIR_RTL=$(PACKAGEDIR_RTL)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_RTL)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_RTL=
+UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_RTL),)
+UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
+else
+UNITDIR_RTL=
+endif
+endif
+ifdef UNITDIR_RTL
+override COMPILER_UNITDIR+=$(UNITDIR_RTL)
+endif
+endif
+ifndef NOCPUDEF
+override FPCOPTDEF=$(CPU_TARGET)
+endif
+ifneq ($(OS_TARGET),$(OS_SOURCE))
+override FPCOPT+=-T$(OS_TARGET)
+endif
+ifneq ($(CPU_TARGET),$(CPU_SOURCE))
+override FPCOPT+=-P$(CPU_TARGET)
+endif
+ifeq ($(OS_SOURCE),openbsd)
+override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
+endif
+ifndef CROSSBOOTSTRAP
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
+endif
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-Xr$(RLINKPATH)
+endif
+endif
+ifdef UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
+endif
+ifdef LIBDIR
+override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
+endif
+ifdef OBJDIR
+override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
+endif
+ifdef INCDIR
+override FPCOPT+=$(addprefix -Fi,$(INCDIR))
+endif
+ifdef LINKSMART
+override FPCOPT+=-XX
+endif
+ifdef CREATESMART
+override FPCOPT+=-CX
+endif
+ifdef DEBUG
+override FPCOPT+=-gl
+override FPCOPTDEF+=DEBUG
+endif
+ifdef RELEASE
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
+override FPCOPTDEF+=RELEASE
+endif
+ifdef STRIP
+override FPCOPT+=-Xs
+endif
+ifdef OPTIMIZE
+override FPCOPT+=-O2
+endif
+ifdef VERBOSE
+override FPCOPT+=-vwni
+endif
+ifdef COMPILER_OPTIONS
+override FPCOPT+=$(COMPILER_OPTIONS)
+endif
+ifdef COMPILER_UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
+endif
+ifdef COMPILER_LIBRARYDIR
+override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
+endif
+ifdef COMPILER_OBJECTDIR
+override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
+endif
+ifdef COMPILER_INCLUDEDIR
+override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
+endif
+ifdef CROSSBINDIR
+override FPCOPT+=-FD$(CROSSBINDIR)
+endif
+ifdef COMPILER_TARGETDIR
+override FPCOPT+=-FE$(COMPILER_TARGETDIR)
+ifeq ($(COMPILER_TARGETDIR),.)
+override TARGETDIRPREFIX=
+else
+override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+endif
+ifdef COMPILER_UNITTARGETDIR
+override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
+ifeq ($(COMPILER_UNITTARGETDIR),.)
+override UNITTARGETDIRPREFIX=
+else
+override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
+endif
+else
+ifdef COMPILER_TARGETDIR
+override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
+override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
+endif
+endif
+ifdef CREATESHARED
+override FPCOPT+=-Cg
+ifeq ($(CPU_TARGET),i386)
+override FPCOPT+=-Aas
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef GCCLIBDIR
+override FPCOPT+=-Fl$(GCCLIBDIR)
+endif
+ifdef OTHERLIBDIR
+override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+endif
+ifdef FPCOPTDEF
+override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
+endif
+ifdef CFGFILE
+override FPCOPT+=@$(CFGFILE)
+endif
+ifdef USEENV
+override FPCEXTCMD:=$(FPCOPT)
+override FPCOPT:=!FPCEXTCMD
+export FPCEXTCMD
+endif
+override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
+override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
+override ACROSSCOMPILE=1
+endif
+ifdef ACROSSCOMPILE
+override FPCOPT+=$(CROSSOPT)
+endif
+override COMPILER:=$(FPC) $(FPCOPT)
+ifeq (,$(findstring -s ,$(COMPILER)))
+EXECPPAS=
+else
+ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+EXECPPAS:=@$(PPAS)
+endif
+endif
+.PHONY: fpc_units
+ifneq ($(TARGET_UNITS),)
+override ALLTARGET+=fpc_units
+override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
+override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
+override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
+override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
+endif
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
+ifdef TARGET_RSTS
+override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
+override CLEANRSTFILES+=$(RSTFILES)
+endif
+.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
+$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
+ @$(ECHOREDIR) Compiled > $(FPCMADE)
+fpc_all: $(FPCMADE)
+fpc_smart:
+ $(MAKE) all LINKSMART=1 CREATESMART=1
+fpc_debug:
+ $(MAKE) all DEBUG=1
+fpc_release:
+ $(MAKE) all RELEASE=1
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+ $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+ $(MKDIRTREE) $(COMPILER_TARGETDIR)
+%$(PPUEXT): %.pp
+ $(COMPILER) $<
+ $(EXECPPAS)
+%$(PPUEXT): %.pas
+ $(COMPILER) $<
+ $(EXECPPAS)
+%$(EXEEXT): %.pp
+ $(COMPILER) $<
+ $(EXECPPAS)
+%$(EXEEXT): %.pas
+ $(COMPILER) $<
+ $(EXECPPAS)
+%$(EXEEXT): %.lpr
+ $(COMPILER) $<
+ $(EXECPPAS)
+%$(EXEEXT): %.dpr
+ $(COMPILER) $<
+ $(EXECPPAS)
+%.res: %.rc
+ windres -i $< -o $@
+vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
+vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
+.PHONY: fpc_shared
+override INSTALLTARGET+=fpc_shared_install
+ifndef SHARED_LIBVERSION
+SHARED_LIBVERSION=$(FPC_VERSION)
+endif
+ifndef SHARED_LIBNAME
+SHARED_LIBNAME=$(PACKAGE_NAME)
+endif
+ifndef SHARED_FULLNAME
+SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
+endif
+ifndef SHARED_LIBUNITS
+SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
+override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
+endif
+fpc_shared:
+ifdef HASSHAREDLIB
+ $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
+ifneq ($(SHARED_BUILD),n)
+ $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
+endif
+else
+ @$(ECHO) Shared Libraries not supported
+endif
+fpc_shared_install:
+ifneq ($(SHARED_BUILD),n)
+ifneq ($(SHARED_LIBUNITS),)
+ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
+ $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
+endif
+endif
+endif
+.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
+ifdef INSTALL_UNITS
+override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
+endif
+ifdef INSTALL_BUILDUNIT
+override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
+endif
+ifdef INSTALLPPUFILES
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+endif
+override INSTALL_CREATEPACKAGEFPC=1
+endif
+ifdef INSTALLEXEFILES
+ifneq ($(TARGETDIRPREFIX),)
+override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
+endif
+endif
+fpc_install: all $(INSTALLTARGET)
+ifdef INSTALLEXEFILES
+ $(MKDIR) $(INSTALL_BINDIR)
+ifdef UPXPROG
+ -$(UPXPROG) $(INSTALLEXEFILES)
+endif
+ $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
+endif
+ifdef INSTALL_CREATEPACKAGEFPC
+ifdef FPCMAKE
+ifdef PACKAGE_VERSION
+ifneq ($(wildcard Makefile.fpc),)
+ $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
+ $(MKDIR) $(INSTALL_UNITDIR)
+ $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
+endif
+endif
+endif
+endif
+ifdef INSTALLPPUFILES
+ $(MKDIR) $(INSTALL_UNITDIR)
+ $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
+ifneq ($(INSTALLPPULINKFILES),)
+ $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
+endif
+ifneq ($(wildcard $(LIB_FULLNAME)),)
+ $(MKDIR) $(INSTALL_LIBDIR)
+ $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
+ifdef inUnix
+ ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
+endif
+endif
+endif
+ifdef INSTALL_FILES
+ $(MKDIR) $(INSTALL_DATADIR)
+ $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
+endif
+fpc_sourceinstall: distclean
+ $(MKDIR) $(INSTALL_SOURCEDIR)
+ $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
+fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
+ifdef HASEXAMPLES
+ $(MKDIR) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef EXAMPLESOURCEFILES
+ $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef TARGET_EXAMPLEDIRS
+ $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
+endif
+.PHONY: fpc_distinstall
+fpc_distinstall: install exampleinstall
+.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
+ifndef PACKDIR
+ifndef inUnix
+PACKDIR=$(BASEDIR)/../fpc-pack
+else
+PACKDIR=/tmp/fpc-pack
+endif
+endif
+ifndef ZIPNAME
+ifdef DIST_ZIPNAME
+ZIPNAME=$(DIST_ZIPNAME)
+else
+ZIPNAME=$(PACKAGE_NAME)
+endif
+endif
+ifndef FULLZIPNAME
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+endif
+ifndef ZIPTARGET
+ifdef DIST_ZIPTARGET
+ZIPTARGET=DIST_ZIPTARGET
+else
+ZIPTARGET=install
+endif
+endif
+ifndef USEZIP
+ifdef inUnix
+USETAR=1
+endif
+endif
+ifndef inUnix
+USEZIPWRAPPER=1
+endif
+ifdef USEZIPWRAPPER
+ZIPPATHSEP=$(PATHSEP)
+ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))
+else
+ZIPPATHSEP=/
+endif
+ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
+ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
+ifdef USETAR
+ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)
+ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
+else
+ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)
+ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
+endif
+fpc_zipinstall:
+ $(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
+ $(MKDIR) $(DIST_DESTDIR)
+ $(DEL) $(ZIPDESTFILE)
+ifdef USEZIPWRAPPER
+ifneq ($(ECHOREDIR),echo)
+ $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPER)
+ $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)
+ $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPPER)
+else
+ echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
+ echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
+ echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
+endif
+ifdef inUnix
+ /bin/sh $(ZIPWRAPPER)
+else
+ $(ZIPWRAPPER)
+endif
+ $(DEL) $(ZIPWRAPPER)
+else
+ $(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
+endif
+ $(DELTREE) $(PACKDIR)
+fpc_zipsourceinstall:
+ $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIPSOURCESUFFIX)
+fpc_zipexampleinstall:
+ifdef HASEXAMPLES
+ $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZIPEXAMPLESUFFIX)
+endif
+fpc_zipdistinstall:
+ $(MAKE) fpc_zipinstall ZIPTARGET=distinstall
+.PHONY: fpc_clean fpc_cleanall fpc_distclean
+ifdef EXEFILES
+override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
+endif
+ifdef CLEAN_UNITS
+override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
+endif
+ifdef CLEANPPUFILES
+override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+endif
+fpc_clean: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+ -$(DEL) $(CLEANEXEFILES)
+endif
+ifdef CLEANPPUFILES
+ -$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+ -$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+ -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+ifdef CLEAN_FILES
+ -$(DEL) $(CLEAN_FILES)
+endif
+ifdef LIB_NAME
+ -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
+endif
+ -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
+fpc_cleanall: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+ -$(DEL) $(CLEANEXEFILES)
+endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+ -$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+ -$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+ -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+ -$(DELTREE) units
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+endif
+fpc_distclean: cleanall
+.PHONY: fpc_baseinfo
+override INFORULES+=fpc_baseinfo
+fpc_baseinfo:
+ @$(ECHO)
+ @$(ECHO) == Package info ==
+ @$(ECHO) Package Name..... $(PACKAGE_NAME)
+ @$(ECHO) Package Version.. $(PACKAGE_VERSION)
+ @$(ECHO)
+ @$(ECHO) == Configuration info ==
+ @$(ECHO)
+ @$(ECHO) FPC.......... $(FPC)
+ @$(ECHO) FPC Version.. $(FPC_VERSION)
+ @$(ECHO) Source CPU... $(CPU_SOURCE)
+ @$(ECHO) Target CPU... $(CPU_TARGET)
+ @$(ECHO) Source OS.... $(OS_SOURCE)
+ @$(ECHO) Target OS.... $(OS_TARGET)
+ @$(ECHO) Full Source.. $(FULL_SOURCE)
+ @$(ECHO) Full Target.. $(FULL_TARGET)
+ @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
+ @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
+ @$(ECHO)
+ @$(ECHO) == Directory info ==
+ @$(ECHO)
+ @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
+ @$(ECHO)
+ @$(ECHO) Basedir......... $(BASEDIR)
+ @$(ECHO) FPCDir.......... $(FPCDIR)
+ @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
+ @$(ECHO) UnitsDir........ $(UNITSDIR)
+ @$(ECHO) PackagesDir..... $(PACKAGESDIR)
+ @$(ECHO)
+ @$(ECHO) GCC library..... $(GCCLIBDIR)
+ @$(ECHO) Other library... $(OTHERLIBDIR)
+ @$(ECHO)
+ @$(ECHO) == Tools info ==
+ @$(ECHO)
+ @$(ECHO) As........ $(AS)
+ @$(ECHO) Ld........ $(LD)
+ @$(ECHO) Ar........ $(AR)
+ @$(ECHO) Rc........ $(RC)
+ @$(ECHO)
+ @$(ECHO) Mv........ $(MVPROG)
+ @$(ECHO) Cp........ $(CPPROG)
+ @$(ECHO) Rm........ $(RMPROG)
+ @$(ECHO) GInstall.. $(GINSTALL)
+ @$(ECHO) Echo...... $(ECHO)
+ @$(ECHO) Shell..... $(SHELL)
+ @$(ECHO) Date...... $(DATE)
+ @$(ECHO) FPCMake... $(FPCMAKE)
+ @$(ECHO) PPUMove... $(PPUMOVE)
+ @$(ECHO) Upx....... $(UPXPROG)
+ @$(ECHO) Zip....... $(ZIPPROG)
+ @$(ECHO)
+ @$(ECHO) == Object info ==
+ @$(ECHO)
+ @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
+ @$(ECHO) Target Units.......... $(TARGET_UNITS)
+ @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
+ @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
+ @$(ECHO) Target Dirs........... $(TARGET_DIRS)
+ @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
+ @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
+ @$(ECHO)
+ @$(ECHO) Clean Units......... $(CLEAN_UNITS)
+ @$(ECHO) Clean Files......... $(CLEAN_FILES)
+ @$(ECHO)
+ @$(ECHO) Install Units....... $(INSTALL_UNITS)
+ @$(ECHO) Install Files....... $(INSTALL_FILES)
+ @$(ECHO)
+ @$(ECHO) == Install info ==
+ @$(ECHO)
+ @$(ECHO) DateStr.............. $(DATESTR)
+ @$(ECHO) ZipName.............. $(ZIPNAME)
+ @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
+ @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
+ @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
+ @$(ECHO) FullZipName.......... $(FULLZIPNAME)
+ @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
+ @$(ECHO)
+ @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
+ @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
+ @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
+ @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
+ @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
+ @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
+ @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
+ @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
+ @$(ECHO)
+ @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
+ @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
+ @$(ECHO)
+.PHONY: fpc_info
+fpc_info: $(INFORULES)
+.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
+ fpc_makefile_dirs
+fpc_makefile:
+ $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
+fpc_makefile_sub1:
+ifdef TARGET_DIRS
+ $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
+endif
+ifdef TARGET_EXAMPLEDIRS
+ $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
+endif
+fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
+fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
+fpc_makefiles: fpc_makefile fpc_makefile_dirs
+all: fpc_all
+debug: fpc_debug
+smart: fpc_smart
+release: fpc_release
+units: fpc_units
+examples:
+shared: fpc_shared
+install: fpc_install
+sourceinstall: fpc_sourceinstall
+exampleinstall: fpc_exampleinstall
+distinstall: fpc_distinstall
+zipinstall: fpc_zipinstall
+zipsourceinstall: fpc_zipsourceinstall
+zipexampleinstall: fpc_zipexampleinstall
+zipdistinstall: fpc_zipdistinstall
+clean: fpc_clean
+distclean: fpc_distclean
+cleanall: fpc_cleanall
+info: fpc_info
+makefiles: fpc_makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+ifneq ($(wildcard fpcmake.loc),)
+include fpcmake.loc
+endif
diff --git a/packages/base/imagemagick/Makefile.fpc b/packages/base/imagemagick/Makefile.fpc
new file mode 100644
index 0000000000..19bfce0405
--- /dev/null
+++ b/packages/base/imagemagick/Makefile.fpc
@@ -0,0 +1,29 @@
+#
+# Makefile.fpc for Free Pascal GTK 2.x.y Bindings
+#
+
+[package]
+name=gtk2
+version=2.0.0
+
+[require]
+libc=y
+
+[target]
+units=buildim
+exampledirs=
+implicitunits=magick_wand imagemagick
+
+[compiler]
+unitdir=magick wand
+
+[install]
+buildunit=buildgtk2
+fpcpackage=y
+
+[shared]
+build=n
+
+[default]
+fpcdir=../../..
+
diff --git a/packages/base/imagemagick/buildim.pp b/packages/base/imagemagick/buildim.pp
new file mode 100644
index 0000000000..731c30eaa5
--- /dev/null
+++ b/packages/base/imagemagick/buildim.pp
@@ -0,0 +1,29 @@
+{
+ Dummy unit to compile imagemagick in one command
+
+ This unit is part of imagemagick.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+}
+unit buildim;
+
+Interface
+
+uses imagemagick, magick_wand;
+
+Implementation
+
+end.
diff --git a/packages/base/imagemagick/demo1/image.png b/packages/base/imagemagick/demo1/image.png
new file mode 100644
index 0000000000..8fbd918b79
Binary files /dev/null and b/packages/base/imagemagick/demo1/image.png differ
diff --git a/packages/base/imagemagick/demo1/wanddemo.dpr b/packages/base/imagemagick/demo1/wanddemo.dpr
new file mode 100644
index 0000000000..6790c1ea82
--- /dev/null
+++ b/packages/base/imagemagick/demo1/wanddemo.dpr
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/base/imagemagick/demo1/wanddemo.lpi b/packages/base/imagemagick/demo1/wanddemo.lpi
new file mode 100644
index 0000000000..d84384e0f9
--- /dev/null
+++ b/packages/base/imagemagick/demo1/wanddemo.lpi
@@ -0,0 +1,260 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/base/imagemagick/demo1/wanddemo.lpr b/packages/base/imagemagick/demo1/wanddemo.lpr
new file mode 100644
index 0000000000..25e2ec44a4
--- /dev/null
+++ b/packages/base/imagemagick/demo1/wanddemo.lpr
@@ -0,0 +1,59 @@
+{
+ Demonstration program for the ImageMagick Library
+
+ This program was converted from c by: Felipe Monteiro de Carvalho
+
+ Usage: Just execute the program. It will resize the image.png image
+ on it's directory to fit (106, 80) and convert it to a jpg.
+
+ Dez/2005
+}
+program wanddemo;
+
+{$mode objfpc}{$H+}
+
+uses SysUtils, magick_wand, ImageMagick;
+
+procedure ThrowWandException(wand: PMagickWand);
+var
+ description: PChar;
+ severity: ExceptionType;
+begin
+ description := MagickGetException(wand, @severity);
+ WriteLn(Format('An error ocurred. Description: %s', [description]));
+ description := MagickRelinquishMemory(description);
+ Abort;
+end;
+
+var
+ status: MagickBooleanType;
+ wand: PMagickWand;
+begin
+ { Read an image. }
+
+ MagickWandGenesis;
+
+ wand := NewMagickWand;
+
+ try
+ status := MagickReadImage(wand, 'image.png');
+ if (status = MagickFalse) then ThrowWandException(wand);
+
+ { Turn the images into a thumbnail sequence. }
+
+ MagickResetIterator(wand);
+
+ while (MagickNextImage(wand) <> MagickFalse) do
+ MagickResizeImage(wand, 106, 80, LanczosFilter, 1.0);
+
+ { Write the image as MIFF and destroy it. }
+
+ status := MagickWriteImages(wand, 'image.jpg', MagickTrue);
+ if (status = MagickFalse) then ThrowWandException(wand);
+
+ finally
+ wand := DestroyMagickWand(wand);
+
+ MagickWandTerminus;
+ end;
+end.
diff --git a/packages/base/imagemagick/demo2/screenshot.lpi b/packages/base/imagemagick/demo2/screenshot.lpi
new file mode 100644
index 0000000000..8ccbbfb479
--- /dev/null
+++ b/packages/base/imagemagick/demo2/screenshot.lpi
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/base/imagemagick/demo2/screenshot.lpi.bak b/packages/base/imagemagick/demo2/screenshot.lpi.bak
new file mode 100644
index 0000000000..b45e16a303
--- /dev/null
+++ b/packages/base/imagemagick/demo2/screenshot.lpi.bak
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/base/imagemagick/demo2/screenshot.lpr b/packages/base/imagemagick/demo2/screenshot.lpr
new file mode 100644
index 0000000000..a683aa3341
--- /dev/null
+++ b/packages/base/imagemagick/demo2/screenshot.lpr
@@ -0,0 +1,151 @@
+{
+ Demonstration software for image resizing and screenshot using PascalMagick
+
+ Created by: Felipe Monteiro de Carvalho
+
+ This software takes a screenshot of the screen and enlarges it using anti-aliasing
+ or not depending on what the user select.
+
+ Notes: This software uses X11 to take the screenshot so it will only work on UNIXes
+
+ More information on this page:
+ http://wiki.lazarus.freepascal.org/index.php/PascalMagick
+
+ April/2006
+}
+program screenshot;
+
+{$mode objfpc}{$H+}
+
+uses SysUtils, magick_wand, ImageMagick, Unix;
+
+type
+ TCommand = (cmdQuit, cmdSample, cmdAntiAliase);
+
+{
+ Catches exceptions from ImageMagick
+}
+procedure ThrowWandException(wand: PMagickWand);
+var
+ description: PChar;
+ severity: ExceptionType;
+begin
+ description := MagickGetException(wand, @severity);
+ WriteLn(Format('An error ocurred. Description: %s', [description]));
+ description := MagickRelinquishMemory(description);
+ Abort;
+end;
+
+{
+ Shows the main screen
+}
+function MainScreen: TCommand;
+var
+ i: Integer;
+ Continuar: Boolean;
+begin
+ Continuar := False;
+
+ WriteLn('=========================================================');
+ WriteLn(' Welcome to PascalMagick demo software 2');
+ WriteLn('=========================================================');
+
+ while not Continuar do
+ begin
+ WriteLn('');
+ WriteLn('The following commands are available:');
+ WriteLn(' 0 - Quit');
+ WriteLn(' 1 - Capture screenshot and resize it to 2024x1536');
+ WriteLn(' 2 - Same as #1 except that uses Anti-Aliasing');
+ Write(': ');
+ ReadLn(i);
+
+ case i of
+ 0:
+ begin
+ Result := cmdQuit;
+ Continuar := True;
+ end;
+
+ 1:
+ begin
+ Result := cmdSample;
+ Continuar := True;
+ end;
+
+ 2:
+ begin
+ Result := cmdAntiAliase;
+ Continuar := True;
+ end;
+
+ else
+ WriteLn('Wrong Command!!');
+ end;
+ end;
+end;
+
+{
+ Main procedure
+}
+var
+ status: MagickBooleanType;
+ wand: PMagickWand;
+ TempDir, shellStr: string;
+ Antes: TTimeStamp;
+ Command: TCommand;
+begin
+ { Presentation screen and user options }
+
+ Command := MainScreen;
+
+ if Command = cmdQuit then Exit;
+
+
+ { Create the image }
+
+ Antes := DateTimeToTimeStamp(Now);
+
+ TempDir := GetTempDir(False);
+
+ shellStr := 'xwd -root -out ' + TempDir + 'display.xwd';
+
+ WriteLn(shellStr);
+
+ shell(shellStr);
+
+ { Read an image. }
+
+ MagickWandGenesis;
+
+ wand := NewMagickWand;
+
+ try
+ status := MagickReadImage(wand, PChar(TempDir + 'display.xwd'));
+ if (status = MagickFalse) then ThrowWandException(wand);
+
+ { Enlarge the Image }
+
+ WriteLn('Enlarging');
+
+ if Command = cmdAntiAliase then MagickResizeImage(wand, 2024, 1536, BoxFilter, 1.0)
+ else MagickSampleImage(wand, 2024, 1536);
+
+ WriteLn(IntToStr(DateTimeToTimeStamp(Now).Time - Antes.Time));
+
+ WriteLn('Saving');
+
+ { Write the image as MIFF and destroy it. }
+
+ status := MagickWriteImages(wand, PChar(TempDir + 'enlarged.jpg'), MagickTrue);
+ if (status = MagickFalse) then ThrowWandException(wand);
+
+ WriteLn(IntToStr(DateTimeToTimeStamp(Now).Time - Antes.Time));
+
+ finally
+ wand := DestroyMagickWand(wand);
+
+ MagickWandTerminus;
+ end;
+end.
+
diff --git a/packages/base/imagemagick/magick/cache_view.inc b/packages/base/imagemagick/magick/cache_view.inc
new file mode 100644
index 0000000000..85f20948b6
--- /dev/null
+++ b/packages/base/imagemagick/magick/cache_view.inc
@@ -0,0 +1,52 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick Cache View Methods.
+}
+
+type
+ ViewInfo = record
+ image: PImage;
+
+ id: Cardinal;
+
+ signature: Cardinal;
+ end;
+
+ PViewInfo = ^ViewInfo;
+
+{extern MagickExport const PixelPacket
+ *AcquireCacheView(const ViewInfo *,const long,const long,const unsigned long,
+ const unsigned long,ExceptionInfo *);
+
+extern MagickExport IndexPacket
+ *GetCacheViewIndexes(const ViewInfo *);
+
+extern MagickExport MagickBooleanType
+ SyncCacheView(ViewInfo *);
+
+extern MagickExport PixelPacket
+ *GetCacheViewPixels(const ViewInfo *),
+ *GetCacheView(ViewInfo *,const long,const long,const unsigned long,
+ const unsigned long),
+ *SetCacheView(ViewInfo *,const long,const long,const unsigned long,
+ const unsigned long);
+
+extern MagickExport ViewInfo
+ *OpenCacheView(Image *);
+
+extern MagickExport void
+ CloseCacheView(ViewInfo *);}
+
diff --git a/packages/base/imagemagick/magick/compare.inc b/packages/base/imagemagick/magick/compare.inc
new file mode 100644
index 0000000000..ed90ae6dd0
--- /dev/null
+++ b/packages/base/imagemagick/magick/compare.inc
@@ -0,0 +1,44 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick image compare methods.
+}
+
+//#include "magick/image.h"
+
+type
+ MetricType = (
+ UndefinedMetric,
+ MeanAbsoluteErrorMetric,
+ MeanSquaredErrorMetric,
+ PeakAbsoluteErrorMetric,
+ PeakSignalToNoiseRatioMetric,
+ RootMeanSquaredErrorMetric
+ );
+
+{extern MagickExport Image
+ *CompareImageChannels(Image *,const Image *,const ChannelType,
+ const MetricType,double *,ExceptionInfo *),
+ *CompareImages(Image *,const Image *,const MetricType,double *,
+ ExceptionInfo *);
+
+extern MagickExport MagickBooleanType
+ CompareImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *),
+ GetImageChannelDistortion(Image *,const Image *,const ChannelType,
+ const MetricType,double *,ExceptionInfo *),
+ GetImageDistortion(Image *,const Image *,const MetricType,double *,
+ ExceptionInfo *),
+ IsImagesEqual(Image *,const Image *);}
+
diff --git a/packages/base/imagemagick/magick/constitute.inc b/packages/base/imagemagick/magick/constitute.inc
new file mode 100644
index 0000000000..1349729a8b
--- /dev/null
+++ b/packages/base/imagemagick/magick/constitute.inc
@@ -0,0 +1,45 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick image constitute methods.
+}
+
+type
+ StorageType = (
+ UndefinedPixel,
+ CharPixel,
+ DoublePixel,
+ FloatPixel,
+ IntegerPixel,
+ LongPixel,
+ QuantumPixel,
+ ShortPixel
+ );
+
+{extern MagickExport Image
+ *ConstituteImage(const unsigned long,const unsigned long,const char *,
+ const StorageType,const void *,ExceptionInfo *),
+ *PingImage(const ImageInfo *,ExceptionInfo *),
+ *ReadImage(const ImageInfo *,ExceptionInfo *),
+ *ReadInlineImage(const ImageInfo *,const char *,ExceptionInfo *);
+
+extern MagickExport MagickBooleanType
+ WriteImage(const ImageInfo *,Image *),
+ WriteImages(const ImageInfo *,Image *,const char *,ExceptionInfo *);
+
+extern MagickExport void
+ DestroyConstitute(void);}
+
+
diff --git a/packages/base/imagemagick/magick/draw.inc b/packages/base/imagemagick/magick/draw.inc
new file mode 100644
index 0000000000..9897200e04
--- /dev/null
+++ b/packages/base/imagemagick/magick/draw.inc
@@ -0,0 +1,298 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick drawing methods.
+}
+
+//#include "magick/type.h"
+
+type
+ AlignType = (
+ UndefinedAlign,
+ LeftAlign,
+ CenterAlign,
+ RightAlign
+ );
+
+type
+ ClipPathUnits = (
+ UndefinedPathUnits,
+ UserSpace,
+ UserSpaceOnUse,
+ ObjectBoundingBox
+ );
+
+type
+ DecorationType = (
+ UndefinedDecoration,
+ NoDecoration,
+ UnderlineDecoration,
+ OverlineDecoration,
+ LineThroughDecoration
+ );
+
+type
+ FillRule = (
+ UndefinedRule,
+//#undef EvenOddRule
+ EvenOddRule,
+ NonZeroRule
+ );
+
+type
+ GradientType = (
+ UndefinedGradient,
+ LinearGradient,
+ RadialGradient
+ );
+
+type
+ LineCap = (
+ UndefinedCap,
+ ButtCap,
+ RoundCap,
+ SquareCap
+ );
+
+type
+ LineJoin = (
+ UndefinedJoin,
+ MiterJoin,
+ RoundJoin,
+ BevelJoin
+ );
+
+type
+ PaintMethod = (
+ UndefinedMethod,
+ PointMethod,
+ ReplaceMethod,
+ FloodfillMethod,
+ FillToBorderMethod,
+ ResetMethod
+ );
+
+type
+ PrimitiveType = (
+ UndefinedPrimitive,
+ PointPrimitive,
+ LinePrimitive,
+ RectanglePrimitive,
+ RoundRectanglePrimitive,
+ ArcPrimitive,
+ EllipsePrimitive,
+ CirclePrimitive,
+ PolylinePrimitive,
+ PolygonPrimitive,
+ BezierPrimitive,
+ ColorPrimitive,
+ MattePrimitive,
+ TextPrimitive,
+ ImagePrimitive,
+ PathPrimitive
+ );
+
+type
+ ReferenceType = (
+ UndefinedReference,
+ GradientReference
+ );
+
+type
+ SpreadMethod = (
+ UndefinedSpread,
+ PadSpread,
+ ReflectSpead,
+ RepeatSpread
+ );
+
+type
+ GradientInfo = record
+ type_: GradientType;
+
+ color: PixelPacket;
+
+ stop: SegmentInfo;
+
+ length: Cardinal;
+
+ spread: SpreadMethod;
+
+ debug: MagickBooleanType;
+
+ signature: Cardinal;
+
+ previous, next: Pointer;
+{ struct _GradientInfo
+ *previous,
+ *next;}
+ end;
+
+type
+ ElementReference = record
+ id: PChar;
+
+ type_: ReferenceType;
+
+ gradient: GradientInfo;
+
+ signature: Cardinal;
+
+ previous, next: Pointer;
+{ struct _ElementReference
+ *previous,
+ *next;}
+ end;
+
+type
+ DrawInfo = record
+ primitive,
+ geometry: PChar;
+
+ viewbox: RectangleInfo;
+
+ affine: AffineMatrix;
+
+ gravity: GravityType;
+
+ fill,
+ stroke: PixelPacket;
+
+ stroke_width: double;
+
+ gradient: GradientInfo;
+
+ fill_pattern,
+ tile,
+ stroke_pattern: PImage;
+
+ stroke_antialias,
+ text_antialias: MagickBooleanType;
+
+ fill_rule: FillRule;
+
+ linecap_: LineCap;
+
+ linejoin_: LineJoin;
+
+ miterlimit: Cardinal;
+
+ dash_offset: double;
+
+ decorate: DecorationType;
+
+ compose: CompositeOperator;
+
+ text: PChar;
+
+ face: Cardinal;
+
+ font,
+ metrics,
+ family: PChar;
+
+ style: StyleType;
+
+ stretch: StretchType;
+
+ weight: Cardinal;
+
+ encoding: PChar;
+
+ pointsize: double;
+
+ density: PChar;
+
+ align: AlignType;
+
+ undercolor,
+ border_color: PixelPacket;
+
+ server_name: PChar;
+
+ dash_pattern: Pdouble;
+
+ clip_path: PChar;
+
+ bounds: SegmentInfo;
+
+ clip_units: ClipPathUnits;
+
+ opacity: Quantum;
+
+ render: MagickBooleanType;
+
+ element_reference: ElementReference;
+
+ debug: MagickBooleanType;
+
+ signature: Cardinal;
+ end;
+
+ PDrawInfo = ^DrawInfo;
+
+ PPDrawInfo = ^PDrawInfo;
+
+type
+ PointInfo = record
+ x, y: double;
+ end;
+
+ PPointInfo = ^PointInfo;
+
+type
+ PrimitiveInfo = record
+ point: PointInfo;
+
+ coordinates: Cardinal;
+
+ primitive: PrimitiveType;
+
+ method: PaintMethod;
+
+ text: PChar;
+ end;
+
+type
+ TypeMetric = record
+ pixels_per_em: PointInfo;
+
+ ascent,
+ descent,
+ width,
+ height,
+ max_advance,
+ underline_position,
+ underline_thickness: double;
+
+ bounds: SegmentInfo;
+ end;
+
+{extern MagickExport DrawInfo
+ *CloneDrawInfo(const ImageInfo *,const DrawInfo *),
+ *DestroyDrawInfo(DrawInfo *);
+
+extern MagickExport MagickBooleanType
+ DrawAffineImage(Image *,const Image *,const AffineMatrix *),
+ DrawClipPath(Image *,const DrawInfo *,const char *),
+ DrawImage(Image *,const DrawInfo *),
+ DrawPatternPath(Image *,const DrawInfo *,const char *,Image **),
+ DrawPrimitive(Image *,const DrawInfo *,const PrimitiveInfo *);
+
+extern MagickExport void
+ GetAffineMatrix(AffineMatrix *),
+ GetDrawInfo(const ImageInfo *,DrawInfo *);}
+
+
diff --git a/packages/base/imagemagick/magick/effect.inc b/packages/base/imagemagick/magick/effect.inc
new file mode 100644
index 0000000000..7de207fccf
--- /dev/null
+++ b/packages/base/imagemagick/magick/effect.inc
@@ -0,0 +1,71 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick image effects methods.
+}
+
+type
+ NoiseType = (
+ UndefinedNoise,
+ UniformNoise,
+ GaussianNoise,
+ MultiplicativeGaussianNoise,
+ ImpulseNoise,
+ LaplacianNoise,
+ PoissonNoise
+ );
+
+{extern MagickExport Image
+ *AdaptiveThresholdImage(const Image *,const unsigned long,const unsigned long, const long,ExceptionInfo *),
+ *AddNoiseImage(const Image *,const NoiseType,ExceptionInfo *),
+ *AddNoiseImageChannel(const Image *,const ChannelType,const NoiseType,
+ ExceptionInfo *),
+ *BlurImage(const Image *,const double,const double,ExceptionInfo *),
+ *BlurImageChannel(const Image *,const ChannelType,const double,const double,
+ ExceptionInfo *),
+ *DespeckleImage(const Image *,ExceptionInfo *),
+ *EdgeImage(const Image *,const double,ExceptionInfo *),
+ *EmbossImage(const Image *,const double,const double,ExceptionInfo *),
+ *GaussianBlurImage(const Image *,const double,const double,ExceptionInfo *),
+ *GaussianBlurImageChannel(const Image *,const ChannelType,const double,
+ const double,ExceptionInfo *),
+ *MedianFilterImage(const Image *,const double,ExceptionInfo *),
+ *MotionBlurImage(const Image *,const double,const double,const double,
+ ExceptionInfo *),
+ *PreviewImage(const Image *,const PreviewType,ExceptionInfo *),
+ *RadialBlurImage(const Image *,const double,ExceptionInfo *),
+ *RadialBlurImageChannel(const Image *,const ChannelType,const double,
+ ExceptionInfo *),
+ *ReduceNoiseImage(const Image *,const double,ExceptionInfo *),
+ *ShadeImage(const Image *,const MagickBooleanType,const double,const double,
+ ExceptionInfo *),
+ *SharpenImage(const Image *,const double,const double,ExceptionInfo *),
+ *SharpenImageChannel(const Image *,const ChannelType,const double,
+ const double,ExceptionInfo *),
+ *SpreadImage(const Image *,const double,ExceptionInfo *),
+ *UnsharpMaskImage(const Image *,const double,const double,const double,
+ const double,ExceptionInfo *),
+ *UnsharpMaskImageChannel(const Image *,const ChannelType,const double,
+ const double,const double,const double,ExceptionInfo *);
+
+extern MagickExport MagickBooleanType
+ BlackThresholdImage(Image *,const char *),
+ BilevelImage(Image *,const double),
+ BilevelImageChannel(Image *,const ChannelType,const double),
+ RandomThresholdImage(Image *,const char *,ExceptionInfo *),
+ RandomThresholdImageChannel(Image *,const ChannelType,const char *,
+ ExceptionInfo *),
+ WhiteThresholdImage(Image *,const char *);}
+
diff --git a/packages/base/imagemagick/magick/fx.inc b/packages/base/imagemagick/magick/fx.inc
new file mode 100644
index 0000000000..2618a4b9b5
--- /dev/null
+++ b/packages/base/imagemagick/magick/fx.inc
@@ -0,0 +1,63 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick image f/x methods.
+}
+
+type
+ MagickEvaluateOperator = (
+ UndefinedEvaluateOperator,
+ AddEvaluateOperator,
+ AndEvaluateOperator,
+ DivideEvaluateOperator,
+ LeftShiftEvaluateOperator,
+ MaxEvaluateOperator,
+ MinEvaluateOperator,
+ MultiplyEvaluateOperator,
+ OrEvaluateOperator,
+ RightShiftEvaluateOperator,
+ SetEvaluateOperator,
+ SubtractEvaluateOperator,
+ XorEvaluateOperator
+ );
+
+{extern MagickExport Image
+ *CharcoalImage(const Image *,const double,const double,ExceptionInfo *),
+ *ColorizeImage(const Image *,const char *,const PixelPacket,ExceptionInfo *),
+ *ConvolveImage(const Image *,const unsigned long,const double *,
+ ExceptionInfo *),
+ *ConvolveImageChannel(const Image *,const ChannelType,const unsigned long,
+ const double *,ExceptionInfo *),
+ *FxImage(const Image *,const char *,ExceptionInfo *),
+ *FxImageChannel(const Image *,const ChannelType,const char *,ExceptionInfo *),
+ *ImplodeImage(const Image *,const double,ExceptionInfo *),
+ *MorphImages(const Image *,const unsigned long,ExceptionInfo *),
+ *OilPaintImage(const Image *,const double,ExceptionInfo *),
+ *SepiaToneImage(const Image *,const double,ExceptionInfo *),
+ *ShadowImage(const Image *,const double,const double,const long,const long,
+ ExceptionInfo *),
+ *SteganoImage(const Image *,const Image *,ExceptionInfo *),
+ *StereoImage(const Image *,const Image *,ExceptionInfo *),
+ *SwirlImage(const Image *,double,ExceptionInfo *),
+ *TintImage(const Image *,const char *,const PixelPacket,ExceptionInfo *),
+ *WaveImage(const Image *,const double,const double,ExceptionInfo *);
+
+extern MagickExport MagickBooleanType
+ EvaluateImage(Image *,const MagickEvaluateOperator,const double,
+ ExceptionInfo *),
+ EvaluateImageChannel(Image *,const ChannelType,const MagickEvaluateOperator,
+ const double,ExceptionInfo *),
+ SolarizeImage(Image *,const double);}
+
diff --git a/packages/base/imagemagick/magick/imagemagick.pas b/packages/base/imagemagick/magick/imagemagick.pas
new file mode 100644
index 0000000000..b9f7d96240
--- /dev/null
+++ b/packages/base/imagemagick/magick/imagemagick.pas
@@ -0,0 +1,115 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick Application Programming Interface declarations.
+
+ Converted from c by: Felipe Monteiro de Carvalho Dez/2005
+}
+{Version 0.2}
+unit ImageMagick;
+
+{$ifdef FPC}
+ {$mode objfpc}
+{$endif}
+
+interface
+
+uses SysUtils;
+
+{$PACKRECORDS C}
+{$MINENUMSIZE 1}
+
+const
+{$ifdef Win32}
+ WandExport = 'CORE_RL_wand_.dll';
+{$else}
+ WandExport = 'libWand';
+{$endif}
+
+{# include "magick/methods.h"
+#endif}
+{$include magick_type.inc}
+{$include type.inc}
+
+{#$include animate.inc}
+{#$include annotate.inc}
+{#$include attribute.inc}
+{#$include blob.inc}
+{#$include cache.inc}
+{$include cache_view.inc}
+{#include "magick/coder.h"
+#include "magick/client.h"
+#include "magick/color.h"
+#include "magick/colorspace.h"}
+{$include compare.inc}
+{#include "magick/composite.h"
+#include "magick/compress.h"
+#include "magick/configure.h"
+#include "magick/conjure.h"}
+{$include constitute.inc}
+{#include "magick/convert.h"
+#include "magick/decorate.h"
+#include "magick/delegate.h"
+#include "magick/deprecate.h"
+#include "magick/display.h"}
+{$include draw.inc}
+{$include effect.inc}
+{#include "magick/enhance.h"
+#include "magick/exception.h"}
+{$include fx.inc}
+{#include "magick/gem.h"
+#include "magick/geometry.h"
+#include "magick/hashmap.h"
+#include "magick/identify.h"
+#include "magick/image.h"
+#include "magick/import.h"
+#include "magick/list.h"
+#include "magick/locale_.h"
+#include "magick/log.h"
+#include "magick/magic.h"
+#include "magick/magick.h"
+#include "magick/memory_.h"
+#include "magick/module.h"
+#include "magick/mogrify.h"
+#include "magick/monitor.h"
+#include "magick/montage.h"
+#include "magick/option.h"
+#include "magick/paint.h"}
+{$include pixel.inc}
+{#include "magick/prepress.h"
+#include "magick/profile.h"}
+{$include quantize.inc}
+{#include "magick/quantum.h"
+#include "magick/registry.h"
+#include "magick/random_.h"
+#include "magick/resize.h"
+#include "magick/resource_.h"
+#include "magick/segment.h"
+#include "magick/shear.h"
+#include "magick/signature.h"
+#include "magick/splay-tree.h"
+#include "magick/stream.h"}
+{$include statistic.inc}
+{#include "magick/string_.h"
+#include "magick/timer.h"
+#include "magick/token.h"
+#include "magick/transform.h"
+#include "magick/utility.h"
+#include "magick/version.h"
+#include "magick/xwindow.h"}
+
+implementation
+
+end.
diff --git a/packages/base/imagemagick/magick/magick_type.inc b/packages/base/imagemagick/magick/magick_type.inc
new file mode 100644
index 0000000000..169d368157
--- /dev/null
+++ b/packages/base/imagemagick/magick/magick_type.inc
@@ -0,0 +1,635 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick structure members.
+
+ NOTE: This is a simplifyed version of magick/magick-type.h
+}
+
+const MaxTextExtent = 4096;
+
+const
+ MagickFalse = 0;
+ MagickTrue = 1;
+
+type
+ MagickBooleanType = Byte;
+
+ PMagickBooleanType = ^MagickBooleanType;
+
+//#include "magick/semaphore.h"
+
+{
+ The Quantum Depth was fixed at 16 to make the code simpler
+
+ In the future there is the possibility to go to the c bindings
+ and implement the variable QuantumDepth here
+}
+const
+ QuantumDepth = 16;
+
+{$define QuantumLeap}
+
+const
+ MagickEpsilon = 1.0E-10;
+ MaxColormapSize = 65536;
+ MaxMap = 65535;
+ QuantumFormat = '%u';
+ QuantumRange = 65535;
+
+type
+ MagickRealType = double;
+ Quantum = Word;
+
+{
+ Type declarations.
+}
+type
+ MagickStatusType = Word;
+ MagickOffsetType = Int64;
+ MagickSizeType = Int64;
+
+const
+ UndefinedChannel = 0;
+ RedChannel = $0001;
+ GrayChannel = $0001;
+ CyanChannel = $0001;
+ GreenChannel = $0002;
+ MagentaChannel = $0002;
+ BlueChannel = $0004;
+ YellowChannel = $0004;
+ AlphaChannel = $0008;
+ OpacityChannel = $0008;
+ MatteChannel = $0008; // deprecated
+ BlackChannel = $0020;
+ IndexChannel = $0020;
+ AllChannels = $ff;
+
+type
+ ChannelType = Byte;
+
+ PChannelType = ^ChannelType;
+
+type
+ ClassType = (
+ UndefinedClass,
+ DirectClass,
+ PseudoClass
+ );
+
+ PClassType = ^ClassType;
+
+type
+ ColorspaceType = (
+ UndefinedColorspace,
+ RGBColorspace,
+ GRAYColorspace,
+ TransparentColorspace,
+ OHTAColorspace,
+ LABColorspace,
+ XYZColorspace,
+ YCbCrColorspace,
+ YCCColorspace,
+ YIQColorspace,
+ YPbPrColorspace,
+ YUVColorspace,
+ CMYKColorspace,
+ sRGBColorspace,
+ HSBColorspace,
+ HSLColorspace,
+ HWBColorspace,
+ Rec601LumaColorspace,
+ Rec709LumaColorspace,
+ LogColorspace
+ );
+
+ PColorspaceType = ^ColorspaceType;
+
+type
+ CompositeOperator = (
+ UndefinedCompositeOp,
+ NoCompositeOp,
+ AddCompositeOp,
+ AtopCompositeOp,
+ BlendCompositeOp,
+ BumpmapCompositeOp,
+ ClearCompositeOp,
+ ColorBurnCompositeOp,
+ ColorDodgeCompositeOp,
+ ColorizeCompositeOp,
+ CopyBlackCompositeOp,
+ CopyBlueCompositeOp,
+ CopyCompositeOp,
+ CopyCyanCompositeOp,
+ CopyGreenCompositeOp,
+ CopyMagentaCompositeOp,
+ CopyOpacityCompositeOp,
+ CopyRedCompositeOp,
+ CopyYellowCompositeOp,
+ DarkenCompositeOp,
+ DstAtopCompositeOp,
+ DstCompositeOp,
+ DstInCompositeOp,
+ DstOutCompositeOp,
+ DstOverCompositeOp,
+ DifferenceCompositeOp,
+ DisplaceCompositeOp,
+ DissolveCompositeOp,
+ ExclusionCompositeOp,
+ HardLightCompositeOp,
+ HueCompositeOp,
+ InCompositeOp,
+ LightenCompositeOp,
+ LuminizeCompositeOp,
+ MinusCompositeOp,
+ ModulateCompositeOp,
+ MultiplyCompositeOp,
+ OutCompositeOp,
+ OverCompositeOp,
+ OverlayCompositeOp,
+ PlusCompositeOp,
+ ReplaceCompositeOp,
+ SaturateCompositeOp,
+ ScreenCompositeOp,
+ SoftLightCompositeOp,
+ SrcAtopCompositeOp,
+ SrcCompositeOp,
+ SrcInCompositeOp,
+ SrcOutCompositeOp,
+ SrcOverCompositeOp,
+ SubtractCompositeOp,
+ ThresholdCompositeOp,
+ XorCompositeOp
+ );
+
+ PCompositeOperator = ^CompositeOperator;
+
+type
+ CompressionType = (
+ UndefinedCompression,
+ NoCompression,
+ BZipCompression,
+ FaxCompression,
+ Group4Compression,
+ JPEGCompression,
+ JPEG2000Compression,
+ LosslessJPEGCompression,
+ LZWCompression,
+ RLECompression,
+ ZipCompression
+ );
+
+ PCompressionType = ^CompressionType;
+
+const
+ UnrecognizedDispose = 0;
+ UndefinedDispose = 0;
+ NoneDispose = 1;
+ BackgroundDispose = 2;
+ PreviousDispose = 3;
+
+type
+ DisposeType = Byte;
+
+ PDisposeType = ^DisposeType;
+
+type
+ EndianType = (
+ UndefinedEndian,
+ LSBEndian,
+ MSBEndian
+ );
+
+ PEndianType = ^EndianType;
+
+const
+ UndefinedException = 0;
+ WarningException = 300;
+ ResourceLimitWarning = 300;
+ TypeWarning = 305;
+ OptionWarning = 310;
+ DelegateWarning = 315;
+ MissingDelegateWarning = 320;
+ CorruptImageWarning = 325;
+ FileOpenWarning = 330;
+ BlobWarning = 335;
+ StreamWarning = 340;
+ CacheWarning = 345;
+ CoderWarning = 350;
+ ModuleWarning = 355;
+ DrawWarning = 360;
+ ImageWarning = 365;
+ WandWarning = 370;
+ XServerWarning = 380;
+ MonitorWarning = 385;
+ RegistryWarning = 390;
+ ConfigureWarning = 395;
+ ErrorException = 400;
+ ResourceLimitError = 400;
+ TypeError = 405;
+ OptionError = 410;
+ DelegateError = 415;
+ MissingDelegateError = 420;
+ CorruptImageError = 425;
+ FileOpenError = 430;
+ BlobError = 435;
+ StreamError = 440;
+ CacheError = 445;
+ CoderError = 450;
+ ModuleError = 455;
+ DrawError = 460;
+ ImageError = 465;
+ WandError = 470;
+ XServerError = 480;
+ MonitorError = 485;
+ RegistryError = 490;
+ ConfigureError = 495;
+ FatalErrorException = 700;
+ ResourceLimitFatalError = 700;
+ TypeFatalError = 705;
+ OptionFatalError = 710;
+ DelegateFatalError = 715;
+ MissingDelegateFatalError = 720;
+ CorruptImageFatalError = 725;
+ FileOpenFatalError = 730;
+ BlobFatalError = 735;
+ StreamFatalError = 740;
+ CacheFatalError = 745;
+ CoderFatalError = 750;
+ ModuleFatalError = 755;
+ DrawFatalError = 760;
+ ImageFatalError = 765;
+ WandFatalError = 770;
+ XServerFatalError = 780;
+ MonitorFatalError = 785;
+ RegistryFatalError = 790;
+ ConfigureFatalError = 795;
+
+type
+ ExceptionType = Word;
+
+ PExceptionType = ^ExceptionType;
+
+type
+ FilterTypes = (
+ UndefinedFilter,
+ PointFilter,
+ BoxFilter,
+ TriangleFilter,
+ HermiteFilter,
+ HanningFilter,
+ HammingFilter,
+ BlackmanFilter,
+ GaussianFilter,
+ QuadraticFilter,
+ CubicFilter,
+ CatromFilter,
+ MitchellFilter,
+ LanczosFilter,
+ BesselFilter,
+ SincFilter
+ );
+
+ PFilterTypes = ^FilterTypes;
+
+const
+ UndefinedGravity = 0;
+ ForgetGravity = 0;
+ NorthWestGravity = 1;
+ NorthGravity = 2;
+ NorthEastGravity = 3;
+ WestGravity = 4;
+ CenterGravity = 5;
+ EastGravity = 6;
+ SouthWestGravity = 7;
+ SouthGravity = 8;
+ SouthEastGravity = 9;
+ StaticGravity = 10;
+
+type
+ GravityType = Byte;
+
+ PGravityType = ^GravityType;
+
+type ImageType = (
+ UndefinedType,
+ BilevelType,
+ GrayscaleType,
+ GrayscaleMatteType,
+ PaletteType,
+ PaletteMatteType,
+ TrueColorType,
+ TrueColorMatteType,
+ ColorSeparationType,
+ ColorSeparationMatteType,
+ OptimizeType
+ );
+
+ PImageType = ^ImageType;
+
+type
+ InterlaceType = (
+ UndefinedInterlace,
+ NoInterlace,
+ LineInterlace,
+ PlaneInterlace,
+ PartitionInterlace
+ );
+
+ PInterlaceType = ^InterlaceType;
+
+type
+ OrientationType = (
+ UndefinedOrientation,
+ TopLeftOrientation,
+ TopRightOrientation,
+ BottomRightOrientation,
+ BottomLeftOrientation,
+ LeftTopOrientation,
+ RightTopOrientation,
+ RightBottomOrientation,
+ LeftBottomOrientation
+ );
+
+ POrientationType = ^OrientationType;
+
+type PreviewType = (
+ UndefinedPreview,
+ RotatePreview,
+ ShearPreview,
+ RollPreview,
+ HuePreview,
+ SaturationPreview,
+ BrightnessPreview,
+ GammaPreview,
+ SpiffPreview,
+ DullPreview,
+ GrayscalePreview,
+ QuantizePreview,
+ DespecklePreview,
+ ReduceNoisePreview,
+ AddNoisePreview,
+ SharpenPreview,
+ BlurPreview,
+ ThresholdPreview,
+ EdgeDetectPreview,
+ SpreadPreview,
+ SolarizePreview,
+ ShadePreview,
+ RaisePreview,
+ SegmentPreview,
+ SwirlPreview,
+ ImplodePreview,
+ WavePreview,
+ OilPaintPreview,
+ CharcoalDrawingPreview,
+ JPEGPreview
+ );
+
+ PPreviewType = ^PreviewType;
+
+type RenderingIntent = (
+ UndefinedIntent,
+ SaturationIntent,
+ PerceptualIntent,
+ AbsoluteIntent,
+ RelativeIntent
+ );
+
+ PRenderingIntent = ^RenderingIntent;
+
+type ResolutionType = (
+ UndefinedResolution,
+ PixelsPerInchResolution,
+ PixelsPerCentimeterResolution
+ );
+
+ PResolutionType = ^ResolutionType;
+
+type TimerState = (
+ UndefinedTimerState,
+ StoppedTimerState,
+ RunningTimerState
+ );
+
+ PTimerState = ^TimerState;
+
+type
+ AffineMatrix = record
+ sx, rx, ry, sy, tx, ty: double;
+ end;
+
+ PAffineMatrix = ^AffineMatrix;
+
+type
+ IndexPacket = Quantum;
+
+type
+ PixelPacket = record
+{$ifdef WORDS_BIGENDIAN}
+ red, green, blue, opacity: Quantum;
+{$else}
+ blue, green, red, opacity: Quantum;
+{$endif}
+ end;
+
+ PPixelPacket = ^PixelPacket;
+
+type
+ ColorPacket = record
+ pixel: PixelPacket;
+ index: IndexPacket;
+ count: Cardinal;
+ end;
+
+ PColorPacket = ^ColorPacket;
+
+type
+ ErrorInfo = record
+ mean_error_per_pixel, normalized_mean_error, normalized_maximum_error: double;
+ end;
+
+type
+ PrimaryInfo = record
+ x, y, z: double;
+ end;
+
+type
+ ProfileInfo = record
+ name: PChar;
+ length: Integer;
+ info: PChar;
+ signature: Cardinal;
+ end;
+
+ PProfileInfo = ^ProfileInfo;
+
+type
+ RectangleInfo = record
+ width, height: Cardinal;
+ x, y: Cardinal;
+ end;
+
+type
+ SegmentInfo = record
+ x1, y1, x2, y2: double;
+ end;
+
+type
+ Timer = record
+ start, stop, total: double;
+ end;
+
+ PTimer = ^Timer;
+
+type
+ TimerInfo = record
+ user, elapsed: Timer;
+ state: TimerState;
+ signature: Cardinal;
+ end;
+
+ PTimerInfo = ^TimerInfo;
+
+type
+ ChromaticityInfo = record
+ red_primary, green_primary, blue_primary, white_point: PrimaryInfo;
+ end;
+
+type
+ ExceptionInfo = record
+ severity: ExceptionType;
+ error_number: Shortint;
+ reason, description: PChar;
+ signature: Cardinal;
+ end;
+
+ PExceptionInfo = ^ExceptionInfo;
+
+//typedef struct _Ascii85Info _Ascii85Info_;
+
+//typedef struct _BlobInfo _BlobInfo_;
+
+type
+ MagickProgressMonitor = function (const str: PChar; const para: MagickOffsetType;
+ const sizetype: MagickSizeType; param: Pointer): PMagickBooleanType;
+
+type
+ Image = record
+ storage_class: ClassType;
+ colorspace: ColorspaceType;
+ compression: CompressionType;
+ quality: Cardinal;
+ orientation: OrientationType;
+ taint, matte: MagickBooleanType;
+ columns, rows, depth, colors: Cardinal;
+ colormap: PPixelPacket;
+ background_color, border_color, matte_color: PixelPacket;
+ gamma: double;
+ chromaticity: ChromaticityInfo;
+ rendering_intent: RenderingIntent;
+ profiles: Pointer;
+ units: ResolutionType;
+ montage, directory, geometry: PChar;
+ offset: Integer;
+ x_resolution, y_resolution: double;
+ page, extract_info, tile_info: RectangleInfo; // deprecated
+ bias, blur, fuzz: double;
+ filter: FilterTypes;
+ interlace: InterlaceType;
+ endian: EndianType;
+ gravity: GravityType;
+ compose: CompositeOperator;
+ dispose: DisposeType;
+ clip_mask: Pointer; // PImage
+ scene, delay, iterations, total_colors: Cardinal;
+ start_loop: Integer;
+ error: ErrorInfo;
+ timer: TimerInfo;
+ progress_monitor: MagickProgressMonitor;
+ client_data: Pointer;
+ cache: Pointer;
+ attributes: Pointer;
+ ascii85: Pointer; //_Ascii85Info_
+ blob: Pointer; // _BlobInfo_
+ filename, magick_filename, magick: array[1..MaxTextExtent] of char;
+ magick_columns, magick_rows: Integer;
+ exception: ExceptionInfo;
+ debug: MagickBooleanType;
+ reference_count: Integer;
+ semaphore: Pointer; //PSemaphoreInfo;
+ color_profile, iptc_profile: ProfileInfo;
+ generic_profile: PProfileInfo;
+ generic_profiles: Cardinal; // this & ProfileInfo is deprecated
+ signature: Cardinal;
+ previous, list, next: Pointer;
+{ struct _Image
+ *previous,
+ *list,
+ *next;}
+ end;
+
+ PImage = ^Image;
+
+//type
+// size_t = PStreamHandler(procedure (const image: PImage;
+// const param: Pointer; const) );
+
+type
+ ImageInfo = record
+ compression: CompressionType;
+ orientation: OrientationType;
+ temporary, adjoin, affirm, antialias: MagickBooleanType;
+ size, extract, page, scenes: PChar;
+ scene, number_scenes, depth: Cardinal;
+ interlace: InterlaceType;
+ endian: EndianType;
+ units: ResolutionType;
+ quality: Cardinal;
+ sampling_factor, server_name, font, texture, density: PChar;
+ pointsize, fuzz: double;
+ background_color, border_color, matte_color: PixelPacket;
+ dither, monochrome: MagickBooleanType;
+ colors: Cardinal;
+ colorspace: ColorspaceType;
+ type_: ImageType ;
+ preview_type: PreviewType;
+ group: Integer;
+ ping, verbose: MagickBooleanType;
+ view, authenticate: PChar;
+ channel: ChannelType;
+ attributes: PImage;
+ options: Pointer;
+ progress_monitor: MagickProgressMonitor;
+ client_data, cache: Pointer;
+ stream: Cardinal; //StreamHandler;
+ file_: Pointer; // *file
+ blob: Pointer;
+ length: Integer;
+ magick, unique, zero, filename: array[1..MaxTextExtent] of char;
+ debug: MagickBooleanType;
+
+ {
+ Deprecated.
+ }
+ tile: PChar;
+ subimage, subrange: Cardinal;
+ pen: PixelPacket;
+ signature: Cardinal;
+ end;
+
+ PImageInfo = ^ImageInfo;
+
+
diff --git a/packages/base/imagemagick/magick/pixel.inc b/packages/base/imagemagick/magick/pixel.inc
new file mode 100644
index 0000000000..d8cb882fa0
--- /dev/null
+++ b/packages/base/imagemagick/magick/pixel.inc
@@ -0,0 +1,82 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick image constitute methods.
+}
+
+//#include
+
+type
+ QuantumType = (
+ UndefinedQuantum,
+ AlphaQuantum,
+ BlackQuantum,
+ BlueQuantum,
+ CMYKAQuantum,
+ CMYKQuantum,
+ CyanQuantum,
+ GrayAlphaQuantum,
+ GrayQuantum,
+ GreenQuantum,
+ IndexAlphaQuantum,
+ IndexQuantum,
+ MagentaQuantum,
+ OpacityQuantum,
+ RedQuantum,
+ RGBAQuantum,
+ RGBOQuantum,
+ RGBQuantum,
+ YellowQuantum,
+ GrayPadQuantum,
+ RGBPadQuantum
+ );
+
+type
+ LongPixelPacket = record
+ red,
+ green,
+ blue,
+ opacity,
+ index: Cardinal;
+ end;
+
+type
+ MagickPixelPacket = record
+ colorspace: ColorspaceType;
+
+ matte: MagickBooleanType;
+
+ fuzz: double;
+
+ depth: Cardinal;
+
+ red,
+ green,
+ blue,
+ opacity,
+ index: MagickRealType;
+ end;
+
+ PMagickPixelPacket = ^MagickPixelPacket;
+
+{extern MagickExport MagickBooleanType
+ ExportImagePixels(const Image *,const long,const long,const unsigned long,
+ const unsigned long,const char *,const StorageType,void *,ExceptionInfo *),
+ ExportQuantumPixels(Image *,const QuantumType,const size_t,
+ const unsigned char *),
+ ImportImagePixels(Image *,const long,const long,const unsigned long,
+ const unsigned long,const char *,const StorageType,const void *),
+ ImportQuantumPixels(Image *,const QuantumType,const size_t,unsigned char *);}
+
diff --git a/packages/base/imagemagick/magick/quantize.inc b/packages/base/imagemagick/magick/quantize.inc
new file mode 100644
index 0000000000..c9bcf6127d
--- /dev/null
+++ b/packages/base/imagemagick/magick/quantize.inc
@@ -0,0 +1,49 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick image quantization methods.
+}
+
+type
+ QuantizeInfo = record
+ number_colors: Cardinal;
+
+ tree_depth: Cardinal;
+
+ dither: MagickBooleanType;
+
+ colorspace: ColorspaceType;
+
+ measure_error: MagickBooleanType;
+
+ signature: Cardinal;
+ end;
+
+{extern MagickExport MagickBooleanType
+ GetImageQuantizeError(Image *),
+ MapImage(Image *,const Image *,const MagickBooleanType),
+ MapImages(Image *,const Image *,const MagickBooleanType),
+ OrderedDitherImage(Image *),
+ PosterizeImage(Image *,const unsigned long,const MagickBooleanType),
+ QuantizeImage(const QuantizeInfo *,Image *),
+ QuantizeImages(const QuantizeInfo *,Image *);
+
+extern MagickExport QuantizeInfo
+ *CloneQuantizeInfo(const QuantizeInfo *),
+ *DestroyQuantizeInfo(QuantizeInfo *);
+
+extern MagickExport void
+ CompressImageColormap(Image *),
+ GetQuantizeInfo(QuantizeInfo *);}
diff --git a/packages/base/imagemagick/magick/semaphore.inc b/packages/base/imagemagick/magick/semaphore.inc
new file mode 100644
index 0000000000..1e56921067
--- /dev/null
+++ b/packages/base/imagemagick/magick/semaphore.inc
@@ -0,0 +1,37 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick methods to lock and unlock semaphores.
+}
+#ifndef _MAGICK_SEMAPHORE_H
+#define _MAGICK_SEMAPHORE_H
+#endif
+
+typedef struct SemaphoreInfo
+ SemaphoreInfo;
+
+extern MagickExport MagickBooleanType
+ LockSemaphoreInfo(SemaphoreInfo *),
+ UnlockSemaphoreInfo(SemaphoreInfo *);
+
+extern MagickExport SemaphoreInfo
+ *AllocateSemaphoreInfo(void),
+ *DestroySemaphoreInfo(SemaphoreInfo *);
+
+extern MagickExport void
+ AcquireSemaphoreInfo(SemaphoreInfo **),
+ DestroySemaphore(void),
+ InitializeSemaphore(void),
+ RelinquishSemaphoreInfo(SemaphoreInfo *);
diff --git a/packages/base/imagemagick/magick/statistic.inc b/packages/base/imagemagick/magick/statistic.inc
new file mode 100644
index 0000000000..94b20446cf
--- /dev/null
+++ b/packages/base/imagemagick/magick/statistic.inc
@@ -0,0 +1,53 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick image methods.
+}
+
+type
+ ChannelStatistics = record
+ depth: Cardinal;
+
+ minima, maxima: Quantum;
+
+ mean, standard_deviation: double;
+
+ scale: Cardinal;
+ end;
+
+ PChannelStatistics = ^ChannelStatistics;
+
+{extern MagickExport ChannelStatistics
+ *GetImageChannelStatistics(const Image *,ExceptionInfo *);
+
+extern MagickExport MagickBooleanType
+ GetImageChannelExtrema(const Image *,const ChannelType,unsigned long *,
+ unsigned long *,ExceptionInfo *),
+ GetImageExtrema(const Image *,unsigned long *,unsigned long *,
+ ExceptionInfo *),
+ GetImageChannelMean(const Image *,const ChannelType,double *,double *,
+ ExceptionInfo *),
+ GetImageMean(const Image *,double *,double *,ExceptionInfo *),
+ SetImageChannelDepth(Image *,const ChannelType,const unsigned long),
+ SetImageDepth(Image *,const unsigned long);
+
+extern MagickExport RectangleInfo
+ GetImageBoundingBox(const Image *,ExceptionInfo *exception);
+
+extern MagickExport unsigned long
+ GetImageChannelDepth(const Image *,const ChannelType,ExceptionInfo *),
+ GetImageDepth(const Image *,ExceptionInfo *),
+ GetImageQuantumDepth(const Image *,const MagickBooleanType);}
+
diff --git a/packages/base/imagemagick/magick/type.inc b/packages/base/imagemagick/magick/type.inc
new file mode 100644
index 0000000000..7ef3676f27
--- /dev/null
+++ b/packages/base/imagemagick/magick/type.inc
@@ -0,0 +1,88 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick image type methods.
+}
+
+type
+ StretchType = (
+ UndefinedStretch,
+ NormalStretch,
+ UltraCondensedStretch,
+ ExtraCondensedStretch,
+ CondensedStretch,
+ SemiCondensedStretch,
+ SemiExpandedStretch,
+ ExpandedStretch,
+ ExtraExpandedStretch,
+ UltraExpandedStretch,
+ AnyStretch
+ );
+
+type
+ StyleType = (
+ UndefinedStyle,
+ NormalStyle,
+ ItalicStyle,
+ ObliqueStyle,
+ AnyStyle
+ );
+
+type
+ TypeInfo = record
+ face: Cardinal;
+
+ path,
+ name,
+ description,
+ family: PChar;
+
+ style: StyleType;
+
+ stretch: StretchType;
+
+ weight: Cardinal;
+
+ encoding,
+ foundry,
+ format,
+ metrics,
+ glyphs: PChar;
+
+ stealth: MagickBooleanType;
+
+ previous, next: Pointer;
+{ struct _TypeInfo
+ *previous,
+ *next; /* deprecated, use GetTypeInfoList() */}
+
+ signature: Cardinal;
+ end;
+
+{function GetTypeList(const char *,unsigned long *,ExceptionInfo *): PPChar; external MagickExport;
+
+extern MagickExport MagickBooleanType
+ ListTypeInfo(FILE *,ExceptionInfo *);
+
+extern MagickExport const TypeInfo
+ *GetTypeInfo(const char *,ExceptionInfo *),
+ *GetTypeInfoByFamily(const char *,const StyleType,const StretchType,
+ const unsigned long,ExceptionInfo *),
+ **GetTypeInfoList(const char *,unsigned long *,ExceptionInfo *);
+
+MagickExport void
+ DestroyTypeList(void);}
+
+
diff --git a/packages/base/imagemagick/wand/drawing_wand.inc b/packages/base/imagemagick/wand/drawing_wand.inc
new file mode 100644
index 0000000000..4a48ed27a2
--- /dev/null
+++ b/packages/base/imagemagick/wand/drawing_wand.inc
@@ -0,0 +1,283 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick drawing wand API.
+}
+
+{
+ Declaration from drawing-wand.c
+}
+type
+ PathOperation = (
+ PathDefaultOperation,
+ PathCloseOperation, // Z|z (none) */
+ PathCurveToOperation, // C|c (x1 y1 x2 y2 x y)+ */
+ PathCurveToQuadraticBezierOperation, // Q|q (x1 y1 x y)+ */
+ PathCurveToQuadraticBezierSmoothOperation, // T|t (x y)+ */
+ PathCurveToSmoothOperation, // S|s (x2 y2 x y)+ */
+ PathEllipticArcOperation, // A|a (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+ */
+ PathLineToHorizontalOperation, // H|h x+ */
+ PathLineToOperation, // L|l (x y)+ */
+ PathLineToVerticalOperation, // V|v y+ */
+ PathMoveToOperation // M|m (x y)+ */
+ );
+
+type
+ PathMode = (
+ DefaultPathMode,
+ AbsolutePathMode,
+ RelativePathMode
+ );
+
+ DrawingWand = record
+ id: Cardinal;
+
+ name: array[0..MaxTextExtent] of Char;
+
+ { Support structures }
+
+ image: PImage;
+
+ exception: ExceptionInfo;
+
+ { MVG output string and housekeeping }
+
+ mvg: PChar; // MVG data
+
+ mvg_alloc, // total allocated memory
+// mvg_length: size_t; // total MVG length
+
+ mvg_width: Cardinal; // current line width
+
+ { Pattern support }
+
+ pattern_id: PChar;
+
+ pattern_bounds: RectangleInfo;
+
+// pattern_offset: size_t;
+
+ { Graphic wand }
+
+ index: Cardinal; // array index
+
+ graphic_context: PPDrawInfo;
+
+ filter_off: MagickBooleanType; // true if not filtering attributes
+
+ { Pretty-printing depth }
+
+ indent_depth: Cardinal; // number of left-hand pad characters
+
+ { Path operation support }
+
+ path_operation: PathOperation;
+
+ path_mode: PathMode;
+
+ destroy,
+ debug: MagickBooleanType;
+
+ signature: Cardinal;
+ end;
+
+ PDrawingWand = ^DrawingWand;
+
+const x = 9;
+
+function DrawGetTextAlignment(const wand: PDrawingWand): AlignType; cdecl; external WandExport;
+
+function DrawGetClipPath(const wand: PDrawingWand): PChar; cdecl; external WandExport;
+function DrawGetException(const wand: PDrawingWand; severity: PExceptionType): PChar; cdecl; external WandExport;
+function DrawGetFont(const wand: PDrawingWand): PChar; cdecl; external WandExport;
+function DrawGetFontFamily(const wand: PDrawingWand): PChar; cdecl; external WandExport;
+function DrawGetTextEncoding(const wand: PDrawingWand): PChar; cdecl; external WandExport;
+function DrawGetVectorGraphics(const wand: PDrawingWand): PChar; cdecl; external WandExport;
+
+function DrawGetClipUnits(const wand: PDrawingWand): ClipPathUnits; external WandExport;
+
+function DrawGetTextDecoration(const wand: PDrawingWand): DecorationType; external WandExport;
+
+function DrawGetFillAlpha(const wand: PDrawingWand): double; cdecl; external WandExport;
+function DrawGetFontSize(const wand: PDrawingWand): double; cdecl; external WandExport;
+function DrawGetStrokeDashArray(const wand: PDrawingWand; number_elements: Cardinal): PDouble; cdecl; external WandExport;
+function DrawGetStrokeDashOffset(const wand: PDrawingWand): double; cdecl; external WandExport;
+function DrawGetStrokeAlpha(const wand: PDrawingWand): double; cdecl; external WandExport;
+function DrawGetStrokeWidth(const wand: PDrawingWand): double; cdecl; external WandExport;
+
+function PeekDrawingWand(const wand: PDrawingWand): PDrawInfo; cdecl; external WandExport;
+
+function CloneDrawingWand(const wand: PDrawingWand): PDrawingWand; cdecl; external WandExport;
+function DestroyDrawingWand(wand: PDrawingWand): PDrawingWand; cdecl; external WandExport;
+{ Sem documentação
+function DrawAllocateWand(const DrawInfo *,Image *): PDrawingWand; external WandExport;
+}
+function NewDrawingWand: PDrawingWand; cdecl; external WandExport;
+
+function DrawGetClipRule(const wand: PDrawingWand): FillRule; cdecl; external WandExport;
+function DrawGetFillRule(const wand: PDrawingWand): FillRule; cdecl; external WandExport;
+
+function DrawGetGravity(const wand: PDrawingWand): GravityType; cdecl; external WandExport;
+
+function DrawGetStrokeLineCap(const wand: PDrawingWand): LineCap; cdecl; external WandExport;
+
+function DrawGetStrokeLineJoin(const wand: PDrawingWand): LineJoin; cdecl; external WandExport;
+
+function DrawClearException(wand: PDrawingWand): MagickBooleanType; cdecl; external WandExport;
+function DrawComposite(wand: PDrawingWand; const compose: CompositeOperator;
+ const x, y, width, height: double; magick_wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function DrawGetStrokeAntialias(const wand: PDrawingWand): MagickBooleanType; cdecl; external WandExport;
+function DrawGetTextAntialias(const wand: PDrawingWand): MagickBooleanType; cdecl; external WandExport;
+function DrawPopPattern(wand: PDrawingWand): MagickBooleanType; cdecl; external WandExport;
+function DrawPushPattern(wand: PDrawingWand; const pattern_id: PChar;
+ const x, y, width, height: double): MagickBooleanType; cdecl; external WandExport;
+function DrawRender(wand: PDrawingWand): MagickBooleanType; cdecl; external WandExport;
+function DrawSetClipPath(wand: PDrawingWand; const clip_path: PChar): MagickBooleanType; cdecl; external WandExport;
+function DrawSetFillPatternURL(wand: PDrawingWand; const fill_url: PChar): MagickBooleanType; cdecl; external WandExport;
+function DrawSetFont(wand: PDrawingWand; const font_name: PChar): MagickBooleanType; cdecl; external WandExport;
+function DrawSetFontFamily(wand: PDrawingWand; const font_family: PChar): MagickBooleanType; cdecl; external WandExport;
+function DrawSetStrokeDashArray(wand: PDrawingWand; const number_elements: Cardinal;
+ const dash_array: Pdouble): MagickBooleanType; cdecl; external WandExport;
+function DrawSetStrokePatternURL(wand: PDrawingWand; const stroke_url: PChar): MagickBooleanType; cdecl; external WandExport;
+function DrawSetVectorGraphics(wand: PDrawingWand; const xml: PChar): MagickBooleanType; cdecl; external WandExport;
+function IsDrawingWand(const wand: PDrawingWand): MagickBooleanType; cdecl; external WandExport;
+function PopDrawingWand(wand: PDrawingWand): MagickBooleanType; cdecl; external WandExport;
+function PushDrawingWand(wand: PDrawingWand): MagickBooleanType; cdecl; external WandExport;
+
+function DrawGetFontStretch(const wand: PDrawingWand): StretchType; cdecl; external WandExport;
+
+function DrawGetFontStyle(const wand: PDrawingWand): StyleType; cdecl; external WandExport;
+
+function DrawGetFontWeight(const wand: PDrawingWand): Cardinal; cdecl; external WandExport;
+function DrawGetStrokeMiterLimit(const wand: PDrawingWand): Cardinal; cdecl; external WandExport;
+
+procedure ClearDrawingWand(wand: PDrawingWand); cdecl; external WandExport;
+procedure DrawAffine(wand: PDrawingWand; const affine: PAffineMatrix); cdecl; external WandExport;
+procedure DrawAnnotation(wand: PDrawingWand; const x, y: double;
+ const text: PChar); cdecl; external WandExport;
+procedure DrawArc(wand: PDrawingWand; const sx, sy, ex, ey, sd, ed: double); cdecl; external WandExport;
+procedure DrawBezier(wand: PDrawingWand; const number_coordinates: Cardinal;
+ const coordinates: PPointInfo); cdecl; external WandExport;
+procedure DrawCircle(wand: PDrawingWand; const ox, oy, px, py: double); cdecl; external WandExport;
+procedure DrawColor(wand: PDrawingWand; const x, y: double;
+ const paint_method: PaintMethod); cdecl; external WandExport;
+procedure DrawComment(wand: PDrawingWand; const comment: PChar); cdecl; external WandExport;
+procedure DrawEllipse(wand: PDrawingWand; const ox, oy, rx, ry, start, end_: double); cdecl; external WandExport;
+procedure DrawGetFillColor(const wand: PDrawingWand; fill_color: PPixelWand); cdecl; external WandExport;
+procedure DrawGetStrokeColor(const wand: PDrawingWand; stroke_color: PPixelWand); cdecl; external WandExport;
+procedure DrawGetTextUnderColor(const wand: PDrawingWand; under_color: PPixelWand); cdecl; external WandExport;
+procedure DrawLine(wand: PDrawingWand; const sx, sy, ex, ey: double); cdecl; external WandExport;
+procedure DrawMatte(wand: PDrawingWand; const x, y: double;
+ const paint_method: PaintMethod); cdecl; external WandExport;
+procedure DrawPathClose(wand: PDrawingWand); cdecl; external WandExport;
+procedure DrawPathCurveToAbsolute(wand: PDrawingWand;
+ const x1, y1, x2, y2, x, y: double); cdecl; external WandExport;
+procedure DrawPathCurveToRelative(wand: PDrawingWand;
+ const x1, y1, x2, y2, x, y: double); cdecl; external WandExport;
+procedure DrawPathCurveToQuadraticBezierAbsolute(wand: PDrawingWand;
+ const x1, y1, x, y: double); cdecl; external WandExport;
+procedure DrawPathCurveToQuadraticBezierRelative(wand: PDrawingWand;
+ const x1, y1, x, y: double); cdecl; external WandExport;
+procedure DrawPathCurveToQuadraticBezierSmoothAbsolute(wand: PDrawingWand;
+ const x, y: double); cdecl; external WandExport;
+procedure DrawPathCurveToQuadraticBezierSmoothRelative(wand: PDrawingWand;
+ const x, y: double); cdecl; external WandExport;
+procedure DrawPathCurveToSmoothAbsolute(wand: PDrawingWand;
+ const x2, y2, x, y: double); cdecl; external WandExport;
+procedure DrawPathCurveToSmoothRelative(wand: PDrawingWand;
+ const x2, y2, x, y: double); cdecl; external WandExport;
+procedure DrawPathEllipticArcAbsolute(wand: PDrawingWand;
+ const rx, ry, x_axis_rotation: double;
+ const large_arc_flag: MagickBooleanType;
+ const sweep_flag: MagickBooleanType; const x, y: double); cdecl; external WandExport;
+procedure DrawPathEllipticArcRelative(wand: PDrawingWand;
+ const rx, ry, x_axis_rotation: double;
+ const large_arc_flag: MagickBooleanType;
+ const sweep_flag: MagickBooleanType; const x, y: double); cdecl; external WandExport;
+procedure DrawPathFinish(wand: PDrawingWand); cdecl; external WandExport;
+procedure DrawPathLineToAbsolute(wand: PDrawingWand; const x, y: double); cdecl; external WandExport;
+procedure DrawPathLineToRelative(wand: PDrawingWand; const x, y: double); cdecl; external WandExport;
+{procedure DrawPathLineToHorizontalAbsolute(wand: PDrawingWand;
+ const mode: PathMode; const x: double); cdecl; external WandExport;
+procedure DrawPathLineToHorizontalRelative(wand: PDrawingWand); cdecl; external WandExport;
+
+Contradição na declaração
+}
+procedure DrawPathLineToVerticalAbsolute(wand: PDrawingWand; const y: double); cdecl; external WandExport;
+procedure DrawPathLineToVerticalRelative(wand: PDrawingWand; const y: double); cdecl; external WandExport;
+procedure DrawPathMoveToAbsolute(wand: PDrawingWand; const x, y: double); cdecl; external WandExport;
+procedure DrawPathMoveToRelative(wand: PDrawingWand; const x, y: double); cdecl; external WandExport;
+procedure DrawPathStart(wand: PDrawingWand); cdecl; external WandExport;
+procedure DrawPoint(wand: PDrawingWand; const x, y: double); cdecl; external WandExport;
+procedure DrawPolygon(wand: PDrawingWand; const number_coordinates: Cardinal; const coordinates: PPointInfo
+ ); cdecl; external WandExport;
+procedure DrawPolyline(wand: PDrawingWand; const number_coordinates: Cardinal; const coordinates: PPointInfo
+ ); cdecl; external WandExport;
+procedure DrawPopClipPath(wand: PDrawingWand); cdecl; external WandExport;
+procedure DrawPopDefs(wand: PDrawingWand); cdecl; external WandExport;
+procedure DrawPushClipPath(wand: PDrawingWand; clip_path_id: PChar); cdecl; external WandExport;
+procedure DrawPushDefs(wand: PDrawingWand); cdecl; external WandExport;
+procedure DrawRectangle(wand: PDrawingWand; const x1, y1, x2, y2: double); cdecl; external WandExport;
+procedure DrawRotate(wand: PDrawingWand; const degrees: double); cdecl; external WandExport;
+procedure DrawRoundRectangle(wand: PDrawingWand; const x1, y1, x2, y2, rx, ry: double); cdecl; external WandExport;
+procedure DrawScale(wand: PDrawingWand; const x, y: double); cdecl; external WandExport;
+procedure DrawSetClipRule(wand: PDrawingWand; const fill_rule: FillRule); cdecl; external WandExport;
+procedure DrawSetClipUnits(wand: PDrawingWand; const clip_units: ClipPathUnits); cdecl; external WandExport;
+procedure DrawSetFillColor(wand: PDrawingWand; const fill_wand: PPixelWand); cdecl; external WandExport;
+procedure DrawSetFillAlpha(wand: PDrawingWand; const fill_opacity: double); cdecl; external WandExport;
+procedure DrawSetFillRule(wand: PDrawingWand; const fill_rule: FillRule); cdecl; external WandExport;
+procedure DrawSetFontSize(wand: PDrawingWand; const pointsize: double); cdecl; external WandExport;
+procedure DrawSetFontStretch(wand: PDrawingWand; const font_stretch: StretchType); cdecl; external WandExport;
+procedure DrawSetFontStyle(wand: PDrawingWand; const style: StyleType); cdecl; external WandExport;
+procedure DrawSetFontWeight(wand: PDrawingWand; const font_weight: Cardinal); cdecl; external WandExport;
+procedure DrawSetGravity(wand: PDrawingWand; const gravity: GravityType); cdecl; external WandExport;
+procedure DrawSkewX(wand: PDrawingWand; const degrees: double); cdecl; external WandExport;
+procedure DrawSkewY(wand: PDrawingWand; const degrees: double); cdecl; external WandExport;
+procedure DrawSetStrokeAntialias(wand: PDrawingWand; const stroke_antialias: MagickBooleanType
+ ); cdecl; external WandExport;
+procedure DrawSetStrokeColor(wand: PDrawingWand; const stroke_wand: PPixelWand); cdecl; external WandExport;
+procedure DrawSetStrokeDashOffset(wand: PDrawingWand; const dash_offset: double); cdecl; external WandExport;
+procedure DrawSetStrokeLineCap(wand: PDrawingWand; const linecap_: LineCap); cdecl; external WandExport;
+procedure DrawSetStrokeLineJoin(wand: PDrawingWand; const linejoin_: LineJoin); cdecl; external WandExport;
+procedure DrawSetStrokeMiterLimit(wand: PDrawingWand; const miterlimit: Cardinal); cdecl; external WandExport;
+procedure DrawSetStrokeAlpha(wand: PDrawingWand; const stroke_opacity: double); cdecl; external WandExport;
+procedure DrawSetStrokeWidth(wand: PDrawingWand; const troke_width: double); cdecl; external WandExport;
+procedure DrawSetTextAlignment(wand: PDrawingWand; const alignment: AlignType); cdecl; external WandExport;
+procedure DrawSetTextAntialias(wand: PDrawingWand; const text_antialias: MagickBooleanType
+ ); cdecl; external WandExport;
+procedure DrawSetTextDecoration(wand: PDrawingWand; const decoration: DecorationType); cdecl; external WandExport;
+procedure DrawSetTextEncoding(wand: PDrawingWand; const encoding: PChar); cdecl; external WandExport;
+procedure DrawSetTextUnderColor(wand: PDrawingWand; const under_wand: PPixelWand); cdecl; external WandExport;
+procedure DrawSetViewbox(wand: PDrawingWand; x1, y1, x2, y2: Cardinal); cdecl; external WandExport;
+procedure DrawTranslate(wand: PDrawingWand; const x, y: double); cdecl; external WandExport;
+
+{
+ Deprecated.
+}
+{typedef struct _DrawingWand
+ *DrawContext;
+
+extern WandExport double
+ DrawGetFillOpacity(const wand: PDrawingWand),
+ DrawGetStrokeOpacity(const wand: PDrawingWand);
+
+extern WandExport DrawInfo
+ *DrawPeekGraphicWand(const wand: PDrawingWand);
+
+extern WandExport void
+ DrawPopGraphicContext(DrawingWand *),
+ DrawPushGraphicContext(DrawingWand *),
+ DrawSetFillOpacity(DrawingWand *,const double),
+ DrawSetStrokeOpacity(DrawingWand *,const double);}
diff --git a/packages/base/imagemagick/wand/magick_attribute.inc b/packages/base/imagemagick/wand/magick_attribute.inc
new file mode 100644
index 0000000000..71f8c8c2d9
--- /dev/null
+++ b/packages/base/imagemagick/wand/magick_attribute.inc
@@ -0,0 +1,80 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ Set or Get Magick Wand Attributes.
+}
+
+function MagickGetException(wand: PMagickWand;
+ severity: PExceptionType): PChar; cdecl; external WandExport;
+function MagickGetFilename(const wand: PMagickWand): PChar; cdecl; external WandExport;
+function MagickGetFormat(wand: PMagickWand): PChar; cdecl; external WandExport;
+function MagickGetHomeURL: PChar; cdecl; external WandExport;
+function MagickGetOption(wand: PMagickWand;
+ const key: PChar): PChar; cdecl; external WandExport;
+{sem documentação
+extern WandExport char
+ *MagickQueryConfigureOption(const char *),
+ **MagickQueryConfigureOptions(const char *,unsigned long *),
+ **MagickQueryFonts(const char *,unsigned long *),
+ **MagickQueryFormats(const char *,unsigned long *);}
+
+function MagickGetCompression(wand: PMagickWand): CompressionType; cdecl; external WandExport;
+
+function MagickGetCopyright: PChar; cdecl; external WandExport;
+function MagickGetPackageName: PChar; cdecl; external WandExport;
+function MagickGetQuantumDepth(depth: PCardinal): PChar; cdecl; external WandExport;
+function MagickGetQuantumRange(range: PCardinal): PChar; cdecl; external WandExport;
+function MagickGetReleaseDate: PChar; cdecl; external WandExport;
+function MagickGetVersion(version: PCardinal): PChar; cdecl; external WandExport;
+
+function MagickGetSamplingFactors(wand: PMagickWand;
+ number_factors: PCardinal): Pdouble; cdecl; external WandExport;
+{function (wand: PMagickWand): Pdouble; cdecl; external WandExport;
+ *MagickQueryFontMetrics(MagickWand *,const DrawingWand *,const char *),
+ *MagickQueryMultilineFontMetrics(MagickWand *,const DrawingWand *,
+ const char *);}
+
+function MagickGetInterlaceScheme(wand: PMagickWand): InterlaceType; cdecl; external WandExport;
+
+{function (const wand: PMagickWand): ; cdecl; external WandExport;
+extern WandExport MagickBooleanType
+ MagickGetPage(MagickWand *,unsigned long *,unsigned long *,long *,long *),
+ MagickGetSize(const MagickWand *,unsigned long *,unsigned long *),
+ MagickSetBackgroundColor(MagickWand *,const PixelWand *),
+ MagickSetCompression(MagickWand *,const CompressionType),
+ MagickSetCompressionQuality(MagickWand *,const unsigned long),
+ MagickSetFilename(MagickWand *,const char *),
+ MagickSetFormat(MagickWand *,const char *),
+ MagickSetInterlaceScheme(MagickWand *,const InterlaceType),
+ MagickSetOption(MagickWand *,const char *,const char *),
+ MagickSetPage(MagickWand *,const unsigned long,const unsigned long,
+ const long,const long),
+ MagickSetPassphrase(MagickWand *,const char *),
+ MagickSetResolution(MagickWand *,const double,const double),
+ MagickSetResourceLimit(const ResourceType type,const unsigned long limit),
+ MagickSetSamplingFactors(MagickWand *,const unsigned long,const double *),
+ MagickSetSize(MagickWand *,const unsigned long,const unsigned long),
+ MagickSetType(MagickWand *,const ImageType);
+
+function (const wand: PMagickWand): ; cdecl; external WandExport;
+extern WandExport MagickProgressMonitor
+ MagickSetProgressMonitor(MagickWand *,const MagickProgressMonitor,void *);
+
+function (const wand: PMagickWand): ; cdecl; external WandExport;
+extern WandExport unsigned long
+ MagickGetCompressionQuality(MagickWand *),
+ MagickGetResource(const ResourceType),
+ MagickGetResourceLimit(const ResourceType);}
+
diff --git a/packages/base/imagemagick/wand/magick_image.inc b/packages/base/imagemagick/wand/magick_image.inc
new file mode 100644
index 0000000000..159a67023c
--- /dev/null
+++ b/packages/base/imagemagick/wand/magick_image.inc
@@ -0,0 +1,417 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ Magick Wand Image Methods.
+}
+
+function MagickGetImageChannelStatistics(wand: PMagickWand): PChannelStatistics; cdecl; external WandExport;
+
+function MagickGetImageAttribute(wand: PMagickWand): PChar; cdecl; external WandExport;
+function MagickGetImageFilename(wand: PMagickWand): PChar; cdecl; external WandExport;
+function MagickGetImageFormat(wand: PMagickWand): PChar; cdecl; external WandExport;
+function MagickGetImageSignature(wand: PMagickWand): PChar; cdecl; external WandExport;
+function MagickIdentifyImage(wand: PMagickWand): PChar; cdecl; external WandExport;
+
+function MagickGetImageCompose(wand: PMagickWand): CompositeOperator; cdecl; external WandExport;
+
+function MagickGetImageColorspace(wand: PMagickWand): ColorspaceType; cdecl; external WandExport;
+
+function MagickGetImageCompression(wand: PMagickWand): CompressionType; cdecl; external WandExport;
+
+function MagickGetImageDispose(wand: PMagickWand): DisposeType; cdecl; external WandExport;
+
+function MagickGetImageGamma(wand: PMagickWand): double; cdecl; external WandExport;
+function MagickGetImageTotalInkDensity(wand: PMagickWand): double; cdecl; external WandExport;
+
+function GetImageFromMagickWand(wand: PMagickWand): PImage; cdecl; external WandExport;
+
+function MagickGetImageType(wand: PMagickWand): ImageType; cdecl; external WandExport;
+
+function MagickGetImageInterlaceScheme(wand: PMagickWand): InterlaceType; cdecl; external WandExport;
+
+function MagickGetImageIndex(wand: PMagickWand): Integer; cdecl; external WandExport;
+
+function MagickAdaptiveThresholdImage(wand: PMagickWand;
+ const width, height: Cardinal; const offset: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickAddImage(wand: PMagickWand; const add_wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickAddNoiseImage(wand: PMagickWand; const noise_type: NoiseType): MagickBooleanType; cdecl; external WandExport;
+function MagickAffineTransformImage(wand: PMagickWand;
+ const drawing_wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickAnnotateImage(wand: PMagickWand;
+ const drawing_wand: PMagickWand; const x, y, angle: double;
+ const text: PChar): MagickBooleanType; cdecl; external WandExport;
+function MagickAnimateImages(wand: PMagickWand;
+ const server_name: PChar): MagickBooleanType; cdecl; external WandExport;
+function MagickBlackThresholdImage(wand: PMagickWand;
+ const threshold: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickBlurImage(wand: PMagickWand;
+ const radius, sigma: double): MagickBooleanType; cdecl; external WandExport;
+function MagickBlurImageChannel(wand: PMagickWand;
+ const channel: ChannelType; const radius, sigma: double): MagickBooleanType; cdecl; external WandExport;
+function MagickBorderImage(wand: PMagickWand;
+ const bordercolor: PPixelWand; const width, height: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickCharcoalImage(wand: PMagickWand;
+ const radius, sigma: double): MagickBooleanType; cdecl; external WandExport;
+function MagickChopImage(wand: PMagickWand;
+ const width, height: Cardinal; const x, y: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickClipImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickClipPathImage(wand: PMagickWand;
+ const pathname: PChar; const inside: MagickBooleanType): MagickBooleanType; cdecl; external WandExport;
+function MagickColorFloodfillImage(wand: PMagickWand;
+ const fill: PPixelWand; const fuzz: double; const bordercolor: PPixelWand;
+ const x, y: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickColorizeImage(wand: PMagickWand;
+ const colorize, opacity: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickCommentImage(wand: PMagickWand;
+ const comment: PChar): MagickBooleanType; cdecl; external WandExport;
+function MagickCompositeImage(wand: PMagickWand;
+ const composite_wand: MagickWand; const compose: CompositeOperator;
+ const x, y: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickConstituteImage(wand: PMagickWand;
+ const columns, rows: Cardinal; const map: PChar;
+ const storage: StorageType; pixels: Pointer): MagickBooleanType; cdecl; external WandExport;
+function MagickContrastImage(wand: PMagickWand;
+ const sharpen: MagickBooleanType): MagickBooleanType; cdecl; external WandExport;
+function MagickConvolveImage(wand: PMagickWand;
+ const order: Cardinal; const kernel: PDouble): MagickBooleanType; cdecl; external WandExport;
+function MagickConvolveImageChannel(wand: PMagickWand;
+ const channel: ChannelType; const order: Cardinal;
+ const kernel: PDouble): MagickBooleanType; cdecl; external WandExport;
+function MagickCropImage(wand: PMagickWand;
+ const width, height: Cardinal; const x, y: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickCycleColormapImage(wand: PMagickWand;
+ const displace: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickDespeckleImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickDisplayImage(wand: PMagickWand;
+ const server_name: PChar): MagickBooleanType; cdecl; external WandExport;
+function MagickDisplayImages(wand: PMagickWand;
+ const server_name: PChar): MagickBooleanType; cdecl; external WandExport;
+function MagickDrawImage(wand: PMagickWand;
+ const drawing_wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickEdgeImage(wand: PMagickWand;
+ const radius: double): MagickBooleanType; cdecl; external WandExport;
+function MagickEmbossImage(wand: PMagickWand;
+ const radius, sigma: double): MagickBooleanType; cdecl; external WandExport;
+function MagickEnhanceImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickEqualizeImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickEvaluateImage(wand: PMagickWand;
+ const op: MagickEvaluateOperator; const constant: double): MagickBooleanType; cdecl; external WandExport;
+function MagickEvaluateImageChannel(wand: PMagickWand;
+ const op: MagickEvaluateOperator; const constant: double): MagickBooleanType; cdecl; external WandExport;
+function MagickFlipImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickFlopImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickFrameImage(wand: PMagickWand;
+ const matte_color: PPixelWand; const width, height: Cardinal;
+ const inner_bevel, outer_bevel: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickGammaImage(wand: PMagickWand; const gamma: double): MagickBooleanType; cdecl; external WandExport;
+function MagickGammaImageChannel(wand: PMagickWand;
+ const channel: ChannelType; const gamma: double): MagickBooleanType; cdecl; external WandExport;
+function MagickGaussianBlurImage(wand: PMagickWand;
+ const radius, sigma: double): MagickBooleanType; cdecl; external WandExport;
+function MagickGaussianBlurImageChannel(wand: PMagickWand;
+ const channel: ChannelType; const radius, sigma: double): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageBackgroundColor(wand: PMagickWand;
+ background_color: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageBluePrimary(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageBorderColor(wand: PMagickWand; border_color: PPixelWand
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageChannelDistortion(wand: PMagickWand;
+ const reference: PMagickWand; const channel: ChannelType;
+ const metric: MetricType; distortion: Pdouble): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageDistortion(wand: PMagickWand;
+ const reference: PMagickWand; const metric: MetricType;
+ distortion: Pdouble): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageChannelExtrema(wand: PMagickWand;
+ const channel: ChannelType; minima, maxima: PCardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageChannelMean(wand: PMagickWand;
+ const channel: ChannelType; mean, standard_deviation: Pdouble): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageColormapColor(wand: PMagickWand;
+ const index: Cardinal; color: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageExtrema(wand: PMagickWand;
+ min, max: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageGreenPrimary(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; external WandExport;
+function MagickGetImageMatteColor(wand: PMagickWand;
+ matte_color: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImagePage(wand: PMagickWand;
+ width, height: PCardinal; x, y: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImagePixelColor(wand: PMagickWand;
+ const x, y: Integer; color: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImagePixels(wand: PMagickWand;
+ const x, y: Integer; const columns, rows: Cardinal;
+ const map: PChar; const storage: StorageType; pixels: Pointer): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageRedPrimary(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageResolution(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; external WandExport;
+function MagickGetImageWhitePoint(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; external WandExport;
+function MagickHasNextImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickHasPreviousImage(wand: PMagickWand): MagickBooleanType; external WandExport;
+function MagickImplodeImage(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; external WandExport;
+function MagickLabelImage(wand: PMagickWand; const _label: PChar): MagickBooleanType; cdecl; external WandExport;
+function MagickLevelImage(wand: PMagickWand;
+ const black_point, gamma, white_point: double): MagickBooleanType; cdecl; external WandExport;
+function MagickLevelImageChannel(wand: PMagickWand;
+ const channel: ChannelType; const black_point, gamma, white_point: double
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickMagnifyImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickMapImage(wand: PMagickWand;
+ const map_wand: PMagickWand; const dither: MagickBooleanType): MagickBooleanType; cdecl; external WandExport;
+function MagickMatteFloodfillImage(wand: PMagickWand;
+ const opacity: Quantum; const fuzz: double; const bordercolor: PPixelWand;
+ const x, y: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickMedianFilterImage(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; external WandExport;
+function MagickMinifyImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickModulateImage(wand: PMagickWand;
+ const brightness, saturation, hue: double): MagickBooleanType; cdecl; external WandExport;
+function MagickMotionBlurImage(wand: PMagickWand;
+ const radius, sigma, angle: double): MagickBooleanType; cdecl; external WandExport;
+function MagickNegateImage(wand: PMagickWand; const gray: MagickBooleanType): MagickBooleanType; cdecl; external WandExport;
+{
+function MagickNegateImageChannel(wand: PMagickWand): MagickBooleanType; external WandExport;
+ (MagickWand *,const ChannelType,
+ const MagickBooleanType),
+ Documentation not found
+}
+function MagickNewImage(wand: PMagickWand;
+ const columns, rows: Cardinal; const background: PPixelWand): MagickBooleanType; external WandExport;
+function MagickNextImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickNormalizeImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickOilPaintImage(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; external WandExport;
+function MagickPaintOpaqueImage(wand: PMagickWand;
+ const target, fill: PPixelWand; const fuzz: double): MagickBooleanType; external WandExport;
+function MagickPaintTransparentImage(wand: PMagickWand;
+ const target: PPixelWand; const opacity: Quantum; const fuzz: double): MagickBooleanType; external WandExport;
+function MagickPingImage(wand: PMagickWand;
+ const filename: PChar): MagickBooleanType; cdecl; external WandExport;
+{
+function MagickPosterizeImage(wand: PMagickWand;
+ const levels: Word; const dither: MagickBooleanType): MagickBooleanType; external WandExport;
+??
+}
+function MagickPreviousImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickProfileImage(wand: PMagickWand; const name: PChar;
+ const profile: PChar; const length: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickQuantizeImage(wand: PMagickWand;
+ const number_colors: Cardinal; const colorspace: ColorspaceType;
+ const treedepth: Cardinal; const dither, measure_error): MagickBooleanType; cdecl; external WandExport;
+function MagickQuantizeImages(wand: PMagickWand;
+ const number_colors: Cardinal; const colorspace: ColorspaceType;
+ const treedepth: Cardinal; const dither: MagickBooleanType;
+ const measure_error: MagickBooleanType): MagickBooleanType; cdecl; external WandExport;
+function MagickRadialBlurImage(wand: PMagickWand; const angle: double): MagickBooleanType; external WandExport;
+function MagickRadialBlurImageChannel(wand: PMagickWand;
+ const channel: ChannelType; const angle: double): MagickBooleanType; cdecl; external WandExport;
+function MagickRaiseImage(wand: PMagickWand;
+ const width, height: Cardinal; const x, y: Integer;
+ const raise_: MagickBooleanType): MagickBooleanType; cdecl; external WandExport;
+function MagickReadImage(wand: PMagickWand; const filename: PChar
+): MagickBooleanType; cdecl; external WandExport;
+function MagickReadImageBlob(wand: PMagickWand;
+ const blob: Pointer; const length: Integer): MagickBooleanType; cdecl; external WandExport;
+//function MagickReadImageFile(wand: PMagickWand; file_: file): MagickBooleanType; external WandExport;
+
+function MagickReduceNoiseImage(wand: PMagickWand; const radius: double): MagickBooleanType; external WandExport;
+function MagickRemoveImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickResampleImage(wand: PMagickWand;
+ const x_resolution, y_resolution: double;
+ const filter: FilterTypes; const blur: double): MagickBooleanType; cdecl; external WandExport;
+function MagickResizeImage(wand: PMagickWand;
+ const columns, rows: Cardinal; const filter: FilterTypes;
+ const blur: double): MagickBooleanType; cdecl; external WandExport;
+function MagickRollImage(wand: PMagickWand;
+ const x: Integer; const y: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickRotateImage(wand: PMagickWand; const background: PPixelWand;
+ const degrees: double): MagickBooleanType; cdecl; external WandExport;
+function MagickSampleImage(wand: PMagickWand; const columns, rows: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickScaleImage(wand: PMagickWand; const columns, rows: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickSeparateImageChannel(wand: PMagickWand; const channel: ChannelType): MagickBooleanType; cdecl; external WandExport;
+
+// MagickSepiaToneImage(MagickWand *,const double),
+
+function MagickSetImage(wand: PMagickWand; const set_wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageAttribute(wand: PMagickWand; const key, attribute: PChar): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageBackgroundColor(wand: PMagickWand; const background: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageBias(wand: PMagickWand; const bias: double): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageBluePrimary(wand: PMagickWand; const x, y: double): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageBorderColor(wand: PMagickWand; const border: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageChannelDepth(wand: PMagickWand; const channel: ChannelType; const depth: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageColormapColor(wand: PMagickWand; const index: Cardinal; const color: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageColorspace(wand: PMagickWand; const colorspace: ColorspaceType): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageCompose(wand: PMagickWand; const compose: CompositeOperator): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageCompression(wand: PMagickWand; const compression: CompressionType): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageCompressionQuality(wand: PMagickWand; const quality: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageDelay(wand: PMagickWand; const delay: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageDepth(wand: PMagickWand; const depth: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageDispose(wand: PMagickWand; const dispose: DisposeType): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageExtent(wand: PMagickWand; const columns, rows: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageFilename(wand: PMagickWand; const filename: PChar): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageFormat(wand: PMagickWand; const format: PChar): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageGamma(wand: PMagickWand; const gamma: Double): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageGreenPrimary(wand: PMagickWand; const x, y: Double): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageIndex(wand: PMagickWand; const index: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageInterlaceScheme(wand: PMagickWand; const interlace_scheme: InterlaceType): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageIterations(wand: PMagickWand; const iterations: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageMatteColor(wand: PMagickWand; const matte: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImagePage(wand: PMagickWand; const width, height: Cardinal; const x, y: Integer): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImagePixels(wand: PMagickWand; const x, y: Integer; const columns, rows: Cardinal;
+ const map: PChar; const storage: StorageType; const pixels: Pointer): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageProfile(wand: PMagickWand; const name: PChar; const profile: Pointer;
+ const length: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageRedPrimary(wand: PMagickWand; const x, y: Double): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageRenderingIntent(wand: PMagickWand; const rendering_intent: RenderingIntent
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageResolution(wand: PMagickWand; const x_resolution, y_resolution: double
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageScene(wand: PMagickWand; const scene: Cardinal): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageType(wand: PMagickWand; const image_type: ImageType
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageUnits(wand: PMagickWand; const units: ResolutionType
+ ): MagickBooleanType; cdecl; external WandExport;
+//function MagickSetImageVirtualPixelMethod(wand: PMagickWand;
+// const method: VirtualPixelMethod): MagickBooleanType; cdecl; external WandExport;
+function MagickSetImageWhitePoint(wand: PMagickWand; const x, y: double
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickShadowImage(wand: PMagickWand; const radius, sigma: double; const x, y: Integer
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickSharpenImage(wand: PMagickWand; const radius, sigma: double
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickSharpenImageChannel(wand: PMagickWand; const channel: ChannelType;
+ const radius, sigma: double): MagickBooleanType; cdecl; external WandExport;
+function MagickShaveImage(wand: PMagickWand; const columns, rows: Cardinal
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickShearImage(wand: PMagickWand; const background: PPixelWand;
+ const x_shear, y_shear: double): MagickBooleanType; cdecl; external WandExport;
+function MagickSigmoidalContrastImage(wand: PMagickWand;
+ const sharpen: MagickBooleanType; const alpha, beta: double
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickSigmoidalContrastImageChannel(wand: PMagickWand;
+ const channel: ChannelType; const sharpen: MagickBooleanType; const alpha, beta: double
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickSolarizeImage(wand: PMagickWand; const threshold: double
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickSpliceImage(wand: PMagickWand; const width, height: Cardinal; const x, y: Integer
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickSpreadImage(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; external WandExport;
+function MagickStripImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickSwirlImage(wand: PMagickWand; const degrees: double): MagickBooleanType; cdecl; external WandExport;
+function MagickTintImage(wand: PMagickWand; const tint: PPixelWand; const opacity: PPixelWand
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickThresholdImage(wand: PMagickWand; const threshold: double): MagickBooleanType; cdecl; external WandExport;
+function MagickThresholdImageChannel(wand: PMagickWand; const channel: ChannelType;
+ const threshold: double): MagickBooleanType; cdecl; external WandExport;
+function MagickTrimImage(wand: PMagickWand; const fuzz: double): MagickBooleanType; cdecl; external WandExport;
+function MagickUnsharpMaskImage(wand: PMagickWand;
+ const radius, sigma, amount, threshold: double): MagickBooleanType; cdecl; external WandExport;
+function MagickUnsharpMaskImageChannel(wand: PMagickWand;
+ const channel: ChannelType; const radius, sigma, amount, threshold: double
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickWaveImage(wand: PMagickWand; const amplitude, wave_length: double
+ ): MagickBooleanType; cdecl; external WandExport;
+function MagickWhiteThresholdImage(wand: PMagickWand; const threshold: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function MagickWriteImage(wand: PMagickWand;
+ const filename: PChar): MagickBooleanType; cdecl; external WandExport;
+// MagickWriteImageFile(MagickWand *,FILE *),
+function MagickWriteImages(wand: PMagickWand;
+ const filename: PChar; const adjoin: MagickBooleanType
+ ): MagickBooleanType; cdecl; external WandExport;
+// MagickWriteImagesFile(MagickWand *,FILE *);
+
+
+function MagickSetImageProgressMonitor(wand: PMagickWand;
+ const progress_monitor: MagickProgressMonitor; client_data: Pointer): MagickProgressMonitor; cdecl; external WandExport;
+
+function MagickGetImageSize(wand: PMagickWand): MagickSizeType; cdecl; external WandExport;
+
+function MagickAppendImages(wand: PMagickWand; const stack: MagickBooleanType): PMagickWand; cdecl; external WandExport;
+function MagickAverageImages(wand: PMagickWand): PMagickWand; cdecl; external WandExport;
+function MagickCoalesceImages(wand: PMagickWand): PMagickWand; cdecl; external WandExport;
+function MagickCombineImages(wand: PMagickWand; para2: ChannelType): PMagickWand; cdecl; external WandExport;
+function MagickCompareImageChannels(wand: PMagickWand;
+ const reference: PMagickWand; const channel: ChannelType; const metric: MetricType; distortion: PDouble
+ ): PMagickWand; cdecl; external WandExport;
+function MagickCompareImages(wand: PMagickWand;
+ const reference: PMagickWand; const metric: MetricType; distortion: PDouble
+ ): PMagickWand; cdecl; external WandExport;
+function MagickDeconstructImages(wand: PMagickWand): PMagickWand; cdecl; external WandExport;
+function MagickFlattenImages(wand: PMagickWand): PMagickWand; cdecl; external WandExport;
+function MagickFxImage(wand: PMagickWand; const expression: PChar): PMagickWand; cdecl; external WandExport;
+function MagickFxImageChannel(wand: PMagickWand; const channel: ChannelType; const expression: PChar
+ ): PMagickWand; cdecl; external WandExport;
+function MagickGetImage(wand: PMagickWand): PMagickWand; cdecl; external WandExport;
+function MagickGetImageRegion(wand: PMagickWand;
+ const width, height: Cardinal; const x, y: Integer
+ ): PMagickWand; cdecl; external WandExport;
+function MagickMorphImages(wand: PMagickWand; const number_frames: Cardinal): PMagickWand; cdecl; external WandExport;
+function MagickMosaicImages(wand: PMagickWand): PMagickWand; cdecl; external WandExport;
+//function MagickMontageImage(wand: PMagickWand;
+// const drawing_wand: DrawingWand; const tile_geometry: PChar;
+// const thumbnail_geometry: PChar; const mode: MontageMode; const frame: PChar
+// ): PMagickWand; cdecl; external WandExport;
+function MagickPreviewImages(wand: PMagickWand; const preview: PreviewType): PMagickWand; cdecl; external WandExport;
+function MagickSteganoImage(wand: PMagickWand; const watermark_wand: PMagickWand;
+ const offset: Integer): PMagickWand; cdecl; external WandExport;
+function MagickStereoImage(wand: PMagickWand; const offset_wand: PMagickWand): PMagickWand; cdecl; external WandExport;
+function MagickTextureImage(wand: PMagickWand; const texture_wand: PMagickWand): PMagickWand; cdecl; external WandExport;
+function MagickTransformImage(wand: PMagickWand; const crop, geometry: PChar): PMagickWand; cdecl; external WandExport;
+function NewMagickWandFromImage(para1: PImage): PMagickWand; cdecl; external WandExport;
+
+function MagickGetImageHistogram(wand: PMagickWand; number_colors: PCardinal): PPPixelWand; cdecl; external WandExport;
+
+function MagickGetImageRenderingIntent(wand: PMagickWand): RenderingIntent; cdecl; external WandExport;
+
+function MagickGetImageUnits(wand: PMagickWand): ResolutionType; cdecl; external WandExport;
+
+{function MagickGetImageBlob(wand: PMagickWand; length: Psize_t): PByte; cdecl; external WandExport;
+function (wand: PMagickWand): PByte; cdecl; external WandExport;
+function (wand: PMagickWand): PByte; cdecl; external WandExport;
+function (wand: PMagickWand): PByte; cdecl; external WandExport;
+
+extern WandExport unsigned char
+ *MagickGetImageBlob(MagickWand *,size_t *),
+ *MagickGetImagesBlob(MagickWand *,size_t *),
+ *MagickGetImageProfile(MagickWand *,const char *,unsigned long *),
+ *MagickRemoveImageProfile(MagickWand *,const char *,unsigned long *);}
+
+function MagickGetImageColors(wand: PMagickWand): Cardinal; cdecl; external WandExport;
+function MagickGetImageCompressionQuality(wand: PMagickWand): Cardinal; cdecl; external WandExport;
+function MagickGetImageDelay(wand: PMagickWand): Cardinal; cdecl; external WandExport;
+function MagickGetImageChannelDepth(wand: PMagickWand; const channel: ChannelType): Cardinal; cdecl; external WandExport;
+function MagickGetImageDepth(wand: PMagickWand): Cardinal; cdecl; external WandExport;
+function MagickGetImageHeight(wand: PMagickWand): Cardinal; cdecl; external WandExport;
+function MagickGetImageIterations(wand: PMagickWand): Cardinal; cdecl; external WandExport;
+function MagickGetImageScene(wand: PMagickWand): Cardinal; cdecl; external WandExport;
+function MagickGetImageWidth(wand: PMagickWand): Cardinal; cdecl; external WandExport;
+function MagickGetNumberImages(wand: PMagickWand): Cardinal; cdecl; external WandExport;
+
+//function MagickGetImageVirtualPixelMethod(wand: PMagickWand): VirtualPixelMethod; cdecl; external WandExport;
+
+{
+ Deprecated methods.
+}
+{extern WandExport char
+ *MagickDescribeImage(MagickWand *);
+
+extern WandExport MagickBooleanType
+ MagickOpaqueImage(MagickWand *,const PixelWand *,const PixelWand *,
+ const double),
+ MagickSetImageOption(MagickWand *,const char *,const char *,const char *),
+ MagickTransparentImage(MagickWand *,const PixelWand *,const Quantum,
+ const double);
+
+extern WandExport MagickWand
+ *MagickRegionOfInterestImage(MagickWand *,const unsigned long,
+ const unsigned long,const long,const long);
+
+extern WandExport unsigned char
+ *MagickWriteImageBlob(MagickWand *,size_t *);
+}
diff --git a/packages/base/imagemagick/wand/magick_wand.pas b/packages/base/imagemagick/wand/magick_wand.pas
new file mode 100644
index 0000000000..ef6c57f9fc
--- /dev/null
+++ b/packages/base/imagemagick/wand/magick_wand.pas
@@ -0,0 +1,71 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick MagickWand API.
+
+ Converted from c by: Felipe Monteiro de Carvalho Dez/2005
+}
+{Version 0.2}
+unit magick_wand;
+
+{$IFDEF FPC}
+ {$mode objfpc}
+{$ENDIF}
+
+{$PACKRECORDS C}
+{$MINENUMSIZE 1}
+
+interface
+
+uses ImageMagick;
+
+type
+ MagickWand = record
+ id: Cardinal;
+ name: array[0..MaxTextExtent] of Char;
+ exception: ExceptionInfo;
+ image_info: PImageInfo;
+ quantize_info: QuantizeInfo;
+ images: Image;
+ iterator, debug: MagickBooleanType;
+ signature: Cardinal;
+ end;
+
+ PMagickWand = ^MagickWand;
+
+{$include pixel_wand.inc}
+{$include drawing_wand.inc}
+{$include magick_attribute.inc}
+{$include magick_image.inc}
+{$include pixel_iterator.inc}
+
+function IsMagickWand(const wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+function MagickClearException(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport;
+
+function CloneMagickWand(const wand: PMagickWand): PMagickWand; cdecl; external WandExport;
+function DestroyMagickWand(wand: PMagickWand): PMagickWand; cdecl; external WandExport;
+function NewMagickWand: PMagickWand; cdecl; external WandExport;
+
+procedure ClearMagickWand(wand: PMagickWand); cdecl; external WandExport;
+procedure MagickWandGenesis; cdecl; external WandExport;
+procedure MagickWandTerminus; cdecl; external WandExport;
+function MagickRelinquishMemory(resource: Pointer): Pointer; cdecl; external WandExport;
+procedure MagickResetIterator(wand: PMagickWand); cdecl; external WandExport;
+procedure MagickSetFirstIterator(wand: PMagickWand); cdecl; external WandExport;
+procedure MagickSetLastIterator(wand: PMagickWand); cdecl; external WandExport;
+
+implementation
+
+end.
diff --git a/packages/base/imagemagick/wand/pixel_iterator.inc b/packages/base/imagemagick/wand/pixel_iterator.inc
new file mode 100644
index 0000000000..e31c0cdf8f
--- /dev/null
+++ b/packages/base/imagemagick/wand/pixel_iterator.inc
@@ -0,0 +1,74 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ Pixel Iterator Methods.
+}
+
+type
+ PixelIterator = record
+ id: Cardinal;
+
+ name: array[0..MaxTextExtent] of char;
+
+ exception: ExceptionInfo;
+
+ view: PViewInfo;
+
+ region: RectangleInfo;
+
+ y: Integer;
+
+ pixel_wand: PPPixelWand;
+
+ debug: MagickBooleanType;
+
+ signature: Cardinal;
+ end;
+
+ PPixelIterator = ^PixelIterator;
+
+
+function PixelGetIteratorException(const iterator: PPixeliterator;
+ severity: PExceptionType): PChar; cdecl; external WandExport;
+
+function IsPixelIterator(const iterator: PPixeliterator): MagickBooleanType; cdecl; external WandExport;
+function PixelClearIteratorException(iterator: PPixeliterator): MagickBooleanType; cdecl; external WandExport;
+function PixelSetIteratorRow(iterator: PPixeliterator;
+ const row: Integer): MagickBooleanType; cdecl; external WandExport;
+function PixelSyncIterator(iterator: PPixeliterator): MagickBooleanType; cdecl; external WandExport;
+
+function DestroyPixelIterator(iterator: PPixeliterator): PPixelIterator; cdecl; external WandExport;
+function NewPixelIterator(wand: PMagickWand): PPixelIterator; cdecl; external WandExport;
+function NewPixelRegionIterator(
+ wand: PMagickWand; const x, y: Integer; const columns, rows: Cardinal;
+ const modify: MagickBooleanType): PPixelIterator; cdecl; external WandExport;
+
+function PixelGetNextIteratorRow(iterator: PPixeliterator; var wandCount: Cardinal): PPPixelWand; cdecl; external WandExport;
+function PixelGetPreviousIteratorRow(iterator: PPixeliterator; var wandCount: Cardinal): PPPixelWand; cdecl; external WandExport;
+
+procedure ClearPixelIterator(iterator: PPixeliterator); cdecl; external WandExport;
+procedure PixelResetIterator(iterator: PPixeliterator); cdecl; external WandExport;
+procedure PixelSetFirstIteratorRow(iterator: PPixeliterator); cdecl; external WandExport;
+procedure PixelSetLastIteratorRow(iterator: PPixeliterator); cdecl; external WandExport;
+
+{
+ Deprecated.
+}
+{extern WandExport char
+ *PixelIteratorGetException(const PixelIterator *,ExceptionType *);
+
+extern WandExport PixelWand
+ **PixelGetNextRow(PixelIterator *);}
+
diff --git a/packages/base/imagemagick/wand/pixel_wand.inc b/packages/base/imagemagick/wand/pixel_wand.inc
new file mode 100644
index 0000000000..8ef017d43a
--- /dev/null
+++ b/packages/base/imagemagick/wand/pixel_wand.inc
@@ -0,0 +1,109 @@
+{
+ Copyright 1999-2005 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.
+ 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.
+
+ ImageMagick pixel wand API.
+}
+
+
+{
+ Declaration from pixel-wand.c
+}
+type
+ PixelWand = record
+ id: Cardinal;
+
+ name: array[1..MaxTextExtent] of char;
+
+ exception: ExceptionInfo;
+
+ pixel: MagickPixelPacket;
+
+ count: Cardinal;
+
+ debug: MagickBooleanType;
+
+ signature: Cardinal;
+ end;
+
+ PPixelWand = ^PixelWand;
+
+ PPPixelWand = ^PPixelWand;
+
+
+function PixelGetException(const wand: PPixelWand; severity: PExceptionType): PChar; cdecl; external WandExport;
+function PixelGetColorAsString(const wand: PPixelWand): PChar; cdecl; external WandExport;
+
+function PixelGetAlpha(const wand: PPixelWand): Double; cdecl; external WandExport;
+function PixelGetBlack(const wand: PPixelWand): Double; cdecl; external WandExport;
+function PixelGetBlue(const wand: PPixelWand): Double; cdecl; external WandExport;
+function PixelGetCyan(const wand: PPixelWand): Double; cdecl; external WandExport;
+function PixelGetGreen(const wand: PPixelWand): Double; cdecl; external WandExport;
+function PixelGetMagenta(const wand: PPixelWand): Double; cdecl; external WandExport;
+function PixelGetOpacity(const wand: PPixelWand): Double; cdecl; external WandExport;
+function PixelGetRed(const wand: PPixelWand): Double; cdecl; external WandExport;
+function PixelGetYellow(const wand: PPixelWand): Double; cdecl; external WandExport;
+
+function PixelGetIndex(const wand: PPixelWand): IndexPacket; cdecl; external WandExport;
+
+function IsPixelWand(const wand: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function IsPixelWandSimilar(p: PPixelWand; q: PPixelWand;
+ const fuzz: double): MagickBooleanType; cdecl; external WandExport;
+function PixelClearException(wand: PPixelWand): MagickBooleanType; cdecl; external WandExport;
+function PixelSetColor(wand: PPixelWand; const color: PChar): MagickBooleanType; cdecl; external WandExport;
+
+function DestroyPixelWand(wand: PPixelWand): PPixelWand; cdecl; external WandExport;
+function DestroyPixelWands(wand: PPPixelWand;
+ const number_wands: Cardinal): PPPixelWand; cdecl; external WandExport;
+function NewPixelWand: PPixelWand; cdecl; external WandExport;
+function NewPixelWands(const number_wands: Cardinal): PPPixelWand; cdecl; external WandExport;
+
+function PixelGetAlphaQuantum(const wand: PPixelWand): Quantum; cdecl; external WandExport;
+function PixelGetBlackQuantum(const wand: PPixelWand): Quantum; cdecl; external WandExport;
+function PixelGetBlueQuantum(const wand: PPixelWand): Quantum; cdecl; external WandExport;
+function PixelGetCyanQuantum(const wand: PPixelWand): Quantum; cdecl; external WandExport;
+function PixelGetGreenQuantum(const wand: PPixelWand): Quantum; cdecl; external WandExport;
+function PixelGetMagentaQuantum(const wand: PPixelWand): Quantum; cdecl; external WandExport;
+function PixelGetOpacityQuantum(const wand: PPixelWand): Quantum; cdecl; external WandExport;
+function PixelGetRedQuantum(const wand: PPixelWand): Quantum; cdecl; external WandExport;
+function PixelGetYellowQuantum(const wand: PPixelWand): Quantum; cdecl; external WandExport;
+
+function PixelGetColorCount(const wand: PPixelWand): Cardinal; cdecl; external WandExport;
+
+procedure ClearPixelWand(wand: PPixelWand); cdecl; external WandExport;
+procedure PixelGetMagickColor(const wand: PPixelWand; packet: PMagickPixelPacket); cdecl; external WandExport;
+procedure PixelGetQuantumColor(const wand: PPixelWand; color: PPixelPacket); cdecl; external WandExport;
+procedure PixelSetAlpha(wand: PPixelWand; const opacity: Double); cdecl; external WandExport;
+procedure PixelSetAlphaQuantum(wand: PPixelWand; const opacity: Quantum); cdecl; external WandExport;
+procedure PixelSetBlack(wand: PPixelWand; const opacity: Double); cdecl; external WandExport;
+procedure PixelSetBlackQuantum(wand: PPixelWand; const opacity: Quantum); cdecl; external WandExport;
+procedure PixelSetBlue(wand: PPixelWand; const opacity: Double); cdecl; external WandExport;
+procedure PixelSetBlueQuantum(wand: PPixelWand; const opacity: Quantum); cdecl; external WandExport;
+procedure PixelSetColorCount(wand: PPixelWand; const count: Cardinal); cdecl; external WandExport;
+procedure PixelSetCyan(wand: PPixelWand; const opacity: Double); cdecl; external WandExport;
+procedure PixelSetCyanQuantum(wand: PPixelWand; const opacity: Quantum); cdecl; external WandExport;
+procedure PixelSetGreen(wand: PPixelWand; const opacity: Double); cdecl; external WandExport;
+procedure PixelSetGreenQuantum(wand: PPixelWand; const opacity: Quantum); cdecl; external WandExport;
+procedure PixelSetIndex(wand: PPixelWand; const index: IndexPacket); cdecl; external WandExport;
+procedure PixelSetMagenta(wand: PPixelWand; const opacity: Double); cdecl; external WandExport;
+procedure PixelSetMagentaQuantum(wand: PPixelWand; const opacity: Quantum); cdecl; external WandExport;
+procedure PixelSetOpacity(wand: PPixelWand; const opacity: Double); cdecl; external WandExport;
+procedure PixelSetOpacityQuantum(wand: PPixelWand; const opacity: Quantum); cdecl; external WandExport;
+procedure PixelSetQuantumColor(wand: PPixelWand; const color: PPixelPacket); cdecl; external WandExport;
+procedure PixelSetRed(wand: PPixelWand; const opacity: Double); cdecl; external WandExport;
+procedure PixelSetRedQuantum(wand: PPixelWand; const opacity: Quantum); cdecl; external WandExport;
+procedure PixelSetYellow(wand: PPixelWand; const opacity: Double); cdecl; external WandExport;
+procedure PixelSetYellowQuantum(wand: PPixelWand; const opacity: Quantum); cdecl; external WandExport;
+
+