CUPSLITE - CUPS v1.5svn - 2009-09-21 ------------------------------------ This file describes how to compile the lightweight version of CUPS called "CUPS-Lite". If you want to use the full version of CUPS, read the "INSTALL.txt" file instead which describes how to compile and install the regular version of CUPS. WHAT IS CUPS-LITE? As its name implies, CUPS-Lite is a lightweight version of the CUPS software that is targeted for environments where resources and/or OS support for a separate printing system is limited. Printers are advertised using DNS service records (aka Bonjour or DNS Service Discovery) and support printing of JPEG, PDF, and Universal Raster Format (URF) files. The latter is a multi-page image format described in RFC NNNN, "Universal Raster Format - image/urf MIME Sub-type Registration". BEFORE YOU BEGIN You'll need ANSI-compliant C and C++ compilers, plus a make program and POSIX-compliant shell (/bin/sh). The GNU compiler tools and Bash work well and we have tested the current CUPS code against several versions of GCC with excellent results. The makefiles used by the project should work with most versions of make. We've tested them with GNU make as well as the make programs shipped by Compaq, HP, SGI, and Sun. BSD users should use GNU make (gmake) since BSD make does not support "include". Besides these tools you need the JPEG library for image and PostScript printer support, HPIJS for HP printer support, and mDNSResponder for printer discovery and advertising. PDF printing support on Linux and Windows requires the Xpdf or Poppler software. COMPILING THE SUBVERSION REPOSITORY CODE The CUPS Subversion repository doesn't hold a copy of the pre-built configure script. You'll need to run the GNU autoconf software (2.60 or higher) to create it: autoconf CONFIGURATION CUPS uses GNU autoconf, so you should find the usual "configure" script in the main CUPS source directory. To configure CUPS-Lite for your system, type: ./configure --with-components=cupslite The default installation will put the CUPS software in the "/etc", "/usr", and "/var" directories on your system, which will overwrite any existing printing commands on your system. Use the "--prefix" option to install the CUPS software in another location: ./configure --with-components=cupslite --prefix=/some/directory To see a complete list of configuration options, use the --help option: ./configure --help If any of the dependent libraries are not installed in a system default location (typically "/usr/include" and "/usr/lib") you'll need to set the CFLAGS, CPPFLAGS, CXXFLAGS, DSOFLAGS, and LDFLAGS environment variables prior to running configure: setenv CFLAGS "-I/some/directory" setenv CPPFLAGS "-I/some/directory" setenv CXXFLAGS "-I/some/directory" setenv DSOFLAGS "-L/some/directory" setenv LDFLAGS "-L/some/directory" ./configure --with-components=cupslite ... or: CFLAGS="-I/some/directory" \ CPPFLAGS="-I/some/directory" \ CXXFLAGS="-I/some/directory" \ DSOFLAGS="-L/some/directory" \ LDFLAGS="-L/some/directory" \ ./configure --with-components=cupslite ... The "--enable-debug" option compiles CUPS with debugging information enabled. Additional debug logging support can be enabled using the "--enable-debug-printfs" option - these debug messages are enabled using the CUPS_DEBUG_LOG environment variable at run-time. CUPS also includes an extensive set of unit tests that can be used to find and diagnose a variety of common problems - use the "--enable-unit-tests" configure option to run them at build time. [TODO: make these work with cupslite build] Once you have configured things, just type: make ENTER or if you have FreeBSD, NetBSD, or OpenBSD type: gmake ENTER to build the software. TESTING THE SOFTWARE Run the following command to test cupslite on port 8631: cupslite/cupslite -p 8631 This mode advertises three virtual printers that simulate typical inkjet, B&W laser, and color laser printers. HACKING THE SOFTWARE TODO