#
# "$Id: Makefile 313 2007-02-16 20:17:29Z mike $"
#
#   Makefile for the CUPS PPD Compiler.
#
#   Copyright 2002-2006 by Easy Software Products.
#
#   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 USA
#
#       Voice: (301) 373-9600
#       EMail: cups-info@cups.org
#         WWW: http://www.cups.org
#

#
# Include standard definitions...
#

include ../Makedefs


#
# Object files...
#

PPDCOBJS	= \
		ppdc-array.o \
		ppdc-attr.o \
		ppdc-catalog.o \
		ppdc-choice.o \
		ppdc-constraint.o \
		ppdc-driver.o \
		ppdc-file.o \
		ppdc-filter.o \
		ppdc-font.o \
		ppdc-group.o \
		ppdc-import.o \
		ppdc-mediasize.o \
		ppdc-message.o \
		ppdc-option.o \
		ppdc-profile.o \
		ppdc-shared.o \
		ppdc-source.o \
		ppdc-string.o \
		ppdc-variable.o

OBJS		= \
		drv.o \
		ppdc.o \
		ppdhtml.o \
		ppdi.o \
		ppdmerge.o \
		ppdpo.o \
		$(PPDCOBJS)

TARGETS		= \
		libppdc.a \
		drv \
		ppdc-static \
		ppdc \
		ppdhtml \
		ppdi \
		ppdmerge \
		ppdpo


#
# Make everything...
#

all:		$(TARGETS)


#
# Clean everything...
#

clean:
	$(RM) $(OBJS) core
	$(RM) *.bak *.bck core.*
	$(RM) $(TARGETS)
	$(RM) -r ppd
	$(RM) test.drv


#
# Update dependencies...
#

depend:
	makedepend -Y -I.. -f Dependencies *.cxx


#
# Install...
#

install:
	$(INSTALL_DIR) $(BUILDROOT)$(bindir)
	$(INSTALL_BIN) ppdc $(BUILDROOT)$(bindir)
	$(INSTALL_BIN) ppdhtml $(BUILDROOT)$(bindir)
	$(INSTALL_BIN) ppdi $(BUILDROOT)$(bindir)
	$(INSTALL_BIN) ppdmerge $(BUILDROOT)$(bindir)
	$(INSTALL_BIN) ppdpo $(BUILDROOT)$(bindir)
	$(INSTALL_DIR) $(BUILDROOT)$(CUPS_SERVERBIN)/driver
	$(INSTALL_BIN) drv $(BUILDROOT)$(CUPS_SERVERBIN)/driver
	$(INSTALL_DIR) $(BUILDROOT)$(CUPS_DATADIR)/drv


#
# Uninstall...
#

uninstall:
	$(RM) $(BUILDROOT)$(bindir)/ppdc
	$(RM) $(BUILDROOT)$(bindir)/ppdhtml
	$(RM) $(BUILDROOT)$(bindir)/ppdi
	$(RM) $(BUILDROOT)$(bindir)/ppdmerge
	$(RM) $(BUILDROOT)$(bindir)/ppdpo
	$(RM) $(BUILDROOT)$(CUPS_SERVERBIN)/driver/drv


#
# drv, the CUPS driver interface program.
#

drv:			drv.o libppdc.a ../cups/libcupsdriver.a
	$(CXX) $(LDFLAGS) -o $@ drv.o libppdc.a \
		../cups/libcupsdriver.a $(CUPSLIBS) $(LIBS)


#
# ppdc, the PPD compiler.
#

ppdc:			ppdc.o libppdc.a ../cups/libcupsdriver.a
	$(CXX) $(LDFLAGS) -o $@ ppdc.o libppdc.a \
		../cups/libcupsdriver.a $(CUPSLIBS) $(LIBS)


ppdc-static:		ppdc.o libppdc.a ../cups/libcupsdriver.a
	$(CXX) $(LDFLAGS) -o ppdc-static ppdc.o libppdc.a \
		../cups/libcupsdriver.a $(CUPSLIBS_ST) $(LIBS)
	./ppdc-static -I ../data foo.drv
	./ppdc-static -z -I ../data foo.drv


#
# ppdhtml, the PPD to HTML utility.
#

ppdhtml:			ppdhtml.o libppdc.a ../cups/libcupsdriver.a
	$(CXX) $(LDFLAGS) -o $@ ppdhtml.o libppdc.a \
		../cups/libcupsdriver.a $(CUPSLIBS) $(LIBS)


#
# ppdi, import PPD files.
#

ppdi:			ppdi.o libppdc.a ../cups/libcupsdriver.a
	$(CXX) $(LDFLAGS) -o $@ ppdi.o libppdc.a \
		../cups/libcupsdriver.a $(CUPSLIBS) $(LIBS)


#
# ppdmerge, merge PPD files.
#

ppdmerge:			ppdmerge.o ../cups/libcupsdriver.a
	$(CXX) $(LDFLAGS) -o $@ ppdmerge.o \
		../cups/libcupsdriver.a $(CUPSLIBS) $(LIBS)


#
# ppdpo, create message catalog files.
#

ppdpo:			ppdpo.o libppdc.a ../cups/libcupsdriver.a
	$(CXX) $(LDFLAGS) -o $@ ppdpo.o libppdc.a \
		../cups/libcupsdriver.a $(CUPSLIBS) $(LIBS)


#
# libppdc.a, the PPD compiler library...
#

libppdc.a:		$(PPDCOBJS)
	$(RM) $@
	$(AR) $(ARFLAGS) $@ $(PPDCOBJS)
	$(RANLIB) $@


#
# Include dependencies...
#

include Dependencies


#
# End of "$Id: Makefile 313 2007-02-16 20:17:29Z mike $".
#
