]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - Makefile
Fix .PHONY declaration
[thirdparty/cups.git] / Makefile
index 428bf20fe92548d2fd5c3a2c0afebe0c0c851cc9..afc90ce1e5c0c6da79d8867021f3f8c7495482a3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,35 +1,24 @@
 #
-# "$Id: Makefile 5136 2006-02-19 18:46:46Z mike $"
+# Top-level Makefile for CUPS.
 #
-#   Top-level Makefile for the Common UNIX Printing System (CUPS).
+# Copyright 2007-2016 by Apple Inc.
+# Copyright 1997-2007 by Easy Software Products, all rights reserved.
 #
-#   Copyright 1997-2006 by Easy Software Products, all rights reserved.
-#
-#   These coded instructions, statements, and computer programs are the
-#   property of Easy Software Products and are protected by Federal
-#   copyright law.  Distribution and use rights are outlined in the file
-#   "LICENSE.txt" which should have been included with this file.  If this
-#   file is missing or damaged please contact Easy Software Products
-#   at:
-#
-#       Attn: CUPS Licensing Information
-#       Easy Software Products
-#       44141 Airport View Drive, Suite 204
-#       Hollywood, Maryland 20636-3142 USA
-#
-#       Voice: (301) 373-9600
-#       EMail: cups-info@cups.org
-#         WWW: http://www.cups.org
+# These coded instructions, statements, and computer programs are the
+# property of Apple Inc. and are protected by Federal copyright
+# law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+# which should have been included with this file.  If this file is
+# missing or damaged, see the license at "http://www.cups.org/".
 #
 
 include Makedefs
 
+
 #
 # Directories to make...
 #
 
-DIRS   =       cups backend berkeley cgi-bin filter locale man monitor \
-               notifier pdftops scheduler systemv test
+DIRS   =       cups test $(BUILDDIRS)
 
 
 #
@@ -38,9 +27,55 @@ DIRS =       cups backend berkeley cgi-bin filter locale man monitor \
 
 all:
        chmod +x cups-config
+       echo Using ARCHFLAGS="$(ARCHFLAGS)"
+       echo Using ALL_CFLAGS="$(ALL_CFLAGS)"
+       echo Using ALL_CXXFLAGS="$(ALL_CXXFLAGS)"
+       echo Using CC="$(CC)"
+       echo Using CXX="$(CC)"
+       echo Using DSOFLAGS="$(DSOFLAGS)"
+       echo Using LDFLAGS="$(LDFLAGS)"
+       echo Using LIBS="$(LIBS)"
        for dir in $(DIRS); do\
                echo Making all in $$dir... ;\
-               (cd $$dir ; $(MAKE) $(MFLAGS)) || exit 1;\
+               (cd $$dir ; $(MAKE) $(MFLAGS) all $(UNITTESTS)) || exit 1;\
+       done
+
+
+#
+# Make library targets...
+#
+
+libs:
+       echo Using ARCHFLAGS="$(ARCHFLAGS)"
+       echo Using ALL_CFLAGS="$(ALL_CFLAGS)"
+       echo Using ALL_CXXFLAGS="$(ALL_CXXFLAGS)"
+       echo Using CC="$(CC)"
+       echo Using CXX="$(CC)"
+       echo Using DSOFLAGS="$(DSOFLAGS)"
+       echo Using LDFLAGS="$(LDFLAGS)"
+       echo Using LIBS="$(LIBS)"
+       for dir in $(DIRS); do\
+               echo Making libraries in $$dir... ;\
+               (cd $$dir ; $(MAKE) $(MFLAGS) libs) || exit 1;\
+       done
+
+
+#
+# Make unit test targets...
+#
+
+unittests:
+       echo Using ARCHFLAGS="$(ARCHFLAGS)"
+       echo Using ALL_CFLAGS="$(ALL_CFLAGS)"
+       echo Using ALL_CXXFLAGS="$(ALL_CXXFLAGS)"
+       echo Using CC="$(CC)"
+       echo Using CXX="$(CC)"
+       echo Using DSOFLAGS="$(DSOFLAGS)"
+       echo Using LDFLAGS="$(LDFLAGS)"
+       echo Using LIBS="$(LIBS)"
+       for dir in $(DIRS); do\
+               echo Making all in $$dir... ;\
+               (cd $$dir ; $(MAKE) $(MFLAGS) unittests) || exit 1;\
        done
 
 
@@ -55,6 +90,26 @@ clean:
        done
 
 
+#
+# Remove all non-distribution files...
+#
+
+distclean:     clean
+       $(RM) Makedefs config.h config.log config.status
+       $(RM) conf/cups-files.conf conf/cupsd.conf conf/mime.convs conf/pam.std conf/snmp.conf
+       $(RM) cups-config
+       $(RM) data/testprint
+       $(RM) desktop/cups.desktop
+       $(RM) doc/index.html
+       $(RM) man/client.conf.man man/cups-files.conf.man man/cups-lpd.man man/cups-snmp.man man/cupsaddsmb.man man/cupsd.conf.man man/cupsd.man man/lpoptions.man
+       $(RM) packaging/cups.list
+       $(RM) scheduler/cups-lpd.xinetd scheduler/cups.sh scheduler/cups.xml scheduler/org.cups.cups-lpd.plist scheduler/org.cups.cups-lpdAT.service scheduler/org.cups.cupsd.path scheduler/org.cups.cupsd.service scheduler/org.cups.cupsd.socket
+       $(RM) templates/header.tmpl
+       -$(RM) doc/*/index.html
+       -$(RM) templates/*/header.tmpl
+       -$(RM) -r autom4te*.cache clang cups/charmaps cups/locale
+
+
 #
 # Make dependencies
 #
@@ -67,113 +122,214 @@ depend:
 
 
 #
-# Install object and target files...
+# Run the Clang static code analysis tool on the sources, available here:
+#
+#    http://clang-analyzer.llvm.org
+#
+# At least checker-231 is required.
+#
+# Alternatively, use "--analyze -Xanalyzer -analyzer-output=text" for OPTIM (text
+# output instead of HTML...)
+#
+
+.PHONY: clang clang-changes
+clang:
+       $(RM) -r clang
+       scan-build -V -k -o `pwd`/clang $(MAKE) $(MFLAGS) clean all
+clang-changes:
+       scan-build -V -k -o `pwd`/clang $(MAKE) $(MFLAGS) all
+
+
+#
+# Run the STACK tool on the sources, available here:
+#
+#    http://css.csail.mit.edu/stack/
+#
+# Do the following to pass options to configure:
+#
+#    make CONFIGFLAGS="--foo --bar" stack
+#
+
+.PHONY: stack
+stack:
+       stack-build ./configure $(CONFIGFLAGS)
+       stack-build $(MAKE) $(MFLAGS) clean all
+       poptck
+       $(MAKE) $(MFLAGS) distclean
+       $(RM) */*.ll
+       $(RM) */*.ll.out
+
+
+#
+# Generate a ctags file...
+#
+
+ctags:
+       ctags -R .
+
+
+#
+# Install everything...
 #
 
-install:       installhdrs
+install:       install-data install-headers install-libs install-exec
+
+
+#
+# Install data files...
+#
+
+install-data:
+       echo Making all in cups...
+       (cd cups; $(MAKE) $(MFLAGS) all)
        for dir in $(DIRS); do\
-               echo Installing in $$dir... ;\
-               (cd $$dir; $(MAKE) $(MFLAGS) install) || exit 1;\
+               echo Installing data files in $$dir... ;\
+               (cd $$dir; $(MAKE) $(MFLAGS) install-data) || exit 1;\
        done
-       echo Installing in conf...
-       (cd conf; $(MAKE) $(MFLAGS) install)
-       echo Installing in data...
-       (cd data; $(MAKE) $(MFLAGS) install)
-       echo Installing in doc...
-       (cd doc; $(MAKE) $(MFLAGS) install)
-       echo Installing in fonts...
-       (cd fonts; $(MAKE) $(MFLAGS) install)
-       echo Installing in ppd...
-       (cd ppd; $(MAKE) $(MFLAGS) install)
-       echo Installing in templates...
-       (cd templates; $(MAKE) $(MFLAGS) install)
        echo Installing cups-config script...
-       $(INSTALL_DIR) $(BINDIR)
+       $(INSTALL_DIR) -m 755 $(BINDIR)
        $(INSTALL_SCRIPT) cups-config $(BINDIR)/cups-config
-       echo Installing startup script...
-       if test "x$(INITDIR)" != "x"; then \
-               $(INSTALL_DIR) $(BUILDROOT)$(INITDIR)/init.d; \
-               $(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDIR)/init.d/cups; \
-               $(INSTALL_DIR) $(BUILDROOT)$(INITDIR)/rc0.d; \
-               $(INSTALL_SCRIPT) init/cups.sh  $(BUILDROOT)$(INITDIR)/rc0.d/K00cups; \
-               $(INSTALL_DIR) $(BUILDROOT)$(INITDIR)/rc2.d; \
-               $(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDIR)/rc2.d/S99cups; \
-               $(INSTALL_DIR) $(BUILDROOT)$(INITDIR)/rc3.d; \
-               $(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDIR)/rc3.d/S99cups; \
-               $(INSTALL_DIR) $(BUILDROOT)$(INITDIR)/rc5.d; \
-               $(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDIR)/rc5.d/S99cups; \
-       fi
-       if test "x$(INITDIR)" = "x" -a "x$(INITDDIR)" != "x"; then \
-               $(INSTALL_DIR) $(BUILDROOT)$(INITDDIR); \
-               if test "$(INITDDIR)" = "/System/Library/StartupItems/PrintingServices"; then \
-                       $(INSTALL_SCRIPT) init/PrintingServices $(BUILDROOT)$(INITDDIR)/PrintingServices; \
-                       $(INSTALL_DATA) init/StartupParameters.plist $(BUILDROOT)$(INITDDIR)/StartupParameters.plist; \
-                       $(INSTALL_DIR) $(BUILDROOT)$(INITDDIR)/Resources/English.lproj; \
-                       $(INSTALL_DATA) init/Localizable.strings $(BUILDROOT)$(INITDDIR)/Resources/English.lproj/Localizable.strings; \
-               elif test "$(INITDDIR)" = "/System/Library/LaunchDaemons"; then \
-                       $(INSTALL_DATA) init/org.cups.cupsd.plist $(BUILDROOT)$(DEFAULT_LAUNCHD_CONF); \
-               else \
-                       $(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDDIR)/cups; \
-               fi \
-       fi
-       if test "x$(DBUSDIR)" != "x"; then \
-               $(INSTALL_DIR) $(BUILDROOT)$(DBUSDIR); \
-               $(INSTALL_DATA) packaging/cups-dbus.conf $(BUILDROOT)$(DBUSDIR)/cups.conf; \
+
+
+#
+# Install header files...
+#
+
+install-headers:
+       for dir in $(DIRS); do\
+               echo Installing header files in $$dir... ;\
+               (cd $$dir; $(MAKE) $(MFLAGS) install-headers) || exit 1;\
+       done
+       if test "x$(privateinclude)" != x; then \
+               echo Installing config.h into $(PRIVATEINCLUDE)...; \
+               $(INSTALL_DIR) -m 755 $(PRIVATEINCLUDE); \
+               $(INSTALL_DATA) config.h $(PRIVATEINCLUDE)/config.h; \
        fi
 
 
 #
-# Install source and header files...
+# Install programs...
 #
 
-installsrc:
-       gnutar --dereference --exclude=.svn -cf - . | gnutar -C $(SRCROOT) -xf -
+install-exec:  all
+       for dir in $(DIRS); do\
+               echo Installing programs in $$dir... ;\
+               (cd $$dir; $(MAKE) $(MFLAGS) install-exec) || exit 1;\
+       done
+
+
+#
+# Install libraries...
+#
+
+install-libs:  libs
+       for dir in $(DIRS); do\
+               echo Installing libraries in $$dir... ;\
+               (cd $$dir; $(MAKE) $(MFLAGS) install-libs) || exit 1;\
+       done
+
 
-installhdrs:
-       (cd cups ; $(MAKE) $(MFLAGS) installhdrs) || exit 1;\
-       (cd filter ; $(MAKE) $(MFLAGS) installhdrs) || exit 1;
+#
+# Uninstall object and target files...
+#
+
+uninstall:
+       for dir in $(DIRS); do\
+               echo Uninstalling in $$dir... ;\
+               (cd $$dir; $(MAKE) $(MFLAGS) uninstall) || exit 1;\
+       done
+       echo Uninstalling cups-config script...
+       $(RM) $(BINDIR)/cups-config
+       -$(RMDIR) $(BINDIR)
 
 
 #
 # Run the test suite...
 #
 
-check test:    all
+test:  all unittests
        echo Running CUPS test suite...
        cd test; ./run-stp-tests.sh
 
 
+check: all unittests
+       echo Running CUPS test suite with defaults...
+       cd test; ./run-stp-tests.sh 1 0 n n
+
+debugcheck:    all unittests
+       echo Running CUPS test suite with debug printfs...
+       cd test; ./run-stp-tests.sh 1 0 n y
+
+
+#
+# Create HTML documentation using Mini-XML's mxmldoc (http://www.msweet.org/)...
+#
+
+apihelp:
+       for dir in cups filter; do\
+               echo Generating API help in $$dir... ;\
+               (cd $$dir; $(MAKE) $(MFLAGS) apihelp) || exit 1;\
+       done
+
+
 #
-# Make software distributions using EPM (http://www.easysw.com/epm)...
+# Create an Xcode docset using Mini-XML's mxmldoc (http://www.msweet.org/)...
 #
 
-EPMFLAGS       =       -v
+docset:        apihelp
+       echo Generating docset directory tree...
+       $(RM) -r org.cups.docset
+       mkdir -p org.cups.docset/Contents/Resources/Documentation/help
+       mkdir -p org.cups.docset/Contents/Resources/Documentation/images
+       cd man; $(MAKE) $(MFLAGS) html
+       cd doc; $(MAKE) $(MFLAGS) docset
+       cd cgi-bin; $(MAKE) $(MFLAGS) makedocset
+       cgi-bin/makedocset org.cups.docset \
+               `svnversion . | sed -e '1,$$s/[a-zA-Z]//g'` \
+               doc/help/api-*.tokens
+       $(RM) doc/help/api-*.tokens
+       echo Indexing docset...
+       /Applications/Xcode.app/Contents/Developer/usr/bin/docsetutil index org.cups.docset
+       echo Generating docset archive and feed...
+       $(RM) org.cups.docset.atom
+       /Applications/Xcode.app/Contents/Developer/usr/bin/docsetutil package --output org.cups.docset.xar \
+               --atom org.cups.docset.atom \
+               --download-url http://www.cups.org/org.cups.docset.xar \
+               org.cups.docset
 
-aix:
-       epm $(EPMFLAGS) -f aix cups packaging/cups.list
 
-bsd:
-       epm $(EPMFLAGS) -f bsd cups packaging/cups.list
+#
+# Lines of code computation...
+#
 
-epm:
-       epm $(EPMFLAGS) cups packaging/cups.list
+sloc:
+       for dir in cups scheduler; do \
+               (cd $$dir; $(MAKE) $(MFLAGS) sloc) || exit 1;\
+       done
 
-rpm:
-       epm $(EPMFLAGS) -f rpm cups packaging/cups.list
 
-deb:
-       epm $(EPMFLAGS) -f deb cups packaging/cups.list
+#
+# Make software distributions using EPM (http://www.msweet.org/)...
+#
 
-depot:
-       epm $(EPMFLAGS) -f depot cups packaging/cups.list
+EPMFLAGS       =       -v --output-dir dist $(EPMARCH)
 
-pkg:
-       epm $(EPMFLAGS) -f pkg cups packaging/cups.list
+bsd deb epm pkg rpm slackware:
+       epm $(EPMFLAGS) -f $@ cups packaging/cups.list
 
-tardist:
-       epm $(EPMFLAGS) -f tardist cups packaging/cups.list
+.PHONY:        dist
+dist:  all
+       $(RM) -r dist
+       $(MAKE) $(MFLAGS) epm
+       case `uname` in \
+               *BSD*) $(MAKE) $(MFLAGS) bsd;; \
+               Linux*) test ! -x /usr/bin/rpm || $(MAKE) $(MFLAGS) rpm;; \
+               SunOS*) $(MAKE) $(MFLAGS) pkg;; \
+       esac
 
 
 #
-# End of "$Id: Makefile 5136 2006-02-19 18:46:46Z mike $".
+# Don't run top-level build targets in parallel...
 #
+
+.NOTPARALLEL: