summaryrefslogtreecommitdiff
path: root/src/foomatic
diff options
context:
space:
mode:
authorRoger Leigh <rleigh@debian.org>2008-10-26 16:11:41 +0000
committerRoger Leigh <rleigh@debian.org>2008-10-26 16:11:41 +0000
commitdfae5860833782af557deb35e286d7e186fe3cf5 (patch)
treee3b4282ae08e120f78cd0c097f7cb3b570e94da2 /src/foomatic
parent3b59bb0a607ec27ea60f07d1cd5d1bbb4483c832 (diff)
Imported Upstream version 4.3.99+cvs20050702
Diffstat (limited to 'src/foomatic')
-rw-r--r--src/foomatic/Makefile.am91
-rw-r--r--src/foomatic/Makefile.in870
-rw-r--r--src/foomatic/foomatic-generator.in980
-rw-r--r--src/foomatic/foomatic-printermap63
-rw-r--r--src/foomatic/foomatic-templates-gs/Brightness.xml24
-rw-r--r--src/foomatic/foomatic-templates-gs/Color.xml20
-rw-r--r--src/foomatic/foomatic-templates-gs/Contrast.xml24
-rw-r--r--src/foomatic/foomatic-templates-gs/Cyan.xml24
-rw-r--r--src/foomatic/foomatic-templates-gs/Density.xml24
-rw-r--r--src/foomatic/foomatic-templates-gs/Dither.xml20
-rw-r--r--src/foomatic/foomatic-templates-gs/Gamma.xml24
-rw-r--r--src/foomatic/foomatic-templates-gs/ImageType.xml63
-rw-r--r--src/foomatic/foomatic-templates-gs/InkType.xml20
-rw-r--r--src/foomatic/foomatic-templates-gs/InputSlot.xml20
-rw-r--r--src/foomatic/foomatic-templates-gs/Magenta.xml24
-rw-r--r--src/foomatic/foomatic-templates-gs/MediaType.xml20
-rw-r--r--src/foomatic/foomatic-templates-gs/PageSize.xml20
-rw-r--r--src/foomatic/foomatic-templates-gs/PrintoutMode.xml19
-rw-r--r--src/foomatic/foomatic-templates-gs/Quality.xml20
-rw-r--r--src/foomatic/foomatic-templates-gs/Resolution.xml20
-rw-r--r--src/foomatic/foomatic-templates-gs/Saturation.xml24
-rw-r--r--src/foomatic/foomatic-templates-gs/Yellow.xml24
-rw-r--r--src/foomatic/foomatic-templates-gs/gimp-print.xml43
-rw-r--r--src/foomatic/foomatic-templates-ijs/Brightness.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/Contrast.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/Cyan.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/Density.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/Dither.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/Gamma.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/ImageType.xml63
-rw-r--r--src/foomatic/foomatic-templates-ijs/InkType.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/InputSlot.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/Magenta.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/NumericalOptions.xml21
-rw-r--r--src/foomatic/foomatic-templates-ijs/OtherOptions.xml (renamed from src/foomatic/foomatic-templates-gs/Model.xml)13
-rw-r--r--src/foomatic/foomatic-templates-ijs/Quality.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/RenderResolution.xml (renamed from src/foomatic/foomatic-templates-ijs/MediaType.xml)10
-rw-r--r--src/foomatic/foomatic-templates-ijs/Resolution.xml12
-rw-r--r--src/foomatic/foomatic-templates-ijs/Saturation.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/Yellow.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/gutenprint.xml (renamed from src/foomatic/foomatic-templates-ijs/gimp-print.xml)22
-rw-r--r--src/foomatic/gutenprint-version.c (renamed from src/foomatic/gimp-print-version.c)14
-rw-r--r--src/foomatic/mk_printerlist.in30
-rw-r--r--src/foomatic/oldprinterids640
-rw-r--r--src/foomatic/paper_sizes.c17
-rw-r--r--src/foomatic/printer_margins.c138
-rw-r--r--src/foomatic/printer_options.c288
-rw-r--r--src/foomatic/printers.c17
-rw-r--r--src/foomatic/stp_limits.c98
49 files changed, 1688 insertions, 2448 deletions
diff --git a/src/foomatic/Makefile.am b/src/foomatic/Makefile.am
index 8e14614..294104a 100644
--- a/src/foomatic/Makefile.am
+++ b/src/foomatic/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.16.2.15 2003/04/18 23:15:27 rlk Exp $
+## $Id: Makefile.am,v 1.45 2005/04/12 00:45:09 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -23,48 +23,40 @@ AUTOMAKE_OPTIONS = 1.4 gnu
MAINT_CHARSET = latin1
+include $(top_srcdir)/scripts/global.mk
-## Variables
-AM_CFLAGS = $(GNUCFLAGS)
-INCLUDES = @INCLUDES@ $(LIBGIMPPRINT_CFLAGS) -I$(top_srcdir)/src/main
-LIBPRINTUT = $(top_builddir)/lib/libprintut.la
-LIBS = $(INTLLIBS) @LIBS@
+## Variables
+DISTDIRS = foomatic-templates-ijs
+LOCAL_CPPFLAGS = $(GUTENPRINT_CFLAGS)
-## Programs
+if BUILD_FOOMATIC_3
+BUILD_FOOMATIC = 1
+endif
-FOOMATIC_NOINST_BIN = printer_options printer_margins paper_sizes gimp-print-version \
- stp_limits printers
-noinst_PROGRAMS = @FOOMATIC_NOINST_BIN@
+## Programs
-EXTRA_PROGRAMS = printer_options printer_margins gimp-print-version paper_sizes \
- stp_limits printers
+if BUILD_FOOMATIC
+noinst_PROGRAMS = printer_options printer_margins paper_sizes gutenprint-version \
+ printers
+endif
printer_options_SOURCES = printer_options.c
-printer_options_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-printer_options_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+printer_options_LDADD = $(GUTENPRINT_LIBS)
printer_margins_SOURCES = printer_margins.c
-printer_margins_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-printer_margins_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+printer_margins_LDADD = $(GUTENPRINT_LIBS)
-gimp_print_version_SOURCES = gimp-print-version.c
-gimp_print_version_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-gimp_print_version_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+gutenprint_version_SOURCES = gutenprint-version.c
+gutenprint_version_LDADD = $(GUTENPRINT_LIBS)
paper_sizes_SOURCES = paper_sizes.c
-paper_sizes_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-paper_sizes_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
-
-stp_limits_SOURCES = stp_limits.c
-stp_limits_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-stp_limits_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+paper_sizes_LDADD = $(GUTENPRINT_LIBS)
printers_SOURCES = printers.c
-printers_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-printers_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+printers_LDADD = $(GUTENPRINT_LIBS)
## Rules
@@ -81,28 +73,11 @@ else
FOOMATIC_GENERATOR_FOOMATIC_3_OPTS =
endif
-if BUILD_FOOMATIC_OLDIDS
-FOOMATIC_GENERATOR_OLDIDS_OPTS = -o
-else
-FOOMATIC_GENERATOR_OLDIDS_OPTS =
-endif
-
-if BUILD_IJS
-FOOMATIC_GENERATOR_EXTRA_OPTS = -d all
-FOOMATIC_IJS = yes
-else
-FOOMATIC_GENERATOR_EXTRA_OPTS = -d noijs
-FOOMATIC_IJS =
-endif
-
all-local: $(INSTALL_DATA_LOCAL_DEPS)
install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
- $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gimp-print ; \
- if test -n "$(FOOMATIC_IJS)" ; then \
- $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gimp-print-ijs ; \
- fi ; \
+ $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gutenprint-ijs.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ; \
fi
install-kit:
@@ -118,23 +93,27 @@ clean-local:
foomatic-data: foomatic-stamp
-foomatic-stamp: foomatic-generator foomatic-printermap $(EXTRA_PROGRAMS)
+foomatic-stamp: foomatic-generator foomatic-printermap $(noinst_PROGRAMS) mk_printerlist $(top_srcdir)/src/main/printers.xml $(top_srcdir)/src/main/papers.xml
-$(RM) -r foomatic-db
- ./foomatic-generator -m $(srcdir)/foomatic-printermap -t $(srcdir)/foomatic-templates $(FOOMATIC_GENERATOR_EXTRA_OPTS) $(FOOMATIC_GENERATOR_FOOMATIC_3_OPTS) $(FOOMATIC_GENERATOR_OLDIDS_OPTS)
+ ./foomatic-generator -m $(srcdir)/foomatic-printermap -t $(srcdir)/foomatic-templates $(FOOMATIC_GENERATOR_EXTRA_OPTS) $(FOOMATIC_GENERATOR_FOOMATIC_3_OPTS)
touch foomatic-stamp
-$(LIBGIMPPRINT_LIBS):
- cd ../main ; \
- $(MAKE)
+dist-hook:
+ for dir in $(DISTDIRS) ; do \
+ if test -d $(srcdir)/$$dir ; then \
+ mkdir $(distdir)/$$dir; \
+ for dirfile in $(srcdir)/$$dir/*.xml; do \
+ if test -f $$dirfile ; then \
+ cp -p $$dirfile $(distdir)/$$dir; \
+ fi \
+ done \
+ fi \
+ done
## Clean
-CLEANFILES = $(noinst_PROGRAMS) foomatic-stamp
+CLEANFILES = foomatic-stamp
MAINTAINERCLEANFILES = Makefile.in
-EXTRA_DIST = foomatic-printermap \
- oldprinterids \
- foomatic-templates-gs/*.xml \
- foomatic-templates-ijs/*.xml
-
+EXTRA_DIST = foomatic-printermap
diff --git a/src/foomatic/Makefile.in b/src/foomatic/Makefile.in
index 5dea9ed..761df60 100644
--- a/src/foomatic/Makefile.in
+++ b/src/foomatic/Makefile.in
@@ -1,6 +1,8 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# @configure_input@
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -10,330 +12,457 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
+@SET_MAKE@
-SHELL = @SHELL@
+# Variables
+
+SOURCES = $(gutenprint_version_SOURCES) $(paper_sizes_SOURCES) $(printer_margins_SOURCES) $(printer_options_SOURCES) $(printers_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
-
top_builddir = ../..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
-host_alias = @host_alias@
+build_triplet = @build@
host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/foomatic-generator.in $(srcdir)/mk_printerlist.in \
+ $(top_srcdir)/scripts/global.mk
+@BUILD_FOOMATIC_TRUE@noinst_PROGRAMS = printer_options$(EXEEXT) \
+@BUILD_FOOMATIC_TRUE@ printer_margins$(EXEEXT) \
+@BUILD_FOOMATIC_TRUE@ paper_sizes$(EXEEXT) \
+@BUILD_FOOMATIC_TRUE@ gutenprint-version$(EXEEXT) \
+@BUILD_FOOMATIC_TRUE@ printers$(EXEEXT)
+subdir = src/foomatic
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/gimp.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/stp.m4 $(top_srcdir)/m4/stp_cups.m4 \
+ $(top_srcdir)/m4/stp_gimp.m4 $(top_srcdir)/m4/stp_option.m4 \
+ $(top_srcdir)/m4/stp_release.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = foomatic-generator mk_printerlist
+PROGRAMS = $(noinst_PROGRAMS)
+am_gutenprint_version_OBJECTS = gutenprint-version.$(OBJEXT)
+gutenprint_version_OBJECTS = $(am_gutenprint_version_OBJECTS)
+am__DEPENDENCIES_1 = $(top_builddir)/src/main/libgutenprint.la
+gutenprint_version_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_paper_sizes_OBJECTS = paper_sizes.$(OBJEXT)
+paper_sizes_OBJECTS = $(am_paper_sizes_OBJECTS)
+paper_sizes_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_printer_margins_OBJECTS = printer_margins.$(OBJEXT)
+printer_margins_OBJECTS = $(am_printer_margins_OBJECTS)
+printer_margins_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_printer_options_OBJECTS = printer_options.$(OBJEXT)
+printer_options_OBJECTS = $(am_printer_options_OBJECTS)
+printer_options_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_printers_OBJECTS = printers.$(OBJEXT)
+printers_OBJECTS = $(am_printers_OBJECTS)
+printers_DEPENDENCIES = $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(gutenprint_version_SOURCES) $(paper_sizes_SOURCES) \
+ $(printer_margins_SOURCES) $(printer_options_SOURCES) \
+ $(printers_SOURCES)
+DIST_SOURCES = $(gutenprint_version_SOURCES) $(paper_sizes_SOURCES) \
+ $(printer_margins_SOURCES) $(printer_options_SOURCES) \
+ $(printers_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
-AS = @AS@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
-BISON_PROG = @BISON_PROG@
-BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
+BUILD_CUPS_FALSE = @BUILD_CUPS_FALSE@
+BUILD_CUPS_PPDS_FALSE = @BUILD_CUPS_PPDS_FALSE@
+BUILD_CUPS_PPDS_TRUE = @BUILD_CUPS_PPDS_TRUE@
+BUILD_CUPS_TRUE = @BUILD_CUPS_TRUE@
+BUILD_ESCPUTIL_FALSE = @BUILD_ESCPUTIL_FALSE@
+BUILD_ESCPUTIL_TRUE = @BUILD_ESCPUTIL_TRUE@
+BUILD_FOOMATIC_3_FALSE = @BUILD_FOOMATIC_3_FALSE@
+BUILD_FOOMATIC_3_TRUE = @BUILD_FOOMATIC_3_TRUE@
+BUILD_FOOMATIC_FALSE = @BUILD_FOOMATIC_FALSE@
+BUILD_FOOMATIC_TRUE = @BUILD_FOOMATIC_TRUE@
+BUILD_GENPPD_STATIC_FALSE = @BUILD_GENPPD_STATIC_FALSE@
+BUILD_GENPPD_STATIC_TRUE = @BUILD_GENPPD_STATIC_TRUE@
+BUILD_GHOSTSCRIPT_FALSE = @BUILD_GHOSTSCRIPT_FALSE@
+BUILD_GHOSTSCRIPT_TRUE = @BUILD_GHOSTSCRIPT_TRUE@
+BUILD_GIMP2_FALSE = @BUILD_GIMP2_FALSE@
+BUILD_GIMP2_TRUE = @BUILD_GIMP2_TRUE@
+BUILD_GIMP_FALSE = @BUILD_GIMP_FALSE@
+BUILD_GIMP_TRUE = @BUILD_GIMP_TRUE@
+BUILD_LIBGUTENPRINTUI2_FALSE = @BUILD_LIBGUTENPRINTUI2_FALSE@
+BUILD_LIBGUTENPRINTUI2_TRUE = @BUILD_LIBGUTENPRINTUI2_TRUE@
+BUILD_LIBGUTENPRINTUI_FALSE = @BUILD_LIBGUTENPRINTUI_FALSE@
+BUILD_LIBGUTENPRINTUI_TRUE = @BUILD_LIBGUTENPRINTUI_TRUE@
+BUILD_MODULES_FALSE = @BUILD_MODULES_FALSE@
+BUILD_MODULES_TRUE = @BUILD_MODULES_TRUE@
+BUILD_TESTPATTERN_FALSE = @BUILD_TESTPATTERN_FALSE@
+BUILD_TESTPATTERN_TRUE = @BUILD_TESTPATTERN_TRUE@
+BUILD_TEST_FALSE = @BUILD_TEST_FALSE@
+BUILD_TEST_TRUE = @BUILD_TEST_TRUE@
+BUILD_TRANSLATED_CUPS_PPDS_FALSE = @BUILD_TRANSLATED_CUPS_PPDS_FALSE@
+BUILD_TRANSLATED_CUPS_PPDS_TRUE = @BUILD_TRANSLATED_CUPS_PPDS_TRUE@
CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
CONVERT = @CONVERT@
-CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
-CUPS_BIN = @CUPS_BIN@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
CUPS_CFLAGS = @CUPS_CFLAGS@
-CUPS_CONF = @CUPS_CONF@
CUPS_CONFIG = @CUPS_CONFIG@
-CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
-CUPS_INSTALL = @CUPS_INSTALL@
CUPS_LIBS = @CUPS_LIBS@
-CUPS_MAN = @CUPS_MAN@
-CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
-CUPS_PKG = @CUPS_PKG@
+CUPS_PPDS_AT_TOP_LEVEL_FALSE = @CUPS_PPDS_AT_TOP_LEVEL_FALSE@
+CUPS_PPDS_AT_TOP_LEVEL_TRUE = @CUPS_PPDS_AT_TOP_LEVEL_TRUE@
CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
-DATADIRNAME = @DATADIRNAME@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
DB2HTML = @DB2HTML@
DB2PDF = @DB2PDF@
DB2PS = @DB2PS@
-DLLTOOL = @DLLTOOL@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIALOG = @DIALOG@
+DOXYGEN = @DOXYGEN@
DVIPDF = @DVIPDF@
DVIPS = @DVIPS@
ECHO = @ECHO@
-ESCPUTIL_BIN = @ESCPUTIL_BIN@
-ESCPUTIL_MAN = @ESCPUTIL_MAN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
EXEEXT = @EXEEXT@
-FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FIND = @FIND@
FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
-FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
-FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
-GENCAT = @GENCAT@
-GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
-GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
-GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
-GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
-GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
-GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
-GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
-GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
-GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
-GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GENPPD_LIBS = @GENPPD_LIBS@
+GIMP2_CFLAGS = @GIMP2_CFLAGS@
+GIMP2_LIBS = @GIMP2_LIBS@
GIMPTOOL = @GIMPTOOL@
+GIMPTOOL2_CHECK = @GIMPTOOL2_CHECK@
GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
-GIMP_BIN = @GIMP_BIN@
GIMP_CFLAGS = @GIMP_CFLAGS@
GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
GIMP_DATA_DIR = @GIMP_DATA_DIR@
GIMP_LIBS = @GIMP_LIBS@
GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
-GLIBC21 = @GLIBC21@
-GMOFILES = @GMOFILES@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_CONFIG = @GLIB_CONFIG@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
GMSGFMT = @GMSGFMT@
GNUCFLAGS = @GNUCFLAGS@
-IJS_BIN = @IJS_BIN@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_LIBS = @GTK2_LIBS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_CONFIG = @GTK_CONFIG@
+GTK_LIBS = @GTK_LIBS@
+GUTENPRINTUI2_BINARY_AGE = @GUTENPRINTUI2_BINARY_AGE@
+GUTENPRINTUI2_CFLAGS = @GUTENPRINTUI2_CFLAGS@
+GUTENPRINTUI2_CURRENT_INTERFACE = @GUTENPRINTUI2_CURRENT_INTERFACE@
+GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
+GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
+GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
+GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINTUI_BINARY_AGE = @GUTENPRINTUI_BINARY_AGE@
+GUTENPRINTUI_CFLAGS = @GUTENPRINTUI_CFLAGS@
+GUTENPRINTUI_CURRENT_INTERFACE = @GUTENPRINTUI_CURRENT_INTERFACE@
+GUTENPRINTUI_INTERFACE_AGE = @GUTENPRINTUI_INTERFACE_AGE@
+GUTENPRINTUI_LIBDEPS = @GUTENPRINTUI_LIBDEPS@
+GUTENPRINTUI_LIBS = $(top_builddir)/src/gutenprintui/libgutenprintui.la
+GUTENPRINTUI_VERSION = @GUTENPRINTUI_VERSION@
+GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
+GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
+GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
+GUTENPRINT_INTERFACE_AGE = @GUTENPRINT_INTERFACE_AGE@
+GUTENPRINT_LIBDEPS = @GUTENPRINT_LIBDEPS@
+
+# Libraries
+GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
+GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
+GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
+GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
-IJS_INSTALL = @IJS_INSTALL@
IJS_LIBS = @IJS_LIBS@
-INSTOBJEXT = @INSTOBJEXT@
-INTLBISON = @INTLBISON@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SAMPLES_FALSE = @INSTALL_SAMPLES_FALSE@
+INSTALL_SAMPLES_TRUE = @INSTALL_SAMPLES_TRUE@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTALL_USER_GUIDE_FALSE = @INSTALL_USER_GUIDE_FALSE@
+INSTALL_USER_GUIDE_TRUE = @INSTALL_USER_GUIDE_TRUE@
INTLLIBS = @INTLLIBS@
-INTLOBJS = @INTLOBJS@
-INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LDFLAGS = @LDFLAGS@
LEX = @LEX@
-LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBICONV = @LIBICONV@
-LIBM = @LIBM@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
-LT_AGE = @LT_AGE@
-LT_CURRENT = @LT_CURRENT@
-LT_RELEASE = @LT_RELEASE@
-LT_REVISION = @LT_REVISION@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
-MAIN_BIN = @MAIN_BIN@
-MAIN_DAT = @MAIN_DAT@
-MAIN_MAN = @MAIN_MAN@
-MAIN_SCR = @MAIN_SCR@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
-OBJDUMP = @OBJDUMP@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
PLUG_IN_PATH = @PLUG_IN_PATH@
-POFILES = @POFILES@
POSUB = @POSUB@
-PRINT_VASPRINTF = @PRINT_VASPRINTF@
RANLIB = @RANLIB@
RELEASE_DATE = @RELEASE_DATE@
RM = @RM@
-SAMPLE_IMAGES = @SAMPLE_IMAGES@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
STRIP = @STRIP@
-TESTPATTERN_BIN = @TESTPATTERN_BIN@
-TEST_BIN = @TEST_BIN@
TEXI2HTML = @TEXI2HTML@
-USER_GUIDE = @USER_GUIDE@
-USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_LEVEL3_PS_FALSE = @USE_LEVEL3_PS_FALSE@
+USE_LEVEL3_PS_TRUE = @USE_LEVEL3_PS_TRUE@
USE_NLS = @USE_NLS@
+USE_NLS_FALSE = @USE_NLS_FALSE@
+USE_NLS_TRUE = @USE_NLS_TRUE@
VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
YACC = @YACC@
-YACC_PROG = @YACC_PROG@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
cups_bindir = @cups_bindir@
cups_conf_datadir = @cups_conf_datadir@
cups_conf_serverbin = @cups_conf_serverbin@
cups_conf_serverroot = @cups_conf_serverroot@
cups_exec_prefix = @cups_exec_prefix@
cups_prefix = @cups_prefix@
+cups_sbindir = @cups_sbindir@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+gimp2_plug_indir = @gimp2_plug_indir@
gimp_plug_indir = @gimp_plug_indir@
-gimpprint_cflags = @gimpprint_cflags@
-gimpprint_libs = @gimpprint_libs@
-
+gutenprint_cflags = @gutenprint_cflags@
+gutenprint_libs = @gutenprint_libs@
+gutenprintui2_cflags = @gutenprintui2_cflags@
+gutenprintui2_libs = @gutenprintui2_libs@
+gutenprintui_cflags = @gutenprintui_cflags@
+gutenprintui_libs = @gutenprintui_libs@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
AUTOMAKE_OPTIONS = 1.4 gnu
-
MAINT_CHARSET = latin1
-
-AM_CFLAGS = $(GNUCFLAGS)
-INCLUDES = @INCLUDES@ $(LIBGIMPPRINT_CFLAGS) -I$(top_srcdir)/src/main
-LIBPRINTUT = $(top_builddir)/lib/libprintut.la
-LIBS = $(INTLLIBS) @LIBS@
-
-FOOMATIC_NOINST_BIN = printer_options printer_margins paper_sizes gimp-print-version stp_limits printers
-
-
-noinst_PROGRAMS = @FOOMATIC_NOINST_BIN@
-
-EXTRA_PROGRAMS = printer_options printer_margins gimp-print-version paper_sizes stp_limits printers
-
-
+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(LOCAL_CPPFLAGS) $(GNUCFLAGS)
+DISTDIRS = foomatic-templates-ijs
+LOCAL_CPPFLAGS = $(GUTENPRINT_CFLAGS)
+@BUILD_FOOMATIC_3_TRUE@BUILD_FOOMATIC = 1
printer_options_SOURCES = printer_options.c
-printer_options_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-printer_options_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
-
+printer_options_LDADD = $(GUTENPRINT_LIBS)
printer_margins_SOURCES = printer_margins.c
-printer_margins_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-printer_margins_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
-
-gimp_print_version_SOURCES = gimp-print-version.c
-gimp_print_version_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-gimp_print_version_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
-
+printer_margins_LDADD = $(GUTENPRINT_LIBS)
+gutenprint_version_SOURCES = gutenprint-version.c
+gutenprint_version_LDADD = $(GUTENPRINT_LIBS)
paper_sizes_SOURCES = paper_sizes.c
-paper_sizes_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-paper_sizes_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
-
-stp_limits_SOURCES = stp_limits.c
-stp_limits_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-stp_limits_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
-
+paper_sizes_LDADD = $(GUTENPRINT_LIBS)
printers_SOURCES = printers.c
-printers_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
-printers_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
-@BUILD_FOOMATIC_TRUE@INSTALL_DATA_LOCAL_DEPS = foomatic-data
+printers_LDADD = $(GUTENPRINT_LIBS)
@BUILD_FOOMATIC_FALSE@INSTALL_DATA_LOCAL_DEPS =
-@BUILD_FOOMATIC_3_TRUE@FOOMATIC_GENERATOR_FOOMATIC_3_OPTS = -f 3
+@BUILD_FOOMATIC_TRUE@INSTALL_DATA_LOCAL_DEPS = foomatic-data
@BUILD_FOOMATIC_3_FALSE@FOOMATIC_GENERATOR_FOOMATIC_3_OPTS =
-@BUILD_FOOMATIC_OLDIDS_TRUE@FOOMATIC_GENERATOR_OLDIDS_OPTS = -o
-@BUILD_FOOMATIC_OLDIDS_FALSE@FOOMATIC_GENERATOR_OLDIDS_OPTS =
-@BUILD_IJS_TRUE@FOOMATIC_GENERATOR_EXTRA_OPTS = -d all
-@BUILD_IJS_FALSE@FOOMATIC_GENERATOR_EXTRA_OPTS = -d noijs
-@BUILD_IJS_TRUE@FOOMATIC_IJS = yes
-@BUILD_IJS_FALSE@FOOMATIC_IJS =
-
-CLEANFILES = $(noinst_PROGRAMS) foomatic-stamp
+@BUILD_FOOMATIC_3_TRUE@FOOMATIC_GENERATOR_FOOMATIC_3_OPTS = -f 3
+CLEANFILES = foomatic-stamp
MAINTAINERCLEANFILES = Makefile.in
+EXTRA_DIST = foomatic-printermap
+all: all-am
-EXTRA_DIST = foomatic-printermap oldprinterids foomatic-templates-gs/*.xml foomatic-templates-ijs/*.xml
-
-mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
-CONFIG_HEADER = ../../config.h
-CONFIG_CLEAN_FILES = foomatic-generator
-noinst_PROGRAMS = @FOOMATIC_NOINST_BIN@
-PROGRAMS = $(noinst_PROGRAMS)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I../..
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-printer_options_OBJECTS = printer_options.$(OBJEXT)
-printer_options_LDFLAGS =
-printer_margins_OBJECTS = printer_margins.$(OBJEXT)
-printer_margins_LDFLAGS =
-gimp_print_version_OBJECTS = gimp-print-version.$(OBJEXT)
-gimp_print_version_LDFLAGS =
-paper_sizes_OBJECTS = paper_sizes.$(OBJEXT)
-paper_sizes_LDFLAGS =
-stp_limits_OBJECTS = stp_limits.$(OBJEXT)
-stp_limits_LDFLAGS =
-printers_OBJECTS = printers.$(OBJEXT)
-printers_LDFLAGS =
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DIST_COMMON = Makefile.am Makefile.in foomatic-generator.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(printer_options_SOURCES) $(printer_margins_SOURCES) $(gimp_print_version_SOURCES) $(paper_sizes_SOURCES) $(stp_limits_SOURCES) $(printers_SOURCES)
-OBJECTS = $(printer_options_OBJECTS) $(printer_margins_OBJECTS) $(gimp_print_version_OBJECTS) $(paper_sizes_OBJECTS) $(stp_limits_OBJECTS) $(printers_OBJECTS)
-
-all: all-redirect
.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .obj .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/foomatic/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-foomatic-generator: $(top_builddir)/config.status foomatic-generator.in
- cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-mostlyclean-noinstPROGRAMS:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/foomatic/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/foomatic/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+foomatic-generator: $(top_builddir)/config.status $(srcdir)/foomatic-generator.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+mk_printerlist: $(top_builddir)/config.status $(srcdir)/mk_printerlist.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
-distclean-noinstPROGRAMS:
-
-maintainer-clean-noinstPROGRAMS:
-
-.c.o:
- $(COMPILE) -c $<
-
-# FIXME: We should only use cygpath when building on Windows,
-# and only if it is available.
-.c.obj:
- $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
+ @list='$(noinst_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+gutenprint-version$(EXEEXT): $(gutenprint_version_OBJECTS) $(gutenprint_version_DEPENDENCIES)
+ @rm -f gutenprint-version$(EXEEXT)
+ $(LINK) $(gutenprint_version_LDFLAGS) $(gutenprint_version_OBJECTS) $(gutenprint_version_LDADD) $(LIBS)
+paper_sizes$(EXEEXT): $(paper_sizes_OBJECTS) $(paper_sizes_DEPENDENCIES)
+ @rm -f paper_sizes$(EXEEXT)
+ $(LINK) $(paper_sizes_LDFLAGS) $(paper_sizes_OBJECTS) $(paper_sizes_LDADD) $(LIBS)
+printer_margins$(EXEEXT): $(printer_margins_OBJECTS) $(printer_margins_DEPENDENCIES)
+ @rm -f printer_margins$(EXEEXT)
+ $(LINK) $(printer_margins_LDFLAGS) $(printer_margins_OBJECTS) $(printer_margins_LDADD) $(LIBS)
+printer_options$(EXEEXT): $(printer_options_OBJECTS) $(printer_options_DEPENDENCIES)
+ @rm -f printer_options$(EXEEXT)
+ $(LINK) $(printer_options_LDFLAGS) $(printer_options_OBJECTS) $(printer_options_LDADD) $(LIBS)
+printers$(EXEEXT): $(printers_OBJECTS) $(printers_DEPENDENCIES)
+ @rm -f printers$(EXEEXT)
+ $(LINK) $(printers_LDFLAGS) $(printers_OBJECTS) $(printers_LDADD) $(LIBS)
mostlyclean-compile:
- -rm -f *.o core *.core
-rm -f *.$(OBJEXT)
-clean-compile:
-
distclean-compile:
-rm -f *.tab.c
-maintainer-clean-compile:
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gutenprint-version.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paper_sizes.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printer_margins.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printer_options.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printers.Po@am__quote@
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+.c.o:
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-.s.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+.c.obj:
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+.c.lo:
+@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
@@ -342,185 +471,207 @@ clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-
-maintainer-clean-libtool:
-
-printer_options$(EXEEXT): $(printer_options_OBJECTS) $(printer_options_DEPENDENCIES)
- @rm -f printer_options$(EXEEXT)
- $(LINK) $(printer_options_LDFLAGS) $(printer_options_OBJECTS) $(printer_options_LDADD) $(LIBS)
-
-printer_margins$(EXEEXT): $(printer_margins_OBJECTS) $(printer_margins_DEPENDENCIES)
- @rm -f printer_margins$(EXEEXT)
- $(LINK) $(printer_margins_LDFLAGS) $(printer_margins_OBJECTS) $(printer_margins_LDADD) $(LIBS)
-
-gimp-print-version$(EXEEXT): $(gimp_print_version_OBJECTS) $(gimp_print_version_DEPENDENCIES)
- @rm -f gimp-print-version$(EXEEXT)
- $(LINK) $(gimp_print_version_LDFLAGS) $(gimp_print_version_OBJECTS) $(gimp_print_version_LDADD) $(LIBS)
-
-paper_sizes$(EXEEXT): $(paper_sizes_OBJECTS) $(paper_sizes_DEPENDENCIES)
- @rm -f paper_sizes$(EXEEXT)
- $(LINK) $(paper_sizes_LDFLAGS) $(paper_sizes_OBJECTS) $(paper_sizes_LDADD) $(LIBS)
-
-stp_limits$(EXEEXT): $(stp_limits_OBJECTS) $(stp_limits_DEPENDENCIES)
- @rm -f stp_limits$(EXEEXT)
- $(LINK) $(stp_limits_LDFLAGS) $(stp_limits_OBJECTS) $(stp_limits_LDADD) $(LIBS)
-
-printers$(EXEEXT): $(printers_OBJECTS) $(printers_DEPENDENCIES)
- @rm -f printers$(EXEEXT)
- $(LINK) $(printers_LDFLAGS) $(printers_OBJECTS) $(printers_LDADD) $(LIBS)
-
+ -rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
tags: TAGS
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = src/foomatic
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
- $(mkinstalldirs) $(distdir)/foomatic-templates-gs \
- $(distdir)/foomatic-templates-ijs
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
+ $(mkdir_p) $(distdir)/../../scripts
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
fi; \
done
-gimp-print-version.o: gimp-print-version.c ../../config.h \
- ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
- ../../lib/xmalloc.h
-paper_sizes.o: paper_sizes.c ../../config.h \
- ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
- ../../lib/xmalloc.h
-printer_margins.o: printer_margins.c ../../config.h \
- ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
- ../../lib/xmalloc.h
-printer_options.o: printer_options.c ../../config.h \
- ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
- ../../lib/xmalloc.h
-printers.o: printers.c ../../config.h \
- ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
- ../../lib/xmalloc.h
-stp_limits.o: stp_limits.c ../../config.h \
- ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
- ../../lib/xmalloc.h
-
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
check-am: all-am
check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
+all-am: Makefile $(PROGRAMS) all-local
+installdirs:
+install: install-am
install-exec: install-exec-am
-
-install-data-am: install-data-local
install-data: install-data-am
+uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile $(PROGRAMS) all-local
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-mostlyclean-am: mostlyclean-noinstPROGRAMS mostlyclean-compile \
- mostlyclean-libtool mostlyclean-tags \
- mostlyclean-generic
+clean: clean-am
-mostlyclean: mostlyclean-am
+clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \
+ mostlyclean-am
-clean-am: clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \
- clean-generic mostlyclean-am clean-local
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-libtool distclean-tags
-clean: clean-am
+dvi: dvi-am
-distclean-am: distclean-noinstPROGRAMS distclean-compile \
- distclean-libtool distclean-tags distclean-generic \
- clean-am
- -rm -f libtool
+dvi-am:
-distclean: distclean-am
+html: html-am
-maintainer-clean-am: maintainer-clean-noinstPROGRAMS \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-tags maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
-.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
-clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
-install-exec install-data-local install-data-am install-data install-am \
-install uninstall-am uninstall all-local all-redirect all-am all \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
+ clean-generic clean-libtool clean-local clean-noinstPROGRAMS \
+ ctags dist-hook distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-data-local install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-info-am
@SET_MAKE@
+export STP_MODULE_PATH = $(top_builddir)/src/main/.libs:$(top_builddir)/src/main
+export STP_DATA_PATH = $(top_srcdir)/src/main
+
+# Rules
+
+$(top_builddir)/src/main/libgutenprint.la:
+ cd $(top_builddir)/src/main; \
+ $(MAKE)
+
+$(top_builddir)/src/gutenprintui/libgutenprintui.la:
+ cd $(top_builddir)/src/gutenprintui; \
+ $(MAKE)
+
+$(top_builddir)/src/gutenprintui2/libgutenprintui2.la:
+ cd $(top_builddir)/src/gutenprintui2; \
+ $(MAKE)
+
all-local: $(INSTALL_DATA_LOCAL_DEPS)
install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
- $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gimp-print ; \
- if test -n "$(FOOMATIC_IJS)" ; then \
- $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gimp-print-ijs ; \
- fi ; \
+ $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gutenprint-ijs.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ; \
fi
install-kit:
@@ -536,15 +687,22 @@ clean-local:
foomatic-data: foomatic-stamp
-foomatic-stamp: foomatic-generator foomatic-printermap $(EXTRA_PROGRAMS)
+foomatic-stamp: foomatic-generator foomatic-printermap $(noinst_PROGRAMS) mk_printerlist $(top_srcdir)/src/main/printers.xml $(top_srcdir)/src/main/papers.xml
-$(RM) -r foomatic-db
- ./foomatic-generator -m $(srcdir)/foomatic-printermap -t $(srcdir)/foomatic-templates $(FOOMATIC_GENERATOR_EXTRA_OPTS) $(FOOMATIC_GENERATOR_FOOMATIC_3_OPTS) $(FOOMATIC_GENERATOR_OLDIDS_OPTS)
+ ./foomatic-generator -m $(srcdir)/foomatic-printermap -t $(srcdir)/foomatic-templates $(FOOMATIC_GENERATOR_EXTRA_OPTS) $(FOOMATIC_GENERATOR_FOOMATIC_3_OPTS)
touch foomatic-stamp
-$(LIBGIMPPRINT_LIBS):
- cd ../main ; \
- $(MAKE)
-
+dist-hook:
+ for dir in $(DISTDIRS) ; do \
+ if test -d $(srcdir)/$$dir ; then \
+ mkdir $(distdir)/$$dir; \
+ for dirfile in $(srcdir)/$$dir/*.xml; do \
+ if test -f $$dirfile ; then \
+ cp -p $$dirfile $(distdir)/$$dir; \
+ fi \
+ done \
+ fi \
+ done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/src/foomatic/foomatic-generator.in b/src/foomatic/foomatic-generator.in
index b5b3f7a..1675125 100644
--- a/src/foomatic/foomatic-generator.in
+++ b/src/foomatic/foomatic-generator.in
@@ -6,7 +6,6 @@ Getopt::Long::Configure("no_ignore_case", "pass_through");
GetOptions("m=s" => \$opt_m, # Map file
"t=s" => \$opt_t, # Template directory
"f=s" => \$opt_f, # Foomatic version
- "o" => \$opt_o, # Old Foomatic IDs
"d=s" => \@opt_d); # which Drivers?
# Wherever we put it...
@@ -17,27 +16,7 @@ $mapfile = $opt_m;
my $templatedir;
$templatedir = $opt_t;
-my @drivertypes = ();
-for my $d (@opt_d) {
- if (lc($d) eq "gs") {
- push (@drivertypes, "gs");
- }
- if (lc($d) eq "ijs") {
- push (@drivertypes, "ijs");
- }
- if (lc($d) eq "nogs") {
- @drivertypes = ("ijs");
- }
- if (lc($d) eq "noijs") {
- @drivertypes = ("gs");
- }
- if (lc($d) eq "all") {
- @drivertypes = ("gs", "ijs");
- }
- if (lc($d) eq "both") {
- @drivertypes = ("gs", "ijs");
- }
-}
+my @drivertypes = (ijs);
exit 0 if ($#drivertypes < 0); # Nothing to be done, exit silently
@@ -45,8 +24,10 @@ exit 0 if ($#drivertypes < 0); # Nothing to be done, exit silently
my $foomatic3 = ((defined($opt_f)) && ($opt_f >= 2.9));
# The following substitutions happen to the template XML files:
-# @@STPVER@@ - the version number (ie '4.1.5')
-# @@DRVNAME@@ - driver name (ie gimp-print)
+# @@STPVER@@ - the version number (e. g. "5.0.0-beta4")
+# @@STPREL@@ - the version number (e. g. "5.0")
+# @@REMAP@@ - option remappings (to shorten names)
+# @@DRVNAME@@ - driver name (ie gutenprint)
# @@STPRINTERS@@ - <printers>...</printers> clause for the driver
# @@OPTCONSTRAINTS@@ - <constraints>...</constraints> object for the option
# @@ENUMVALS@@ - <enum_vals>...</enum_vals> section for the enum option
@@ -59,27 +40,13 @@ my $foomatic3 = ((defined($opt_f)) && ($opt_f >= 2.9));
#
# function arguments are: ('StpDriverOptionName')
-my $funcs = { 'InputSlot' => { 'OPTCONSTRAINTS' => \&build_cons,
- 'ENUMVALS' => \&build_ev, },
- 'InkType' => { 'OPTCONSTRAINTS' => \&build_cons,
- 'ENUMVALS' => \&build_ev },
- 'MediaType' => { 'OPTCONSTRAINTS' => \&build_cons,
- 'ENUMVALS' => \&build_ev },
- 'Model' => { 'OPTCONSTRAINTS' => \&build_model_cons,
+my $funcs = { 'Model' => { 'OPTCONSTRAINTS' => \&build_model_cons,
'ENUMVALS' => \&build_model_ev },
- 'PageSize' => { 'OPTCONSTRAINTS' => \&build_cons,
- 'ENUMVALS' => \&build_ev },
- 'Quality' => { 'OPTCONSTRAINTS' => \&build_cons,
- 'ENUMVALS' => \&build_ev },
- 'Dither' => { 'OPTCONSTRAINTS' => \&build_cons,
- 'ENUMVALS' => \&build_ev },
- 'Color' => { 'OPTCONSTRAINTS' => \&build_cons,
- 'ENUMVALS' => \&build_ev },
- 'Resolution' => { 'OPTCONSTRAINTS' => \&build_resolution_cons,
- 'ENUMVALS' => \&build_resolution_ev },
- 'PrintoutMode' => { 'OPTCONSTRAINTS' =>
+ 'RenderResolution' => { 'OPTCONSTRAINTS' => \&build_resolution_cons,
+ 'ENUMVALS' => \&build_resolution_ev },
+ 'PrintoutMode' => { 'OPTCONSTRAINTS' =>
\&build_printoutmode_cons,
- 'ENUMVALS' =>
+ 'ENUMVALS' =>
\&build_printoutmode_ev },
};
@@ -89,24 +56,38 @@ my $drivervals = { 'PageSize' => \&optmap_pagesize,
my $debug = 0;
-# Foomatic name => Gimp-print name
-%argnamemap = ('Quality' => 'Resolution');
-
-$colormap = { 'gs' => { 'Grayscale' => '0',
- 'Color' => '1',
- 'BlackAndWhite' => '2' },
- 'ijs' => { 'Grayscale' => 'DeviceGray',
+$colormap = { 'ijs' => { 'Grayscale' => 'DeviceGray',
'Color' => 'DeviceRGB',
'BlackAndWhite' =>
'DeviceGray -dBitsPerSample=1',
'RawCMYK' => 'DeviceCMYK' }
};
+my $groupname_prefix = "Gutenprint";
+
+my @parameter_class_names = (
+ "Printer Features",
+ "Output Control"
+ );
+
+my @parameter_level_names = (
+ "Common",
+ "Extra 1",
+ "Extra 2",
+ "Extra 3",
+ "Extra 4",
+ "Extra 5"
+ );
+
+my $option_remap = "";
+my $opt_index = 0;
+
use Data::Dumper;
open PIPE, "./printer_options|" or die "Cannot run printer_options: $!\n";
print STDERR "Loading options from ./printer_options...";
while(<PIPE>) {
+ #print $_;
next if m!^#!;
eval $_;
}
@@ -117,51 +98,26 @@ if ($foomatic3) {
open PIPE, "./printer_margins|" or die "Cannot run printer_margins: $!\n";
print STDERR "Loading margins from ./printer_margins...";
$code = join('', <PIPE>);
+ #print $code;
close PIPE or die "Cannot run printer_margins: $!\n";
eval $code or die "Cannot run printer_margins: $!\n";
print STDERR "done.\n";
}
-open PIPE, "./stp_limits|" or die "Cannot run stp_limits: $!\n";
-print STDERR "Loading options from ./stp_limits...";
-while(<PIPE>) {
- next if m!^#!;
- eval $_;
-}
-close PIPE or die "Cannot run stp_limits: $!\n";
-print STDERR "done.\n";
-
open PIPE, "./printers|" or die "Cannot run printers: $!\n";
print STDERR "Loading options from ./printers...";
while(<PIPE>) {
+ #print $_;
next if m!^#!;
eval $_;
}
close PIPE or die "Cannot run printers: $!\n";
print STDERR "done.\n";
-my %oldid;
-if ($opt_o) {
- # Load table to translate the Foomatic IDs to the old (numerical) ones
- print STDERR
- "Loading printer ID translation table from @srcdir@/oldprinterids...";
- my $translation_table = "@srcdir@/oldprinterids";
- open TRTAB, "< $translation_table" or
- die "Cannot read printer ID translation table: $!\n";
- while (<TRTAB>) {
- chomp;
- if (/^\s*(\S+)\s+(\S+)\s*$/) {
- $oldid{"printer/$2"} = "printer/$1";
- }
- }
- close TRTAB;
- print STDERR "done.\n";
-}
-
# OK, now %stpdata is a big honking thing, and %defaults is in there, too.
# Invert, to build %bar{$optionname} = [ choice1, choice2 ];
-my ($a, $otmp, $vtmp);
+my ($a, $b, $otmp, $vtmp);
for $a (keys(%stpdata)) {
for $otmp (keys %{$stpdata{$a}}) {
for $vtmp (keys (%{$stpdata{$a}{$otmp}})) {
@@ -173,8 +129,10 @@ for $a (keys(%stpdata)) {
}
}
+#print Dumper(%ev_choices);
+
if ($foomatic3) {
- # Generate data for "PrintoutMode" option, only needed for
+ # Generate data for "PrintoutMode" option, only needed for
# Foomatic 2.9.x or newer
print STDERR "Generating data for \"PrintoutMode\" option...";
($printoutmode, $printoutmodechoices) = getprintoutmode();
@@ -199,6 +157,83 @@ if ($foomatic3) {
}
}
+# Make list of needed Foomatic entries for the numerical options. If
+# for one and the same numerical option there are printers with
+# different value ranges, there must be made an extra Foomatic entry
+# for each value range. Therefore the filenames of numerical options
+# are numbered (eg. Contrast-1.xml).
+for $a (keys(%stp_float_values)) {
+ for $vtmp (keys %{$stp_float_values{$a}}) {
+ for $otmp (keys %{$stp_float_values{$a}{$vtmp}}) {
+ my $min = $stp_float_values{$a}{'MINVAL'}{$otmp};
+ my $max = $stp_float_values{$a}{'MAXVAL'}{$otmp};
+ my $def = $stp_float_values{$a}{'DEFVAL'}{$otmp};
+ # Skip options with invalid values, the library contains such
+ # options in the case when only one constant value is allowed
+ next if (($min >= $max) || ($def < $min) || ($def > $max));
+ my $minmax = "${min}_${max}";
+ if (!$seen_fnumopt{$otmp}{$minmax}++) {
+ if (!defined($fnums{$otmp})) {
+ $fnums{$otmp} = 0;
+ }
+ $fnums{$otmp} ++;
+ push (@floatnumopts_list, "${otmp}-$fnums{$otmp}");
+ $numopt_ranges{"${otmp}-$fnums{$otmp}"}{'MINVAL'} = $min;
+ $numopt_ranges{"${otmp}-$fnums{$otmp}"}{'MAXVAL'} = $max;
+ }
+ }
+ }
+}
+for $a (keys(%stp_int_values)) {
+ for $vtmp (keys %{$stp_int_values{$a}}) {
+ for $otmp (keys %{$stp_int_values{$a}{$vtmp}}) {
+ my $min = $stp_int_values{$a}{'MINVAL'}{$otmp};
+ my $max = $stp_int_values{$a}{'MAXVAL'}{$otmp};
+ my $def = $stp_int_values{$a}{'DEFVAL'}{$otmp};
+ # Skip options with invalid values, the library contains such
+ # options in the case when only one constant value is allowed
+ next if (($min >= $max) || ($def < $min) || ($def > $max));
+ my $minmax = "${min}_${max}";
+ if (!$seen_inumopt{$otmp}{$minmax}++) {
+ if (!defined($inums{$otmp})) {
+ $inums{$otmp} = 0;
+ }
+ $inums{$otmp} ++;
+ push (@intnumopts_list, "${otmp}-$inums{$otmp}");
+ $numopt_ranges{"${otmp}-$inums{$otmp}"}{'MINVAL'} = $min;
+ $numopt_ranges{"${otmp}-$inums{$otmp}"}{'MAXVAL'} = $max;
+ }
+ }
+ }
+}
+
+for $a (keys(%stp_dimension_values)) {
+ for $vtmp (keys %{$stp_dimension_values{$a}}) {
+ for $otmp (keys %{$stp_dimension_values{$a}{$vtmp}}) {
+ my $min = $stp_dimension_values{$a}{'MINVAL'}{$otmp};
+ my $max = $stp_dimension_values{$a}{'MAXVAL'}{$otmp};
+ my $def = $stp_dimension_values{$a}{'DEFVAL'}{$otmp};
+ # Skip options with invalid values, the library contains such
+ # options in the case when only one constant value is allowed
+ next if (($min >= $max) || ($def < $min) || ($def > $max));
+ my $minmax = "${min}_${max}";
+ if (!$seen_inumopt{$otmp}{$minmax}++) {
+ if (!defined($inums{$otmp})) {
+ $inums{$otmp} = 0;
+ }
+ $inums{$otmp} ++;
+ push (@dimensionnumopts_list, "${otmp}-$inums{$otmp}");
+ $numopt_ranges{"${otmp}-$inums{$otmp}"}{'MINVAL'} = $min;
+ $numopt_ranges{"${otmp}-$inums{$otmp}"}{'MAXVAL'} = $max;
+ }
+ }
+ }
+}
+
+#print join("\n", @floatnumopts_list);
+#print join("\n", @intnumopts_list);
+#print join("\n", @dimensionnumopts_list);
+
# Step 1: construct a map from Model= values to Foomatic model id's
# this map is %mapstp. The inverse from model to Model is %mapdb
#
@@ -206,16 +241,9 @@ if ($foomatic3) {
open PRINTERS, $mapfile or die "Cannot open mapfile $mapfile: $!\n";
for (<PRINTERS>) {
- if (m!^\#\s*gptofoo\s+([^\s]+)\s+([^\s]+)!) {
- my $foomaticid = $2;
- my $deviceclass = $1;
- if ($opt_o) {
- # Translate the Foomatic IDs to the old (numerical) ones
- $foomaticid = $oldid{$foomaticid}
- if defined($oldid{$foomaticid});
- }
- push (@{$mapstp{$deviceclass}}, $foomaticid);
- $mapfoo{$foomaticid} = $deviceclass; # do we need?
+ if (m!^#\s*gptofoo\s+([^\s]+)\s+([^\s]+)!) {
+ push (@{$mapstp{$1}}, $2);
+ $mapfoo{$2} = $1; # do we need?
}
}
@@ -225,14 +253,14 @@ $missing_drivers = 0;
for (keys(%stpdata)) {
if (!defined($mapstp{$_})) {
$missing_drivers = 1;
- warn "No foomatic printer IDs for gimp-print printer $_.\n";
+ warn "No foomatic printer IDs for gutenprint printer $_.\n";
}
}
for (keys(%mapstp)) {
if (!defined($stpdata{$_})) {
$missing_drivers = 1;
- warn "No gimp-print printer for foomatic ID $_.\n";
+ warn "No gutenprint printer for foomatic ID $_.\n";
}
}
@@ -241,24 +269,29 @@ if ($missing_drivers) {
}
# Figure out version etc
-open PIPE, "./gimp-print-version|" or die "Cannot run gimp-print-version: $!\n";
+open PIPE, "./gutenprint-version|" or die "Cannot run gutenprint-version: $!\n";
my $stpvers = <PIPE>;
-close PIPE or die "Cannot run gimp-print-version: $!\n";
+close PIPE or die "Cannot run gutenprint-version: $!\n";
chomp $stpvers;
+open PIPE, "./gutenprint-version -|" or die "Cannot run gutenprint-version: $!\n";
+my $stprel = <PIPE>;
+close PIPE or die "Cannot run gutenprint-version: $!\n";
+chomp $stprel;
+
# Build <printers> clause...
my @printerlist = ();
push (@printerlist, " <printers>\n");
my $p1;
for $p1 (keys(%mapstp)) {
- push (@printerlist, " <!-- gimp-print driver: $p1 -->\n");
+ push (@printerlist, " <!-- gutenprint driver: $p1 -->\n");
for my $id (@{$mapstp{$p1}}) {
if ($foomatic3) {
- # Add unprintable margins (only Foonmatic 2.9.x)
+ # Add unprintable margins (only Foomatic 2.9.x)
push(@printerlist, " <printer>\n");
push(@printerlist, " <id>$id</id>\n");
push(@printerlist, " <margins>\n");
- my ($cleft, $cright, $ctop, $cbottom) =
+ my ($cleft, $cright, $ctop, $cbottom) =
(undef, undef, undef, undef);
if (defined($imageableareas{$p1}{'Custom'})) {
$cleft = $imageableareas{$p1}{'Custom'}{'left'};
@@ -316,33 +349,28 @@ for $p1 (keys(%mapstp)) {
}
push (@printerlist, " </printers>\n");
-$drivernameprefix = "gimp-print";
+$drivernameprefix = "gutenprint";
print STDERR "Using driver name prefix \"$drivernameprefix\"\n";
my $generalsubs = { 'STPVER' => $stpvers,
+ 'STPREL' => $stprel,
+ 'REMAP' => $option_remap,
'DRVNAME' => $drivernameprefix,
'STPRINTERS' => join('', @printerlist) };
my $optiongroups = { 'PageSize' => 'General',
- 'InputSlot' => 'General',
- 'MediaType' => 'General',
- 'InkType' => 'General',
+ 'STP_InputSlot' => 'General',
+ 'STP_MediaType' => 'General',
'PrintoutMode' => 'General',
- 'Resolution' => 'PrintoutMode',
- 'Quality' => 'PrintoutMode',
- 'Color' => 'PrintoutMode',
- 'ImageType' => 'PrintoutMode',
- 'Dither' => 'PrintoutMode',
- 'Gamma' => 'Adjustment',
- 'Density' => 'Adjustment',
- 'Brightness' => 'Adjustment',
- 'Contrast' => 'Adjustment',
- 'Saturation' => 'Adjustment',
- 'Cyan' => 'Adjustment',
- 'Magenta' => 'Adjustment',
- 'Yellow' => 'Adjustment' };
-
-my @numericsubs = ('MINVAL', 'MAXVAL', 'DEFVAL');
+ 'STP_RenderResolution' => 'General',
+ 'STP_Quality' => 'General',
+ 'Color' => 'General',
+ 'STP_ImageType' => 'General'};
+
+my @numericsubs = ('MINVAL', 'MAXVAL');
+
+my $specialoutputfilenames = { 'Resolution' => 'PrinterResolution',
+ 'RenderResolution' => 'Resolution' };
# OK, make the db directory...
mkdir "foomatic-db", 0755 or
@@ -354,6 +382,7 @@ my $tmpl;
for $drivertype (@drivertypes) {
$drivertypesuffix = "-$drivertype";
$drivertypesuffix =~ s/-gs//;
+ $drivertypesuffix .= ".$stprel";
my $drvname = "$drivernameprefix$drivertypesuffix";
$generalsubs->{'DRVNAME'} = $drvname;
print "Generating Foomatic data for driver \"$drvname\"...\n";
@@ -362,28 +391,62 @@ for $drivertype (@drivertypes) {
mkdir "foomatic-db/$drvname", 0755 or
die "Cannot create directory foomatic-db/$drvname: $!\n"
unless -d "foomatic-db/$drvname";
- mkdir "foomatic-db/$drvname/opt", 0755 or
+ mkdir "foomatic-db/$drvname/opt", 0755 or
die "Cannot create directory foomatic-db/$drvname/opt: $!\n"
unless -d "foomatic-db/$drvname/opt";
mkdir "foomatic-db/$drvname/driver", 0755 or
die "Cannot create directory foomatic-db/$drvname/driver: $!\n"
unless -d 'foomatic-db/$drvname/driver';
- opendir TDIR, "$templatedir-$drivertype" or
- die "Cannot open templates directory: $!\n";
+ my $order = 1000;
- while ($tmpl=readdir(TDIR)) {
+# opendir TDIR, "$templatedir-$drivertype" or
+# die "Cannot open templates directory: $!\n";
+
+ for $fooopt (sort (keys(%ev_choices), @floatnumopts_list,
+ @dimensionnumopts_list,
+ @intnumopts_list), "PrintoutMode", "Model",
+ "RenderResolution", "gutenprint") {
- # Only XML files
- next if ($tmpl !~ m!.+\.xml$!);
# The "PrintoutMode" option is only supported by Foomatic 2.9.x or
- # newer
- next if ((!$foomatic3) && ($tmpl eq "PrintoutMode.xml"));
+ # newer (preliminary skipped always, do not remove the
+ # infrastructure for "PrintoutMode", it will be re-activated later
+ # on)
+ next if ((!$foomatic3) && ($fooopt eq "PrintoutMode"));
+
+ # "x_resolution" and "y_resolution" appear in %ev_choices but are
+ # not option names, so skip them
+ next if $fooopt =~ /^[xy]_resolution$/;
+
+ my ($num_opt, $type, $tmpl);
+ if (member($fooopt, @floatnumopts_list)) {
+ $num_opt = 1;
+ $type = "float";
+ $tmpl = "NumericalOptions.xml";
+ } elsif (member($fooopt, @intnumopts_list)) {
+ $num_opt = 1;
+ $type = "int";
+ $tmpl = "NumericalOptions.xml";
+ } elsif (member($fooopt, @dimensionnumopts_list)) {
+ $num_opt = 1;
+ $type = "dimension";
+ $tmpl = "NumericalOptions.xml";
+ } else {
+ $num_opt = 0;
+ $type = "enum";
+ $tmpl = "${fooopt}.xml";
+ $tmpl = "OtherOptions.xml"
+ if ! -r "$templatedir-$drivertype/$tmpl";
+ }
- my $fooopt = $tmpl;
- $fooopt =~ s!\.xml$!!;
- my $stpopt = $argnamemap{$fooopt};
- $stpopt = $fooopt if ! defined ($stpopt);
+ # Remove number appended to the end of the file name of
+ # numerical options
+ my $shortname = $fooopt;
+ $shortname =~ s!-\d+$!!;
+
+ #my $stpopt = $argnamemap{$shortname};
+ #$stpopt = $shortname if ! defined ($stpopt);
+ my $stpopt = $shortname;
# print STDERR "Argnamemap '$fooopt' => '$stpopt'\n";
@@ -391,7 +454,7 @@ for $drivertype (@drivertypes) {
my @datafile = <TMPL>;
close TMPL;
- print STDERR "Processing $tmpl...";
+ print STDERR "Processing \"$fooopt\"...";
my $template = join('',@datafile);
@@ -406,8 +469,29 @@ for $drivertype (@drivertypes) {
# Put the options into PPD groups (Foomatic >= 2.9)
if ($foomatic3) {
- my $substitution = "\n <arg_group>" .
- $optiongroups->{$fooopt} . "</arg_group>";
+ my $group;
+ if (defined($optiongroups->{$shortname})) {
+ # Group names given by table (esp. "General" for special
+ # Options)
+ $group = $optiongroups->{$shortname};
+ } elsif (defined($param_classes{$shortname}) &&
+ defined($param_levels{$shortname}) &&
+ $parameter_class_names[$param_classes{$shortname}] &&
+ $parameter_level_names[$param_levels{$shortname}]) {
+ # Group names given by libgutenprint
+ $group = $groupname_prefix . " " .
+ $parameter_class_names[$param_classes{$shortname}] . " " .
+ $parameter_level_names[$param_levels{$shortname}];
+ # Remove the spaces (the name with spaces Foomatic will
+ # generate automatically)
+ $group =~ s! !!g;
+ } else {
+ # All the above did not assign a group name? Use
+ # "Miscellaneous" (Should usually not happen)
+ $group = "Miscellaneous";
+ }
+ my $substitution = "\n <arg_group>" .
+ $group . "</arg_group>";
$template =~ s!\@\@GROUP\@\@!$substitution!g;
} else {
$template =~ s!\@\@GROUP\@\@!!g;
@@ -415,11 +499,52 @@ for $drivertype (@drivertypes) {
# Now do the numeric substitutions
+ $template =~ s!\@\@TYPE\@\@!$type!g;
for $substr (@numericsubs) {
- my $substitution = $stp_values{$substr}{$stpopt};
+ my $substitution;
+ my $substitution = $numopt_ranges{$fooopt}{$substr};
$template =~ s!\@\@$substr\@\@!$substitution!g;
}
+ # Substitutions for generic template files
+
+ my $lowercaseshortname = lc($fooopt);
+ my $subopt = $stpopt;
+
+ # The maximum length of the short name of an option is 31
+ # characters to be accepted in a PPD. The maximum length of a
+ # main keyword in a PPD is 40 characters, with
+ # "FoomaticRIPDefault" having 18, a short name of a numerical
+ # option (only those have "FoomaticRIPDefault" entries) is 22.
+
+ # We do not touch options whose names are short enough.
+
+ # As this problem did not occur with Gimp Print 4.2.7, none of
+ # the option names modified here already existed in
+ # Gimp-Print, all options concerned are new Gutenprint
+ # options. We also do not modify the parameters to be inserted
+ # in the GhostScript command line, so the Gutenprint library
+ # or the IJS server do not need to be modified.
+
+ my $maxlen = ($type eq "enum" ? 31 : 22);
+ my $shortopt = $subopt;
+ if (length($subopt) > $maxlen) {
+ my $nostpopt = $stpopt;
+ $nostpopt =~ s/^STP_//;
+ my $stropt = sprintf("%03d", $opt_index);
+ $shortopt = "STP_OPT_$stropt";
+ $opt_index++;
+ }
+ if ($tmpl !~ /^$fooopt/) {
+ $template =~ s!\@\@LOWERCASESHORTNAME\@\@!$lowercaseshortname!g;
+ $template =~ s!\@\@LONGNAME\@\@!$longnames{$shortname}!g;
+ $template =~ s!\@\@SHORTNAME\@\@!$shortopt!g;
+ $template =~ s!\@\@ORDER\@\@!$order!g;
+ #$order += 10;
+ $template =~ s!\@\@SPOT\@\@!B!g;
+ $template =~ s!\@\@PROTO\@\@!$subopt=\%s,!g;
+ }
+
# Now do special-purpose substitutions
for $substr (keys(%{$funcs->{$fooopt}})) {
@@ -429,11 +554,45 @@ for $drivertype (@drivertypes) {
}
}
+ if ($template =~ m!\@\@OPTCONSTRAINTS\@\@!) {
+ my $substitution = ($num_opt ? build_num_cons($fooopt) :
+ build_cons($stpopt));
+ # Skip this option if there are no constraints (no printers
+ # using this option)
+ if ($substitution !~ m!</constraint>!s) {
+ print STDERR "No printers using $fooopt\n";
+ next;
+ }
+ if (defined($substitution)) {
+ $template =~ s!\@\@OPTCONSTRAINTS\@\@!$substitution!g;
+ }
+ }
+ if ($template =~ m!\@\@ENUMVALS\@\@!) {
+ my $substitution = build_ev($stpopt);
+ # Skip this option if there are no choices (an enum option
+ # without choices does not make sense)
+ if ($substitution !~ m!</ev_shortname>!s) {
+ print STDERR "No choices for $fooopt\n";
+ next;
+ }
+ if (defined($substitution)) {
+ $template =~ s!\@\@ENUMVALS\@\@!$substitution!g;
+ }
+ }
+
# Any more?
grep (m!\@\@([^\@]+)\@\@!g
- && do { warn " Unknown substitution $1 in $tmpl!\n"; },
+ && do { warn " Unknown substitution $1 in $fooopt!\n"; },
split("\n",$template));
+ # File name for the option XML file
+
+ $tmpl = "${fooopt}.xml" if $tmpl !~ /^$fooopt\.xml$/;
+
+ if (my $f = $specialoutputfilenames->{$fooopt}) {
+ $tmpl = "${f}.xml";
+ }
+
# Finally, write out the new file
# Options are under opt/
@@ -441,7 +600,7 @@ for $drivertype (@drivertypes) {
# Special case the actual driver file under driver/
$dbfilename = "foomatic-db/$drvname/driver/$drvname.xml"
- if ($tmpl eq 'gimp-print.xml');
+ if ($tmpl eq 'gutenprint.xml');
open NEWF, "> $dbfilename" or die "Cannot create $dbfilename: $!";
print STDERR "writing $dbfilename...";
@@ -454,13 +613,17 @@ for $drivertype (@drivertypes) {
closedir TDIR;
# The paper size and resolution maps must be regenerated for the next
- # driver, because the "driverval"s are different for the different
+ # driver, because the "driverval"s are different for the different
# drivers. So delete the caches.
undef $pagemap;
undef %rescache;
}
+
+# member( $a, @b ) returns 1 if $a is in @b, 0 otherwise.
+sub member { my $e = shift; foreach (@_) { $e eq $_ and return 1 } 0 };
+
sub get_ev_shortname {
my ($val) = @_;
$val =~ s/ //g;
@@ -487,10 +650,6 @@ sub build_ev {
my $ev_longname = @$ev[1];
my $ev_shortname = @$ev[0];
- # The GhostScript driver has no "RawCMYK" output type setting
- next if (($drivertype eq "gs") && ($stpopt eq "Color") &&
- ($ev_shortname eq "RawCMYK"));
-
my $ev_id = get_ev_key($ev_shortname, $drvname);
my $ev_driverval;
@@ -504,7 +663,7 @@ sub build_ev {
$ev_driverval = $ev_shortname;
}
# Remove "Roll" paper sizes, user has to use "Custom" instead.
- next if (($stpopt eq "PageSize") && ($ev_driverval eq ""));
+ next if (($stpopt eq "STP_PageSize") && ($ev_driverval eq ""));
push (@vals,
" <enum_val id='$ev_id'>\n",
" <ev_longname><en>$ev_longname</en></ev_longname>\n",
@@ -557,14 +716,14 @@ sub build_cons {
for $stpname (keys(%stpdata)) {
if (0) {
- print STDERR " Processing gimp-print printer $stpname...\n";
+ print STDERR " Processing gutenprint printer $stpname...\n";
print STDERR
" There are no foomatic printers mapped to $stpname!?\n"
if !$mapstp{$stpname};
print STDERR " \%stpdata key is {$stpname}{$stpopt}\n";
}
- # Add to this printer to argument constraints?
+ # Add this printer to argument constraints?
if ($stpdata{$stpname}{$stpopt}) {
# What's the default value?
@@ -592,7 +751,7 @@ sub build_cons {
push (@PNCONS,
" <constraint sense='true'>\n",
" <driver>$drvname</driver>\n",
- " <printer>$fooname</printer><!-- gimp-print name: $stpname -->\n",
+ " <printer>$fooname</printer><!-- gutenprint name: $stpname -->\n",
" <arg_defval>$foodefval</arg_defval>\n",
" </constraint>\n");
}
@@ -607,6 +766,98 @@ sub build_cons {
" </constraints>\n");
}
+sub build_num_cons {
+
+ my ($foooptfile) = @_;
+
+ my $drvname = "$drivernameprefix$drivertypesuffix";
+
+ my @PNCONS = ();
+
+ # Do we have a float or an int option?
+ my $type;
+ if (member($foooptfile, @floatnumopts_list)) {
+ $type = "float";
+ } elsif (member($foooptfile, @dimensionnumopts_list)) {
+ $type = "dimension";
+ } else {
+ $type = "int";
+ }
+
+ # Name of the actual option
+ my $stpopt = $foooptfile;
+ $stpopt =~ s!-\d+$!!;
+
+ # For each stp printer...
+ my $stpname;
+ for $stpname (keys(%stpdata)) {
+
+ if (0) {
+ print STDERR " Processing gutenprint printer $stpname...\n";
+ print STDERR
+ " There are no foomatic printers mapped to $stpname!?\n"
+ if !$mapstp{$stpname};
+ }
+
+ # Add this printer to argument constraints? The printer must provide
+ # this option and a default value for it.
+ my $stpdef;
+ if ((defined($stpdef =
+ $stp_float_values{$stpname}{"DEFVAL"}{$stpopt})) ||
+ (defined($stpdef =
+ $stp_int_values{$stpname}{"DEFVAL"}{$stpopt})) ||
+ (defined($stpdef =
+ $stp_dimension_values{$stpname}{"DEFVAL"}{$stpopt}))) {
+ # Find minimum and maximum
+ my ($min, $max);
+ if ($type eq "float") {
+ $min = $stp_float_values{$stpname}{"MINVAL"}{$stpopt};
+ $max = $stp_float_values{$stpname}{"MAXVAL"}{$stpopt};
+ } elsif ($type eq "dimension") {
+ $min = $stp_dimension_values{$stpname}{"MINVAL"}{$stpopt};
+ $max = $stp_dimension_values{$stpname}{"MAXVAL"}{$stpopt};
+ } else {
+ $min = $stp_int_values{$stpname}{"MINVAL"}{$stpopt};
+ $max = $stp_int_values{$stpname}{"MAXVAL"}{$stpopt};
+ }
+ # Does the range of this option with this printer match
+ # the Foomatic option entry we are building currently?
+ if (defined($numopt_ranges{$foooptfile}{'MINVAL'}) &&
+ defined($numopt_ranges{$foooptfile}{'MAXVAL'}) &&
+ ($min == $numopt_ranges{$foooptfile}{'MINVAL'}) &&
+ ($max == $numopt_ranges{$foooptfile}{'MAXVAL'})) {
+
+ if (0) {
+ print STDERR
+ " Default for $stpname/$stpopt is $stpdef\n";
+ }
+
+ my $fooname;
+ for $fooname (@{$mapstp{$stpname}}) {
+
+ if (0) {
+ print STDERR
+ " Printer $fooname takes option $stpopt.\n";
+ }
+
+ push (@PNCONS,
+ " <constraint sense='true'>\n",
+ " <driver>$drvname</driver>\n",
+ " <printer>$fooname</printer><!-- gutenprint name: $stpname -->\n",
+ " <arg_defval>$stpdef</arg_defval>\n",
+ " </constraint>\n");
+ }
+ }
+ }
+
+ }
+
+ return join('',
+ "<constraints>\n",
+ @PNCONS,
+ " </constraints>\n");
+}
+
sub optmap_pagesize {
my ($value) = @_;
@@ -618,13 +869,9 @@ sub optmap_pagesize {
my ($name, $width, $height) = ($1, $2, $3);
if (($width > 0 and $height > 0) or
($name eq "Custom")) {
- if ($drivertype eq "gs") {
- $pagemap->{$name} = "$width $height";
- } else {
- $pagemap->{$name} = "-dDEVICEWIDTHPOINTS=$width -dDEVICEHEIGHTPOINTS=$height";
- }
+ $pagemap->{$name} = "-dDEVICEWIDTHPOINTS=$width -dDEVICEHEIGHTPOINTS=$height";
# print STDERR "PageSize '$name' driverval '$width $height'\n";
- }
+ }
}
close PUTIL;
}
@@ -699,26 +946,11 @@ sub build_model_ev {
# Put in the basic choice info: ev names, etc
my $ev_shortname = $ev;
my $ev_longname = $printer_name{$ev};
+ my $make = $printer_make{$ev};
my $ev_shortname = get_ev_shortname($ev);
my $ev_id = get_ev_key($ev, $drvname);
my $ev_driverval;
- if ($drivertype eq "gs") {
- $ev_driverval = $ev;
- } else {
- my $make;
- if ($ev =~ /^escp2/) {
- $make = "EPSON";
- } elsif ($ev =~ /^bjc/) {
- $make = "CANON";
- } elsif ($ev =~ /^pcl/) {
- $make = "HEWLETT-PACKARD";
- } elsif ($ev =~ /^lexmark/) {
- $make = "LEXMARK";
- } else {
- die "Could not determine printer manufacturer from \"$ev\"!\n";
- }
- $ev_driverval = "-sDeviceManufacturer=$make -sDeviceModel=$ev";
- }
+ $ev_driverval = "-sDeviceManufacturer=$make -sDeviceModel=$ev";
push (@vals,
" <enum_val id='$ev_id'>\n",
" <ev_longname><en>$ev_longname</en></ev_longname>\n",
@@ -760,16 +992,7 @@ sub build_model_ev {
# Stuff for Resolution.
#
# printer_options gives us Quality information. We examine this to
-# determine what to do for the gs resolution argument:
-#
-# - Is this a 180/360/720 printer or a 150/300/600 printer?
-#
-# - What are the legal resolutions? Sort of parse and compute these
-# from the Resolution values.
-#
-# In the case of the GhostScript driver The driverval is "X Y", and gets
-# passed in a /HWResolution ps clause, for the IJS driver it is "XxY" and
-# gets passed via the "-r" command line option of GhostScript.
+# determine what to do for the gs resolution argument.
sub compute_resolutions {
my ($stpname) = @_;
@@ -783,30 +1006,20 @@ sub compute_resolutions {
my $defval;
my $qual;
- for $qual (keys(%{$stpdata{$stpname}{'Resolution'}})) {
- $qual =~ m!(\d+)\s*(x\s*(\d+))?!;
- my ($x, $y) = ($1, $3);
- $y = $x if !defined($y);
-
- my $r;
- if ($drivertype eq "gs") {
- $r = {'x' => $x,
- 'y' => $y,
- 'driverval' => "$x $y",
- 'ev_key' => get_ev_key("res-$x-$y", $drvname)
- };
- } else {
- $r = {'x' => $x,
- 'y' => $y,
- 'driverval' => "${x}x${y}",
- 'ev_key' => get_ev_key("res-$x-$y", $drvname)
- };
- }
+ for $qual (keys(%{$stpdata{$stpname}{'STP_Resolution'}})) {
+ my ($x) = $stpdata{$stpname}{'x_resolution'}{$qual};
+ my ($y) = $stpdata{$stpname}{'y_resolution'}{$qual};
+
+ my $r = {'x' => $x,
+ 'y' => $y,
+ 'driverval' => "${x}x${y}",
+ 'ev_key' => get_ev_key("res-$x-$y", $drvname)
+ };
push (@reslist, $r);
# Default?
$defval = get_ev_key("res-$x-$y", $drvname)
- if ($qual eq $defaults{$stpname}{'Resolution'});
+ if ($qual eq $defaults{$stpname}{'STP_Resolution'});
# Note that this resolution value exists
$resolutions{"$x $y"} = { 'x' => $x,
@@ -847,15 +1060,10 @@ sub build_resolution_ev {
my ($x, $y) = ($resolutions{$ev}{'x'}, $resolutions{$ev}{'y'});
# Put in the basic choice info: ev names, etc
- my $ev_longname = "$x x $y DPI";
+ my $ev_longname = "$x x $y dpi";
my $ev_shortname = get_ev_shortname($ev_longname);
my $ev_id = get_ev_key("res-$x-$y", $drvname);
- my $ev_driverval;
- if ($drivertype eq "gs") {
- $ev_driverval = "$x $y";
- } else {
- $ev_driverval = "${x}x${y}";
- }
+ my $ev_driverval = "${x}x${y}";
push (@vals,
" <enum_val id='$ev_id'>\n",
@@ -888,7 +1096,7 @@ sub build_resolution_ev {
push (@vals,
" <constraint sense='true'>\n",
" <driver>$drvname</driver>\n",
- " <printer>$fooprn</printer><!-- stpname: $stpprn -->\n",
+ " <printer>$fooprn</printer><!-- gutenprint name: $stpprn -->\n",
" </constraint>\n");
}
}
@@ -929,7 +1137,7 @@ sub build_resolution_cons {
push (@PNCONS,
" <constraint sense='true'>\n",
" <driver>$drvname</driver>\n",
- " <printer>$fooname</printer><!-- stpname: $stpname -->\n",
+ " <printer>$fooname</printer><!-- gutenprint name: $stpname -->\n",
" <arg_defval>$foodefval</arg_defval>\n",
" </constraint>\n");
}
@@ -957,7 +1165,7 @@ sub build_printoutmode_ev {
my $ev_longname = $printoutmodechoices->{$choice};
my $ev_shortname = $choice;
- my $ev_id =
+ my $ev_id =
get_ev_key($modes{$choice}{$ev_driverval}, $drvname);
push (@vals,
@@ -976,7 +1184,7 @@ sub build_printoutmode_ev {
for $stpprn (keys(%stpdata)) {
my $fooprn;
for $fooprn (@{$mapstp{$stpprn}}) {
- if ($printoutmode->{$stpprn}{$choice} eq
+ if ($printoutmode->{$stpprn}{$choice} eq
$ev_driverval) {
# OK, this choice applies to this printer
push (@vals,
@@ -1017,7 +1225,7 @@ sub build_printoutmode_cons {
# What's the default value (always the "Normal" mode)?
my $normalmode = $printoutmode->{$stpname}{'Normal'};
- my $foodefval = get_ev_key($modes{'Normal'}{$normalmode},
+ my $foodefval = get_ev_key($modes{'Normal'}{$normalmode},
$drvname);
push (@PNCONS,
@@ -1038,6 +1246,8 @@ sub build_printoutmode_cons {
sub qualityorder {
# List of suffixes of the Quality choices
my @suffixes = (
+ # HP
+ "mono",
# General
"",
"dpi",
@@ -1061,8 +1271,6 @@ sub qualityorder {
"hq2uni",
# Canon
"dmt",
- # HP
- "mono",
);
my ($a, $b) = @_;
# Bring the suffixes to lower case
@@ -1078,7 +1286,7 @@ sub qualityorder {
if (($firstinlist) && ($secondinlist)) {return 0};
}
- # Equal quality
+ # Unknown qualities
die "The quality choice suffixes $a and $b are unknown!\n";
return 0;
@@ -1126,19 +1334,22 @@ sub getprintoutmode {
my $stpprn;
for $stpprn (keys(%stpdata)) {
my $modeinfo = {};
- my ($draftminres, $draftbestsymmetry, $draftlowestqualstr) =
+ my ($draftminres, $draftbestsymmetry, $draftlowestqualstr) =
(99999999, 99999999, "xxx");
- my $normaldefaultqual = $defaults{$stpprn}{'Resolution'};
- my ($highmaxres, $highbestsymmetry, $highbestqualstr) =
+ my ($normalminres, $normalbestsymmetry, $normaluni,
+ $normallowestqualstr) =
+ (99999999, 99999999, 0, "xxx");
+ my ($highmaxres, $highbestsymmetry, $highbestqualstr) =
(0, 99999999, "");
- my ($veryhighmaxres, $veryhighbestsymmetry, $veryhighbestqualstr) =
+ my ($veryhighmaxres, $veryhighbestsymmetry, $veryhighbestqualstr) =
(0, 99999999, "");
- my ($photomaxres, $photobestsymmetry, $photobestqualstr) =
+ my ($photomaxres, $photobestsymmetry, $photobestqualstr) =
(0, 99999999, "");
# Go through all choices of the "Quality" option and find the
# best values for the "PrintoutMode" option
my $quality;
- for $quality (keys(%{$stpdata{$stpprn}{'Resolution'}})) {
+ for $quality (keys(%{$stpdata{$stpprn}{'STP_Resolution'}})) {
+
my ($xres, $yres, $qualstr);
if ($quality =~ /^(\d+)x(\d+)(\D.*)$/) {
$xres = $1;
@@ -1149,7 +1360,9 @@ sub getprintoutmode {
$yres = $1;
$qualstr = $2;
} else {
- die "Invalid quality: $quality\n";
+ $xres = $stpdata{$stpprn}{'x_resolution'};
+ $yres = $stpdata{$stpprn}{'y_resolution'};
+ $qualstr = $quality;
}
# Resolution in dots per square inch
my $respersquareinch = $xres * $yres;
@@ -1160,54 +1373,126 @@ sub getprintoutmode {
### Mode: DRAFT
- # Use always the lowest available resolution/quality,
+ # Use always the lowest available resolution/quality,
# preferrably symmetric resolutions,
# Do not use resolutions with less than 150 dpi in both
# demensions.
- # VeryFast dithering, ImageType LineArt
+ # ImageType Text
+
+ my $qualitysetting =
+ (defined($stpdata{$stpprn}{'STP_Quality'}) ?
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Draft'}) ?
+ 'Draft' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Economy'}) ?
+ 'Economy' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'FastEconomy'}) ?
+ 'FastEconomy' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Standard'}) ?
+ 'Standard' : 'ERROR' )))) : '');
+ die ("\n\n'STP_Quality' option without 'Draft', 'Economy', " .
+ "'FastEconomy', and 'Standard' choices for the '$stpprn' " .
+ "device class!\n")
+ if $qualitysetting eq 'ERROR';
+
+ my $imagesetting =
+ (defined($stpdata{$stpprn}{'STP_ImageType'}) ?
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'TextGraphics'}) ?
+ 'TextGraphics' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'TextGraphics'}) ?
+ 'TextGraphics' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'LineArt'}) ?
+ 'LineArt' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'Graphics'}) ?
+ 'Graphics' : 'ERROR' )))) : '');
+ die ("\n\n'STP_ImageType' option without 'TextGraphics', " .
+ "'LineArt', and 'Graphics' choices for the '$stpprn' " .
+ "device class!\n")
+ if $imagesetting eq 'ERROR';
if (($respersquareinch < $draftminres) ||
- (($respersquareinch == $draftminres) &&
+ (($respersquareinch == $draftminres) &&
($symmetry < $draftbestsymmetry)) ||
(($respersquareinch == $draftminres) &&
($symmetry == $draftbestsymmetry) &&
(qualityorder($qualstr, $draftlowestqualstr) < 0))) {
- $draftbestsymmetry = $symmetry;
- $draftminres = $respersquareinch;
- $draftlowestqualstr = $qualstr;
- next if (($xres < 150) && # Resolution not lower than
- ($yres < 150)); # 150x150, 360x120 allowed
- $modeinfo->{'Draft'} = {
- 'quality' => $quality,
- 'xres' => $xres,
- 'yres' => $yres,
- 'dither' => 'VeryFast',
- 'image' => 'LineArt'
+ unless (($xres < 150) && # Resolution not lower than
+ ($yres < 150)) { # 150x150, 360x120 allowed
+ $draftbestsymmetry = $symmetry;
+ $draftminres = $respersquareinch;
+ $draftlowestqualstr = $qualstr;
+ $modeinfo->{'Draft'} = {
+ 'stpres' => $quality,
+ 'quality' => $qualitysetting,
+ 'image' => $imagesetting,
+ 'xres' => $xres,
+ 'yres' => $yres
+ }
}
}
### Mode: NORMAL
- # Default resolution/quality of GIMP-Print, upgrade to
- # unidirectional if possible, use 600x600 dpi for
- # Lexmark Z..
-
- # Adaptive Hybrid dithering, ImageType Photographs
-
- if ((($stpprn =~ /^lexmark\-z/) &&
- ($xres == 600) && ($yres == 600) && ($qualstr eq "uni")) ||
- (($stpprn !~ /^lexmark\-z/) &&
- (($quality eq "${normaldefaultqual}uni") ||
- (($quality eq $normaldefaultqual) &&
- (!defined($normal->{'quality'})))))) {
- $modeinfo->{'Normal'} = {
- 'quality' => $quality,
- 'xres' => $xres,
- 'yres' => $yres,
- 'dither' => 'Adaptive',
- 'image' => 'Photographs'
+ # Lowest resolution which is at least 300x300 dpi (600x600 dpi
+ # for Lexmark Z..), low quality level, unidirectional if
+ # possible,
+
+ # ImageType TextGraphics
+
+ $qualitysetting =
+ (defined($stpdata{$stpprn}{'STP_Quality'}) ?
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Standard'}) ?
+ 'Standard' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'High'}) ?
+ 'High' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Draft'}) ?
+ 'Draft' : 'ERROR' ))) : '');
+ die ("\n\n'STP_Quality' option without 'Draft', 'Standard', and " .
+ "'High' choices for the '$stpprn' device class!\n")
+ if $qualitysetting eq 'ERROR';
+
+ $imagesetting =
+ (defined($stpdata{$stpprn}{'STP_ImageType'}) ?
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'TextGraphics'}) ?
+ 'TextGraphics' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'Graphics'}) ?
+ 'Graphics' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'LineArt'}) ?
+ 'LineArt' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'Photo'}) ?
+ 'Photo' : 'ERROR' )))) : '');
+ die ("\n\n'STP_ImageType' option without 'TextGraphics', 'Graphics', " .
+ "'LineArt', and 'Photo' choices for the '$stpprn' " .
+ "device class!\n")
+ if $imagesetting eq 'ERROR';
+
+ if (($respersquareinch < $normalminres) ||
+ (($respersquareinch == $normalminres) &&
+ ($symmetry < $normalbestsymmetry)) ||
+ (($respersquareinch == $normalminres) &&
+ ($symmetry == $normalbestsymmetry) &&
+ (($qualstr =~ /uni/) > $normaluni)) ||
+ (($respersquareinch == $normalminres) &&
+ ($symmetry == $normalbestsymmetry) &&
+ (($qualstr =~ /uni/) == $normaluni) &&
+ (qualityorder($qualstr, $normallowestqualstr) < 0))) {
+ unless ((($xres < 300) || # Resolution not lower than
+ ($yres < 300)) || # 300x300, (600x600 on Lexmark)
+ (($stpprn =~ /^lexmark\-z/) &&
+ (($xres < 600) ||
+ ($yres < 600)))) {
+ $normalbestsymmetry = $symmetry;
+ $normalminres = $respersquareinch;
+ $normaluni = ($qualstr =~ /uni/);
+ $normallowestqualstr = $qualstr;
+ $modeinfo->{'Normal'} = {
+ 'stpres' => $quality,
+ 'quality' => $qualitysetting,
+ 'image' => $imagesetting,
+ 'xres' => $xres,
+ 'yres' => $yres
+ }
}
}
@@ -1215,18 +1500,48 @@ sub getprintoutmode {
# High: The highest resolution which is not higher than
# 720x720 dpi (Lexmark Z..: 1200x1200 dpi),
- # unidirectional if possible,
+ # unidirectional if possible,
# not "fol", "fourp", "hq", "hq2"
- # Adaptive Hybrid dithering, ImageType Photographs
+ # ImageType TextGraphics
+
+ $qualitysetting =
+ (defined($stpdata{$stpprn}{'STP_Quality'}) ?
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'High'}) ?
+ 'High' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Best'}) ?
+ 'Best' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Photo'}) ?
+ 'Photo' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Standard'}) ?
+ 'Standard' : 'ERROR' )))) : '');
+ die ("\n\n'STP_Quality' option without 'High', 'Best', " .
+ "'Photo', and 'Standard' choices for the '$stpprn' " .
+ "device class!\n")
+ if $qualitysetting eq 'ERROR';
+
+ $imagesetting =
+ (defined($stpdata{$stpprn}{'STP_ImageType'}) ?
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'TextGraphics'}) ?
+ 'TextGraphics' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'Graphics'}) ?
+ 'Graphics' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'Photo'}) ?
+ 'Photo' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'LineArt'}) ?
+ 'LineArt' : 'ERROR' )))) : '');
+ die ("\n\n'STP_ImageType' option without 'TextGraphics', 'Graphics', " .
+ "'LineArt', and 'Photo' choices for the '$stpprn' " .
+ "device class!\n")
+ if $imagesetting eq 'ERROR';
if (($respersquareinch > $highmaxres) ||
- (($respersquareinch == $highmaxres) &&
+ (($respersquareinch == $highmaxres) &&
($symmetry < $highbestsymmetry)) ||
(($respersquareinch == $highmaxres) &&
($symmetry == $highbestsymmetry) &&
(qualityorder($qualstr, $highbestqualstr) > 0))) {
- unless ((($stpprn !~ /^lexmark\-z/) &&
+ unless ((($stpprn !~ /^lexmark\-z/) &&
(($xres > 720) || # Resolution not higher than
($yres > 720))) || # 720x720 for non Lexmark
($xres > 1200) || # not bigger than 1200x1200
@@ -1237,26 +1552,56 @@ sub getprintoutmode {
$highmaxres = $respersquareinch;
$highbestqualstr = $qualstr;
$modeinfo->{'High'} = {
- 'quality' => $quality,
+ 'stpres' => $quality,
+ 'quality' => $qualitysetting,
+ 'image' => $imagesetting,
'xres' => $xres,
- 'yres' => $yres,
- 'dither' => 'Adaptive',
- 'image' => 'Photographs'
+ 'yres' => $yres
}
}
}
### Mode: VERY HIGH
- # Use always the highest available resolution/quality,
+ # Use always the highest available resolution/quality,
# preferrably symmetric resolutions,
# On Epsons: Maximum 1440x720, not "hq2".
- # Adaptive Hybrid dithering, ImageType Photographs
+ # ImageType TextGraphics
+
+ $qualitysetting =
+ (defined($stpdata{$stpprn}{'STP_Quality'}) ?
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Best'}) ?
+ 'Best' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'High'}) ?
+ 'High' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Photo'}) ?
+ 'Photo' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Standard'}) ?
+ 'Standard' : 'ERROR' )))) : '');
+ die ("\n\n'STP_Quality' option without 'High', 'Best', " .
+ "'Photo', and 'Standard' choices for the '$stpprn' " .
+ "device class!\n")
+ if $qualitysetting eq 'ERROR';
+
+ $imagesetting =
+ (defined($stpdata{$stpprn}{'STP_ImageType'}) ?
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'TextGraphics'}) ?
+ 'TextGraphics' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'Graphics'}) ?
+ 'Graphics' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'Photo'}) ?
+ 'Photo' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'LineArt'}) ?
+ 'LineArt' : 'ERROR' )))) : '');
+ die ("\n\n'STP_ImageType' option without 'TextGraphics', 'Graphics', " .
+ "'LineArt', and 'Photo' choices for the '$stpprn' " .
+ "device class!\n")
+ if $imagesetting eq 'ERROR';
if (($respersquareinch > $veryhighmaxres) ||
- (($respersquareinch == $veryhighmaxres) &&
+ (($respersquareinch == $veryhighmaxres) &&
($symmetry < $veryhighbestsymmetry)) ||
(($respersquareinch == $veryhighmaxres) &&
($symmetry == $veryhighbestsymmetry) &&
@@ -1269,49 +1614,85 @@ sub getprintoutmode {
$veryhighmaxres = $respersquareinch;
$veryhighbestqualstr = $qualstr;
$modeinfo->{'VeryHigh'} = {
- 'quality' => $quality,
+ 'stpres' => $quality,
+ 'quality' => $qualitysetting,
+ 'image' => $imagesetting,
'xres' => $xres,
- 'yres' => $yres,
- 'dither' => 'Adaptive',
- 'image' => 'Photographs'
+ 'yres' => $yres
}
}
}
### Mode: PHOTO
- # Use always the highest available resolution/quality,
- # preferrably symmetric resolutions,
-
- # On Epsons: Maximum 2880x720
-
- # EvenTone dithering, ImageType Photographs
+ # High: The highest resolution which is not higher than
+ # 720x720 dpi (Lexmark Z..: 1200x1200 dpi),
+ # unidirectional if possible,
+
+ # ImageType Photographs
+
+ $qualitysetting =
+ (defined($stpdata{$stpprn}{'STP_Quality'}) ?
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'HighPhoto'}) ?
+ 'HighPhoto' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Photo'}) ?
+ 'Photo' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'UltraPhoto'}) ?
+ 'UltraPhoto' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Best'}) ?
+ 'Best' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'High'}) ?
+ 'High' :
+ (defined($stpdata{$stpprn}{'STP_Quality'}{'Standard'}) ?
+ 'Standard' : 'ERROR' )))))) : '');
+ die ("\n\n'STP_Quality' option without 'HighPhoto', 'Photo', " .
+ "'UltraPhoto', 'Best', 'High', and 'Standard' choices " .
+ "for the '$stpprn' device class!\n")
+ if $qualitysetting eq 'ERROR';
+
+ $imagesetting =
+ (defined($stpdata{$stpprn}{'STP_ImageType'}) ?
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'Photo'}) ?
+ 'Photo' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'Graphics'}) ?
+ 'Graphics' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'TextGraphics'}) ?
+ 'TextGraphics' :
+ (defined($stpdata{$stpprn}{'STP_ImageType'}{'LineArt'}) ?
+ 'LineArt' : 'ERROR' )))) : '');
+ die ("\n\n'STP_ImageType' option without 'TextGraphics', 'Graphics', " .
+ "'LineArt', and 'Photo' choices for the '$stpprn' " .
+ "device class!\n")
+ if $imagesetting eq 'ERROR';
if (($respersquareinch > $photomaxres) ||
- (($respersquareinch == $photomaxres) &&
+ (($respersquareinch == $photomaxres) &&
($symmetry < $photobestsymmetry)) ||
(($respersquareinch == $photomaxres) &&
($symmetry == $photobestsymmetry) &&
(qualityorder($qualstr, $photobestqualstr) > 0))) {
- unless (($stpprn =~ /^escp2/) && # Epson
- (($xres > 2880) || # Resolution not higher than
- ($yres > 720))) { # 2880x720
+ unless ((($stpprn !~ /^lexmark\-z/) &&
+ (($xres > 720) || # Resolution not higher than
+ ($yres > 720))) || # 720x720 for non Lexmark
+ ($xres > 1200) || # not bigger than 1200x1200
+ ($yres > 1200) || # in general
+ ($qualstr =~ /^(hq2)$/)) { # Not "hq2"
$photobestsymmetry = $symmetry;
$photomaxres = $respersquareinch;
$photobestqualstr = $qualstr;
$modeinfo->{'Photo'} = {
- 'quality' => $quality,
+ 'stpres' => $quality,
+ 'quality' => $qualitysetting,
+ 'image' => $imagesetting,
'xres' => $xres,
- 'yres' => $yres,
- 'dither' => 'EvenTone',
- 'image' => 'Photographs'
+ 'yres' => $yres
}
}
}
}
# We must have a "Normal" mode for every printer.
- if (!defined($modeinfo->{'Normal'}{'quality'})) {
+ if (!defined($modeinfo->{'Normal'}{'stpres'})) {
die "No 'Normal' mode for $stpprn!\n";
}
@@ -1320,26 +1701,33 @@ sub getprintoutmode {
for my $m (keys(%{$modeinfo})) {
# If we didn't find anything for a certain mode, skip this
# mode
- next if (!defined($modeinfo->{$m}{'quality'}));
+ next if (!defined($modeinfo->{$m}{'stpres'}));
my $modestr =
- "GSResolution=$modeinfo->{$m}{'xres'}x" .
- "$modeinfo->{$m}{'yres'}DPI " .
- "Quality=$modeinfo->{$m}{'quality'} " .
- "Dither=$modeinfo->{$m}{'dither'} " .
- "ImageType=$modeinfo->{$m}{'image'}";
- if (defined($stpdata{$stpprn}{'Color'}{'Color'})) {
+ (defined($stpdata{$stpprn}{'STP_ImageType'}) ?
+ "STP_ImageType=$modeinfo->{$m}{'image'} " : "") .
+ (defined($stpdata{$stpprn}{'STP_Quality'}) ?
+ "STP_Quality=$modeinfo->{$m}{'quality'} " :
+ "STP_Resolution=$modeinfo->{$m}{'stpres'} ") .
+ "Resolution=$modeinfo->{$m}{'xres'}x" .
+ "$modeinfo->{$m}{'yres'}dpi";
+ if (defined($stpdata{$stpprn}{'Color'}{'Color'})) {
# Color printer
- $modes->{$stpprn}{$m} = $modestr . " OutputType=Color";
- $modes->{$stpprn}{"$m.Gray"} =
- $modestr . " OutputType=Grayscale";
+ $modes->{$stpprn}{$m} = $modestr . " STP_OutputType=Color";
+ if (defined($stpdata{$stpprn}{'Color'}{'Grayscale'})) {
+ $modes->{$stpprn}{"$m.Gray"} =
+ $modestr . " OutputType=Grayscale";
+ } elsif (defined($stpdata{$stpprn}{'Color'}{'BlackAndWhite'})) {
+ $modes->{$stpprn}{"$m.Gray"} =
+ $modestr . " OutputType=BlackAndWhite";
+ }
# Some HP inkjets have a "600mono" quality mode which
# is only available in Grayscale, replace this mode by
# "300dpi" in the settings for color printing
if ($modes->{$stpprn}{$m} =~ /600mono/) {
- if(!defined($stpdata{$stpprn}{'Resolution'}{'300dpi'})){
+ if(!defined($stpdata{$stpprn}{'STP_Resolution'}{'300dpi'})){
die "No '300dpi' mode for $stpprn!";
}
- $modes->{$stpprn}{$m} =~ s/600x600DPI/300x300DPI/;
+ $modes->{$stpprn}{$m} =~ s/600x600dpi/300x300dpi/;
$modes->{$stpprn}{$m} =~ s/600mono/300dpi/;
}
} else {
@@ -1355,21 +1743,21 @@ sub getprintoutmode {
}
# Remove 'VeryHigh' and 'High' if they are identical to lower
# quality modes
- if ($modes->{$stpprn}{'VeryHigh'} eq
+ if ($modes->{$stpprn}{'VeryHigh'} eq
$modes->{$stpprn}{'High'}) {
delete($modes->{$stpprn}{'VeryHigh'});
}
- if ($modes->{$stpprn}{'High'} eq
+ if ($modes->{$stpprn}{'High'} eq
$modes->{$stpprn}{'Normal'}) {
delete($modes->{$stpprn}{'High'});
}
- if (defined($stpdata{$stpprn}{'Color'}{'Color'})) {
+ if (defined($stpdata{$stpprn}{'Color'}{'Color'})) {
# Color printer
- if ($modes->{$stpprn}{'VeryHigh.Gray'} eq
+ if ($modes->{$stpprn}{'VeryHigh.Gray'} eq
$modes->{$stpprn}{'High.Gray'}) {
delete($modes->{$stpprn}{'VeryHigh.Gray'});
}
- if ($modes->{$stpprn}{'High.Gray'} eq
+ if ($modes->{$stpprn}{'High.Gray'} eq
$modes->{$stpprn}{'Normal.Gray'}) {
delete($modes->{$stpprn}{'High.Gray'});
}
diff --git a/src/foomatic/foomatic-printermap b/src/foomatic/foomatic-printermap
index 8056645..dc5f67f 100644
--- a/src/foomatic/foomatic-printermap
+++ b/src/foomatic/foomatic-printermap
@@ -57,6 +57,14 @@
#gptofoo bjc-7000 printer/Canon-BJC-7000
#gptofoo bjc-7100 printer/Canon-BJC-7100
#gptofoo bjc-8200 printer/Canon-BJC-8200
+#gptofoo canon-cp100 printer/Canon-CP-100
+#gptofoo canon-cp100 printer/Canon-CP-200
+#gptofoo canon-cp100 printer/Canon-CP-300
+#gptofoo canon-cp220 printer/Canon-CP-220
+#gptofoo canon-cp220 printer/Canon-CP-330
+#gptofoo canon-cp220 printer/Canon-SELPHY-CP-400
+#gptofoo canon-cp220 printer/Canon-SELPHY-CP-500
+#gptofoo canon-cp220 printer/Canon-SELPHY-CP-600
#gptofoo pcl-4 printer/Canon-GP_335
#gptofoo pcl-3 printer/Canon-LBP-4sx
#gptofoo pcl-4l printer/Canon-LBP-430
@@ -64,7 +72,6 @@
#gptofoo pcl-6 printer/Canon-LBP-1260
#gptofoo pcl-6 printer/Canon-LBP-1760
#gptofoo bjc-4300 printer/Canon-S100
-#gptofoo bjc-s200 printer/Canon-S200
#gptofoo bjc-s800 printer/Canon-S300
#gptofoo bjc-s400 printer/Canon-S400
#gptofoo bjc-s450 printer/Canon-S450
@@ -108,17 +115,23 @@
#gptofoo escp2-c43ux printer/Epson-Stylus_C43UX
#gptofoo escp2-c44sx printer/Epson-Stylus_C44SX
#gptofoo escp2-c44ux printer/Epson-Stylus_C44UX
+#gptofoo escp2-c45 printer/Epson-Stylus_C45
+#gptofoo escp2-c46 printer/Epson-Stylus_C46
#gptofoo escp2-c50 printer/Epson-Stylus_C50
#gptofoo escp2-c60 printer/Epson-Stylus_C60
#gptofoo escp2-c61 printer/Epson-Stylus_C61
#gptofoo escp2-c62 printer/Epson-Stylus_C62
#gptofoo escp2-c63 printer/Epson-Stylus_C63
#gptofoo escp2-c64 printer/Epson-Stylus_C64
+#gptofoo escp2-c65 printer/Epson-Stylus_C65
+#gptofoo escp2-c66 printer/Epson-Stylus_C66
#gptofoo escp2-c70 printer/Epson-Stylus_C70
#gptofoo escp2-c80 printer/Epson-Stylus_C80
#gptofoo escp2-c82 printer/Epson-Stylus_C82
#gptofoo escp2-c83 printer/Epson-Stylus_C83
#gptofoo escp2-c84 printer/Epson-Stylus_C84
+#gptofoo escp2-c85 printer/Epson-Stylus_C85
+#gptofoo escp2-c86 printer/Epson-Stylus_C86
#gptofoo escp2 printer/Epson-Stylus_Color
#gptofoo escp2 printer/Epson-Stylus_Color_I
#gptofoo escp2 printer/Epson-Stylus_Color_II
@@ -181,9 +194,20 @@
#gptofoo escp2-ex printer/Epson-Stylus_Photo_EX
#gptofoo escp2-ex3 printer/Epson-Stylus_Photo_EX3
#gptofoo escp2-r200 printer/Epson-Stylus_Photo_R200
+#gptofoo escp2-r210 printer/Epson-Stylus_Photo_R210
#gptofoo escp2-r300 printer/Epson-Stylus_Photo_R300
+#gptofoo escp2-r310 printer/Epson-Stylus_Photo_R310
+#gptofoo escp2-rx400 printer/Epson-Stylus_Photo_RX400
+#gptofoo escp2-rx420 printer/Epson-Stylus_Photo_RX420
+#gptofoo escp2-rx425 printer/Epson-Stylus_Photo_RX425
+#gptofoo escp2-rx430 printer/Epson-Stylus_Photo_RX430
#gptofoo escp2-rx500 printer/Epson-Stylus_Photo_RX500
+#gptofoo escp2-rx510 printer/Epson-Stylus_Photo_RX510
#gptofoo escp2-rx600 printer/Epson-Stylus_Photo_RX600
+#gptofoo escp2-rx620 printer/Epson-Stylus_Photo_RX620
+#gptofoo escp2-rx630 printer/Epson-Stylus_Photo_RX630
+#gptofoo escp2-r800 printer/Epson-Stylus_Photo_R800
+#gptofoo escp2-r1800 printer/Epson-Stylus_Photo_R1800
#gptofoo escp2-5000 printer/Epson-Stylus_Pro_5000
#gptofoo escp2-5500 printer/Epson-Stylus_Pro_5500
#gptofoo escp2-7000 printer/Epson-Stylus_Pro_7000
@@ -195,14 +219,21 @@
#gptofoo escp2-10000 printer/Epson-Stylus_Pro_10000
#gptofoo escp2-scan2000 printer/Epson-Stylus_Scan_2000
#gptofoo escp2-scan2500 printer/Epson-Stylus_Scan_2500
+#gptofoo escp2-cx1500 printer/Epson-Stylus_CX1500
#gptofoo escp2-cx3100 printer/Epson-Stylus_CX3100
#gptofoo escp2-cx3200 printer/Epson-Stylus_CX3200
+#gptofoo escp2-cx3500 printer/Epson-Stylus_CX3500
+#gptofoo escp2-cx3600 printer/Epson-Stylus_CX3600
+#gptofoo escp2-cx3650 printer/Epson-Stylus_CX3650
+#gptofoo escp2-cx4600 printer/Epson-Stylus_CX4600
#gptofoo escp2-cx5100 printer/Epson-Stylus_CX5100
#gptofoo escp2-cx5200 printer/Epson-Stylus_CX5200
#gptofoo escp2-cx5300 printer/Epson-Stylus_CX5300
#gptofoo escp2-cx5400 printer/Epson-Stylus_CX5400
#gptofoo escp2-cx6300 printer/Epson-Stylus_CX6300
#gptofoo escp2-cx6400 printer/Epson-Stylus_CX6400
+#gptofoo escp2-cx6500 printer/Epson-Stylus_CX6500
+#gptofoo escp2-cx6600 printer/Epson-Stylus_CX6600
#gptofoo escp2-cx8300 printer/Epson-Stylus_CX8300
#gptofoo escp2-cx8400 printer/Epson-Stylus_CX8400
#gptofoo escp2-cl700 printer/Epson-CL_700
@@ -221,10 +252,15 @@
#gptofoo escp2-mj8000c printer/Epson-MJ_8000C
#gptofoo escp2-pm700c printer/Epson-PM_700C
#gptofoo escp2-pmg700 printer/Epson-PM_G700
+#gptofoo escp2-pmg720 printer/Epson-PM_G720
+#gptofoo escp2-pmg800 printer/Epson-PM_G800
+#gptofoo escp2-pmg820 printer/Epson-PM_G820
#gptofoo escp2-pm730c printer/Epson-PM_730C
#gptofoo escp2-pm740c printer/Epson-PM_740C
#gptofoo escp2-pm750c printer/Epson-PM_750C
-#gptofoo escp2-pmd750 printer/Epson-PM_D700
+#gptofoo escp2-pmd750 printer/Epson-PM_D750
+#gptofoo escp2-pmd770 printer/Epson-PM_D770
+#gptofoo escp2-pmd1000 printer/Epson-PM_D1000
#gptofoo escp2-pm760c printer/Epson-PM_760C
#gptofoo escp2-pm770c printer/Epson-PM_770C
#gptofoo escp2-pm780c printer/Epson-PM_780C
@@ -234,8 +270,10 @@
#gptofoo escp2-pm870c printer/Epson-PM_870C
#gptofoo escp2-pm880c printer/Epson-PM_880C
#gptofoo escp2-pm930c printer/Epson-PM_930C
+#gptofoo escp2-pm940c printer/Epson-PM_940C
#gptofoo escp2-pm950c printer/Epson-PM_950C
#gptofoo escp2-pm970c printer/Epson-PM_970C
+#gptofoo escp2-pm980c printer/Epson-PM_980C
#gptofoo escp2-pm2000c printer/Epson-PM_2000C
#gptofoo escp2-pm2200c printer/Epson-PM_2200C
#gptofoo escp2-pm3000c printer/Epson-PM_3000C
@@ -247,9 +285,15 @@
#gptofoo escp2-pm7000c printer/Epson-PM_7000C
#gptofoo escp2-pm9000c printer/Epson-PM_9000C
#gptofoo escp2-pm10000 printer/Epson-PM_10000
+#gptofoo escp2-pxg900 printer/Epson-PX_G900
+#gptofoo escp2-pxg920 printer/Epson-PX_G920
+#gptofoo escp2-pxg5000 printer/Epson-PX_G5000
#gptofoo escp2-pxv500 printer/Epson-PX_V500
+#gptofoo escp2-pxv600 printer/Epson-PX_V600
#gptofoo escp2-px7000 printer/Epson-PX_7000
#gptofoo escp2-px9000 printer/Epson-PX_9000
+#gptofoo fujifilm-cx400 printer/Fujifilm-Printpix-CX-400
+#gptofoo fujifilm-cx550 printer/Fujifilm-Printpix-CX-550
#gptofoo pcl-4 printer/Fujitsu-PrintPartner_10V
#gptofoo pcl-4 printer/Fujitsu-PrintPartner_16DV
#gptofoo pcl-6 printer/Fujitsu-PrintPartner_20W
@@ -385,7 +429,7 @@
#gptofoo pcl-4 printer/HP-LaserJet_4M
#gptofoo pcl-4 printer/HP-LaserJet_4ML
#gptofoo pcl-4 printer/HP-LaserJet_4P
-#gptofoo pcl-4 printer/HP-LaserJet_4Si
+#gptofoo pcl-4si printer/HP-LaserJet_4Si
#gptofoo pcl-4v printer/HP-LaserJet_4V
#gptofoo pcl-5 printer/HP-LaserJet_5
#gptofoo pcl-4 printer/HP-LaserJet_5L
@@ -397,7 +441,9 @@
#gptofoo pcl-4 printer/HP-LaserJet_6L
#gptofoo pcl-4 printer/HP-LaserJet_6MP
#gptofoo pcl-4 printer/HP-LaserJet_6P
+#gptofoo pcl-5 printer/HP-LaserJet_1010
#gptofoo pcl-5 printer/HP-LaserJet_1012
+#gptofoo pcl-5 printer/HP-LaserJet_1015
#gptofoo pcl-6 printer/HP-LaserJet_1100
#gptofoo pcl-6 printer/HP-LaserJet_1100A
#gptofoo pcl-6 printer/HP-LaserJet_1150
@@ -503,6 +549,7 @@
#gptofoo pcl-900 printer/HP-PSC_2210
#gptofoo pcl-2 printer/IBM-4019
#gptofoo pcl-3 printer/IBM-4029_030_LaserPrinter_10
+#gptofoo pcl-2 printer/IBM-4312
#gptofoo pcl-6 printer/IBM-Infoprint_12
#gptofoo pcl-4 printer/IBM-Page_Printer_3112
#gptofoo pcl-6 printer/Infotec-4651_MF
@@ -570,6 +617,7 @@
#gptofoo pcl-2 printer/NEC-SuperScript_860
#gptofoo pcl-2 printer/NEC-SuperScript_870
#gptofoo pcl-2 printer/NEC-SuperScript_1260
+#gptofoo pcl-4 printer/NEC-SuperScript_1400
#gptofoo pcl-4 printer/NEC-SuperScript_1800
#gptofoo pcl-2 printer/Okidata-OL400
#gptofoo pcl-2 printer/Okidata-OL400e
@@ -588,6 +636,14 @@
#gptofoo pcl-4l printer/Okidata-Super_6e
#gptofoo pcl-2 printer/Olivetti-JP350S
#gptofoo pcl-2 printer/Olivetti-PG_306
+#gptofoo olympus-p10 printer/Olympus-P-10
+#gptofoo olympus-p200 printer/Olympus-P-200
+#gptofoo olympus-p300 printer/Olympus-P-300E
+#gptofoo olympus-p300 printer/Olympus-P-300U
+#gptofoo olympus-p300 printer/Olympus-P-330E
+#gptofoo olympus-p300 printer/Olympus-P-330NE
+#gptofoo olympus-p400 printer/Olympus-P-400
+#gptofoo olympus-p440 printer/Olympus-P-440
#gptofoo pcl-2 printer/PCPI-1030
#gptofoo pcl-2 printer/Panasonic-KX-P4410
#gptofoo pcl-3 printer/Panasonic-KX-P4450
@@ -611,6 +667,7 @@
#gptofoo pcl-2 printer/Seiko-SpeedJET_200
#gptofoo pcl-6 printer/Sharp-AR-161
#gptofoo pcl-601 printer/Sony-IJP-V100
+#gptofoo sony-updp10 printer/Sony-UP-DP10
#gptofoo pcl-2 printer/Star-LS-04
#gptofoo pcl-2 printer/Star-LaserPrinter_8
#gptofoo pcl-3 printer/Tally-MT908
diff --git a/src/foomatic/foomatic-templates-gs/Brightness.xml b/src/foomatic/foomatic-templates-gs/Brightness.xml
deleted file mode 100644
index 17bf2a7..0000000
--- a/src/foomatic/foomatic-templates-gs/Brightness.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-brightness">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>stpBrightness</en>
- </arg_longname>
- <arg_shortname>
- <en>stpBrightness</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Brightness %s&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Color.xml b/src/foomatic/foomatic-templates-gs/Color.xml
deleted file mode 100644
index df7403e..0000000
--- a/src/foomatic/foomatic-templates-gs/Color.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-color">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Output Type</en>
- </arg_longname>
- <arg_shortname>
- <en>OutputType</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Color %s&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Contrast.xml b/src/foomatic/foomatic-templates-gs/Contrast.xml
deleted file mode 100644
index 523fe37..0000000
--- a/src/foomatic/foomatic-templates-gs/Contrast.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-contrast">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Contrast Level</en>
- </arg_longname>
- <arg_shortname>
- <en>Contrast</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Contrast %s&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Cyan.xml b/src/foomatic/foomatic-templates-gs/Cyan.xml
deleted file mode 100644
index cff323d..0000000
--- a/src/foomatic/foomatic-templates-gs/Cyan.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-cyan">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Cyan Level</en>
- </arg_longname>
- <arg_shortname>
- <en>Cyan</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Cyan %s&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Density.xml b/src/foomatic/foomatic-templates-gs/Density.xml
deleted file mode 100644
index 5748ccc..0000000
--- a/src/foomatic/foomatic-templates-gs/Density.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-density">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Density</en>
- </arg_longname>
- <arg_shortname>
- <en>Density</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Density %s&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Dither.xml b/src/foomatic/foomatic-templates-gs/Dither.xml
deleted file mode 100644
index 54af711..0000000
--- a/src/foomatic/foomatic-templates-gs/Dither.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-dither">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Dither Algorithm</en>
- </arg_longname>
- <arg_shortname>
- <en>Dither</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Dither(%s)&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Gamma.xml b/src/foomatic/foomatic-templates-gs/Gamma.xml
deleted file mode 100644
index 9e7008d..0000000
--- a/src/foomatic/foomatic-templates-gs/Gamma.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-gamma">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>stpGamma</en>
- </arg_longname>
- <arg_shortname>
- <en>stpGamma</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Gamma %s&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/ImageType.xml b/src/foomatic/foomatic-templates-gs/ImageType.xml
deleted file mode 100644
index 37e2279..0000000
--- a/src/foomatic/foomatic-templates-gs/ImageType.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-imagetype">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Image Type</en>
- </arg_longname>
- <arg_shortname>
- <en>ImageType</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/ImageType %s&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DRVNAME@@-LineArt</arg_defval>
- </constraint>
- </constraints>
- <enum_vals>
- <enum_val id="@@DRVNAME@@-LineArt">
- <ev_longname>
- <en>Line art</en>
- </ev_longname>
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <ev_shortname>
- <en>LineArt</en>
- <!-- Until someone tells me how to learn the user locale in
- backends, the shortname must be monolingual in <en>! -->
- </ev_shortname>
- <ev_driverval>0</ev_driverval>
- </enum_val>
- <enum_val id="@@DRVNAME@@-SolidColors">
- <ev_longname>
- <en>Primarily solid colors or smooth gradients</en>
- </ev_longname>
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <ev_shortname>
- <en>Solids</en>
- <!-- Until someone tells me how to learn the user locale in
- backends, the shortname must be monolingual in <en>! -->
- </ev_shortname>
- <ev_driverval>1</ev_driverval>
- </enum_val>
- <enum_val id="@@DRVNAME@@-Photographs">
- <ev_longname>
- <en>Continuous-tone photographs</en>
- </ev_longname>
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <ev_shortname>
- <en>Photographs</en>
- <!-- Until someone tells me how to learn the user locale in
- backends, the shortname must be monolingual in <en>! -->
- </ev_shortname>
- <ev_driverval>2</ev_driverval>
- </enum_val>
- </enum_vals>
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/InkType.xml b/src/foomatic/foomatic-templates-gs/InkType.xml
deleted file mode 100644
index 26ef05e..0000000
--- a/src/foomatic/foomatic-templates-gs/InkType.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-inktype">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Ink Type</en>
- </arg_longname>
- <arg_shortname>
- <en>InkType</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/InkType(%s)&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/InputSlot.xml b/src/foomatic/foomatic-templates-gs/InputSlot.xml
deleted file mode 100644
index 8237045..0000000
--- a/src/foomatic/foomatic-templates-gs/InputSlot.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-inputslot">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Input Slot</en>
- </arg_longname>
- <arg_shortname>
- <en>InputSlot</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/InputSlot(%s)&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Magenta.xml b/src/foomatic/foomatic-templates-gs/Magenta.xml
deleted file mode 100644
index 5e07b96..0000000
--- a/src/foomatic/foomatic-templates-gs/Magenta.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-magenta">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Magenta Level</en>
- </arg_longname>
- <arg_shortname>
- <en>Magenta</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Magenta %s&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/MediaType.xml b/src/foomatic/foomatic-templates-gs/MediaType.xml
deleted file mode 100644
index a1d736b..0000000
--- a/src/foomatic/foomatic-templates-gs/MediaType.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-mediatype">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Media Type</en>
- </arg_longname>
- <arg_shortname>
- <en>MediaType</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/stpMediaType(%s)&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/PageSize.xml b/src/foomatic/foomatic-templates-gs/PageSize.xml
deleted file mode 100644
index e551094..0000000
--- a/src/foomatic/foomatic-templates-gs/PageSize.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-pagesize">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Page Size</en>
- </arg_longname>
- <arg_shortname>
- <en>PageSize</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>Z</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/PageSize[%s]/ImagingBBox null&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/PrintoutMode.xml b/src/foomatic/foomatic-templates-gs/PrintoutMode.xml
deleted file mode 100644
index eb1b0bb..0000000
--- a/src/foomatic/foomatic-templates-gs/PrintoutMode.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-printoutmode">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Printout Mode</en>
- </arg_longname>
- <arg_shortname>
- <en>PrintoutMode</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>10</arg_order>
- <arg_spot>A</arg_spot>
- <arg_composite />
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Quality.xml b/src/foomatic/foomatic-templates-gs/Quality.xml
deleted file mode 100644
index eb8bed9..0000000
--- a/src/foomatic/foomatic-templates-gs/Quality.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-quality">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Quality</en>
- </arg_longname>
- <arg_shortname>
- <en>Quality</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>Z</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Quality(%s)&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Resolution.xml b/src/foomatic/foomatic-templates-gs/Resolution.xml
deleted file mode 100644
index a51029f..0000000
--- a/src/foomatic/foomatic-templates-gs/Resolution.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-resolution">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Ghostscript Resolution</en>
- </arg_longname>
- <arg_shortname>
- <en>GSResolution</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/HWResolution[%s]&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Saturation.xml b/src/foomatic/foomatic-templates-gs/Saturation.xml
deleted file mode 100644
index dc66f5d..0000000
--- a/src/foomatic/foomatic-templates-gs/Saturation.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-saturation">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>stpSaturation</en>
- </arg_longname>
- <arg_shortname>
- <en>stpSaturation</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Saturation %s&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/Yellow.xml b/src/foomatic/foomatic-templates-gs/Yellow.xml
deleted file mode 100644
index 43f3d59..0000000
--- a/src/foomatic/foomatic-templates-gs/Yellow.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-yellow">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Yellow Level</en>
- </arg_longname>
- <arg_shortname>
- <en>Yellow</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>A</arg_spot>
- <arg_postscript />
- <arg_proto>&lt;&lt;/Yellow %s&gt;&gt;setpagedevice</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-gs/gimp-print.xml b/src/foomatic/foomatic-templates-gs/gimp-print.xml
deleted file mode 100644
index 23af826..0000000
--- a/src/foomatic/foomatic-templates-gs/gimp-print.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<driver id="driver/@@DRVNAME@@">
- <name>@@DRVNAME@@</name>
- <url>http://gimp-print.sourceforge.net/</url>
- <execution>
- <ghostscript />
- <prototype>gs -q -dPARANOIDSAFER -dNOPAUSE -dBATCH -sDEVICE=stp %A%Z -sOutputFile=- -</prototype>
- </execution>
- <comments>
- <en>
-
- &lt;b&gt;This page provides data for the GhostScript
- (&quot;stp&quot;) driver of the GIMP-Print 4.2.x series, if you
- are using the IJS driver of the GIMP-Print 4.2.x series, go to the
- &quot;&lt;a
- href=&quot;show_driver.cgi?driver=gimp-print-ijs&quot;&gt;gimp-print-ijs&lt;/a&gt;&quot;
- page, and if you are using GIMP-Print 4.0.x, go to the &quot;&lt;a
- href=&quot;show_driver.cgi?driver=stp&quot;&gt;stp&lt;/a&gt;&quot;
- page.&lt;/b&gt;&lt;p&gt;
-
- GIMP-Print supports a wide variety of Epson Stylus, HP DeskJet,
- LaserJet, Canon BubbleJet, Lexmark inkjet printers, with the
- primary goal being uncompromising quality. Epson Stylus printers
- in particular are supported in all resolutions and modes, and the
- latest printers are capable of producing prints that rival
- photographic prints in quality. This package also offers much
- faster printing for high quality text and presentation graphics
- when required.&lt;p&gt;
-
- The execution information currently here corresponds to driver
- version @@STPVER@@. If you use another version, use the Foomatic
- data which comes with the GIMP-Print package.&lt;p&gt;
-
- Note that the Foomatic datafiles provided here are only for the
- GhostScript driver of GIMP-Print. For the native CUPS driver there
- are special PPD files provided by the GIMP-Print package.&lt;p&gt;
-
- To get a pre-patched/pre-compiled GNU-GhostScript 6.51 with this driver
- (version 4.2.0) download
- &lt;a href="http://space.tin.it/computer/wvtberti/linux/stp_driver/gs_stp.htm"&gt;Daniele Berti's source and binary RPMS&lt;/a&gt;.
- </en>
- </comments>
- @@STPRINTERS@@
-</driver>
diff --git a/src/foomatic/foomatic-templates-ijs/Brightness.xml b/src/foomatic/foomatic-templates-ijs/Brightness.xml
deleted file mode 100644
index 527e434..0000000
--- a/src/foomatic/foomatic-templates-ijs/Brightness.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-brightness">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>stpBrightness</en>
- </arg_longname>
- <arg_shortname>
- <en>stpBrightness</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>170</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>Brightness=%s,</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Contrast.xml b/src/foomatic/foomatic-templates-ijs/Contrast.xml
deleted file mode 100644
index 9a9210d..0000000
--- a/src/foomatic/foomatic-templates-ijs/Contrast.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-contrast">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Contrast Level</en>
- </arg_longname>
- <arg_shortname>
- <en>Contrast</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>190</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>Contrast=%s,</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Cyan.xml b/src/foomatic/foomatic-templates-ijs/Cyan.xml
deleted file mode 100644
index 997148f..0000000
--- a/src/foomatic/foomatic-templates-ijs/Cyan.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-cyan">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Cyan Level</en>
- </arg_longname>
- <arg_shortname>
- <en>Cyan</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>210</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>Cyan=%s,</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Density.xml b/src/foomatic/foomatic-templates-ijs/Density.xml
deleted file mode 100644
index 6525c0f..0000000
--- a/src/foomatic/foomatic-templates-ijs/Density.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-density">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Density</en>
- </arg_longname>
- <arg_shortname>
- <en>Density</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>160</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>Density=%s,</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Dither.xml b/src/foomatic/foomatic-templates-ijs/Dither.xml
deleted file mode 100644
index cd1c9a2..0000000
--- a/src/foomatic/foomatic-templates-ijs/Dither.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-dither">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Dither Algorithm</en>
- </arg_longname>
- <arg_shortname>
- <en>Dither</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>140</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>Dither=%s,</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Gamma.xml b/src/foomatic/foomatic-templates-ijs/Gamma.xml
deleted file mode 100644
index 3a9d9b4..0000000
--- a/src/foomatic/foomatic-templates-ijs/Gamma.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-gamma">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>stpGamma</en>
- </arg_longname>
- <arg_shortname>
- <en>stpGamma</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>180</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>Gamma=%s,</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/ImageType.xml b/src/foomatic/foomatic-templates-ijs/ImageType.xml
deleted file mode 100644
index e279a43..0000000
--- a/src/foomatic/foomatic-templates-ijs/ImageType.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-imagetype">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Image Type</en>
- </arg_longname>
- <arg_shortname>
- <en>ImageType</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>150</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>ImageType=%s,</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DRVNAME@@-LineArt</arg_defval>
- </constraint>
- </constraints>
- <enum_vals>
- <enum_val id="@@DRVNAME@@-LineArt">
- <ev_longname>
- <en>Line art</en>
- </ev_longname>
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <ev_shortname>
- <en>LineArt</en>
- <!-- Until someone tells me how to learn the user locale in
- backends, the shortname must be monolingual in <en>! -->
- </ev_shortname>
- <ev_driverval>0</ev_driverval>
- </enum_val>
- <enum_val id="@@DRVNAME@@-SolidColors">
- <ev_longname>
- <en>Primarily solid colors or smooth gradients</en>
- </ev_longname>
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <ev_shortname>
- <en>Solids</en>
- <!-- Until someone tells me how to learn the user locale in
- backends, the shortname must be monolingual in <en>! -->
- </ev_shortname>
- <ev_driverval>1</ev_driverval>
- </enum_val>
- <enum_val id="@@DRVNAME@@-Photographs">
- <ev_longname>
- <en>Continuous-tone photographs</en>
- </ev_longname>
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <ev_shortname>
- <en>Photographs</en>
- <!-- Until someone tells me how to learn the user locale in
- backends, the shortname must be monolingual in <en>! -->
- </ev_shortname>
- <ev_driverval>2</ev_driverval>
- </enum_val>
- </enum_vals>
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/InkType.xml b/src/foomatic/foomatic-templates-ijs/InkType.xml
deleted file mode 100644
index 7b6d3ea..0000000
--- a/src/foomatic/foomatic-templates-ijs/InkType.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-inktype">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Ink Type</en>
- </arg_longname>
- <arg_shortname>
- <en>InkType</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>110</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>InkType=%s,</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/InputSlot.xml b/src/foomatic/foomatic-templates-ijs/InputSlot.xml
deleted file mode 100644
index 414f69c..0000000
--- a/src/foomatic/foomatic-templates-ijs/InputSlot.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-inputslot">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Input Slot</en>
- </arg_longname>
- <arg_shortname>
- <en>InputSlot</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>130</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>MediaSource=%s,</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Magenta.xml b/src/foomatic/foomatic-templates-ijs/Magenta.xml
deleted file mode 100644
index 1f7c608..0000000
--- a/src/foomatic/foomatic-templates-ijs/Magenta.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-magenta">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Magenta Level</en>
- </arg_longname>
- <arg_shortname>
- <en>Magenta</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>220</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>Magenta=%s,</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/NumericalOptions.xml b/src/foomatic/foomatic-templates-ijs/NumericalOptions.xml
new file mode 100644
index 0000000..5f55c40
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/NumericalOptions.xml
@@ -0,0 +1,21 @@
+<option type="@@TYPE@@" id="opt/@@DRVNAME@@-@@LOWERCASESHORTNAME@@">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>@@LONGNAME@@</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>@@SHORTNAME@@</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>@@ORDER@@</arg_order>
+ <arg_spot>@@SPOT@@</arg_spot>
+ <arg_substitution />
+ <arg_proto>@@PROTO@@</arg_proto>
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+
+ <arg_max>@@MAXVAL@@</arg_max>
+ <arg_min>@@MINVAL@@</arg_min>
+</option>
diff --git a/src/foomatic/foomatic-templates-gs/Model.xml b/src/foomatic/foomatic-templates-ijs/OtherOptions.xml
index ba9e6c7..e0ecee4 100644
--- a/src/foomatic/foomatic-templates-gs/Model.xml
+++ b/src/foomatic/foomatic-templates-ijs/OtherOptions.xml
@@ -1,18 +1,17 @@
-<option type="enum" id="opt/@@DRVNAME@@-model">
+<option type="enum" id="opt/@@DRVNAME@@-@@LOWERCASESHORTNAME@@">
<!-- A multilingual <comments> block can appear here, too;
it should be treated as documentation for the user. -->
<arg_longname>
- <en>Printer Model</en>
+ <en>@@LONGNAME@@</en>
</arg_longname>
<arg_shortname>
- <en>Model</en><!-- backends only know <en> shortnames! -->
+ <en>@@SHORTNAME@@</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
<arg_execution>@@GROUP@@
- <arg_order>10</arg_order>
- <arg_spot>A</arg_spot>
- <arg_required />
+ <arg_order>@@ORDER@@</arg_order>
+ <arg_spot>@@SPOT@@</arg_spot>
<arg_substitution />
- <arg_proto> -sModel=%s</arg_proto>
+ <arg_proto>@@PROTO@@</arg_proto>
</arg_execution>
@@OPTCONSTRAINTS@@
diff --git a/src/foomatic/foomatic-templates-ijs/Quality.xml b/src/foomatic/foomatic-templates-ijs/Quality.xml
deleted file mode 100644
index 4b09b86..0000000
--- a/src/foomatic/foomatic-templates-ijs/Quality.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<option type="enum" id="opt/@@DRVNAME@@-quality">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Quality</en>
- </arg_longname>
- <arg_shortname>
- <en>Quality</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>100</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>Quality=%s,</arg_proto>
- </arg_execution>
-
- @@OPTCONSTRAINTS@@
- @@ENUMVALS@@
-
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/MediaType.xml b/src/foomatic/foomatic-templates-ijs/RenderResolution.xml
index 0a56b72..ab29dbf 100644
--- a/src/foomatic/foomatic-templates-ijs/MediaType.xml
+++ b/src/foomatic/foomatic-templates-ijs/RenderResolution.xml
@@ -1,17 +1,17 @@
-<option type="enum" id="opt/@@DRVNAME@@-mediatype">
+<option type="enum" id="opt/@@DRVNAME@@-resolution">
<!-- A multilingual <comments> block can appear here, too;
it should be treated as documentation for the user. -->
<arg_longname>
- <en>Media Type</en>
+ <en>Rendering Resolution</en>
</arg_longname>
<arg_shortname>
- <en>MediaType</en><!-- backends only know <en> shortnames! -->
+ <en>Resolution</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
<arg_execution>@@GROUP@@
<arg_order>120</arg_order>
- <arg_spot>B</arg_spot>
+ <arg_spot>A</arg_spot>
<arg_substitution />
- <arg_proto>MediaType=%s,</arg_proto>
+ <arg_proto> -r%s</arg_proto>
</arg_execution>
@@OPTCONSTRAINTS@@
diff --git a/src/foomatic/foomatic-templates-ijs/Resolution.xml b/src/foomatic/foomatic-templates-ijs/Resolution.xml
index bcdd0e1..0006a40 100644
--- a/src/foomatic/foomatic-templates-ijs/Resolution.xml
+++ b/src/foomatic/foomatic-templates-ijs/Resolution.xml
@@ -1,17 +1,17 @@
-<option type="enum" id="opt/@@DRVNAME@@-resolution">
+<option type="enum" id="opt/@@DRVNAME@@-printerresolution">
<!-- A multilingual <comments> block can appear here, too;
it should be treated as documentation for the user. -->
<arg_longname>
- <en>Ghostscript Resolution</en>
+ <en>Printer Resolution</en>
</arg_longname>
<arg_shortname>
- <en>GSResolution</en><!-- backends only know <en> shortnames! -->
+ <en>PrinterResolution</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
<arg_execution>@@GROUP@@
- <arg_order>120</arg_order>
- <arg_spot>A</arg_spot>
+ <arg_order>800</arg_order>
+ <arg_spot>B</arg_spot>
<arg_substitution />
- <arg_proto> -r%s</arg_proto>
+ <arg_proto>Resolution=%s,</arg_proto>
</arg_execution>
@@OPTCONSTRAINTS@@
diff --git a/src/foomatic/foomatic-templates-ijs/Saturation.xml b/src/foomatic/foomatic-templates-ijs/Saturation.xml
deleted file mode 100644
index aa1cb58..0000000
--- a/src/foomatic/foomatic-templates-ijs/Saturation.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-saturation">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>stpSaturation</en>
- </arg_longname>
- <arg_shortname>
- <en>stpSaturation</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>200</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>Saturation=%s,</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Yellow.xml b/src/foomatic/foomatic-templates-ijs/Yellow.xml
deleted file mode 100644
index b632741..0000000
--- a/src/foomatic/foomatic-templates-ijs/Yellow.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<option type="float" id="opt/@@DRVNAME@@-yellow">
- <!-- A multilingual <comments> block can appear here, too;
- it should be treated as documentation for the user. -->
- <arg_longname>
- <en>Yellow Level</en>
- </arg_longname>
- <arg_shortname>
- <en>Yellow</en><!-- backends only know <en> shortnames! -->
- </arg_shortname>
- <arg_execution>@@GROUP@@
- <arg_order>230</arg_order>
- <arg_spot>B</arg_spot>
- <arg_substitution />
- <arg_proto>Yellow=%s</arg_proto>
- </arg_execution>
- <constraints>
- <constraint sense="true">
- <driver>@@DRVNAME@@</driver>
- <arg_defval>@@DEFVAL@@</arg_defval>
- </constraint>
- </constraints>
- <arg_max>@@MAXVAL@@</arg_max>
- <arg_min>@@MINVAL@@</arg_min>
-</option>
diff --git a/src/foomatic/foomatic-templates-ijs/gimp-print.xml b/src/foomatic/foomatic-templates-ijs/gutenprint.xml
index ffea11a..f5cb082 100644
--- a/src/foomatic/foomatic-templates-ijs/gimp-print.xml
+++ b/src/foomatic/foomatic-templates-ijs/gutenprint.xml
@@ -3,21 +3,25 @@
<url>http://gimp-print.sourceforge.net/</url>
<execution>
<filter />
- <prototype>gs -q -dPARANOIDSAFER -dNOPAUSE -dBATCH -sDEVICE=ijs -sIjsServer=ijsgimpprint -dIjsUseOutputFD%A -sIjsParams=&quot;%B&quot;%Z -sOutputFile=- -</prototype>
+ <prototype>gs -q -dPARANOIDSAFER -dNOPAUSE -dBATCH -sDEVICE=ijs -sIjsServer=ijsgutenprint.@@STPREL@@ -dIjsUseOutputFD%A -sIjsParams=&quot;@@REMAP@@STP_VERSION=@@STPVER@@,%B&quot;%Z -sOutputFile=- -</prototype>
</execution>
<comments>
<en>
&lt;b&gt;This page provides data for the IJS driver of the
- GIMP-Print 4.2.x series, if you are using the GhostScript
- (&quot;stp&quot;) driver of the GIMP-Print 4.2.x series, go to the
+ Gutenprint 5.0 series, if you are using the GhostScript
+ (&quot;stp&quot;) driver of the Gimp-Print 4.3.x series, go to the
&quot;&lt;a
- href=&quot;show_driver.cgi?driver=gimp-print&quot;&gt;gimp-print&lt;/a&gt;&quot;
- page, and if you are using GIMP-Print 4.0.x, go to the &quot;&lt;a
+ href=&quot;show_driver.cgi?driver=gimp-print-unstable&quot;&gt;gimp-print-unstable&lt;/a&gt;&quot;
+ page, if you are using the IJS
+ driver of the Gimp-Print 4.2.x series, go to the
+ &quot;&lt;a
+ href=&quot;show_driver.cgi?driver=gimp-print-ijs&quot;&gt;gimp-print-ijs&lt;/a&gt;&quot;
+ page, and if you are using Gimp-Print 4.0.x, go to the &quot;&lt;a
href=&quot;show_driver.cgi?driver=stp&quot;&gt;stp&lt;/a&gt;&quot;
page.&lt;/b&gt;&lt;p&gt;
- GIMP-Print supports a wide variety of Epson Stylus, HP DeskJet,
+ Gutenprint supports a wide variety of Epson Stylus, HP DeskJet,
LaserJet, Canon BubbleJet, Lexmark inkjet printers, with the
primary goal being uncompromising quality. Epson Stylus printers
in particular are supported in all resolutions and modes, and the
@@ -28,11 +32,11 @@
The execution information currently here corresponds to driver
version @@STPVER@@. If you use another version, use the Foomatic
- data which comes with the GIMP-Print package.&lt;p&gt;
+ data which comes with the Gutenprint package.&lt;p&gt;
Note that the Foomatic datafiles provided here are only for the
- IJS driver of GIMP-Print. For the native CUPS driver there
- are special PPD files provided by the GIMP-Print package.&lt;p&gt;
+ IJS driver of Gutenprint. For the native CUPS driver there
+ are special PPD files provided by the Gutenprint package.&lt;p&gt;
This driver does not require patching and rebuilding GhostScript.
It is enough when you have an IJS enabled GhostScript (GNU
diff --git a/src/foomatic/gimp-print-version.c b/src/foomatic/gutenprint-version.c
index 1b10dd0..786dfe6 100644
--- a/src/foomatic/gimp-print-version.c
+++ b/src/foomatic/gutenprint-version.c
@@ -1,5 +1,5 @@
/*
- * "$Id: gimp-print-version.c,v 1.2 2001/09/02 13:30:26 rlk Exp $"
+ * "$Id: gutenprint-version.c,v 1.2 2005/04/12 00:45:10 rlk Exp $"
*
* Dump the per-printer options for Grant Taylor's *-omatic database
*
@@ -24,18 +24,16 @@
#include <config.h>
#endif
#include <stdio.h>
-#ifdef INCLUDE_GIMP_PRINT_H
-#include INCLUDE_GIMP_PRINT_H
-#else
-#include <gimp-print/gimp-print.h>
-#endif
-#include "../../lib/libprintut.h"
+#include <gutenprint/gutenprint.h>
int
main(int argc, char **argv)
{
#ifdef VERSION
- printf("%s\n", VERSION);
+ if (argc > 1)
+ printf("%s\n", GUTENPRINT_RELEASE_VERSION);
+ else
+ printf("%s\n", VERSION);
return 0;
#else
fprintf(stderr, "VERSION not defined!\n");
diff --git a/src/foomatic/mk_printerlist.in b/src/foomatic/mk_printerlist.in
new file mode 100644
index 0000000..a8f516f
--- /dev/null
+++ b/src/foomatic/mk_printerlist.in
@@ -0,0 +1,30 @@
+#!@PERL@
+
+%printer_list = ();
+@printer_names = ();
+
+eval `./printers`;
+
+open PRINTERS, "(wget -q -O - http://www.linuxprinting.org/printer_list.cgi; cat foomatic-printermap) |" or die "Can't get print list: $!";
+
+while (<PRINTERS>) {
+ if (/make ==/) {
+ /.*== "(.*)".*/;
+ $current_make = $1;
+ } elsif (/=new Option/) {
+ /.*"(.*)", *"(.*)".*/;
+ my $printer = "$current_make " . $1;
+ $printer_list{$2} = $printer;
+ } elsif (/^\#gptofoo/) {
+ chomp;
+ my ($junk, $key, $id) = split;
+ $id =~ s,printer/,,;
+ my ($string) = sprintf("%-30s %-15s %s\n", $printer_list{$id}, $key,
+ $printer_name{$key});
+ push @printer_names, $string;
+ }
+}
+
+close PRINTERS;
+
+print sort @printer_names;
diff --git a/src/foomatic/oldprinterids b/src/foomatic/oldprinterids
deleted file mode 100644
index 3129cb3..0000000
--- a/src/foomatic/oldprinterids
+++ /dev/null
@@ -1,640 +0,0 @@
-100576 HP-LaserJet_4000
-100704 HP-OfficeJet_635
-101152 Panasonic-KX-P2123
-101952 Canon-MultiPASS_C5500
-102080 Ricoh-Aficio_220
-102304 HP-PSC_500
-105504 Xerox-DocuPrint_C8
-106848 Epson-Stylus_Color_300
-108128 HP-DesignJet_230
-108320 HP-DeskJet_932C
-108896 Okidata-OL610e_S
-109440 Okidata-Okijet_2500
-110464 Canon-MultiPASS_C5000
-110624 HP-LaserJet_2
-111392 Canon-MultiPASS_C3000
-112832 Printrex-820_DL
-112864 Ricoh-Afico_FX10
-113312 Canon-Multipass_L6000
-113888 Xerox-Document_Centre_400
-114016 IBM-4303_Network_Color_Printer
-114592 Brother-HL-4Ve
-114656 Canon-BJC-7100
-114816 Kyocera-FS-3500
-115488 Olivetti-JP450
-116128 Panasonic-KX-P2023
-116256 Fujitsu-PrintPartner_16DV
-117472 Minolta-PagePro_8L
-121952 Brother-HL-2060
-122016 NEC-SuperScript_660
-122048 Lexmark-Z11
-122080 Lexmark-Z51
-122336 HP-Color_LaserJet_5
-122496 HP-DesignJet_750C_Plus
-123584 Xerox-DocuPrint_XJ8C
-123776 Canon-BJC-8200
-123968 Brother-HL-630
-125024 Okidata-OL830Plus
-125408 Xerox-DocuPrint_C20
-125632 QMS-LPK-100
-125696 Epson-L-1000
-126048 Dymo-CoStar-LabelWriter_II
-126049 Dymo-CoStar-LabelWriter_XL
-126080 Dymo-CoStar-LabelWriter_XLplus
-126081 Dymo-CoStar-EL40
-126082 Dymo-CoStar-EL60
-126083 Dymo-CoStar-Turbo
-126084 Dymo-CoStar-SE250
-126085 Dymo-CoStar-SE250plus
-126086 Dymo-CoStar-ASCII_250
-126087 Dymo-CoStar-ASCIIplus
-126112 Avery-Personal_Label_Printer
-126113 Avery-Personal_Label_Printerplus
-126176 Seiko-SLP
-126177 Seiko-SLP_Plus
-126178 Seiko-SLP_EZ30
-126179 Seiko-SLP_Pro
-126180 Seiko-SLP_120
-126181 Seiko-SLP_220
-126496 Lexmark-Winwriter_400
-126752 Xerox-Document_Homecentre
-127776 HP-DeskJet_510
-128576 Kyocera-FS-600
-129184 HP-DeskJet_520
-129376 NEC-SuperScript_1800
-129472 Canon-BJC-3000
-129632 Canon-BJC-8500
-130080 Tektronix-Phaser_PX
-130112 DEC-LN03
-130208 Tektronix-4696
-130272 Tektronix-4697
-130336 Tektronix-Phaser_IISX
-130656 Samsung-ML-85G
-131424 HP-PhotoSmart_P1000
-132800 Compaq-IJ900
-132832 Compaq-IJ300
-132864 Compaq-IJ750
-133152 HP-DeskJet_842C
-133664 HP-DeskJet_840C
-134880 HP-DesignJet_3500CP
-135401 DEC-1800
-135529 NEC-SilentWriter_LC_890
-136928 HP-OfficeJet_R60
-138697 Panasonic-KX-P2135
-139017 Canon-BJC-1000
-141417 Canon-LBP-4sx
-142569 Xerox-WorkCentre_XD120f
-142825 NEC-SuperScript_610plus
-142944 HP-OfficeJet_710
-143104 Olivetti-JP470
-143689 Panasonic-KX-P6300_GDI
-144320 Brother-DCP-1200
-146569 DEC-DECWriter_500i
-147433 Star-NL-10
-151625 QMS-ps-810
-152585 HP-LaserJet_6P
-152800 Brother-HL-1020
-153056 HP-DeskJet_340C
-156105 HP-DeskJet_810C
-157312 Tektronix-Phaser_850
-158569 Epson-EPL-5700
-158816 Kyocera-F-800T
-160032 Xerox-WorkCentre_385
-160288 Brother-MFC-9600
-160969 Apple-LaserWriter_16_600
-161705 HP-DeskJet_812C
-164576 Xerox-WorkCentre_XE90fx
-165408 Brother-HL-1270N
-165536 Brother-HL-1660e
-167008 Epson-Stylus_Photo_1200
-168201 Citizen-printiva600C
-169641 Apple-LaserWriter_IINTX
-173248 HP-DesignJet_350C
-173888 Samsung-SI-630A
-174249 HP-DeskJet_612C
-175232 HP-DeskJet_930C
-178185 Okidata-OL800
-178336 Apple-LaserWriter_IIg
-180160 IBM-Execjet_4072
-181792 Kyocera-FS-1750
-181984 Lexmark-Optra_W810
-182528 Okidata-OL820
-182633 Okidata-Okipage_6w
-185033 HP-OfficeJet_600
-185225 Brother-HL-1250
-186729 HP-DeskJet_970C
-188457 Okidata-Okipage_10e
-189961 Canon-LBP-8A1
-190537 DEC-DECwriter_520ic
-190601 DEC-DECwriter_110i
-190793 Brother-HL-10h
-191689 IBM-Page_Printer_3112
-193321 Star-LC_90
-194345 Ricoh-Aficio_Color_2206
-194601 Okidata-OL400ex
-194697 Okidata-OL810ex
-195529 Citizen-ProJet_II
-195561 Citizen-ProJet_IIc
-195593 Seiko-SpeedJET_200
-196201 Panasonic-KX-P4410
-202441 Tektronix-Phaser_780
-204617 Olivetti-PG_306
-204745 IBM-ProPrinterII
-206505 HP-DeskJet_610C
-20672 Epson-Stylus_Color_1520
-208969 Epson-Stylus_Color_3000
-210153 Samsung-ML-5000a
-211017 Brother-MFC-6550MC
-212905 Sharp-AR-161
-214153 Epson-Stylus_Color_500
-21536 Canon-BJC-5100
-219977 HP-DeskJet_610CL
-222377 Canon-BJ-330
-225673 Apple-12_640ps
-22624 HP-DeskJet_560C
-226985 HP-DeskJet_890C
-22720 HP-DeskJet_1100C
-22784 HP-PaintJet
-22848 HP-PaintJet_XL
-22944 DEC-LJ250
-22976 HP-LaserJet
-230121 Panasonic-KX-P1150
-230377 HP-LaserJet_4P
-23040 HP-LaserJet_Plus
-23104 HP-LaserJet_2D
-23168 HP-LaserJet_3D
-231689 Panasonic-KX-P6150
-23232 HP-LaserJet_6
-23296 Epson-ActionPrinter_3250
-23360 IBM-3853_JetPrinter
-23424 Ricoh-4081
-234281 Fujitsu-PrintPartner_20W
-23488 Tektronix-4693d_color_printer_2-bit_mode
-234953 Brother-HL-1240
-23552 Tektronix-4693d_color_printer_4-bit_mode
-23584 Tektronix-3693d_color_printer_8-bit_mode
-23648 Apple-Dot_Matrix
-23776 Apple-ImageWriter
-23840 Apple-ImageWriter_LQ
-23904 Epson-LQ-2550
-240041 Alps-MD-5000
-240073 Alps-MD-4000
-240105 Alps-MD-2000
-240137 Alps-MD-1000
-240169 Alps-MD-1300
-24128 Fujitsu-1200
-24192 Fujitsu-2400
-24256 Fujitsu-3400
-24320 Epson-LQ-24
-244361 Epson-Stylus_Color_660
-24448 Epson-Dot_Matrix
-244617 Epson-LX-1050
-245033 NEC-Silentwriter2_S60P
-24512 Canon-LIPS-III
-24576 DEC-LA50
-24640 DEC-LA75
-24704 DEC-LA75_Plus
-247625 Kyocera-FS-3750
-24768 NEC-PinWriter_P6
-24832 NEC-PinWriter_P6_plus
-24896 NEC-PinWriter_P60
-24960 NEC-PinWriter_P7
-249705 HP-DeskJet_692C
-25024 NEC-PinWriter_P7_plus
-250601 HP-DeskJet_832C
-25088 NEC-PinWriter_P70
-25152 Okidata-Microline_182
-25216 Okidata-Okipage_4wplus
-25280 Star-StarJet_48
-25344 Tektronix-4695
-25408 Xerox-2700_XES
-25472 Xerox-3700_XES
-255049 Ricoh-Aficio_401
-25568 Xerox-4045_XES
-25696 Epson-Stylus_Color_I
-257577 Canon-LBP-430
-258089 HP-OfficeJet_Pro_1170C
-25824 Epson-Stylus_Color_PRO
-259689 HP-PhotoSmart_P1100
-26016 Epson-Stylus_Color_600
-261321 CalComp-Artisan_1023_penplotter
-261673 Brother-HL-1030
-262185 Star-LC24-100
-263305 Epson-LQ-570plus
-266185 HP-LaserJet_3150
-266313 Epson-Stylus_Color_670
-267881 HP-DeskJet
-268521 HP-ThinkJet
-269289 Kyocera-FS-1200
-270089 Xerox-DocuPrint_C6
-272681 Canon-BJC-6500
-273833 HP-DeskJet_950C
-279593 Apple-StyleWriter_I
-279657 Apple-StyleWriter_II
-279721 Apple-StyleWriter_1200
-279785 Apple-Color_StyleWriter_2200
-279849 Apple-Color_StyleWriter_1500
-279913 Apple-Color_StyleWriter_2400
-280649 Canon-GP_405
-284105 Epson-Stylus_Photo_870
-284169 Epson-Stylus_Photo_1270
-287273 Heidelberg-Digimaster_9110
-287337 Infotec-4651_MF
-287401 Hitachi-DDP_70_with_MicroPress
-287561 HP-Mopier_240
-287657 Kodak-IS_70_CPII
-287689 Kodak-DigiSource_9110
-287721 Canon-LBP-600
-289961 HP-OfficeJet_R45
-290665 Xerox-WorkCentre_XK35c
-290953 HP-DeskJet_1220C
-291081 Apollo-P-1200
-293641 HP-DeskJet_815C
-29472 Ricoh-Aficio_AP2000
-295273 Okidata-Okipage_8w_Lite
-309929 Canon-BJC-2100
-310313 QMS-magicolor_2plus
-311113 Kyocera-FS-680
-311177 HP-DeskJet_320
-312041 Kyocera-FS-3700plus
-312169 HP-OfficeJet_T65
-312297 Epson-EPL-5700L
-312329 Raven-LP-410
-312393 Star-LS-04
-315753 Lexmark-Optra_T610
-316361 Epson-ActionLaser_II
-317129 Lexmark-Z32
-317225 Canon-BJC-6100
-317321 Epson-Stylus_Color_480
-317385 Epson-Stylus_Color_1500
-317481 Epson-Stylus_Color_1160
-317545 Epson-Stylus_Photo_720
-317609 Epson-Stylus_Photo_2000P
-317801 Epson-Stylus_Color_880
-317865 Epson-Stylus_Color_980
-321929 Lexmark-Optra_E312
-325321 Samsung-QL-85G
-32640 Samsung-ML-5050G
-32672 Samsung-ML-85
-32704 Samsung-SF_MSYS_MJ-4700_4800_4500C
-32736 Samsung-ML-7000_7000P_7000N
-327401 Lexmark-Z22
-32768 Samsung-ML-6000_6100
-32832 Samsung-ML-7050
-328361 Brother-4550
-328553 Lexmark-Z52
-332073 Okidata-ML_380
-334409 Samsung-ML-4600
-34016 HP-LaserJet_2P_Plus
-365001 Kyocera-F-1200
-365353 LaserMaster-LM_1000
-365417 Star-LaserPrinter_8
-365737 HP-Color_LaserJet_8550GN
-369705 Xerox-DocuPrint_M760
-373513 Epson-EPL-5200
-375433 DEC-LA70
-378665 Lexmark-Optra_M412
-378729 Lexmark-Optra_M410
-378825 Lexmark-Optra_T612
-378889 Lexmark-Optra_T614
-378953 Lexmark-Optra_T616
-381449 Apple-ImageWriter_II
-413673 Canon-BJC-6200
-413737 Apollo-P-2200
-42048 Samsung-QL-5100A
-421586 Okidata-Okipage_10ex
-421650 Okidata-Okipage_8z
-421714 HP-OfficeJet_Pro_1150C
-421842 HP-OfficeJet_G55
-421906 HP-OfficeJet_G85
-421970 HP-OfficeJet_G95
-423122 Canon-LBP-800
-423826 Canon-BJ-30
-439378 HP-LaserJet_4V
-439570 HP-LaserJet_4Si
-44128 Apple-LaserWriter_NT
-44192 Imagen-ImPress
-44256 CItoh-M8510
-44320 Mitsubishi-CP50_Color_Printer
-448242 HP-DeskJet_648C
-46400 Epson-LQ-500
-464242 Epson-Stylus_Color_777
-47328 Brother-MP-21C
-474610 HP-LaserJet_3200
-475634 Star-NX-1001
-477618 Xerox-DocuPrint_C11
-479986 Canon-S450
-48000 Brother-MFC-4350
-48064 Brother-MFC-8300
-486066 Lexmark-Z12
-487986 IBM-4029_030_LaserPrinter_10
-490066 HP-DesignJet_ColorPro_CAD
-490898 Ricoh-Aficio_700
-491506 HP-LaserJet_4
-49568 Canon-BJC-210SP
-49888 HP-Color_LaserJet_5000
-516274 Epson-Stylus_Scan_2500
-517394 Samsung-ML-4500
-517810 Epson-Stylus_Color_680
-517906 HP-Business_Inkjet_2250
-517970 HP-Business_Inkjet_2250TN
-523058 HP-DeskJet_955C
-530418 HP-DeskJet_990C
-530994 HP-Business_Inkjet_2200
-531058 NEC-SuperScript_4600N
-537362 HP-OfficeJet_T45
-539634 Brother-HL-960
-54176 Panasonic-KX-P1180i
-542482 Sharp-AJ-1800
-543058 IBM-Infoprint_12
-545746 Brother-MFC-9050
-547282 Epson-Stylus_800
-547378 Epson-EPL-7100
-549970 Epson-EPL-5500W
-550610 Tektronix-Phaser_350
-551282 Canon-BJC-55
-551346 Canon-BJC-50
-551410 Canon-BJC-85
-551474 Canon-LBP-1000
-552146 Kyocera-F-1010
-55232 Panasonic-KX-P1624
-554770 HP-2563
-555026 Oce-9050
-556050 Okidata-Microline_IBM_compatible_9_pin
-56608 NEC-Silentwriter_95f
-56672 DEC-LN17
-581554 Xerox-DocuPrint_P1202
-582898 Apple-LaserWriter_Pro_630
-58363 HP-DeskJet_500
-58464 HP-DeskJet_550C
-58656 Canon-BJ-10e
-58688 Canon-BJ-20
-58720 Canon-BJ-200
-58752 Canon-BJC-210
-58816 Canon-BJC-240
-59008 Lexmark-1100
-59296 Lexmark-1000
-593266 Lexmark-Z42
-59328 Lexmark-1020
-59360 Lexmark-2030
-59392 Lexmark-2050
-59424 Lexmark-2070
-59456 Lexmark-3000
-59520 Lexmark-7000
-59552 Lexmark-7200
-59584 Lexmark-Optra_E
-59616 Lexmark-Optra_Ep
-59648 Lexmark-Optra_S_1250
-59776 HP-LaserJet_4L
-599218 Okidata-DP_5000
-60128 Epson-Stylus_Photo_750
-60192 Canon-BJC-610
-60224 NEC-P2X
-602258 Canon-S400
-602386 Canon-S4500
-60256 HP-DeskJet_870C
-60384 Canon-BJC-250
-60416 Canon-BJC-70
-60448 Canon-BJC-4000
-60480 Canon-BJC-4100
-605074 HP-LaserJet_5Si
-60512 Canon-BJC-4200
-60544 Canon-BJC-4300
-60576 Canon-BJC-4550
-60608 Canon-MultiPASS_C2500
-60640 Canon-BJC-800
-60672 Canon-BJC-7000
-60704 Lexmark-Winwriter_100
-60736 Lexmark-Winwriter_150c
-607474 Epson-Stylus_Color_580
-60768 Lexmark-Winwriter_200
-60800 Lexmark-Optra_Color_40
-60832 Lexmark-Optra_Color_45
-60864 Lexmark-Optra_Color_1275
-60896 Lexmark-Optra_Color_1200
-60928 HP-DeskJet_670C
-60960 HP-DeskJet_690C
-609714 HP-LaserJet_3200se
-60992 HP-DeskJet_855C
-61024 HP-DeskJet_850C
-61120 HP-DeskJet_1600C
-61152 HP-DeskJet_1600CM
-61184 Epson-Stylus_Color
-61216 Epson-Stylus_Color_II
-61248 Epson-Stylus_Color_IIs
-61344 Epson-Stylus_Color_800
-613522 Brother-HL-1650
-613618 Brother-HL-1670N
-61472 HP-DeskJet_710C
-61504 HP-DeskJet_720C
-61536 HP-DeskJet_722C
-61568 HP-DeskJet_820C
-615698 NEC-Pinwriter_P20
-61600 HP-DeskJet_1000C
-61632 NEC-SuperScript_660plus
-61664 NEC-SuperScript_750C
-616946 Seiko-SLP-100
-61696 NEC-SuperScript_150C
-616978 Seiko-SLP-200
-617010 Seiko-SLP-240
-61728 NEC-SuperScript_870
-61760 NEC-SuperScript_650C
-61792 NEC-SuperScript_100C
-61824 NEC-SuperScript_860
-61856 NEC-SuperScript_660i
-618706 Lexmark-Z31
-61888 NEC-SuperScript_1260
-619538 Kyocera-FS-1000
-619666 Epson-EPL-5200plus
-62016 Lexmark-5700
-620306 HP-DeskJet_350C
-62048 Canon-LBP-460
-62080 Canon-BJC-620
-62112 Epson-Stylus_Color_740
-62240 Canon-BJC-4400
-62304 HP-LaserJet_4050
-62368 HP-LaserJet_6L
-623858 HP-DeskJet_Plus
-623922 HP-DeskJet_Portable
-624114 HP-DeskJet_680C
-62496 Panasonic-KX-P1123
-62528 Brother-HL-720
-62624 Xerox-DocuPrint_N17
-62720 HP-LaserJet_5L
-62816 HP-LaserJet_1100
-62912 Epson-Stylus_Color_400
-62944 Okidata-OL610e_PS
-62976 Okidata-Okipage_6ex
-63008 Canon-GP_335
-63040 HP-DeskJet_400
-631698 Panasonic-KX-Pxxxx_24-pin
-63200 IBM-4019
-63264 Canon-BJ-300
-63328 Epson-LP_8000
-633554 Epson-EPL-5800
-63360 Epson-LQ-850
-63456 Brother-HL-1050
-63520 HP-LaserJet_5
-63552 Brother-HL-760
-635698 HP-DeskJet_960C
-63584 Brother-HL-660
-63616 Okidata-OL410e
-63648 Lexmark-Optra_Eplus
-63680 HP-PaintJet_XL300
-63712 HP-DeskJet_1200C
-63744 Ricoh-4801
-63776 Ricoh-6000
-638194 Xerox-DocuPrint_M750
-63840 Epson-Stylus_Color_850
-63904 Olivetti-JP350S
-640082 Sharp-AJ-2000
-64032 Okidata-Okipage_6e
-64064 HP-LaserJet_2100M
-64096 HP-LaserJet_2100
-64192 HP-DeskJet_660C
-642674 Minolta-PagePro_1100
-64288 Xerox-DocuPrint_N32
-64320 Xerox-DocuPrint_C55
-64416 Canon-LBP-660
-64512 HP-2500C
-64576 HP-DeskJet_600
-64672 Okidata-Okipage_4w
-64704 Okidata-Okipage_8c
-64736 Okidata-Okipage_8w
-64864 HP-LaserJet_5MP
-64960 HP-LaserJet_3100
-64992 HP-DesignJet_650C
-65216 Panasonic-KX-P5400
-65248 Panasonic-KX-P6100
-65280 Panasonic-KX-P6500
-65312 Panasonic-KX-P4450
-65344 Panasonic-KX-P8475
-65376 Panasonic-KX-P8410
-65408 Panasonic-KX-P8420
-65440 Lexmark-5000
-65600 Canon-MultiPASS_C3500
-65696 Brother-HL-10V
-65856 Epson-Stylus_Pro_XL
-65984 HP-2000C
-66016 Epson-Stylus_Color_640
-66176 Okidata-OL810e_PS
-66336 Lexmark-1020_Business
-66400 HP-DeskJet_420C
-66496 Minolta-PagePro_6
-66528 Minolta-PagePro_8
-67136 HP-LaserJet_5000
-67168 HP-LaserJet_8000
-67200 HP-LaserJet_8100
-67232 HP-Mopier_320
-67296 HP-LaserJet_6MP
-67424 Canon-BJC-7004
-67456 Epson-ActionLaser_1100
-67584 Canon-BJC-5000
-67744 QMS-2425_Turbo_EX
-68320 Okidata-Okijet_2010
-68384 HP-DeskJet_880C
-68512 HP-DeskJet_672C
-68672 HP-DeskJet_697C
-68736 Kyocera-FS-1700plus
-69088 HP-LaserJet_4ML
-69120 HP-LaserJet_4M
-69472 Fujitsu-PrintPartner_8000
-69504 Xerox-DocuPrint_XJ6C
-69568 Lexmark-Optra_S_1855
-69824 HP-Color_LaserJet_4500
-70016 Okidata-OL600e
-70144 Lexmark-4039_10plus
-70208 Panasonic-KX-P2150
-70496 Kyocera-P-2000
-70528 Kyocera-F-3300
-70560 HP-DeskJet_694C
-70720 Lexmark-Valuewriter_300
-70752 Xerox-DocuPrint_P8e
-70912 Lexmark-3200
-71008 Brother-HL-730
-71040 HP-DeskJet_882C
-71232 HP-DeskJet_712C
-71392 Canon-BJC-6000
-71424 Epson-Stylus_Photo_700
-71680 HP-LaserJet_1100A
-71712 Xerox-WorkCentre_470cx
-72000 HP-DeskJet_895C
-72288 Canon-LBP-4plus
-72544 Lexmark-Optra_K_1220
-72736 Lexmark-Optra_E310
-73216 Brother-HL-1060
-73408 Xerox-WorkCentre_XE80
-73472 Epson-Stylus_Color_460
-73760 Brother-MFC_7150C
-74016 Canon-LBP-4U
-74144 Lexmark-Optra_Rplus
-74176 HP-LaserJet_2P
-74208 HP-OfficeJet_625
-74304 Brother-MC-3000
-74464 QMS-magicolor_2
-74528 Brother-HL-8
-74592 PCPI-1030
-74688 IBM-4029_10P
-75104 HP-LaserJet_4_Plus
-75168 HP-LaserJet_5P
-75232 Canon-BJC-4310SP
-75296 Epson-Stylus_Color_440
-75520 HP-DeskJet_682C
-75712 Epson-SQ_1170
-75808 Epson-Stylus_Photo_EX
-75936 Okidata-Microline_192plus
-76064 Minolta-PagePro_6e
-76096 Minolta-PagePro_6ex
-76224 Fujitsu-PrintPartner_10V
-76352 Oce-3165
-76640 HP-OfficeJet_Pro_1175C
-76704 HP-DeskJet_310
-76896 HP-DeskJet_1120C
-77088 Okidata-Okipage_8p
-77152 Xerox-DocuPrint_4508
-77216 Canon-LBP-1760
-77248 Canon-LBP-1260
-77312 Panasonic-KX-P1124
-77472 Kyocera-FS-800
-77568 Canon-BJC-600
-77824 Apple-Color_StyleWriter_2500
-77952 HP-OfficeJet_500
-78144 HP-LaserJet_3
-78336 Brother-HL-1260
-78688 HP-LaserJet_2_w_PS
-78720 NEC-Silentwriter2_model_290
-78816 DEC-LN07
-79840 HP-DeskJet_500C
-80160 Xerox-DocuPrint_P12
-80288 Star-LC24-200
-80320 Xerox-WorkCentre_450cp
-80896 Epson-Stylus_Color_860
-81408 Brother-HL-1040
-81568 Brother-MFC-9500
-82496 Okidata-Super_6e
-83072 Brother-MFC-9100c
-83520 Epson-Stylus_Photo
-84256 Brother-HL-820
-84864 Xerox-DocuPrint_P8
-85344 Okidata-Okipage_12i
-86176 HP-LaserJet_3P_w_PS
-86208 Okidata-Okipage_20DXn
-86784 Lexmark-Optra_Se_3455
-87552 Samsung-QL-6050
-87968 Minolta-PagePro_6L
-89152 Canon-BJC-2000
-90592 Panasonic-KX-PS600
-90976 Canon-BJ-5
-91232 HP-LaserJet_5M
-91840 Kyocera-FS-5900C
-92192 Epson-Stylus_Color_900
-93120 Kyocera-FS-600_KPDL-2
-94016 Apple-LaserWriter_Select_360
-96288 Epson-Stylus_Color_760
-96480 Tally-MT908
-96512 Canon-BJC-80
-96576 Okidata-OL400w
-97312 Brother-HJ-400
-99136 Star-WinType_4000
-99616 HP-DeskJet_540C
-99840 Brother-HL-1070
diff --git a/src/foomatic/paper_sizes.c b/src/foomatic/paper_sizes.c
index 2165875..e22f5fd 100644
--- a/src/foomatic/paper_sizes.c
+++ b/src/foomatic/paper_sizes.c
@@ -1,5 +1,5 @@
/*
- * "$Id: paper_sizes.c,v 1.4 2001/09/02 13:30:26 rlk Exp $"
+ * "$Id: paper_sizes.c,v 1.8 2004/09/17 18:38:12 rleigh Exp $"
*
* Dump the per-printer options for Grant Taylor's *-omatic database
*
@@ -24,23 +24,18 @@
#include <config.h>
#endif
#include <stdio.h>
-#ifdef INCLUDE_GIMP_PRINT_H
-#include INCLUDE_GIMP_PRINT_H
-#else
-#include <gimp-print/gimp-print.h>
-#endif
-#include "../../lib/libprintut.h"
+#include <gutenprint/gutenprint.h>
int
main(int argc, char **argv)
{
int i;
+
+ stp_init();
for (i = 0; i < stp_known_papersizes(); i++)
{
- const stp_papersize_t p = stp_get_papersize_by_index(i);
- printf("%s %d %d\n", stp_papersize_get_name(p),
- stp_papersize_get_width(p),
- stp_papersize_get_height(p));
+ const stp_papersize_t *p = stp_get_papersize_by_index(i);
+ printf("%s %d %d\n", p->name, p->width, p->height);
}
return 0;
}
diff --git a/src/foomatic/printer_margins.c b/src/foomatic/printer_margins.c
index da6ed7d..fef4d6f 100644
--- a/src/foomatic/printer_margins.c
+++ b/src/foomatic/printer_margins.c
@@ -1,9 +1,10 @@
/*
- * "$Id: printer_margins.c,v 1.1.2.1 2003/01/05 22:40:39 tillkamppeter Exp $"
+ * "$Id: printer_margins.c,v 1.15 2004/09/17 18:38:12 rleigh Exp $"
*
* Dump the per-printer margins for Grant Taylor's *-omatic database
*
- * Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)
+ * Copyright 2000, 2003 Robert Krawitz (rlk@alum.mit.edu) and
+ * Till Kamppeter (till.kamppeter@gmx.net)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -24,70 +25,85 @@
#include <config.h>
#endif
#include <stdio.h>
-#ifdef INCLUDE_GIMP_PRINT_H
-#include INCLUDE_GIMP_PRINT_H
-#else
-#include <gimp-print/gimp-print.h>
-#endif
-#include "../../lib/libprintut.h"
#include <string.h>
+#include <gutenprint/gutenprint.h>
int
-main(int argc, char **argv)
-{
+main(int argc, char **argv) {
int i, k;
- for (i = 0; i < stp_known_printers(); i++)
- {
- stp_vars_t v;
- const stp_printer_t p = stp_get_printer_by_index(i);
- const stp_vars_t printvars = stp_printer_get_printvars(p);
- const stp_printfuncs_t* printfuncs = stp_printer_get_printfuncs(p);
- int num_opts;
- stp_param_t *opts;
- const char *defopt;
- int width, height,
- bottom, left,
- top, right;
- printf("# Printer model %s, long name `%s'\n",
- stp_printer_get_driver(p), stp_printer_get_long_name(p));
- v = stp_allocate_copy(printvars);
- opts = (*(printfuncs->parameters))(p, NULL, "PageSize", &num_opts);
- defopt = (*(printfuncs->default_parameters))(p, NULL, "PageSize");
- for (k = 0; k < num_opts; k++) {
- const stp_papersize_t papersize = stp_get_papersize_by_name(opts[k].name);
-
- if (!papersize) {
- printf("Unable to look up size %s!\n", opts[k].name);
- continue;
- }
-
- width = stp_papersize_get_width(papersize);
- height = stp_papersize_get_height(papersize);
-
- /* if (width <= 0 || height <= 0)
- continue; */
-
- stp_set_media_size(v, opts[k].name);
-
- (*(printfuncs->media_size))(p, v, &width, &height);
- (*(printfuncs->imageable_area))(p, v, &left, &right, &bottom, &top);
-
- if (strcmp(opts[k].name, "Custom") == 0) {
- /* Use relative values for the custom size */
- right = width - right;
- top = height - top;
- }
-
- printf("$imageableareas{'%s'}{'%s'} = {\n",
- stp_printer_get_driver(p), opts[k].name);
- printf(" 'left' => '%d',\n", left);
- printf(" 'right' => '%d',\n", right);
- printf(" 'top' => '%d',\n", top);
- printf(" 'bottom' => '%d',\n", bottom);
- printf(" 'width' => '%d',\n", width);
- printf(" 'height' => '%d'\n", height);
- printf("};\n");
+
+ stp_init();
+ for (i = 0; i < stp_printer_model_count(); i++) {
+ const stp_printer_t *p = stp_get_printer_by_index(i);
+ const char *driver = stp_printer_get_driver(p);
+ const char *family = stp_printer_get_family(p);
+ stp_vars_t *pv =
+ stp_vars_create_copy(stp_printer_get_defaults(p));
+ stp_parameter_t desc;
+ int num_opts;
+ int printer_is_color = 0;
+ const stp_param_string_t *opt;
+ int width, height, bottom, left, top, right;
+ if (strcmp(family, "ps") == 0 || strcmp(family, "raw") == 0)
+ continue;
+ stp_describe_parameter(pv, "PrintingMode", &desc);
+ if (stp_string_list_is_present(desc.bounds.str, "Color"))
+ printer_is_color = 1;
+ stp_parameter_description_destroy(&desc);
+ if (printer_is_color)
+ stp_set_string_parameter(pv, "PrintingMode", "Color");
+ else
+ stp_set_string_parameter(pv, "PrintingMode", "BW");
+ stp_set_string_parameter(pv, "ChannelBitDepth", "8");
+ printf("# Printer model %s, long name `%s'\n", driver,
+ stp_printer_get_long_name(p));
+ stp_describe_parameter(pv, "PageSize", &desc);
+ printf("$defaults{'%s'}{'PageSize'} = '%s';\n",
+ driver, desc.deflt.str);
+ num_opts = stp_string_list_count(desc.bounds.str);
+
+ for (k = 0; k < num_opts; k++) {
+ const stp_papersize_t *papersize;
+ opt = stp_string_list_param(desc.bounds.str, k);
+ papersize = stp_get_papersize_by_name(opt->name);
+
+ if (!papersize) {
+ printf("Unable to lookup size %s!\n", opt->name);
+ continue;
}
+
+ width = papersize->width;
+ height = papersize->height;
+
+ stp_set_string_parameter(pv, "PageSize", opt->name);
+
+ stp_get_media_size(pv, &width, &height);
+ stp_get_imageable_area(pv, &left, &right, &bottom, &top);
+ bottom = height - bottom;
+ top = height - top;
+
+ if (strcmp(opt->name, "Custom") == 0) {
+ /* Use relative values for the custom size */
+ right = width - right;
+ top = height - top;
+ width = 0;
+ height = 0;
+ }
+
+ printf("$stpdata{'%s'}{'PageSize'}{'%s'} = '%s';\n",
+ driver, opt->name, opt->text);
+ printf("$imageableareas{'%s'}{'%s'} = {\n",
+ driver, opt->name);
+ printf(" 'left' => '%d',\n", left);
+ printf(" 'right' => '%d',\n", right);
+ printf(" 'top' => '%d',\n", top);
+ printf(" 'bottom' => '%d',\n", bottom);
+ printf(" 'width' => '%d',\n", width);
+ printf(" 'height' => '%d'\n", height);
+ printf("};\n");
}
+ stp_parameter_description_destroy(&desc);
+ stp_vars_destroy(pv);
+ }
return 0;
}
diff --git a/src/foomatic/printer_options.c b/src/foomatic/printer_options.c
index b1bc4bb..4c383d5 100644
--- a/src/foomatic/printer_options.c
+++ b/src/foomatic/printer_options.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printer_options.c,v 1.9.4.1 2002/03/30 22:21:33 tillkamppeter Exp $"
+ * "$Id: printer_options.c,v 1.47 2005/04/17 01:58:16 rlk Exp $"
*
* Dump the per-printer options for Grant Taylor's *-omatic database
*
@@ -24,99 +24,245 @@
#include <config.h>
#endif
#include <stdio.h>
-#ifdef INCLUDE_GIMP_PRINT_H
-#include INCLUDE_GIMP_PRINT_H
-#else
-#include <gimp-print/gimp-print.h>
-#endif
-#include "../../lib/libprintut.h"
-
-const char *params[] =
-{
- "PageSize",
- "Resolution",
- "InkType",
- "MediaType",
- "InputSlot"
-};
-
-int nparams = sizeof(params) / sizeof(const char *);
+#include <string.h>
+#include <gutenprint/gutenprint.h>
+#include <gutenprint/gutenprint-intl.h>
int
main(int argc, char **argv)
{
int i, j, k;
- for (i = 0; i < stp_known_printers(); i++)
+
+ stp_init();
+ for (i = 0; i < stp_printer_model_count(); i++)
{
- const stp_printer_t p = stp_get_printer_by_index(i);
- const stp_vars_t pv = stp_printer_get_printvars(p);
- stp_param_t *retval;
- const char *retval1;
- int count;
+ stp_parameter_list_t params;
+ int nparams;
+ stp_parameter_t desc;
+ const stp_printer_t *printer = stp_get_printer_by_index(i);
+ const char *driver = stp_printer_get_driver(printer);
+ const char *family = stp_printer_get_family(printer);
+ stp_vars_t *pv = stp_vars_create_copy(stp_printer_get_defaults(printer));
int tcount = 0;
- printf("# Printer model %s, long name `%s'\n",
- stp_printer_get_driver(p), stp_printer_get_long_name(p));
+ size_t count;
+ int printer_is_color = 0;
+ if (strcmp(family, "ps") == 0 || strcmp(family, "raw") == 0)
+ continue;
+
+ /* Set Job Mode to "Job" as this enables the Duplex option */
+ stp_set_string_parameter(pv, "JobMode", "Job");
+
+ stp_describe_parameter(pv, "PrintingMode", &desc);
+ if (stp_string_list_is_present(desc.bounds.str, "Color"))
+ printer_is_color = 1;
+ stp_parameter_description_destroy(&desc);
+ if (printer_is_color)
+ stp_set_string_parameter(pv, "PrintingMode", "Color");
+ else
+ stp_set_string_parameter(pv, "PrintingMode", "BW");
+ stp_set_string_parameter(pv, "ChannelBitDepth", "8");
+
+ printf("# Printer model %s, long name `%s'\n", driver,
+ stp_printer_get_long_name(printer));
+
+ params = stp_get_parameter_list(pv);
+ nparams = stp_parameter_list_count(params);
+
for (k = 0; k < nparams; k++)
{
- retval1 = (*stp_printer_get_printfuncs(p)->default_parameters)
- (p, NULL, params[k]);
- if (retval1)
- printf("$defaults{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), params[k], retval1);
- retval = (*stp_printer_get_printfuncs(p)->parameters)(p, NULL, params[k], &count);
- if (count > 0)
+ const stp_parameter_t *p = stp_parameter_list_param(params, k);
+ if (p->read_only || p->p_level > STP_PARAMETER_LEVEL_ADVANCED4 ||
+ (p->p_class != STP_PARAMETER_CLASS_OUTPUT &&
+ p->p_class != STP_PARAMETER_CLASS_FEATURE))
+ continue;
+ count = 0;
+ stp_describe_parameter(pv, p->name, &desc);
+ if (desc.is_active)
{
- for (j = 0; j < count; j++)
+ if ((desc.p_type == STP_PARAMETER_TYPE_DOUBLE ||
+ desc.p_type == STP_PARAMETER_TYPE_DIMENSION ||
+ desc.p_type == STP_PARAMETER_TYPE_INT) &&
+ !desc.is_mandatory)
+ {
+ /*
+ * Create a dummy option that enables or disables
+ * the option as appropriate. The long name ends in
+ * enable, rather than starts with enable, because
+ * CUPS has this nasty habit of sorting options
+ * alphabetically rather than leaving them in the
+ * order listed. This ensures that the enable
+ * option is adjacent to the value it controls.
+ */
+ printf("$longnames{'STP_Enable%s'} = '%s Enable';\n",
+ desc.name, desc.text);
+ printf("$param_classes{'STP_Enable%s'} = %d;\n",
+ desc.name, desc.p_class);
+ printf("$param_levels{'STP_Enable%s'} = %d;\n",
+ desc.name, desc.p_level);
+ printf("$defaults{'%s'}{'STP_Enable%s'} = 'Disabled';\n",
+ driver, desc.name);
+ printf("$stpdata{'%s'}{'STP_Enable%s'}{'Disabled'} = 'Disabled';\n",
+ driver, desc.name);
+ printf("$stpdata{'%s'}{'STP_Enable%s'}{'Enabled'} = 'Enabled';\n",
+ driver, desc.name);
+ printf("$longnames{'STP_%s'} = '%s Value';\n",
+ desc.name, desc.text);
+ }
+ else
+ printf("$longnames{'STP_%s'} = '%s';\n",
+ desc.name, desc.text);
+ printf("$param_classes{'STP_%s'} = %d;\n",
+ desc.name, desc.p_class);
+ printf("$param_levels{'STP_%s'} = %d;\n",
+ desc.name, desc.p_level);
+ if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
+ {
+ count = stp_string_list_count(desc.bounds.str);
+ if (count > 0)
+ {
+ if (desc.is_mandatory)
+ {
+ printf("$defaults{'%s'}{'STP_%s'} = '%s';\n",
+ driver, desc.name, desc.deflt.str);
+ }
+ else
+ {
+ printf("$defaults{'%s'}{'STP_%s'} = '%s';\n",
+ driver, desc.name, "None");
+ printf("$stpdata{'%s'}{'STP_%s'}{'%s'} = '%s';\n",
+ driver, desc.name, "None", "None");
+ }
+ for (j = 0; j < count; j++)
+ {
+ const stp_param_string_t *param =
+ stp_string_list_param(desc.bounds.str, j);
+ printf("$stpdata{'%s'}{'STP_%s'}{'%s'} = '%s';\n",
+ driver, desc.name, param->name, param->text);
+ if (strcmp(desc.name, "Resolution") == 0)
+ {
+ int x, y;
+ stp_set_string_parameter(pv, "Resolution",
+ param->name);
+ stp_describe_resolution(pv, &x, &y);
+ if (x > 0 && y > 0)
+ {
+ printf("$stpdata{'%s'}{'%s'}{'%s'} = '%d';\n",
+ driver, "x_resolution", param->name, x);
+ printf("$stpdata{'%s'}{'%s'}{'%s'} = '%d';\n",
+ driver, "y_resolution", param->name, y);
+ }
+ }
+ }
+ }
+ }
+ else if (desc.p_type == STP_PARAMETER_TYPE_BOOLEAN)
{
- printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), params[k], retval[j].name,
- retval[j].text);
- free((void *)retval[j].name);
- free((void *)retval[j].text);
+ if (desc.is_mandatory)
+ {
+ printf("$defaults{'%s'}{'STP_%s'} = '%d';\n",
+ driver, desc.name, desc.deflt.boolean);
+ }
+ else
+ {
+ printf("$defaults{'%s'}{'STP_%s'} = '%s';\n",
+ driver, desc.name, "None");
+ printf("$stpdata{'%s'}{'STP_%s'}{'%s'} = '%s';\n",
+ driver, desc.name, "None", "None");
+ }
+
+ printf("$stpdata{'%s'}{'STP_%s'}{'0'} = 'False';\n",
+ driver, desc.name);
+ printf("$stpdata{'%s'}{'STP_%s'}{'1'} = 'True';\n",
+ driver, desc.name);
}
- free(retval);
+ else if (desc.p_type == STP_PARAMETER_TYPE_DOUBLE)
+ {
+ if (desc.bounds.dbl.lower <= desc.deflt.dbl &&
+ desc.bounds.dbl.upper >= desc.deflt.dbl)
+ {
+ printf("$stp_float_values{'%s'}{'MINVAL'}{'STP_%s'} = %.3f;\n",
+ driver, desc.name, desc.bounds.dbl.lower);
+ printf("$stp_float_values{'%s'}{'MAXVAL'}{'STP_%s'} = %.3f;\n",
+ driver, desc.name, desc.bounds.dbl.upper);
+ printf("$stp_float_values{'%s'}{'DEFVAL'}{'STP_%s'} = %.3f;\n",
+ driver, desc.name, desc.deflt.dbl);
+ /* printf("$stp_float_values{'%s'}{'LONG_NAME'}{'STP_%s'} = '%s';\n",
+ driver, desc.name, _(desc.text)); */
+ printf("$stp_float_values{'%s'}{'CATEGORY'}{'STP_%s'} = '%s';\n",
+ driver, desc.name, _(desc.category));
+ printf("$stp_float_values{'%s'}{'HELP'}{'STP_%s'} = q(%s);\n",
+ driver, desc.name, (desc.help ? _(desc.help) : "''"));
+ printf("$stp_float_values{'%s'}{'MANDATORY'}{'STP_%s'} = q(%d);\n",
+ driver, desc.name, desc.is_mandatory);
+ }
+ }
+ else if (desc.p_type == STP_PARAMETER_TYPE_INT)
+ {
+ if (desc.bounds.integer.lower <= desc.deflt.integer &&
+ desc.bounds.integer.upper >= desc.deflt.integer)
+ {
+ printf("$stp_int_values{'%s'}{'MINVAL'}{'STP_%s'} = %d;\n",
+ driver, desc.name, desc.bounds.integer.lower);
+ printf("$stp_int_values{'%s'}{'MAXVAL'}{'STP_%s'} = %d;\n",
+ driver, desc.name, desc.bounds.integer.upper);
+ printf("$stp_int_values{'%s'}{'DEFVAL'}{'STP_%s'} = %d;\n",
+ driver, desc.name, desc.deflt.integer);
+ /* printf("$stp_int_values{'%s'}{'LONG_NAME'}{'STP_%s'} = '%s';\n",
+ driver, desc.name, _(desc.text)); */
+ printf("$stp_int_values{'%s'}{'CATEGORY'}{'STP_%s'} = '%s';\n",
+ driver, desc.name, _(desc.category));
+ printf("$stp_int_values{'%s'}{'HELP'}{'STP_%s'} = q(%s);\n",
+ driver, desc.name, (desc.help ? _(desc.help) : "''"));
+ printf("$stp_int_values{'%s'}{'MANDATORY'}{'STP_%s'} = q(%d);\n",
+ driver, desc.name, desc.is_mandatory);
+ }
+ }
+ else if (desc.p_type == STP_PARAMETER_TYPE_DIMENSION)
+ {
+ if (desc.bounds.dimension.lower <= desc.deflt.dimension &&
+ desc.bounds.dimension.upper >= desc.deflt.dimension)
+ {
+ printf("$stp_dimension_values{'%s'}{'MINVAL'}{'STP_%s'} = %d;\n",
+ driver, desc.name, desc.bounds.dimension.lower);
+ printf("$stp_dimension_values{'%s'}{'MAXVAL'}{'STP_%s'} = %d;\n",
+ driver, desc.name, desc.bounds.dimension.upper);
+ printf("$stp_dimension_values{'%s'}{'DEFVAL'}{'STP_%s'} = %d;\n",
+ driver, desc.name, desc.deflt.dimension);
+ /* printf("$stp_dimension_values{'%s'}{'LONG_NAME'}{'STP_%s'} = '%s';\n",
+ driver, desc.name, _(desc.text)); */
+ printf("$stp_dimension_values{'%s'}{'CATEGORY'}{'STP_%s'} = '%s';\n",
+ driver, desc.name, _(desc.category));
+ printf("$stp_dimension_values{'%s'}{'HELP'}{'STP_%s'} = q(%s);\n",
+ driver, desc.name, (desc.help ? _(desc.help) : "''"));
+ printf("$stp_dimension_values{'%s'}{'MANDATORY'}{'STP_%s'} = q(%d);\n",
+ driver, desc.name, desc.is_mandatory);
+ }
+ }
+ tcount += count;
}
- tcount += count;
+ stp_parameter_description_destroy(&desc);
}
+ stp_parameter_list_destroy(params);
if (tcount > 0)
{
- printf("$defaults{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), "Dither",
- stp_dither_algorithm_name(0));
- for (k = 0; k < stp_dither_algorithm_count(); k++)
- printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), "Dither",
- stp_dither_algorithm_name(k),
- stp_dither_algorithm_text(k));
- if (stp_get_output_type(pv) == OUTPUT_COLOR)
+ if (printer_is_color)
{
printf("$defaults{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), "Color", "Color");
- printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), "Color", "Color",
- "Color");
+ driver, "Color", "Color");
printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), "Color", "RawCMYK",
- "Raw CMYK");
+ driver, "Color", "Color", "Color");
printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), "Color", "Grayscale",
- "Gray Scale");
- printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), "Color", "BlackAndWhite",
- "Black and White");
+ driver, "Color", "RawCMYK", "Raw CMYK");
}
else
- {
- printf("$defaults{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), "Color", "Grayscale");
- printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), "Color", "Grayscale",
- "Grayscale");
- printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
- stp_printer_get_driver(p), "Color", "BlackAndWhite",
- "Black and White");
- }
+ printf("$defaults{'%s'}{'%s'} = '%s';\n",
+ driver, "Color", "Grayscale");
+ printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
+ driver, "Color", "Grayscale", "Gray Scale");
+ printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
+ driver, "Color", "BlackAndWhite", "Black and White");
}
+ stp_vars_destroy(pv);
}
return 0;
}
diff --git a/src/foomatic/printers.c b/src/foomatic/printers.c
index 6e7ab31..112abf0 100644
--- a/src/foomatic/printers.c
+++ b/src/foomatic/printers.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printers.c,v 1.2 2001/09/02 13:30:26 rlk Exp $"
+ * "$Id: printers.c,v 1.10 2004/09/17 18:38:12 rleigh Exp $"
*
* Dump the per-printer options for Grant Taylor's *-omatic database
*
@@ -24,22 +24,21 @@
#include <config.h>
#endif
#include <stdio.h>
-#ifdef INCLUDE_GIMP_PRINT_H
-#include INCLUDE_GIMP_PRINT_H
-#else
-#include <gimp-print/gimp-print.h>
-#endif
-#include "../../lib/libprintut.h"
+#include <gutenprint/gutenprint.h>
int
main(int argc, char **argv)
{
int i;
- for (i = 0; i < stp_known_printers(); i++)
+
+ stp_init();
+ for (i = 0; i < stp_printer_model_count(); i++)
{
- const stp_papersize_t p = stp_get_printer_by_index(i);
+ const stp_printer_t *p = stp_get_printer_by_index(i);
printf("$printer_name{'%s'} = '%s';\n", stp_printer_get_driver(p),
stp_printer_get_long_name(p));
+ printf("$printer_make{'%s'} = '%s';\n", stp_printer_get_driver(p),
+ stp_printer_get_manufacturer(p));
}
return 0;
}
diff --git a/src/foomatic/stp_limits.c b/src/foomatic/stp_limits.c
deleted file mode 100644
index 6015774..0000000
--- a/src/foomatic/stp_limits.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * "$Id: stp_limits.c,v 1.2 2001/09/02 13:30:26 rlk Exp $"
- *
- * Dump the per-printer options for Grant Taylor's *-omatic database
- *
- * Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#ifdef INCLUDE_GIMP_PRINT_H
-#include INCLUDE_GIMP_PRINT_H
-#else
-#include <gimp-print/gimp-print.h>
-#endif
-#include "../../lib/libprintut.h"
-
-int
-main(int argc, char **argv)
-{
- const stp_vars_t minimum = stp_minimum_settings();
- const stp_vars_t maximum = stp_maximum_settings();
- const stp_vars_t defvars = stp_default_settings();
-
- printf("$stp_values{'MINVAL'}{'Brightness'} = %.3f\n",
- stp_get_brightness(minimum));
- printf("$stp_values{'MAXVAL'}{'Brightness'} = %.3f\n",
- stp_get_brightness(maximum));
- printf("$stp_values{'DEFVAL'}{'Brightness'} = %.3f\n",
- stp_get_brightness(defvars));
-
- printf("$stp_values{'MINVAL'}{'Contrast'} = %.3f\n",
- stp_get_contrast(minimum));
- printf("$stp_values{'MAXVAL'}{'Contrast'} = %.3f\n",
- stp_get_contrast(maximum));
- printf("$stp_values{'DEFVAL'}{'Contrast'} = %.3f\n",
- stp_get_contrast(defvars));
-
- printf("$stp_values{'MINVAL'}{'Density'} = %.3f\n",
- stp_get_density(minimum));
- printf("$stp_values{'MAXVAL'}{'Density'} = %.3f\n",
- stp_get_density(maximum));
- printf("$stp_values{'DEFVAL'}{'Density'} = %.3f\n",
- stp_get_density(defvars));
-
- printf("$stp_values{'MINVAL'}{'Gamma'} = %.3f\n",
- stp_get_gamma(minimum));
- printf("$stp_values{'MAXVAL'}{'Gamma'} = %.3f\n",
- stp_get_gamma(maximum));
- printf("$stp_values{'DEFVAL'}{'Gamma'} = %.3f\n",
- stp_get_gamma(defvars));
-
- printf("$stp_values{'MINVAL'}{'Cyan'} = %.3f\n",
- stp_get_cyan(minimum));
- printf("$stp_values{'MAXVAL'}{'Cyan'} = %.3f\n",
- stp_get_cyan(maximum));
- printf("$stp_values{'DEFVAL'}{'Cyan'} = %.3f\n",
- stp_get_cyan(defvars));
-
- printf("$stp_values{'MINVAL'}{'Magenta'} = %.3f\n",
- stp_get_magenta(minimum));
- printf("$stp_values{'MAXVAL'}{'Magenta'} = %.3f\n",
- stp_get_magenta(maximum));
- printf("$stp_values{'DEFVAL'}{'Magenta'} = %.3f\n",
- stp_get_magenta(defvars));
-
- printf("$stp_values{'MINVAL'}{'Yellow'} = %.3f\n",
- stp_get_yellow(minimum));
- printf("$stp_values{'MAXVAL'}{'Yellow'} = %.3f\n",
- stp_get_yellow(maximum));
- printf("$stp_values{'DEFVAL'}{'Yellow'} = %.3f\n",
- stp_get_yellow(defvars));
-
- printf("$stp_values{'MINVAL'}{'Saturation'} = %.3f\n",
- stp_get_saturation(minimum));
- printf("$stp_values{'MAXVAL'}{'Saturation'} = %.3f\n",
- stp_get_saturation(maximum));
- printf("$stp_values{'DEFVAL'}{'Saturation'} = %.3f\n",
- stp_get_saturation(defvars));
-
- return 0;
-}