3ba414c29141917259e126633cdfab4ddd83b43a
[feed/packages.git] / utils / sane-backends / Makefile
1 #
2 # Copyright (C) 2006-2015 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=sane-backends
11 PKG_VERSION:=1.0.24
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=http://fossies.org/linux/misc \
16 https://alioth.debian.org/frs/download.php/3958
17 PKG_MD5SUM:=1ca68e536cd7c1852322822f5f6ac3a4
18 PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca@gmail.com>
19 PKG_LICENSE:=GPL-2.0 GPL-2.0+
20 PKG_LICENSE_FILES:=COPYING LICENSE
21
22 PKG_FIXUP:=autoreconf
23 PKG_REMOVE_FILES:=aclocal.m4
24
25 PKG_INSTALL:=1
26
27 include $(INCLUDE_DIR)/package.mk
28
29 SANE_BACKENDS:=
30
31 define Package/sane-backends/Default
32 TITLE:=Scanner Access Now Easy
33 URL:=http://www.sane-project.org/
34 endef
35
36 define Package/sane-backends/Default/description
37 SANE (Scanner Access Now Easy) is a universal scanner interface.
38 endef
39
40 define Package/sane-backends
41 $(call Package/sane-backends/Default)
42 SECTION:=utils
43 CATEGORY:=Utilities
44 TITLE+= (drivers)
45 endef
46
47 define Package/sane-backends/description
48 $(call Package/sane-backends/Default/description)
49 .
50 This
51 endef
52
53 define Package/sane-backends/config
54 menu "Select SANE backends"
55 depends on PACKAGE_sane-backends
56
57
58 config PACKAGE_sane-backends-all
59 depends on PACKAGE_sane-backends
60 prompt "Include all SANE backends (sane-backends-all)"
61
62 comment "Modules"
63
64 $(foreach backend,$(SANE_BACKENDS), \
65 $(eval $(Package/Default)
66 $(Package/sane-$(backend))
67 )\
68 config PACKAGE_sane-$(backend)
69 prompt "$(TITLE)"
70 $(foreach config_dep,\
71 $(filter @%,
72 $(foreach v, $(DEPENDS), $(if $(findstring :,$v),,$v))
73 ),\
74 depends on $(strip $(subst @,,$(config_dep)))
75 )
76 )
77 endmenu
78
79 endef
80
81 # returns conditional dependency on sane backend
82 # 1: short name
83 #
84 # If there is no config deps on $(1), returns +sane-$(1).
85 # Otherwise, +(CONFIG1||CONFIG2||..):sane-$(1)
86 define SaneBackendDependency
87 $(eval $(Package/Default)
88 )$(eval $(Package/sane-$(1))
89 )$(eval FILTER_CONFIG:=$(foreach config_dep,$(filter @%,$(foreach v,$(DEPENDS),$(if $(findstring :,$v),,$v))),$(strip $(subst @,,$(config_dep))))
90 )$(eval
91 ifneq ($(FILTER_CONFIG),)
92 FILTER_CONFIG:=($(subst $(space),||,$(FILTER_CONFIG))):
93 endif
94 ) \
95 +$(FILTER_CONFIG)sane-$(1)
96 endef
97
98 define Package/sane-backends-all
99 $(eval SANE_DEPENDS:=$(foreach backend,$(SANE_BACKENDS),$(call SaneBackendDependency,$(backend))))
100 $(call Package/sane-backends/Default)
101 SECTION:=utils
102 CATEGORY:=Utilities
103 TITLE+= (all backends)
104 DEPENDS:= $(SANE_DEPENDS)
105 HIDDEN:=1
106 endef
107
108 define Package/sane-backends/description
109 $(call Package/sane-backends/Default/description)
110 .
111 Metapackage for selecting all SANE Backends
112 endef
113
114 define Package/sane-daemon
115 $(call Package/sane-backends/Default)
116 SECTION:=utils
117 CATEGORY:=Utilities
118 DEPENDS:=+libsane
119 TITLE+= (network daemon)
120 endef
121
122 define Package/sane-daemon/description
123 $(call Package/sane-backends/Default/description)
124 This package contains the SANE daemon.
125 endef
126
127 define Package/libsane
128 $(call Package/sane-backends/Default)
129 SECTION:=libs
130 CATEGORY:=Libraries
131 DEPENDS:=+libusb-compat
132 TITLE+= (libraries)
133 endef
134
135 define Package/libsane/description
136 $(call Package/sane-backends/Default/description)
137 This package contains the SANE shared libraries.
138 endef
139
140 define Package/sane-frontends
141 $(call Package/sane-backends/Default)
142 SECTION:=utils
143 CATEGORY:=Utilities
144 DEPENDS:=+libsane
145 TITLE+= (frontends)
146 endef
147
148 define Package/sane-frontends/description
149 $(call Package/sane-backends/Default/description)
150 This package contains the SANE frontends.
151 endef
152
153 TARGET_LDFLAGS += \
154 -Wl,-rpath-link $(STAGING_DIR)/usr/lib \
155 -Wl,-rpath-link $(PKG_BUILD_DIR)/backend/.libs
156
157 CONFIGURE_ARGS+= \
158 --enable-shared \
159 --enable-static \
160 --disable-translations \
161 --disable-latex \
162 --without-gphoto2 \
163 --without-snmp
164
165 define Build/Configure
166 mkdir -p $(PKG_BUILD_DIR)/backend/.libs
167 $(Build/Configure/Default)
168 endef
169
170 define Package/libsane/install
171 $(INSTALL_DIR) $(1)/usr/lib/sane/
172 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsane.so.* $(1)/usr/lib/
173 $(CP) $(PKG_INSTALL_DIR)/usr/lib/sane/libsane-dll.so.* $(1)/usr/lib/sane/
174 $(INSTALL_DIR) $(1)/etc/sane.d/dll.d
175 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/sane.d/dll.conf $(1)/etc/sane.d/
176 endef
177
178 define Package/libsane/conffiles
179 /etc/sane.d/dll.conf
180 endef
181
182 define Package/sane-daemon/install
183 $(INSTALL_DIR) $(1)/etc/sane.d
184 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/sane.d/saned.conf $(1)/etc/sane.d/
185 $(INSTALL_DIR) $(1)/usr/sbin
186 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/
187 $(INSTALL_DIR) $(1)/etc/xinetd.d
188 $(CP) ./files/xinet.d_sane-port $(1)/etc/xinetd.d/sane-port
189 endef
190
191 define Package/sane-daemon/conffiles
192 /etc/sane.d/saned.conf
193 endef
194
195 define Package/sane-frontends/install
196 $(INSTALL_DIR) $(1)/usr/bin
197 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
198 endef
199
200 define Package/sane-backends-all/install
201 /bin/true
202 endef
203
204 define Build/InstallDev
205 $(INSTALL_DIR) $(1)/usr/include
206 $(CP) $(PKG_INSTALL_DIR)/usr/include/sane $(1)/usr/include/
207 $(INSTALL_DIR) $(1)/usr/lib
208 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsane.{a,so*} $(1)/usr/lib/
209 endef
210
211 # 1: short name
212 # 2: description
213 # 3: dependencies on other packages
214 define SaneBackend
215 SANE_BACKENDS+= $(1)
216
217 define Package/sane-$(1)
218 $(call Package/sane-backends/Default)
219 TITLE:=SANE backend (sane-$(1)) for $(2)
220 DEPENDS+= +libsane $(3)
221 HIDDEN:=1
222 endef
223
224 define Package/sane-$(1)/description
225 $(call Package/sane-backends/Default/description)
226 .
227 This package contains the SANE backend for $(2).
228 endef
229
230 define Package/sane-$(1)/install
231 if [ -f "$(PKG_INSTALL_DIR)/etc/sane.d/$(1).conf" ]; then \
232 $(INSTALL_DIR) $$(1)/etc/sane.d ; \
233 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/sane.d/$(1).conf $$(1)/etc/sane.d/; \
234 fi
235 $(INSTALL_DIR) $$(1)/usr/lib/sane
236 $(CP) $(PKG_INSTALL_DIR)/usr/lib/sane/libsane-$(1).so.* $$(1)/usr/lib/sane/
237 if [ -d "$(PKG_INSTALL_DIR)/usr/share/sane/$(1)" ]; then \
238 $(INSTALL_DIR) $$(1)/usr/share/sane/ ; \
239 $(CP) -a $(PKG_INSTALL_DIR)/usr/share/sane/$(1) $$(1)/usr/share/sane/ ; \
240 fi
241 endef
242
243 define Package/sane-$(1)/conffiles
244 /etc/sane.d/$(1).conf
245 endef
246
247 $$(eval $$(call BuildPackage,sane-$(1)))
248 endef
249
250 # This scriptlet creates stub backend call based on local machine man files
251 # for BACKEND in abaton agfafocus apple artec artec_eplus48u as6e avision bh canon canon630u canon_dr canon_pp cardscan coolscan coolscan2 coolscan3 dell1600n_net epjitsu epson epson2 fujitsu genesys gt68xx hp hp3500 hp3900 hp4200 hp5400 hp5590 hpljm1005 hpsj5s hs2p ibm kodak kodakaio kvs20xx kvs40xx kvs1025 leo lexmark ma1509 magicolor matsushita microtek microtek2 mustek mustek_pp mustek_usb mustek_usb2 nec niash p5 pie pixma plustek plustek_pp ricoh rts8891 s9036 sceptre sharp sm3600 sm3840 snapscan sp15c st400 tamarack teco1 teco2 teco3 u12 umax umax1220u umax_pp xerox_mfp; do DESC=$(man sane-$BACKEND | sed -r -n '/^[[:blank:]]*sane-[[:alnum:]_]+ - SANE backend for /{s///;s/,//g;p;q}'); echo "\$(eval \$(call SaneBackend,$BACKEND,$DESC,))"; done
252
253 $(eval $(call BuildPackage,libsane))
254 $(eval $(call BuildPackage,sane-daemon))
255 $(eval $(call SaneBackend,abaton,Abaton flatbed scanners))
256 $(eval $(call SaneBackend,agfafocus,AGFA Focus flatbed scanners))
257 $(eval $(call SaneBackend,apple,Apple flatbed scanners))
258 $(eval $(call SaneBackend,artec,Artec flatbed scanners))
259 $(eval $(call SaneBackend,artec_eplus48u,Artec E+ 48U and re-badged models))
260 $(eval $(call SaneBackend,as6e,Artec AS6E parallel port interface scanner))
261 $(eval $(call SaneBackend,avision,Avision and Avision OEM scanners and possibly more flatbed and film scanners))
262 $(eval $(call SaneBackend,bh,Bell+Howell Copiscan II series document scanners))
263 $(eval $(call SaneBackend,canon,Canon SCSI scanners))
264 $(eval $(call SaneBackend,canon630u,the Canon 630u USB flatbed scanner))
265 $(eval $(call SaneBackend,canon_dr,Canon DR-series scanners))
266 # Depends on libieee1284
267 #$(eval $(call SaneBackend,canon_pp,Canon CanoScan Parallel Port flatbed scanners,+libieee1284))
268 $(eval $(call SaneBackend,cardscan,Corex CardScan usb scanners))
269 $(eval $(call SaneBackend,coolscan,Nikon film-scanners))
270 $(eval $(call SaneBackend,coolscan2,Nikon Coolscan film scanners))
271 $(eval $(call SaneBackend,coolscan3,Nikon Coolscan film scanners))
272 $(eval $(call SaneBackend,dc210,Kodak DC210 Digital Camera,+libjpeg))
273 $(eval $(call SaneBackend,dc240,Kodak DC240 Digital Camera,+libjpeg))
274 $(eval $(call SaneBackend,dc25,Kodak DC20/DC25 Digital Cameras))
275 $(eval $(call SaneBackend,dell1600n_net,Dell 1600n,+libtiff))
276 $(eval $(call SaneBackend,dmc,Polaroid Digital Microscope Camera))
277 $(eval $(call SaneBackend,epjitsu,Epson-based Fujitsu USB scanners))
278 $(eval $(call SaneBackend,epson,EPSON scanners))
279 $(eval $(call SaneBackend,epson2,EPSON scanners))
280 $(eval $(call SaneBackend,fujitsu,Fujitsu flatbed and ADF scanners))
281 $(eval $(call SaneBackend,genesys,GL646 GL841 GL843 GL847 and GL124 based USB flatbed scanners))
282 #$(eval $(call SaneBackend,gphoto2,digital cameras supported by gphoto2,+libjpeg))
283 $(eval $(call SaneBackend,gt68xx,GT-68XX based USB flatbed scanners))
284 $(eval $(call SaneBackend,hp,HP ScanJet scanners))
285 $(eval $(call SaneBackend,hp3500,Hewlett-Packard ScanJet 3500 series scanners))
286 $(eval $(call SaneBackend,hp3900,RTS8822 chipset based scanners,+libtiff))
287 $(eval $(call SaneBackend,hp4200,Hewlett-Packard 4200 scanners))
288 $(eval $(call SaneBackend,hp5400,Hewlett-Packard 54XX scanners))
289 $(eval $(call SaneBackend,hp5590,Hewlett-Packard 4500C/4570C/5500C/5550C/5590/7650 Workgroup/Document scanners))
290 $(eval $(call SaneBackend,hpljm1005,Hewlett-Packard LaserJet M1005 MFP Scanner))
291 # Depends on libieee1284
292 #$(eval $(call SaneBackend,hpsj5s,HP ScanJet 5S sheet-fed scanner,+libieee1284))
293 $(eval $(call SaneBackend,hs2p,Ricoh SCSI flatbed/ADF scanners))
294 $(eval $(call SaneBackend,ibm,IBM and Ricoh SCSI flatbed scanners))
295 $(eval $(call SaneBackend,kodak,big Kodak flatbed and ADF scanners))
296 $(eval $(call SaneBackend,kodakaio,Kodak aio printer / scanners))
297 $(eval $(call SaneBackend,kvs20xx,Panasonic KV-S20xxC USB/SCSI ADF scanners))
298 $(eval $(call SaneBackend,kvs40xx,Panasonic KV-S40xxC USB/SCSI ADF scanners))
299 $(eval $(call SaneBackend,kvs1025,Panasonic KV-S102xC USB ADF scanners))
300 $(eval $(call SaneBackend,leo,LEO Technologies scanners))
301 $(eval $(call SaneBackend,lexmark,Lexmark X1100/X1200 Series scanners))
302 $(eval $(call SaneBackend,ma1509,Mustek BearPaw 1200F USB scanner))
303 $(eval $(call SaneBackend,magicolor,KONICA MINOLTA magicolor scanners))
304 $(eval $(call SaneBackend,matsushita,Panasonic KV-SS high speed scanners))
305 $(eval $(call SaneBackend,microtek,Microtek scanners))
306 $(eval $(call SaneBackend,microtek2,Microtek scanners with SCSI-2 command set))
307 $(eval $(call SaneBackend,mustek,Mustek SCSI flatbed scanners and some other devices))
308 # Depends on libieee1284
309 #$(eval $(call SaneBackend,mustek_pp,Mustek parallel port flatbed scanners,+libieee1284))
310 $(eval $(call SaneBackend,mustek_usb,Mustek USB flatbed scanners))
311 $(eval $(call SaneBackend,mustek_usb2,SQ113 based USB flatbed scanners))
312 $(eval $(call SaneBackend,nec,NEC scanners))
313 $(eval $(call SaneBackend,net,network backend))
314 $(eval $(call SaneBackend,niash,scanners based on the NIASH chipset))
315 $(eval $(call SaneBackend,p5,the Primax PagePartner))
316 $(eval $(call SaneBackend,pie,PIE Devcom and AdLib SCSI flatbed scanners))
317 $(eval $(call SaneBackend,pixma,Canon Multi-Function Printers and CanoScan Scanners))
318 $(eval $(call SaneBackend,plustek,LM983[1/2/3] based USB flatbed scanners))
319 $(eval $(call SaneBackend,plustek_pp,Plustek parallel port flatbed scanners))
320 $(eval $(call SaneBackend,qcam,Connectix QuickCam cameras,@(TARGET_x86||TARGET_x86_64)))
321 $(eval $(call SaneBackend,ricoh,Ricoh flatbed scanners))
322 $(eval $(call SaneBackend,rts8891,rts8891 based scanners))
323 $(eval $(call SaneBackend,s9036,Siemens 9036 flatbed scanners))
324 $(eval $(call SaneBackend,sceptre,SCEPTRE scanners))
325 $(eval $(call SaneBackend,sharp,SHARP scanners))
326 $(eval $(call SaneBackend,sm3600,Microtek scanners with M011 USB chip))
327 $(eval $(call SaneBackend,sm3840,Microtek scanners with SCAN08 USB chip))
328 $(eval $(call SaneBackend,snapscan,AGFA SnapScan flatbed scanners))
329 $(eval $(call SaneBackend,sp15c,Fujitsu ScanPartner 15C flatbed scanner))
330 $(eval $(call SaneBackend,st400,Siemens ST/Highscan flatbed scanners))
331 $(eval $(call SaneBackend,stv680,STV680 cameras))
332 $(eval $(call SaneBackend,tamarack,Tamarack flatbed scanners))
333 $(eval $(call SaneBackend,teco1,TECO / RELISYS scanners))
334 $(eval $(call SaneBackend,teco2,TECO / RELISYS scanners))
335 $(eval $(call SaneBackend,teco3,TECO / RELISYS scanners))
336 $(eval $(call SaneBackend,test,testing frontends))
337 $(eval $(call SaneBackend,u12,Plustek USB flatbed scanners based on older parport designs))
338 $(eval $(call SaneBackend,umax,UMAX scanners))
339 $(eval $(call SaneBackend,umax1220u,the UMAX Astra 1220U and similar scanners))
340 $(eval $(call SaneBackend,umax_pp,Umax Astra parallel port flatbed scanners))
341 $(eval $(call SaneBackend,v4l,Video for Linux API,+libv4l +libjpeg))
342 $(eval $(call SaneBackend,xerox_mfp,Xerox Phaser 3200MFP device))
343 $(eval $(call BuildPackage,sane-backends))
344 $(eval $(call BuildPackage,sane-backends-all))
345 $(eval $(call BuildPackage,sane-frontends))