SHELL = /bin/sh


srcdir = .
top_srcdir = ..
top_builddir = ..

PACKAGE = sane-backends
VERSION = 1.0.19
package_version = sane-backends 1.0.19
distdir = $(top_srcdir)/$(PACKAGE)-$(VERSION)

prefix = /usr/local
exec_prefix = ${prefix}
bindir = ${exec_prefix}/bin
sbindir = ${exec_prefix}/sbin
libexecdir = ${exec_prefix}/libexec
datarootdir = ${prefix}/share
datadir = ${datarootdir}
sysconfdir = ${prefix}/etc
sharedstatedir = ${prefix}/com
localstatedir = ${prefix}/var
locksanedir = ${prefix}/var/lock/sane
libdir = ${exec_prefix}/lib
libsanedir = $(libdir)/sane
infodir = ${datarootdir}/info
mandir = ${datarootdir}/man
includedir = ${prefix}/include
oldincludedir = /usr/include
configdir = ${sysconfdir}/sane.d
BEOS_ADDONDIR = 

V_MAJOR = 1
V_MINOR = 0
V_REV = 19
DLL_PRELOAD = 
DLL_PRELOAD_EXTRAS = $(foreach be,$(DLL_PRELOAD),$($(addprefix EXTRA_,$(be))))

MKDIR = $(top_srcdir)/mkinstalldirs
INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_LOCKPATH = 
LOCKPATH_GROUP = uucp

RANLIB = ranlib
LN_S = ln -s

CC = gcc
INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
CPPFLAGS =  -D_REENTRANT -DPATH_SANE_CONFIG_DIR=$(configdir) 	  -DPATH_SANE_DATA_DIR=$(datadir) 	  -DPATH_SANE_LOCK_DIR=$(locksanedir) 	  -DV_MAJOR=1 -DV_MINOR=0
CFLAGS = -march=i486 -mtune=i686 -O2 -pipe -W -Wall
LDFLAGS = 
BACKENDLIBS = -lusb -lpthread -lm  -ljpeg -ltiff -ldl
DEFS = -DHAVE_CONFIG_H
DYNAMIC_FLAG=-module
USE_LINKS=yes

LIBTOOL = ../libtool
MCOMP	= --mode=compile
MLINK	= --mode=link
MINST	= --mode=install

COMPILE = $(CC) -c $(CFLAGS) $(DEFS) $(INCLUDES) $(CPPFLAGS)

DISTCLEAN_FILES = *~ .*~ *.log *.bak *.old *.orig *.out *.rej "\#"* ".\#"*

FIRMWARE_DIRS = artec_eplus48u gt68xx snapscan epjitsu



PRELOADABLE_BACKENDS = abaton agfafocus apple artec artec_eplus48u as6e avision bh 	  canon canon630u cardscan coolscan coolscan2 dc25 dmc 	  epjitsu epson epson2 fujitsu genesys gt68xx 	  hp hp3500 hp3900 hp4200 hp5400 hp5590 hpljm1005 hs2p 	  ibm leo lexmark 	  ma1509 matsushita microtek microtek2 mustek mustek_usb 	  nec niash pie pixma plustek ricoh 	  s9036 sceptre sharp sm3600 sm3840 snapscan sp15c st400 stv680 	  tamarack teco1 teco2 teco3 test u12 umax umax_pp umax1220u plustek_pp dc210 dc240 dell1600n_net qcam v4l net mustek_usb2

ALL_BACKENDS = $(PRELOADABLE_BACKENDS) dll

LIBS = $(addprefix libsane-,$(addsuffix .la,$(ALL_BACKENDS)))
CONFIGS = $(addsuffix .conf,$(ALL_BACKENDS)) saned.conf

EXTRA = sane_strstatus.lo ../sanei/sanei_init_debug.lo ../sanei/sanei_config.lo

# With libtool-1.0, we have to mention each library object explicitly... ;-(
ifneq ( ,)
LIBLIB_FUNCS = $(basename  )
else
LIBLIB_FUNCS =
endif

LIBOBJS = $(addprefix ../lib/,$(addsuffix .lo,$(LIBLIB_FUNCS)))

DISTFILES = Makefile.in saned.conf.in sane_strstatus.c stubs.c \
  abaton.c abaton.conf.in abaton.h \
  agfafocus.c agfafocus.conf.in agfafocus.h \
  apple.c apple.conf.in apple.h \
  artec.c artec.conf.in artec.h \
  artec_eplus48u.c artec_eplus48u.h artec_eplus48u.conf.in \
  as6e.c as6e.h \
  avision.c avision.conf.in avision.h \
  bh.c bh.conf.in bh.h \
  canon.c canon.conf.in canon.h canon-sane.c canon-scsi.c \
  canon630u.c canon630u-common.c canon630u.conf.in \
  canon_pp.conf.in canon_pp.h canon_pp.c canon_pp-dev.c \
  canon_pp-dev.h canon_pp-io.c canon_pp-io.h \
  cardscan.c cardscan.conf.in cardscan.h \
  coolscan.c coolscan.conf.in coolscan.h coolscan-scsidef.h \
  coolscan2.c coolscan2.conf.in \
  dc210.c dc210.conf.in dc210.h \
  dc240.c dc240.conf.in dc240.h \
  dc25.c dc25.conf.in dc25.h \
  dell1600n_net.c dell1600n_net.conf.in \
  dll.aliases dll.c dll.conf.in \
  dmc.c dmc.conf.in dmc.h \
  epjitsu.c epjitsu.conf.in epjitsu.h epjitsu-cmd.h \
  epson.c epson_scsi.c epson_usb.c epson.conf.in epson.h epson_scsi.h \
  epson_usb.h \
  epson2_net.c epson2_net.h epson2.c epson2.h epson2_scsi.c epson2_scsi.h \
  epson2-io.c epson2-io.h epson2-commands.c epson2-commands.h\
  epson2.conf.in\
  fujitsu.c fujitsu.conf.in fujitsu.h fujitsu-scsi.h \
  genesys.c genesys.h genesys_gl646.c genesys_low.h \
  genesys.conf.in genesys_devices.c genesys_gl841.c \
  genesys_conv.c genesys_conv_hlp.c \
  gphoto2.c gphoto2.conf.in gphoto2.h \
  gt68xx.c gt68xx.h gt68xx_high.c gt68xx_high.h gt68xx_mid.c gt68xx_mid.h \
  gt68xx_gt6801.c gt68xx_gt6801.h gt68xx_gt6816.c gt68xx_gt6816.h \
  gt68xx_low.c gt68xx_low.h gt68xx_devices.c gt68xx_generic.c \
  gt68xx_generic.h gt68xx_shm_channel.c gt68xx_shm_channel.h gt68xx.conf.in \
  hp-accessor.c hp-accessor.h hp.c hp.conf.in hp-device.c hp-device.h hp.h \
  hp-handle.c hp-handle.h hp-hpmem.c hp-option.c \
  hp-option.h hp.README hp-scl.c hp-scl.h hp-scsi.h hp.TODO \
  hp3500.c \
  hp3900.c hp3900.conf.in hp3900_config.c hp3900_debug.c hp3900_rts8822.c \
  hp3900_sane.c hp3900_types.c hp3900_usb.c \
  hp4200.c  hp4200.conf.in  hp4200.h  hp4200_lm9830.c  hp4200_lm9830.h \
  hp5400.c hp5400.h hp5400.conf.in hp5400_debug.c hp5400_debug.h \
  hp5400_internal.c hp5400_internal.h hp5400_xfer.h hp5400_sane.c \
  hp5400_sanei.c hp5400_sanei.h \
  hp5590.c hp5590_cmds.c hp5590_low.c hp5590_cmds.h hp5590_low.h \
  hpljm1005.c \
  hpsj5s.c hpsj5s.conf.in hpsj5s.h \
  hs2p.c hs2p.conf.in hs2p-scsi.c hs2p.h hs2p-scsi.h hs2p-saneopts.h \
  ibm.c ibm.conf.in ibm.h ibm-scsi.c \
  leo.c leo.h leo.conf.in \
  lexmark.c lexmark_low.c lexmark_models.c lexmark_sensors.c lexmark.h \
  lexmark.conf.in \
  lm9830.h \
  ma1509.c ma1509.conf.in ma1509.h \
  matsushita.c matsushita.conf.in matsushita.h \
  microtek.c microtek.conf.in microtek.h \
  microtek2.c microtek2.conf.in microtek2.h \
  mustek.c mustek.conf.in mustek.h \
  mustek_pp.c mustek_pp.conf.in mustek_pp.h mustek_pp_cis.c mustek_pp_cis.h \
  mustek_pp_decl.h mustek_pp_drivers.h mustek_pp_null.c mustek_pp_ccd300.c \
  mustek_pp_ccd300.h mustek_scsi_pp.c mustek_scsi_pp.h \
  mustek_usb.c mustek_usb.conf.in mustek_usb.h mustek_usb_high.c \
  mustek_usb_high.h mustek_usb_low.c mustek_usb_low.h mustek_usb_mid.c \
  mustek_usb_mid.h \
  mustek_usb2.c mustek_usb2.h mustek_usb2_asic.c mustek_usb2_asic.h \
  mustek_usb2_high.c mustek_usb2_high.h mustek_usb2_reflective.c \
  mustek_usb2_transparent.c \
  nec.c nec.conf.in nec.h \
  net.c net.conf.in net.h \
  niash.c niash_core.c niash_core.h niash_xfer.c niash_xfer.h \
  pie.c pie.conf.in pie-scsidef.h \
  pint.c pint.h \
  pixma.c pixma.h pixma_common.c pixma_common.h pixma_mp150.c pixma_mp730.c \
  pixma_mp750.c pixma_sane_options.c pixma_sane_options.h pixma_io.h \
  pixma_io_sanei.c pixma_rename.h \
  plustek.c plustek.conf.in plustek-usbdevs.c plustek.h plustek-usb.c \
  plustek-usb.h plustek-usbhw.c plustek-usbimg.c plustek-usbio.c \
  plustek-usbmap.c plustek-usbscan.c plustek-usbshading.c plustek-usbcalfile.c \
  plustek-usbcal.c \
  plustek-pp_dac.c plustek-pp_dbg.h plustek-pp_detect.c plustek-pp_genericio.c \
  plustek-pp_hwdefs.h plustek-pp_image.c plustek-pp_io.c plustek-pp_map.c \
  plustek-pp_misc.c plustek-pp_models.c plustek-pp_motor.c plustek-pp_p12.c \
  plustek-pp_p12ccd.c plustek-pp_p48xx.c plustek-pp_p9636.c \
  plustek-pp_procfs.c plustek-pp_procs.h plustek-pp_ptdrv.c plustek-pp_scale.c \
  plustek-pp_scan.h plustek-pp_scandata.h plustek-pp_sysdep.h plustek-pp_tpa.c \
  plustek-pp_types.h plustek_pp.c plustek-pp_wrapper.c plustek_pp.conf.in \
  plustek-pp.h \
  pnm.c \
  qcam.c qcam.conf.in qcam.h \
  ricoh.c ricoh.conf.in ricoh.h ricoh-scsi.c \
  s9036.c s9036.conf.in s9036.h \
  sceptre.c sceptre.conf.in sceptre.h \
  sharp.c sharp.conf.in sharp.h \
  sm3600.c sm3600-color.c sm3600-gray.c sm3600.h sm3600-homerun.c \
  sm3600-scanmtek.c sm3600-scantool.h sm3600-scanusb.c sm3600-scanutil.c \
  sm3840.conf.in sm3840.c sm3840_lib.c sm3840_params.h sm3840_scan.c sm3840.h \
  sm3840_lib.h \
  snapscan.c snapscan-data.c snapscan.conf.in snapscan.h snapscan-scsi.c \
  snapscan-sources.c snapscan-mutex.c snapscan-sources.h snapscan-usb.c \
  snapscan-usb.h snapscan-options.c \
  sp15c.c sp15c.conf.in sp15c.h sp15c-scsi.h \
  st400.c st400.conf.in st400.h \
  stv680.c stv680.conf.in stv680.h \
  tamarack.c tamarack.conf.in tamarack.h \
  teco1.c teco1.conf.in teco1.h \
  teco2.c teco2.conf.in teco2.h \
  teco3.c teco3.conf.in teco3.h \
  test.c test.conf.in test.h test-picture.c \
  u12.c u12.h u12-scanner.h u12-hwdef.h u12.conf.in u12-shading.c u12-tpa.c \
  u12-ccd.c u12-hw.c u12-if.c u12-image.c u12-io.c u12-map.c u12-motor.c \
  umax.c umax.conf.in umax.h umax-scanner.c umax-scanner.h umax-scsidef.h \
  umax-uc1200s.c umax-uc1200se.c umax-uc1260.c umax-uc630.c umax-uc840.c \
  umax-ug630.c umax-ug80.c umax-usb.c \
  umax_pp.c umax_pp.conf.in umax_pp.h umax_pp_low.c umax_pp_low.h \
  umax_pp_mid.c umax_pp_mid.h \
  umax1220u.c umax1220u-common.c umax1220u.conf.in \
  v4l.c v4l.conf.in v4l-frequencies.h v4l.h

.PHONY: all clean depend dist distclean install uninstall

libsane-%.la: %.lo %-s.lo $(EXTRA) $(LIBOBJS)
	@$(LIBTOOL) $(MLINK) $(CC) -export-dynamic -o $@ $($*_LIBS) \
	$(LDFLAGS) $(BACKENDLIBS) $^  -rpath $(libsanedir) \
	-version-info $(V_MAJOR):$(V_REV):$(V_MINOR) $(DYNAMIC_FLAG)

%-s.lo:	%-s.c
	@$(LIBTOOL) $(MCOMP) $(COMPILE) -DSTUBS -DBACKEND_NAME=$* $<

%.lo:	%.c
	@$(LIBTOOL) $(MCOMP) $(COMPILE) -DBACKEND_NAME=$* \
		-DLIBDIR=$(libsanedir) $<

%-s.c:	$(srcdir)/stubs.c
	rm -f $@
	$(LN_S) $(srcdir)/stubs.c $@

# Don't delete any intermediate files.
.PRECIOUS: %-s.c %-s.lo %.lo dll-preload.c

all:	$(LIBS) libsane.la becfg

install: $(INSTALL_LOCKPATH) install-be install-libsane install-becfg

install-be:
	$(MKDIR) $(DESTDIR)$(libdir) $(DESTDIR)$(libsanedir) $(DESTDIR)$(configdir)
	@# Install all backends in $(prefix)/lib/sane/
	@list="$(LIBS)"; for be in $$list; do \
	  echo installing $${be} in $(DESTDIR)$(libsanedir)/$${be}...; \
	  $(LIBTOOL) $(MINST) $(INSTALL_PROGRAM) $${be} \
              $(DESTDIR)$(libsanedir)/$${be} >/dev/null || exit 1; \
	done
	@$(LIBTOOL) $(MINST) --finish $(DESTDIR)$(libsanedir) >/dev/null
	@# Remove libsane.* links in lib/sane/ as these links to libsane-v4l.so
	@# cause misdetection of scanners.
	rm -f $(DESTDIR)$(libsanedir)/libsane.*
	@# Create library links manually. Actually this is libtool's job but it doesn't
	@# seem to work on some platforms. 
	@# Assume the dll name without any versions is last
	@if test "$(USE_LINKS)" = "yes" ; then  \
	  dllend=`../tools/libtool-get-dll-ext libsane-dll.la`; \
	  list="$(ALL_BACKENDS)"; cd $(DESTDIR)$(libsanedir) && for be in $$list; do \
	    file=libsane-$${be}.$$dllend.$(V_MAJOR); \
	    lib=`grep dlname= libsane-$${be}.la | cut -f2 -d"'"`; \
	    if test ! -f $${file} -a -n "$${lib}"; then \
	      $(LN_S) $${lib} $${file}; \
	    fi; \
	  done; \
	fi

install-be-beos:
	$(MKDIR) $(DESTDIR)$(libdir) $(DESTDIR)$(libsanedir) $(DESTDIR)$(configdir) $(DESTDIR)$(BEOS_ADDONDIR)
	@list="$(ALL_BACKENDS)"; for be in $$list; do \
	  echo installing $${be} in $(BEOS_ADDONDIR)/$${be}...; \
	  cp -p .libs/libsane-$${be}.so $(DESTDIR)$(BEOS_ADDONDIR)/$${be} || exit 1; \
	done

install-libsane:
	@echo installing libsane.la in $(DESTDIR)$(libdir)/libsane.la...
	@$(LIBTOOL) $(MINST) $(INSTALL_PROGRAM) libsane.la \
          $(DESTDIR)$(libdir)/libsane.la >/dev/null
	@$(LIBTOOL) $(MINST) --finish $(DESTDIR)$(libdir)

install-becfg:
	@list="$(CONFIGS)"; for cfg in $$list; do \
	  if test ! -r $${cfg}; then continue; fi; \
	  if test -f $(DESTDIR)$(configdir)/$${cfg}; then \
	    echo NOT overwriting $${cfg} in $(configdir)...; \
	  else \
	    echo installing $${cfg} in $(configdir)/$${cfg}...; \
	    $(INSTALL_DATA) $${cfg} $(DESTDIR)$(configdir)/$${cfg} \
              || exit 1; \
	  fi; \
	done
	for dir in $(FIRMWARE_DIRS) ; do \
	   $(MKDIR) $(DESTDIR)$(datadir)/sane/$${dir} ; \
	 done

install-lockpath:
	$(MKDIR) -m 775 -g $(LOCKPATH_GROUP) $(DESTDIR)$(locksanedir)

uninstall:
	rm -rf $(libsanedir) $(configdir) $(locksanedir)
	rm -f $(libdir)/libsane.*
	-for dir in $(FIRMWARE_DIRS) ; do \
	   rmdir $(datadir)/sane/$${dir} ; \
	 done

dll.lo: dll-preload.c

dll-preload.c:
	rm -f $@
	list="$(DLL_PRELOAD)"; for be in $$list; do \
	  echo "PRELOAD_DECL($$be)" >> $@; \
	done
	echo "static struct backend preloaded_backends[] = {" >> $@
	sep=""; \
	list="$(DLL_PRELOAD)"; \
	if test -z "$${list}"; then \
	  echo { 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }} >> $@; \
	else \
	  for be in $$list; do \
	    echo "$${sep}PRELOAD_DEFN($$be)" >> $@; \
	    sep=","; \
	  done; \
	fi
	echo "};" >> $@

libsane.la: dll.lo dll-s.lo $(EXTRA) $(addsuffix .lo,$(DLL_PRELOAD)) $(LIBOBJS)
	@$(LIBTOOL) $(MLINK) $(CC) -o $@ $(LDFLAGS) $(BACKENDLIBS)  $^ \
		$(addsuffix .lo,$(DLL_PRELOAD_EXTRAS))  \
		-rpath $(libdir) -version-info $(V_MAJOR):$(V_REV):$(V_MINOR)

# Generate .conf files for all existing .conf.in files
becfg: $(patsubst %.conf.in,%.conf,$(wildcard *.conf.in)) 
%.conf: %.conf.in
	@echo Generating $@ from $^
	@sed -e 's|@DATADIR@|$(datadir)|g' \
	     -e 's|@CONFIGDIR@|$(configdir)|g' \
	     -e 's|@DOCDIR@|$(docdir)|g' \
	     -e 's|@LIBDIR@|$(libdir)/sane|g' \
	     -e 's|@BINDIR@|$(bindir)|g' \
	     -e 's|@SBINDIR@|$(sbindir)|g' \
	     -e 's|@PACKAGEVERSION@|$(package_version)|g' $? > $@



# additional dependencies

EXTRA_canon_pp = canon_pp-io canon_pp-dev
EXTRA_genesys = genesys_gl646 genesys_gl841
EXTRA_hp = hp-accessor hp-device hp-handle hp-hpmem hp-option hp-scl
EXTRA_umax_pp = umax_pp_low umax_pp_mid
EXTRA_epson = epson_scsi epson_usb
EXTRA_epson2 = epson2_scsi epson_usb epson2_net epson2-io epson2-commands
EXTRA_lexmark = lexmark_low
EXTRA_pixma = pixma_io_sanei pixma_common pixma_mp150 pixma_mp730 pixma_mp750

# When preloading dll, we need to add in all preloaded objects:
libsane-dll.la: $(addsuffix .lo,$(DLL_PRELOAD))
libsane-dll.la: $(addsuffix .lo,$(DLL_PRELOAD_EXTRAS))

# We must not build SANE backend libraries that contain unresolved references
# to any of the sanei routines.  These explicit dependencies take care of
# this:

libsane-abaton.la: ../sanei/sanei_config2.lo
libsane-abaton.la: ../sanei/sanei_constrain_value.lo
libsane-abaton.la: ../sanei/sanei_scsi.lo
libsane-agfafocus.la: ../sanei/sanei_config2.lo
libsane-agfafocus.la: ../sanei/sanei_constrain_value.lo
libsane-agfafocus.la: ../sanei/sanei_scsi.lo
libsane-agfafocus.la: ../sanei/sanei_thread.lo
libsane-apple.la: ../sanei/sanei_config2.lo
libsane-apple.la: ../sanei/sanei_constrain_value.lo
libsane-apple.la: ../sanei/sanei_scsi.lo
libsane-artec.la: ../sanei/sanei_config2.lo
libsane-artec.la: ../sanei/sanei_constrain_value.lo
libsane-artec.la: ../sanei/sanei_scsi.lo
libsane-artec_eplus48u.la: ../sanei/sanei_constrain_value.lo
libsane-artec_eplus48u.la: ../sanei/sanei_usb.lo
libsane-artec_eplus48u.la: ../sanei/sanei_thread.lo
libsane-as6e.la: ../sanei/sanei_constrain_value.lo
libsane-avision.la: ../sanei/sanei_config2.lo
libsane-avision.la: ../sanei/sanei_constrain_value.lo
libsane-avision.la: ../sanei/sanei_scsi.lo
libsane-avision.la: ../sanei/sanei_usb.lo
libsane-avision.la: ../sanei/sanei_thread.lo
libsane-bh.la: ../sanei/sanei_config2.lo
libsane-bh.la: ../sanei/sanei_constrain_value.lo
libsane-bh.la: ../sanei/sanei_scsi.lo
libsane-canon.la: ../sanei/sanei_config2.lo
libsane-canon.la: ../sanei/sanei_constrain_value.lo
libsane-canon.la: ../sanei/sanei_scsi.lo
libsane-canon630u.la: ../sanei/sanei_constrain_value.lo
libsane-canon630u.la: ../sanei/sanei_usb.lo
libsane-canon_pp.la: $(addsuffix .lo,$(EXTRA_canon_pp))
libsane-cardscan.la: ../sanei/sanei_constrain_value.lo
libsane-cardscan.la: ../sanei/sanei_usb.lo
libsane-coolscan.la: ../sanei/sanei_config2.lo
libsane-coolscan.la: ../sanei/sanei_constrain_value.lo
libsane-coolscan.la: ../sanei/sanei_scsi.lo
libsane-coolscan.la: ../sanei/sanei_thread.lo
libsane-coolscan2.la: ../sanei/sanei_config2.lo
libsane-coolscan2.la: ../sanei/sanei_constrain_value.lo
libsane-coolscan2.la: ../sanei/sanei_scsi.lo
libsane-coolscan2.la: ../sanei/sanei_usb.lo
libsane-dc25.la: ../sanei/sanei_constrain_value.lo
libsane-dc210.la: ../sanei/sanei_constrain_value.lo  ../sanei/sanei_jpeg.lo
libsane-dc240.la: ../sanei/sanei_constrain_value.lo  ../sanei/sanei_jpeg.lo
libsane-dmc.la: ../sanei/sanei_config2.lo
libsane-dmc.la: ../sanei/sanei_constrain_value.lo
libsane-dmc.la: ../sanei/sanei_scsi.lo
libsane-epjitsu.la: ../sanei/sanei_constrain_value.lo
libsane-epjitsu.la: ../sanei/sanei_usb.lo
libsane-epson.la: $(addsuffix .lo,$(EXTRA_epson))
libsane-epson.la: ../sanei/sanei_config2.lo
libsane-epson.la: ../sanei/sanei_constrain_value.lo
libsane-epson.la: ../sanei/sanei_scsi.lo
libsane-epson.la: ../sanei/sanei_usb.lo
libsane-epson.la: ../sanei/sanei_pio.lo
libsane-epson2.la: $(addsuffix .lo,$(EXTRA_epson2))
libsane-epson2.la: ../sanei/sanei_config2.lo
libsane-epson2.la: ../sanei/sanei_constrain_value.lo
libsane-epson2.la: ../sanei/sanei_scsi.lo
libsane-epson2.la: ../sanei/sanei_usb.lo
libsane-epson2.la: ../sanei/sanei_pio.lo
libsane-epson2.la: ../sanei/sanei_tcp.lo
libsane-epson2.la: ../sanei/sanei_udp.lo
libsane-fujitsu.la: ../sanei/sanei_config2.lo
libsane-fujitsu.la: ../sanei/sanei_constrain_value.lo
libsane-fujitsu.la: ../sanei/sanei_scsi.lo
libsane-fujitsu.la: ../sanei/sanei_usb.lo
libsane-genesys.la: ../sanei/sanei_constrain_value.lo
libsane-genesys.la: ../sanei/sanei_usb.lo
libsane-genesys.la: $(addsuffix .lo,$(EXTRA_genesys))
libsane-gphoto2.la: ../sanei/sanei_constrain_value.lo  ../sanei/sanei_jpeg.lo
libsane-gt68xx.la: ../sanei/sanei_constrain_value.lo
libsane-gt68xx.la: ../sanei/sanei_usb.lo
libsane-hp.la: ../sanei/sanei_config2.lo
libsane-hp.la: ../sanei/sanei_constrain_value.lo
libsane-hp.la: ../sanei/sanei_scsi.lo
libsane-hp.la: ../sanei/sanei_usb.lo
libsane-hp.la: $(addsuffix .lo,$(EXTRA_hp))
libsane-hp.la: ../sanei/sanei_pio.lo
libsane-hp.la: ../sanei/sanei_thread.lo
libsane-hp3500.la: ../sanei/sanei_usb.lo
libsane-hp3500.la: ../sanei/sanei_thread.lo
libsane-hp3500.la: ../sanei/sanei_constrain_value.lo
libsane-hp3900.la: ../sanei/sanei_usb.lo
libsane-hp4200.la: ../sanei/sanei_constrain_value.lo
libsane-hp4200.la: ../sanei/sanei_usb.lo
libsane-hp4200.la: ../sanei/sanei_pv8630.lo
libsane-hp5400.la: ../sanei/sanei_usb.lo
libsane-hp5590.la: ../sanei/sanei_usb.lo
libsane-hpljm1005.la: ../sanei/sanei_usb.lo
libsane-hpljm1005.la: ../sanei/sanei_constrain_value.lo
libsane-hs2p.la: ../sanei/sanei_scsi.lo
libsane-hs2p.la: ../sanei/sanei_config2.lo
libsane-hs2p.la: ../sanei/sanei_constrain_value.lo
libsane-ibm.la: ../sanei/sanei_scsi.lo
libsane-ibm.la: ../sanei/sanei_config2.lo
libsane-ibm.la: ../sanei/sanei_constrain_value.lo
libsane-leo.la: ../sanei/sanei_config2.lo
libsane-leo.la: ../sanei/sanei_constrain_value.lo
libsane-leo.la: ../sanei/sanei_scsi.lo
libsane-lexmark.la: $(addsuffix .lo,$(EXTRA_lexmark))
libsane-lexmark.la: ../sanei/sanei_constrain_value.lo
libsane-lexmark.la: ../sanei/sanei_usb.lo
libsane-ma1509.la: ../sanei/sanei_constrain_value.lo
libsane-ma1509.la: ../sanei/sanei_usb.lo
libsane-matsushita.la: ../sanei/sanei_config2.lo
libsane-matsushita.la: ../sanei/sanei_constrain_value.lo
libsane-matsushita.la: ../sanei/sanei_scsi.lo
libsane-microtek.la: ../sanei/sanei_config2.lo
libsane-microtek.la: ../sanei/sanei_constrain_value.lo
libsane-microtek.la: ../sanei/sanei_scsi.lo
libsane-microtek2.la: ../sanei/sanei_config2.lo
libsane-microtek2.la: ../sanei/sanei_constrain_value.lo
libsane-microtek2.la: ../sanei/sanei_scsi.lo
libsane-microtek2.la: ../sanei/sanei_thread.lo
libsane-mustek.la: ../sanei/sanei_config2.lo
libsane-mustek.la: ../sanei/sanei_constrain_value.lo
libsane-mustek.la: ../sanei/sanei_scsi.lo
libsane-mustek.la: ../sanei/sanei_ab306.lo
libsane-mustek.la: ../sanei/sanei_thread.lo
libsane-mustek.la: ../sanei/sanei_pa4s2.lo
libsane-mustek_pp.la: ../sanei/sanei_constrain_value.lo
libsane-mustek_pp.la: ../sanei/sanei_pa4s2.lo
libsane-mustek_usb.la: ../sanei/sanei_constrain_value.lo
libsane-mustek_usb.la: ../sanei/sanei_usb.lo
libsane-mustek_usb2.la: ../sanei/sanei_usb.lo
libsane-mustek_usb2.la: ../sanei/sanei_constrain_value.lo
libsane-nec.la: ../sanei/sanei_config2.lo
libsane-nec.la: ../sanei/sanei_constrain_value.lo
libsane-nec.la: ../sanei/sanei_scsi.lo
libsane-net.la: ../sanei/sanei_codec_bin.lo
libsane-net.la: ../sanei/sanei_net.lo
libsane-net.la: ../sanei/sanei_wire.lo
libsane-niash.la: ../sanei/sanei_constrain_value.lo
libsane-niash.la: ../sanei/sanei_usb.lo
libsane-pie.la: ../sanei/sanei_config2.lo
libsane-pie.la: ../sanei/sanei_constrain_value.lo
libsane-pie.la: ../sanei/sanei_scsi.lo
libsane-pie.la: ../sanei/sanei_thread.lo
libsane-pint.la: ../sanei/sanei_constrain_value.lo
libsane-pixma.la: ../sanei/sanei_usb.lo
libsane-pixma.la: ../sanei/sanei_thread.lo
libsane-pixma.la: $(addsuffix .lo,$(EXTRA_pixma))
libsane-plustek.la: ../sanei/sanei_constrain_value.lo
libsane-plustek.la: ../sanei/sanei_usb.lo
libsane-plustek.la: ../sanei/sanei_lm983x.lo
libsane-plustek.la: ../sanei/sanei_thread.lo
libsane-plustek.la: ../sanei/sanei_access.lo
libsane-plustek_pp.la: ../sanei/sanei_constrain_value.lo
libsane-plustek_pp.la: ../sanei/sanei_thread.lo
libsane-plustek_pp.la: ../sanei/sanei_pp.lo
libsane-pnm.la: ../sanei/sanei_constrain_value.lo
libsane-qcam.la: ../sanei/sanei_constrain_value.lo
libsane-ricoh.la: ../sanei/sanei_config2.lo
libsane-ricoh.la: ../sanei/sanei_constrain_value.lo
libsane-ricoh.la: ../sanei/sanei_scsi.lo
libsane-s9036.la: ../sanei/sanei_config2.lo
libsane-s9036.la: ../sanei/sanei_constrain_value.lo
libsane-s9036.la: ../sanei/sanei_scsi.lo
libsane-sceptre.la: ../sanei/sanei_constrain_value.lo
libsane-sceptre.la: ../sanei/sanei_config2.lo
libsane-sceptre.la: ../sanei/sanei_scsi.lo
libsane-sharp.la: ../sanei/sanei_config2.lo
libsane-sharp.la: ../sanei/sanei_constrain_value.lo
libsane-sharp.la: ../sanei/sanei_scsi.lo
libsane-sm3600.la: ../sanei/sanei_constrain_value.lo
libsane-sm3600.la: ../sanei/sanei_usb.lo
libsane-sm3840.la: ../sanei/sanei_config2.lo
libsane-sm3840.la: ../sanei/sanei_constrain_value.lo
libsane-sm3840.la: ../sanei/sanei_usb.lo
libsane-sm3840.la: ../sanei/sanei_scsi.lo
libsane-snapscan.la: ../sanei/sanei_config2.lo
libsane-snapscan.la: ../sanei/sanei_constrain_value.lo
libsane-snapscan.la: ../sanei/sanei_scsi.lo
libsane-snapscan.la: ../sanei/sanei_usb.lo
libsane-snapscan.la: ../sanei/sanei_thread.lo
libsane-sp15c.la: ../sanei/sanei_config2.lo
libsane-sp15c.la: ../sanei/sanei_constrain_value.lo
libsane-sp15c.la: ../sanei/sanei_scsi.lo
libsane-sp15c.la: ../sanei/sanei_thread.lo
libsane-st400.la: ../sanei/sanei_config2.lo
libsane-st400.la: ../sanei/sanei_constrain_value.lo
libsane-st400.la: ../sanei/sanei_scsi.lo
libsane-stv680.la: ../sanei/sanei_constrain_value.lo
libsane-stv680.la: ../sanei/sanei_usb.lo
libsane-tamarack.la: ../sanei/sanei_config2.lo
libsane-tamarack.la: ../sanei/sanei_constrain_value.lo
libsane-tamarack.la: ../sanei/sanei_scsi.lo
libsane-tamarack.la: ../sanei/sanei_thread.lo
libsane-test.la: ../sanei/sanei_constrain_value.lo
libsane-test.la: ../sanei/sanei_thread.lo
libsane-teco1.la: ../sanei/sanei_config2.lo
libsane-teco1.la: ../sanei/sanei_constrain_value.lo
libsane-teco1.la: ../sanei/sanei_scsi.lo
libsane-teco2.la: ../sanei/sanei_config2.lo
libsane-teco2.la: ../sanei/sanei_constrain_value.lo
libsane-teco2.la: ../sanei/sanei_scsi.lo
libsane-teco3.la: ../sanei/sanei_config2.lo
libsane-teco3.la: ../sanei/sanei_constrain_value.lo
libsane-teco3.la: ../sanei/sanei_scsi.lo
libsane-u12.la: ../sanei/sanei_constrain_value.lo
libsane-u12.la: ../sanei/sanei_usb.lo
libsane-u12.la: ../sanei/sanei_thread.lo
libsane-umax.la: ../sanei/sanei_config2.lo
libsane-umax.la: ../sanei/sanei_constrain_value.lo
libsane-umax.la: ../sanei/sanei_scsi.lo
libsane-umax.la: ../sanei/sanei_usb.lo
libsane-umax.la: ../sanei/sanei_pv8630.lo
libsane-umax.la: ../sanei/sanei_thread.lo
libsane-umax_pp.la: $(addsuffix .lo,$(EXTRA_umax_pp))
libsane-umax_pp.la: ../sanei/sanei_constrain_value.lo
libsane-umax1220u.la: ../sanei/sanei_constrain_value.lo
libsane-umax1220u.la: ../sanei/sanei_usb.lo
libsane-umax1220u.la: ../sanei/sanei_pv8630.lo
libsane-v4l.la: ../sanei/sanei_constrain_value.lo

ifneq ($(DLL_PRELOAD),)
# need to make dll dependent on all sanei files:
libsane-dll.la libsane.la: ../sanei/sanei_config.lo
libsane-dll.la libsane.la: ../sanei/sanei_config2.lo
libsane-dll.la libsane.la: ../sanei/sanei_codec_bin.lo
libsane-dll.la libsane.la: ../sanei/sanei_constrain_value.lo
libsane-dll.la libsane.la: ../sanei/sanei_net.lo
libsane-dll.la libsane.la: ../sanei/sanei_scsi.lo
libsane-dll.la libsane.la: ../sanei/sanei_wire.lo
libsane-dll.la libsane.la: ../sanei/sanei_ab306.lo
libsane-dll.la libsane.la: ../sanei/sanei_pio.lo
libsane-dll.la libsane.la: ../sanei/sanei_pa4s2.lo
libsane-dll.la libsane.la: ../sanei/sanei_pp.lo
libsane-dll.la libsane.la: ../sanei/sanei_usb.lo
libsane-dll.la libsane.la: ../sanei/sanei_pv8630.lo
libsane-dll.la libsane.la: ../sanei/sanei_lm983x.lo
libsane-dll.la libsane.la: ../sanei/sanei_access.lo
libsane-dll.la libsane.la: ../sanei/sanei_thread.lo
ifneq (sanei_jpeg.o,)
libsane-dll.la libsane.la: ../sanei/sanei_jpeg.lo
endif
endif


depend:
	makedepend $(INCLUDES) *.c 2>/dev/null
	makedepend -a -o.lo $(INCLUDES) *.c 2>/dev/null

clean:
	rm -f *.lo *.o *.la libsane.la dll-preload.c *.conf
	find . -type l -name \*-s.c | xargs rm -f
	rm -rf .libs

distclean: clean
	rm -f $(DISTCLEAN_FILES)
	rm -f Makefile libsane.so

dist: $(DISTFILES)
	for file in $(DISTFILES); do \
	  ln $$file $(distdir)/backend 2> /dev/null \
	    || cp -p $$file $(distdir)/backend ; \
	done
