]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - Makefile
Drop old private APIs that are no longer used/supported.
[thirdparty/cups.git] / Makefile
index 3535a9fde90a399329c7ebd30439d54c95376d96..9b252c64826d9c7e55428273eb24396da71ab422 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,36 +1,26 @@
 #
-# "$Id: Makefile 5217 2006-03-02 21:24:01Z mike $"
+# "$Id$"
 #
-#   Top-level Makefile for the Common UNIX Printing System (CUPS).
+#   Top-level Makefile for CUPS.
 #
-#   Copyright 1997-2006 by Easy Software Products, all rights reserved.
+#   Copyright 2007-2013 by Apple Inc.
+#   Copyright 1997-2007 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
+#   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
+#   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 \
-               $(PHPDIR)
+DIRS   =       cups test $(BUILDDIRS)
 
 
 #
@@ -39,9 +29,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
 
 
@@ -56,6 +92,30 @@ clean:
        done
 
 
+#
+# Remove all non-distribution files...
+#
+
+distclean:     clean
+       $(RM) Makedefs config.h config.log config.status
+       $(RM) cups-config
+       $(RM) conf/cupsd.conf conf/mime.convs conf/pam.std conf/snmp.conf
+       $(RM) doc/help/ref-cupsd-conf.html doc/help/standard.html doc/index.html
+       $(RM) man/client.conf.man
+       $(RM) man/cups-deviced.man man/cups-driverd.man
+       $(RM) man/cups-lpd.man man/cupsaddsmb.man man/cupsd.man
+       $(RM) man/cupsd.conf.man man/drv.man man/lpoptions.man
+       $(RM) packaging/cups.list
+       $(RM) packaging/cups-desc.plist packaging/cups-info.plist
+       $(RM) templates/header.tmpl
+       $(RM) desktop/cups.desktop
+       $(RM) scheduler/cups.sh scheduler/cups-lpd.xinetd
+       $(RM) scheduler/org.cups.cups-lpd.plist scheduler/cups.xml
+       -$(RM) doc/*/index.html
+       -$(RM) templates/*/header.tmpl
+       -$(RM) -r autom4te*.cache clang cups/charmaps cups/locale driver/test
+
+
 #
 # Make dependencies
 #
@@ -68,96 +128,206 @@ depend:
 
 
 #
-# Install object and target files...
+# Run the clang.llvm.org static code analysis tool on the C sources.
+# (at least checker-231 is required for scan-build to work this way)
 #
 
-install:       installhdrs
+.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
+
+
+#
+# Generate a ctags file...
+#
+
+ctags:
+       ctags -R .
+
+
+#
+# Install everything...
+#
+
+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 \
-               echo Installing cups.conf in $(DBUSDIR)...;\
-               $(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...
+#
 
-installhdrs:
-       (cd cups ; $(MAKE) $(MFLAGS) installhdrs) || exit 1;\
-       (cd filter ; $(MAKE) $(MFLAGS) installhdrs) || exit 1;
+install-libs:  libs
+       for dir in $(DIRS); do\
+               echo Installing libraries in $$dir... ;\
+               (cd $$dir; $(MAKE) $(MFLAGS) install-libs) || exit 1;\
+       done
+
+
+#
+# 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
+
+
 #
-# Make software distributions using EPM (http://www.easysw.com/epm/)...
+# Create HTML documentation using Mini-XML's mxmldoc (http://www.msweet.org/)...
 #
 
-EPMFLAGS       =       -v
+apihelp:
+       for dir in cgi-bin cups filter ppdc scheduler; do\
+               echo Generating API help in $$dir... ;\
+               (cd $$dir; $(MAKE) $(MFLAGS) apihelp) || exit 1;\
+       done
+
+framedhelp:
+       for dir in cgi-bin cups filter ppdc scheduler; do\
+               echo Generating framed API help in $$dir... ;\
+               (cd $$dir; $(MAKE) $(MFLAGS) framedhelp) || exit 1;\
+       done
+
 
-aix bsd deb depot inst osx pkg rpm setld slackware swinstall tardist:
+#
+# Create an Xcode docset using Mini-XML's mxmldoc (http://www.msweet.org/)...
+#
+
+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
+
+
+#
+# Lines of code computation...
+#
+
+sloc:
+       for dir in cups scheduler; do \
+               (cd $$dir; $(MAKE) $(MFLAGS) sloc) || exit 1;\
+       done
+
+
+#
+# Make software distributions using EPM (http://www.msweet.org/)...
+#
+
+EPMFLAGS       =       -v --output-dir dist $(EPMARCH)
+
+aix bsd deb depot inst pkg setld slackware swinstall tardist:
        epm $(EPMFLAGS) -f $@ cups packaging/cups.list
 
 epm:
-       epm $(EPMFLAGS) cups packaging/cups.list
+       epm $(EPMFLAGS) -s packaging/installer.gif cups packaging/cups.list
+
+rpm:
+       epm $(EPMFLAGS) -f rpm -s packaging/installer.gif cups packaging/cups.list
+
+.PHONEY:       dist
+dist:  all
+       $(RM) -r dist
+       $(MAKE) $(MFLAGS) epm
+       case `uname` in \
+               *BSD*) $(MAKE) $(MFLAGS) bsd;; \
+               Darwin*) $(MAKE) $(MFLAGS) osx;; \
+               Linux*) test ! -x /usr/bin/rpm || $(MAKE) $(MFLAGS) rpm;; \
+               SunOS*) $(MAKE) $(MFLAGS) pkg;; \
+       esac
+
+
+#
+# Don't run top-level build targets in parallel...
+#
+
+.NOTPARALLEL:
 
 
 #
-# End of "$Id: Makefile 5217 2006-03-02 21:24:01Z mike $".
+# End of "$Id$".
 #