INSTALL.txt   [plain text]

INSTALL - CUPS v1.1.15 - 05/13/2002

This file describes how to compile and install CUPS from source
code. For more information on CUPS see the file called
"README.txt".  A complete change log can be found in


You'll need ANSI-compliant C and C++ compilers, plus a make
program and Bourne shell.  The GNU compiler tools work well -
we've tested the current CUPS code against GCC 2.95.x with
excellent results.

The makefiles used by the project should work with all versions
of make.  We've tested them with GNU make as well as the make
programs shipped by Compaq, HP, SGI, and Sun.  FreeBSD users
should use GNU make (gmake).

Besides these tools you'll want the following libraries:

    - JPEG 6b or higher
    - PNG 1.0.6 or higher
    - TIFF 3.4 or higher
    - ZLIB 1.1.3 or higher

CUPS will compile and run without these, however you'll miss out on
many of the features provided by CUPS.


The CUPS CVS repository doesn't hold a copy of the pre-built
configure script.  You'll need to run the GNU autoconf software
(2.52 or higher) before compiling the software from CVS:

    autoconf ENTER


CUPS uses GNU autoconf, so you should find the usual "configure"
script in the main CUPS source directory.  To configure CUPS for
your system, type:

    ./configure ENTER

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 --prefix=/some/directory ENTER

If the PNG, JPEG, TIFF, and ZLIB libraries are not installed in
a system default location (typically "/usr/include" and
"/usr/lib") you'll need to set the CFLAGS, CXXFLAGS, DSOFLAGS,
and LDFLAGS environment variables prior to running configure:

    setenv CFLAGS "-I/some/directory" ENTER
    setenv CXXFLAGS "-I/some/directory" ENTER
    setenv DSOFLAGS "-L/some/directory" ENTER
    setenv LDFLAGS "-L/some/directory" ENTER
    ./configure ... ENTER


    CFLAGS="-I/some/directory"; export CFLAGS ENTER
    CXXFLAGS="-I/some/directory"; export CXXFLAGS ENTER
    DSOFLAGS="-L/some/directory"; export DSOFLAGS ENTER
    LDFLAGS="-L/some/directory"; export LDFLAGS ENTER
    ./configure ... ENTER

To enable support for encryption, you'll also want to add the
"--enable-ssl" option:

    ./configure --enable-ssl

SSL and TLS support require the OpenSSL library, available at:

If the OpenSSL header files and libraries are not in a standard
location, specify the locations of these files using the
--with-openssl-includes and --with-openssl-libs directives:

    ./configure --enable-ssl \
        --with-openssl-includes=/foo/bar/include \

See the file "ENCRYPTION.txt" for information on using the
encryption support in CUPS.

Once you have configured things, just type:

    make ENTER

or if you have FreeBSD, NetBSD, or OpenBSD type:

    gmake ENTER

to build the software.


Once you have built the software you need to install it.  The
"install" target provides a quick way to install the software on
your local system:

    make install ENTER

or for FreeBSD, NetBSD, or OpenBSD:

    gmake install ENTER

You can also build binary packages that can be installed on other
machines using the RPM spec file ("cups.spec") or EPM list file
("cups.list").  The latter also supports building of binary RPMs,
so it may be more convenient to use - we use EPM to build all of
our binary distributions.

You can find the RPM software at:

The EPM software is at:


The top level makefile supports generation of many types of binary
distributions using EPM.  To build a binary distribution type:

    make <format> ENTER


    gmake <format> ENTER

for FreeBSD, NetBSD, and OpenBSD.  The <format> target is one of
the following:

    epm      - Builds a portable shell script and tar file based
               distribution.  This format will also backup your
	       existing printing system if you decide to remove
	       CUPS at some future time.
    aix      - Builds an AIX binary distribution.
    bsd      - Builds a *BSD binary distribution.
    deb      - Builds a Debian binary distribution.
    depot    - Builds a HP-UX binary distribution.
    pkg      - Builds a Solaris binary distribution.
    rpm      - Builds a RPM binary distribution.
    tardist  - Builds an IRIX binary distribution.


If you have problems, READ THE DOCUMENTATION FIRST!  If the
documentation does not solve your problems please send an email
to "".  Include your operating system and
version, compiler and version, and any errors or problems you've
run into. The "/var/log/cups/error_log" file should also be sent,
as it often helps to determine the cause of your problem.

If you are running a version of Linux, be sure to provide the
Linux distribution you have, too.

Please note that the "" email address goes
to the CUPS developers; they are busy people, so your email may
go unanswered for days or weeks.  In general, only general build
or distribution problems will actually get answered - for
end-user support see the "README.txt" for a summary of the
resources available.