root/ImageMagick/trunk/Makefile.am

Revision 540, 10.6 KB (checked in by cristy, 2 weeks ago)
Line 
1#  Copyright 1999-2009 ImageMagick Studio LLC, a non-profit organization
2#  dedicated to making software imaging solutions freely available.
3#
4#  You may not use this file except in compliance with the License.  You may
5#  obtain a copy of the License at
6#
7#    http://www.imagemagick.org/script/license.php
8#
9#  Unless required by applicable law or agreed to in writing, software
10#  distributed under the License is distributed on an "AS IS" BASIS,
11#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12#  See the License for the specific language governing permissions and
13#  limitations under the License.
14#
15#  Copyright (C) 2003 - 2008 GraphicsMagick Group
16#
17#  Top-Level Makefile for building ImageMagick.
18#
19
20AUTOMAKE_OPTIONS = 1.11 subdir-objects parallel-tests color-tests dist-zip dist-bzip2 dist-xz foreign
21
22topincludedir = @includedir@/ImageMagick
23
24AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir)
25
26ACLOCAL_AMFLAGS = -I m4
27
28MODULECOMMONFLAGS = -no-undefined -export-symbols-regex ".*" -shared -module -avoid-version
29
30# Options to pass when running configure in the distcheck target.
31#
32# We want to preserve user-provided option variables so the same
33# compiler, headers, and libraries are used as for a normal build.
34DISTCHECK_CONFIGURE_FLAGS=$(DISTCHECK_CONFIG_FLAGS)
35
36## Make sure these will be cleaned even when they're not built by default.
37CLEANFILES = \
38        $(LTDL_CLEANFILES) \
39        $(WAND_CLEANFILES) \
40        $(MAGICKPP_CLEANFILES) \
41        $(UTILITIES_CLEANFILES) \
42        $(TESTS_CLEANFILES)
43
44bin_PROGRAMS = \
45        $(UTILITIES_PGMS)
46
47# Binary scripts
48bin_SCRIPTS = \
49        $(MAGICK_BIN_SCRPTS) \
50        $(WAND_BIN_SCRPTS) \
51        $(MAGICKPP_SCRPTS)
52
53include_HEADERS = \
54        $(LTDL_INSTALLHEADERS)
55
56# Headers which are not installed but which are distributed
57noinst_HEADERS = \
58        $(LIBLTDL_NOINST_HDRS) \
59        $(MAGICK_NOINST_HDRS)
60
61if WIN32_NATIVE_BUILD
62SRCDIR='$(shell @WinPathScript@ $(srcdir)/)'
63else
64SRCDIR="$(srcdir)/"
65endif
66
67# Environment parameters to be used during tests
68TESTS_ENVIRONMENT = \
69  COMPARE="$(MEMCHECK) @abs_top_builddir@/utilities/compare" \
70  COMPOSITE="$(MEMCHECK) @abs_top_builddir@/utilities/composite" \
71  CONJURE="$(MEMCHECK) @abs_top_builddir@/utilities/conjure" \
72  CONVERT="$(MEMCHECK) @abs_top_builddir@/utilities/convert" \
73  DISPLAY="$(MEMCHECK) @abs_top_builddir@/utilities/display" \
74  MONTAGE="$(MEMCHECK) @abs_top_builddir@/utilities/montage" \
75  VALIDATE="$(MEMCHECK) @abs_top_builddir@/tests/validate" \
76        LD_LIBRARY_PATH="@abs_top_builddir@/magick/.libs:${LD_LIBRARY_PATH}" \
77        MAGICK_CODER_MODULE_PATH='@MAGICK_CODER_MODULE_PATH@' \
78        MAGICK_CONFIGURE_PATH='@MAGICK_CONFIGURE_BUILD_PATH@@DIRSEP@@MAGICK_CONFIGURE_SRC_PATH@' \
79        MAGICK_FILTER_MODULE_PATH='@MAGICK_FILTER_MODULE_PATH@' \
80        MAKE="$(MAKE)" \
81        MAKEFLAGS="$(MAKEFLAGS)" \
82        MEMCHECK="$(MEMCHECK)" \
83        PATH="@abs_top_builddir@/utilities:${PATH}" \
84        SRCDIR=$(SRCDIR)
85
86# Test extensions
87TEST_EXTENSIONS = .sh
88
89# Tests to run
90TESTS = \
91        $(TESTS_TESTS) \
92        $(MAGICKPP_TESTS) \
93        $(WAND_TESTS) \
94        $(UTILITIES_TESTS)
95
96# Tests which are expected to fail
97XFAIL_TESTS = \
98        $(TESTS_XFAIL_TESTS) \
99        $(UTILITIES_XFAIL_TESTS)
100
101TOP_EXTRA_DIST = \
102  AUTHORS.txt \
103        ChangeLog \
104        LICENSE \
105        QuickStart.txt \
106        NOTICE \
107        Install-mac.txt \
108        Install-unix.txt \
109        Install-vms.txt \
110        Install-windows.txt \
111        magick.sh.in \
112        Magickshr.opt \
113        Make.com \
114        NEWS.txt \
115        Platforms.txt \
116        README.txt \
117        index.html \
118        version.sh \
119        winpath.sh
120
121# Additional files to distribute
122EXTRA_DIST = \
123        $(TOP_EXTRA_DIST) \
124        $(CONFIG_EXTRA_DIST) \
125        $(MAGICK_EXTRA_DIST) \
126        $(WAND_EXTRA_DIST) \
127        $(MAGICKPP_EXTRA_DIST) \
128        $(UTILITIES_EXTRA_DIST) \
129        $(TESTS_EXTRA_DIST)
130
131lib_LTLIBRARIES = $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS) $(MAGICKPP_LIBS)
132AM_LDFLAGS =
133noinst_LTLIBRARIES =
134EXTRA_LTLIBRARIES =
135BUILT_SOURCES =
136MOSTLYCLEANFILES =
137
138check_PROGRAMS = \
139        $(TESTS_CHECK_PGRMS) \
140        $(MAGICKPP_CHECK_PGRMS) \
141        $(WAND_CHECK_PGRMS)
142
143include m4/Makefile.am
144include config/Makefile.am
145include ltdl/Makefile.inc
146include coders/Makefile.am
147include magick/Makefile.am
148include filters/Makefile.am
149include wand/Makefile.am
150include Magick++/Makefile.am
151include utilities/Makefile.am
152include tests/Makefile.am
153include PerlMagick/Makefile.am
154
155# Pkgconfig directory
156pkgconfigdir = $(libdir)/pkgconfig
157
158# Files to install in Pkgconfig directory
159pkgconfig_DATA = \
160        $(MAGICK_PKGCONFIG) \
161        $(WAND_PKGCONFIG) \
162        $(MAGICKPP_PKGCONFIG)
163
164# Manual pages to install
165man_MANS = \
166        $(MAGICK_MANS) \
167        $(WAND_MANS) \
168        $(MAGICKPP_MANS) \
169        $(UTILITIES_MANS)
170
171# Architecture independent data files installed in the package's data directory
172docdir = $(SHARE_PATH)
173doc_DATA = \
174        LICENSE \
175        ChangeLog \
176        NEWS.txt
177
178if MAINTAINER_MODE
179MAINTAINER_TARGETS = magick-version
180endif
181
182all-local: $(MAGICKPP_LOCAL_TARGETS) $(PERLMAGICK_ALL_LOCAL_TARGETS) $(MAINTAINER_TARGETS)
183
184install-exec-local: $(PERLMAGICK_INSTALL_EXEC_LOCAL_TARGETS)
185
186install-data-local: $(MAGICK_INSTALL_DATA_LOCAL_TARGETS) $(PERLMAGICK_INSTALL_DATA_LOCAL_TARGETS) $(HTML_INSTALL_DATA_TARGETS)
187
188uninstall-local: $(MAGICK_UNINSTALL_LOCAL_TARGETS) $(PERLMAGICK_UNINSTALL_LOCAL_TARGETS) $(HTML_UNINSTALL_DATA_TARGETS)
189
190clean-local: $(PERLMAGICK_CLEAN_LOCAL_TARGETS)
191
192distclean-local: $(PERLMAGICK_DISTCLEAN_LOCAL_TARGETS)
193
194maintainer-clean-local: $(PERLMAGICK_MAINTAINER_CLEAN_LOCAL_TARGETS)
195
196check-local: $(PERLMAGICK_CHECK_LOCAL_TARGETS)
197
198drd:
199        $(MAKE) MEMCHECK='valgrind --tool=drd --check-stack-var=yes --var-info=yes --quiet $(VALGRIND_EXTRA_OPTS)' check
200
201helgrind:
202        $(MAKE) MEMCHECK='valgrind --tool=helgrind --quiet $(VALGRIND_EXTRA_OPTS)' check
203
204memcheck:
205        $(MAKE) MEMCHECK='valgrind --tool=memcheck --leak-check=full --num-callers=12 --quiet $(VALGRIND_EXTRA_OPTS)' check
206
207ptrcheck:
208        $(MAKE) MEMCHECK='valgrind --tool=exp-ptrcheck --quiet $(VALGRIND_EXTRA_OPTS)' check
209
210# Non-Automake subdirectories to distribute
211DISTDIRS = images scenes scripts www PerlMagick
212dist-hook:
213        ( \
214          builddir=`pwd` ; \
215          cd $(srcdir) && \
216          ( \
217            for dir in $(DISTDIRS) ; do \
218              find $$dir -depth -print | egrep -v '(~$$)|(/CVS)|(/\.#)|(/\.deps)|(/\.svn)' \
219                | cpio -pdum $$builddir/$(distdir) 2> /dev/null ; \
220            done \
221          ) \
222        )
223
224#
225# Additional install rules
226#
227
228# Install HTML files
229pkgdocdir = $(DOCUMENTATION_PATH)
230DOCDIRS = images www www/api www/api/MagickCore www/api/MagickWand www/Magick++
231HTML_INSTALL_DATA_TARGETS = install-data-html
232install-data-html:
233        $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)
234        $(INSTALL_DATA) $(srcdir)/index.html $(DESTDIR)$(pkgdocdir)
235        @for dir in $(DOCDIRS) ; do \
236          $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
237          for file in $(srcdir)/$$dir/*.* ; do \
238            echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$$dir" ; \
239            $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$$dir ; \
240          done ; \
241        done
242
243# Uninstall HTML files
244HTML_UNINSTALL_DATA_TARGETS = uninstall-data-html
245uninstall-data-html:
246        rm -f $(DESTDIR)$(pkgdocdir)/index.html
247        for dir in $(DOCDIRS) ; do \
248          rm -f -r $(DESTDIR)$(pkgdocdir)/$$dir ; \
249        done
250
251# Ensure that version.h at $(srcdir)/magick/version.h is kept up to date.
252magick-version: magick/version.h
253        @if test -f "$(srcdir)/VisualMagick/installer/inc/version.isx.in" ; then \
254          ./config.status --file="$(srcdir)/../VisualMagick/installer/inc/version.isx" 2> /dev/null ; \
255        fi
256        @if test -n "$(VPATH)" ; then \
257          cmp magick/version.h $(srcdir)/magick/version.h > /dev/null ; \
258          if test $$? -eq 1 ; then \
259            echo "Updating $(srcdir)/magick/version.h ..."; \
260            cp magick/version.h $(srcdir)/magick/version.h ; \
261          fi ; \
262        fi ; \
263        touch magick-version
264
265${srcdir}/configure: ${srcdir}/version.sh
266
267# Automagically reconfigure libtool
268LIBTOOL_DEPS = @LIBTOOL_DEPS@
269libtool: $(LIBTOOL_DEPS)
270        $(SHELL) ./config.status --recheck
271
272# Format C API documentation
273html:
274        doxygen config/MagickCore.dox
275        doxygen config/MagickWand.dox
276
277#
278# Build Windows source Zip and 7Zip balls
279#
280if ZIP_DELEGATE
281DIST_WINDOWS_SRC_ZIP=$(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION)-windows.zip
282else
283DIST_WINDOWS_SRC_ZIP=
284endif
285if P7ZIP_DELEGATE
286DIST_WINDOWS_SRC_7ZIP=$(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION)-windows.7z
287else
288DIST_WINDOWS_SRC_7ZIP=
289endif
290$(DIST_WINDOWS_SRC_ZIP) $(DIST_WINDOWS_SRC_7ZIP) windows-dist:
291        if test -d $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION) ; then \
292          chmod -R u+w $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION) ; \
293          rm -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION) ; \
294        fi
295if ZIP_DELEGATE
296        rm -f $(DIST_WINDOWS_SRC_ZIP)
297        $(ZIP) -r -9 -q  $(DIST_WINDOWS_SRC_ZIP) $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION)
298endif # ZIP_DELEGATE
299if P7ZIP_DELEGATE
300        rm -f $(DIST_WINDOWS_SRC_7ZIP)
301        $(P7ZIP) a -t7z -mx=9 $(DIST_WINDOWS_SRC_7ZIP) $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION)
302        chmod 644 $(DIST_WINDOWS_SRC_7ZIP)
303endif # P7ZIP_DELEGATE
304        rm -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION)
305
306#
307# RPM build support
308#
309if RPM_DELEGATE
310
311DIST_ARCHIVE_SRPM=$(distdir)-$(PACKAGE_RELEASE).src.rpm
312.PHONY: srpm
313$(DIST_ARCHIVE_SRPM) srpm: dist-bzip2
314        rm -f $(DIST_ARCHIVE_SRPM)
315        $(RPM) --define="_sourcedir `pwd`" --define="_srcrpmdir `pwd`" --nodeps --bs ImageMagick.spec
316        @echo ==============================================================
317        @echo $(DIST_ARCHIVE_SRPM) is ready for distribution.
318        @echo ==============================================================
319
320RPMDIR=redhat
321RPMARCH=i386
322
323DIST_ARCHIVE_RPM= \
324        $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
325        $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-c++-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
326        $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-c++-devel-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
327        $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-devel-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
328        $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-perl-$(PACKAGE_VERSION)$(PACKAGE_LIB_SUBVERSION)-$(PACKAGE_RELEASE).$(RPMARCH).rpm
329
330.PHONY: rpm
331rpm:
332        rm -rf $(RPMDIR)
333        mkdir $(RPMDIR)
334        mkdir $(RPMDIR)/BUILD
335        mkdir $(RPMDIR)/RPMS
336        $(MAKE) distcheck
337        $(RPM) --define="_sourcedir `pwd`" --define="_rpmdir `pwd`/$(RPMDIR)/RPMS" --define="_builddir `pwd`/$(RPMDIR)/BUILD" --nodeps -bb ImageMagick.spec
338        rm -rf rpmbuild
339        @echo ==============================================================
340        @echo $(DIST_ARCHIVE_RPM) is ready for distribution.
341        @echo ==============================================================
342
343else
344DIST_ARCHIVE_RPM=
345endif # RPM_DELEGATE
346
347#
348# Build a validated snapshot release and move to the snapshots directory.
349#
350snapshot: distcheck
351        $(MAKE) $(DIST_ARCHIVE_SRPM)
352        $(MAKE) $(DIST_WINDOWS_SRC_ZIP)
353        $(MAKE) $(DIST_WINDOWS_SRC_7ZIP)
354        mv $(DIST_ARCHIVES) $(DIST_WINDOWS_SRC_ZIP) $(DIST_WINDOWS_SRC_7ZIP) $(DIST_ARCHIVE_SRPM) /var/ftp/pub/ImageMagick/beta/
Note: See TracBrowser for help on using the browser.