From owner-freebsd-usb@FreeBSD.ORG Wed Feb 20 17:03:00 2013 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id EDB89D1C for ; Wed, 20 Feb 2013 17:03:00 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe09.c2i.net [212.247.155.2]) by mx1.freebsd.org (Postfix) with ESMTP id 8624520C for ; Wed, 20 Feb 2013 17:03:00 +0000 (UTC) X-T2-Spam-Status: No, hits=0.8 required=5.0 tests=BAYES_50 Received: from [176.74.213.204] (account mc467741@c2i.net HELO laptop015.hselasky.homeunix.org) by mailfe09.swip.net (CommuniGate Pro SMTP 5.4.4) with ESMTPA id 205828887; Wed, 20 Feb 2013 18:02:57 +0100 From: Hans Petter Selasky To: freebsd-usb@freebsd.org Subject: Re: argyllcms and usb (0.1 and 1.0) Date: Wed, 20 Feb 2013 18:04:09 +0100 User-Agent: KMail/1.13.7 (FreeBSD/9.1-STABLE; KDE/4.8.4; amd64; ; ) References: <5124932E.5080205@passap.ru> In-Reply-To: <5124932E.5080205@passap.ru> X-Face: ?p&W)c(+80hU; '{.$5K+zq{oC6y| /D'an*6mw>j'f:eBsex\Gi, X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Feb 2013 17:03:01 -0000 On Wednesday 20 February 2013 10:11:10 Boris Samorodov wrote: > Hello, All! > > I try to build argyllcms (http://www.argyllcms.com/) at FreeBSD: > ----- > % uname -a > FreeBSD bsam.wart.ru 10.0-CURRENT FreeBSD 10.0-CURRENT #8 r246714: Tue > Feb 12 22:26:27 SAMT 2013 > bsam@bsam.wart.ru:/usr/obj/usr/src/sys/BB64X amd64 > ----- > > The program uses USB-0.1 and USB-1.0. There is a remark at sources > that since libusb1 does not support FreeBSD, usb-0.1 is used. > > When compiling I get the following error: > ----- > spectro/usbio.c:741:17: error: use of undeclared identifier 'dev'; did > you mean 'div'? > descriptor = dev->descriptor; /* Copy */ > ^~~ > div > /usr/include/stdlib.h:91:8: note: 'div' declared here > div_t div(int, int) __pure2; > ^ > spectro/usbio.c:741:20: error: member reference base type 'div_t (int, > int)' is not a structure or union > descriptor = dev->descriptor; /* Copy */ > ~~~^ ~~~~~~~~~~ > 5 warnings and 2 errors generated. > > cc -c -o spectro/usbio.o -DUNIX -D_THREAD_SAFE -pipe -O2 > -DARGYLLCMS -Ispectro -Ih -Inumlib -Iicc -Icgats -Irspl -Ixicc -Igamut > -Ispectro -Iplot -Ilibusb -Iucmm -I/usr/local/include spectro/usbio.c > ----- > > Relevant (imho) parts from the source file: > ----- > [...] > #ifdef USE_LIBUSB1 > # include "libusb.h" > #else > # include "usb.h" > #endif > [...] > /* Get a copy of the device descriptor so we can > see device params */ > #ifdef USE_LIBUSB1 > if (libusb_get_device_descriptor(p->ppath->dev, > &descriptor) != LIBUSB_SUCCESS) > error("Get device descriptor on USB port > '%s' failed with %d (%s)",p->ppath->path,rv,libusb_strerror(rv)); > #else > descriptor = dev->descriptor; /* Copy */ > #endif > ----- > > GCC version of the error message: > ----- > spectro/usbio.c: In function 'usb_open_port': > spectro/usbio.c:741: error: 'dev' undeclared (first use in this function) > spectro/usbio.c:741: error: (Each undeclared identifier is reported only > once > spectro/usbio.c:741: error: for each function it appears in.) > ----- > > Seems (from my very inexperienced in USB POV) that the program > wants libusb-0.1 but gets libusb-2.0... So I'm stuck here. > > Questons. > 1. Should I use some additional flags to build sources using libusb-0.1? > 2. Is a note about FreeBSD about libusb1 is stale and lubusb1 is > supported? Sould I use some flags to use libusb1? > > Any help is appreciated. Thanks! Hi, USE_LIBUSB1 should be set, and -lusb must be used as linker flag, not - lusb-1.0 like under linux. In FreeBSD -lusb is a multi-API library, including v0.1, v1.0 and v2.0. Header files are in /usr/include -HPS