blob: accaacc13548e8753fe3109cc8f60d777e0065ce [file] [log] [blame]
#
# "$Id$"
#
# Makefile for the CUPS base drivers.
#
# Copyright 2007-2008 by Apple Inc.
# Copyright 2002-2005 by Easy Software Products.
#
# 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
# file is missing or damaged, see the license at "http://www.cups.org/".
#
#
# Include standard definitions...
#
include ../Makedefs
#
# Object files...
#
LIBOBJS = \
attr.o \
check.o \
cmyk.o \
dither.o \
lut.o \
pack.o \
rgb.o \
srgb.o
LIB32OBJS = $(LIBOBJS:.o=.32.o)
LIB64OBJS = $(LIBOBJS:.o=.64.o)
OBJS = \
commandtoescpx.o \
commandtopclx.o \
rastertoescpx.o \
rastertopclx.o \
pcl-common.o \
testcmyk.o \
testdither.o \
testrgb.o \
$(LIBOBJS) \
$(LIB32OBJS) \
$(LIB64OBJS)
LIBTARGETS = \
$(LIBCUPSDRIVER) \
$(LIB32CUPSDRIVER) \
$(LIB64CUPSDRIVER) \
libcupsdriver.a \
testcmyk \
testdither \
testrgb
TARGETS = \
$(LIBTARGETS) \
commandtoescpx \
commandtopclx \
rastertoescpx \
rastertopclx
#
# Make everything...
#
all: $(TARGETS)
#
# Make library targets...
#
libs: $(LIBTARGETS)
#
# Clean everything...
#
clean:
$(RM) $(OBJS) core
$(RM) *.bck core.*
$(RM) $(TARGETS)
$(RM) -r images
$(RM) libcupsdriver.so libcupsdriver.sl libcupsdriver.dylib
$(RM) -r 32bit 64bit
#
# Update dependencies...
#
depend:
touch Dependencies.tmp
makedepend -Y -I.. -fDependencies.tmp $(OBJS:.o=.c) >/dev/null 2>&1
$(RM) Dependencies
cp Dependencies.tmp Dependencies
sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' Dependencies.tmp >>Dependencies
sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' Dependencies.tmp >>Dependencies
$(RM) Dependencies.tmp
#
# Install all targets...
#
install: all install-data install-headers install-libs install-exec
#
# Install data files...
#
install-data:
#
# Install programs...
#
install-exec:
$(INSTALL_DIR) $(SERVERBIN)/filter
for file in commandtoescpx commandtopclx rastertoescpx rastertopclx; do \
$(INSTALL_BIN) $$file $(SERVERBIN)/filter; \
done
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
for file in commandtoescpx commandtopclx rastertoescpx rastertopclx; do \
cp $$file $(SYMROOT); \
done \
fi
#
# Install headers...
#
install-headers:
echo Installing header files in $(INCLUDEDIR)/cups...
$(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
$(INSTALL_DATA) driver.h $(INCLUDEDIR)/cups
#
# Install libraries...
#
install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
echo Installing libraries in $(LIBDIR)...
$(INSTALL_DIR) -m 755 $(LIBDIR)
$(INSTALL_LIB) $(LIBCUPSDRIVER) $(LIBDIR)
if test $(LIBCUPSDRIVER) = "libcupsdriver.so.1" -o $(LIBCUPSDRIVER) = "libcupsdriver.sl.1"; then \
$(RM) $(LIBDIR)/`basename $(LIBCUPSDRIVER) .1`; \
$(LN) $(LIBCUPSDRIVER) $(LIBDIR)/`basename $(LIBCUPSDRIVER) .1`; \
fi
if test $(LIBCUPSDRIVER) = "libcupsdriver.1.dylib"; then \
$(RM) $(LIBDIR)/libcupsdriver.dylib; \
$(LN) $(LIBCUPSDRIVER) $(LIBDIR)/libcupsdriver.dylib; \
fi
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
cp $(LIBCUPSDRIVER) $(SYMROOT); \
fi
installstatic:
$(INSTALL_DIR) -m 755 $(LIBDIR)
$(INSTALL_LIB) libcupsdriver.a $(LIBDIR)
$(RANLIB) $(LIBDIR)/libcupsdriver.a
install32bit:
echo Installing libraries in $(LIB32DIR)...
$(INSTALL_DIR) -m 755 $(LIB32DIR)
$(INSTALL_LIB) 32bit/libcupsdriver.so.1 $(LIB32DIR)/libcupsdriver.so.1
$(LN) libcupsdriver.so.1 $(LIB32DIR)/libcupsdriver.so
install64bit:
echo Installing libraries in $(LIB64DIR)...
$(INSTALL_DIR) -m 755 $(LIB64DIR)
$(INSTALL_LIB) 64bit/libcupsdriver.so.1 $(LIB64DIR)/libcupsdriver.so.1
$(LN) libcupsdriver.so.1 $(LIB64DIR)/libcupsdriver.so
#
# Uninstall...
#
uninstall: $(UNINSTALL32) $(UNINSTALL64)
for file in commandtoescpx commandtopclx rastertoescpx rastertopclx; do \
$(RM) $(SERVERBIN)/filter/$$file; \
done
$(RM) $(LIBDIR)/libcupsdriver.1.dylib
$(RM) $(LIBDIR)/libcupsdriver.a
$(RM) $(LIBDIR)/libcupsdriver.dylib
$(RM) $(LIBDIR)/libcupsdriver_s.a
$(RM) $(LIBDIR)/libcupsdriver.sl
$(RM) $(LIBDIR)/libcupsdriver.sl.1
$(RM) $(LIBDIR)/libcupsdriver.so
$(RM) $(LIBDIR)/libcupsdriver.so.1
-$(RMDIR) $(LIBDIR)
$(RM) $(INCLUDEDIR)/cups/driver.h
-$(RMDIR) $(INCLUDEDIR)/cups
uninstall32bit:
$(RM) $(LIB32DIR)/libcupsdriver.so
$(RM) $(LIB32DIR)/libcupsdriver.so.1
-$(RMDIR) $(LIB32DIR)
uninstall64bit:
$(RM) $(LIB64DIR)/libcupsdriver.so
$(RM) $(LIB64DIR)/libcupsdriver.so.1
-$(RMDIR) $(LIB64DIR)
#
# Automatic API help files...
#
apihelp:
mxmldoc --section "Programming" \
--title "Printer Driver API" \
--css ../doc/cups-printable.css \
--header api-driver.header --intro api-driver.shtml \
driver.h $(LIBOBJS:.o=.c) >../doc/help/api-driver.html
framedhelp:
mxmldoc --framed api-driver \
--section "Programming" \
--title "Printer Driver API" \
--css ../doc/cups-printable.css \
--header api-driver.header --intro api-driver.shtml \
driver.h $(LIBOBJS:.o=.c)
#
# commandtopclx, the PCL command printer driver.
#
commandtopclx: commandtopclx.o $(LIBCUPSDRIVER) ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o $@ commandtopclx.o -L. -lcupsdriver $(LIBS)
#
# commandtoescpx, the ESC/P command printer driver.
#
commandtoescpx: commandtoescpx.o $(LIBCUPSDRIVER) ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o $@ commandtoescpx.o -L. -lcupsdriver $(LIBS)
#
# rastertoescpx, the ESC/P raster printer driver.
#
rastertoescpx: rastertoescpx.o $(LIBCUPSDRIVER) ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o $@ rastertoescpx.o -L. -lcupsdriver \
$(LINKCUPSIMAGE) $(LIBS)
#
# rastertopclx, the ESC/P raster printer driver.
#
rastertopclx: rastertopclx.o pcl-common.o $(LIBCUPSDRIVER) \
../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o $@ rastertopclx.o pcl-common.o -L. -lcupsdriver \
$(LINKCUPSIMAGE) $(LIBS)
#
# testcmyk, test cmyk separation functions.
#
testcmyk: testcmyk.o libcupsdriver.a ../cups/libcups.a
echo Linking $@...
$(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testcmyk.o libcupsdriver.a \
../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
if test ! -d test; then \
mkdir test; \
fi
echo Running CMYK API tests...
./testcmyk > test/testcmyk.log
#
# testdither, test dithering functions.
#
testdither: testdither.o libcupsdriver.a ../cups/libcups.a
echo Linking $@...
$(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testdither.o libcupsdriver.a \
../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
if test ! -d test; then \
mkdir test; \
fi
echo Running dither API tests...
./testdither > test/0-255.pgm 2>test/0-255.log
./testdither 0 127 255 > test/0-127-255.pgm 2>test/0-127-255.log
./testdither 0 85 170 255 > test/0-85-170-255.pgm 2>test/0-85-170-255.log
./testdither 0 63 127 170 198 227 255 > test/0-63-127-170-198-227-255.pgm 2>test/0-63-127-170-198-227-255.log
./testdither 0 210 383 > test/0-210-383.pgm 2>test/0-210-383.log
./testdither 0 82 255 > test/0-82-255.pgm 2>test/0-82-255.log
./testdither 0 510 > test/0-510.pgm 2>test/0-510.log
./testdither 0 1020 > test/0-1020.pgm 2>test/0-1020.log
#
# testrgb, test RGB separation functions.
#
testrgb: testrgb.o libcupsdriver.a ../cups/libcups.a
echo Linking $@...
$(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testrgb.o libcupsdriver.a \
../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
if test ! -d test; then \
mkdir test; \
fi
echo Running RGB API tests...
./testrgb > test/testrgb.log 2>&1 || echo "RGB tests failed!"
#
# libcupsdriver.so.1, libcupsdriver.sl.1
#
libcupsdriver.so.1 libcupsdriver.sl.1: $(LIBOBJS)
echo Linking $@...
$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
$(RM) `basename $@ .1`
$(LN) $@ `basename $@ .1`
#
# 32bit/libcupsdriver.so.1
#
32bit/libcupsdriver.so.1: $(LIB32OBJS)
echo Linking 32-bit $@...
-mkdir 32bit
$(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS)
$(RM) 32bit/libcupsdriver.so
$(LN) libcupsdriver.so.1 32bit/libcupsdriver.so
#
# 64bit/libcupsdriver.so.1
#
64bit/libcupsdriver.so.1: $(LIB64OBJS)
echo Linking 64-bit $@...
-mkdir 64bit
$(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS)
$(RM) 64bit/libcupsdriver.so
$(LN) libcupsdriver.so.1 64bit/libcupsdriver.so
#
# libcupsdriver.1.dylib
#
libcupsdriver.1.dylib: $(LIBOBJS) libcupsdriver.exp
echo Linking $@...
$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
-install_name $(libdir)/$@ \
-current_version 1.0.0 \
-compatibility_version 1.0.0 \
-exported_symbols_list libcupsdriver.exp \
$(LIBOBJS) $(LIBS)
$(RM) libcupsdriver.dylib
$(LN) $@ libcupsdriver.dylib
#
# libcupsdriver_s.a
#
libcupsdriver_s.a: $(LIBOBJS)
echo Creating $@...
$(DSO) $(DSOFLAGS) -o libcupsdriver_s.o $(LIBOBJS) $(LIBS)
$(RM) $@
$(AR) $(ARFLAGS) $@ libcupsdriver_s.o
#
# libcupsdriver.la
#
libcupsdriver.la: $(LIBOBJS)
echo Linking $@...
$(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
-version-info 1:0 $(LIBS)
#
# libcupsdriver.a
#
libcupsdriver.a: $(LIBOBJS)
echo Archiving $@...
$(RM) $@
$(AR) $(ARFLAGS) $@ $(LIBOBJS)
$(RANLIB) $@
#
# Include dependencies...
#
include Dependencies
#
# End of "$Id$".
#