SHELL = /bin/sh

VPATH = @srcdir@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = ..

PACKAGE = @PACKAGE@
VERSION = @VERSION@
package_version = @PACKAGE_STRING@
distdir = $(top_srcdir)/$(PACKAGE)-$(VERSION)

prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datarootdir = @datarootdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
locksanedir = @locksanedir@
libdir = @libdir@
libsanedir = $(libdir)/sane
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
configdir = ${sysconfdir}/sane.d
BEOS_ADDONDIR = @BEOS_ADDONDIR@

V_MAJOR = @V_MAJOR@
V_MINOR = @V_MINOR@
V_REV = @V_REV@
DLL_PRELOAD = @DLL_PRELOAD@
DLL_PRELOAD_EXTRAS = $(foreach be,$(DLL_PRELOAD),$($(addprefix EXTRA_,$(be))))

MKDIR = $(top_srcdir)/mkinstalldirs
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_LOCKPATH = @INSTALL_LOCKPATH@
LOCKPATH_GROUP = @LOCKPATH_GROUP@

RANLIB = @RANLIB@
LN_S = @LN_S@

CC = @CC@
INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
BACKENDLIBS = @LIBS@ @DL_LIB@
DEFS = @DEFS@
DYNAMIC_FLAG=@DYNAMIC_FLAG@
USE_LINKS=@USE_LINKS@

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

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

DISTCLEAN_FILES = @DISTCLEAN_FILES@

FIRMWARE_DIRS = artec_eplus48u gt68xx snapscan epjitsu

@SET_MAKE@

PRELOADABLE_BACKENDS = @BACKENDS@

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 (@LIBOBJS@ @ALLOCA@,)
LIBLIB_FUNCS = $(basename @LIBOBJS@ @ALLOCA@)
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) $^ @LIBTOOL_LINK_EXTRA@ -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@BE_INSTALL_FLAVOR@ 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)) @LIBTOOL_LINK_EXTRA@ \
		-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@,)
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
