Return-Path: Message-ID: <4203B1BB.1070006@gmx.ch> From: Marco Trudel MIME-Version: 1.0 To: bluez-users@lists.sourceforge.net Subject: cross-compilation howto (was "Re: [Bluez-users] Trying to compile for axis but Bluetooth library not found") References: <41FE85A0.2040709@ieee.org> <1107204712.15769.70.camel@justakiss> <41FF54DA.40801@ul.ie> <1107254209.9652.0.camel@pegasus> <41FF8FE0.8010204@gmx.ch> <1107268938.9652.34.camel@pegasus> <41FF9C42.1090604@gmx.ch> <41FF9EA2.8090605@gmx.ch> <1107273565.8819.38.camel@justakiss> In-Reply-To: <1107273565.8819.38.camel@justakiss> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Sender: bluez-users-admin@lists.sourceforge.net Errors-To: bluez-users-admin@lists.sourceforge.net Reply-To: bluez-users@lists.sourceforge.net List-Unsubscribe: , List-Id: BlueZ users List-Post: List-Help: List-Subscribe: , List-Archive: Date: Fri, 04 Feb 2005 18:32:43 +0100 Hello Marcel I learned a lot of configure and make flags I didn't knew before. So, that's the state: For crosscompiling, it's enought to: ./configure --build=[buildArchitecture] --host=[targetArchitecture] The cross-compiler has to be in path. That's it. Everything else is like usual compiling. I don't think this is worth a howto, do you? Actually a bluetooth compilation howto with a little crosscompiling subsection that hints to the --build and --host switches should be more than enough. Erwin: Is only using --host proper? It works but I get a warning (I don't like warnings. So I always try to do things right.) regards Marco Erwin Authried wrote: > Am Die, den 01.02.2005 schrieb Marco Trudel um 16:22: > >>Sorry for sending already again an email. >>I invested another 20 minutes to the mini-howto. >> >>It is now fully generic but should be tested with other platforms. >> >>Marcel: tell me if it's ok or you'd like other changes... >> >>regards >>Marco >> >> >>Marco Trudel wrote: >> >>>>looks nice so far to me, but I like to have somekind of generic cross >>>>compilation instruction. >>> >>> >>>unfortunately I've only an arm machine here and have no experience with >>>other platforms. >>>maybee the guy with the axis developer board is willing to add his >>>knowledge. >>> >>> >>>>I also prefer using DESTDIR for install, so >>>>that you can make an installation for /usr without overwriting your >>>>local files. >>> >>> >>>I made it a little bit more generic and used DESTDIR as term in the >>>description. If someone could give feedback about the toolchain, the >>>mini-howto would become really generic... >>> >>> >>>kind regards >>>Marco >> >> >>______________________________________________________________________ >>This document shows how to cross-compile bluez for another processor. >> >>date/version: 01 Feb. 2005, v0.2 >>author: Marco Trudel >> >>If you need help, please use the bluez-user list. >>If you have improvements or hints, do not hesitate to contact the autor. >> >>This howto has been testet for: >> i686 -> arm >> >>------------------------------------------------------------ >> >>Ensure that the crosscompile binaries are in $PATH. >>For example, do: export PATH="$PATH:/thePathToYourCrossCompiler/bin" >> >>Please note: The term DESTDIR will be used in the following commands. >> This is the directory where bluez will be installed to. >> Replace it, for example, with /opt/bluez or /tmp/bluez. >> >>########## 1. compile bluez-libs ########## >>- extract bluez-libs and change into the directory >>- configure the makefiles for cross-compiling: >> ./configure --build=i686-pc-linux-gnu \ >> --host=arm-linux \ >> --prefix=DESTDIR \ >> [--sysconfdir=DESTDIR/etc] >> >>- Explanation of the switches: >> --build The build platform (as example a i686). >> --host The target platform (as example arm-linux). >> Please change it to match your target-system. >> --prefix Where bluez will be installed to. >> --sysconfdir Where bluez will expect etc. >> You can remove this switch if /etc is ok for you. >> >>- Check the output. Some interesting lines: >> checking for arm-linux-gcc... arm-linux-gcc >> checking whether the C compiler works... yes >> checking whether we are cross compiling... yes >> >>- run "make", "make install" >> >>########## 2. compile bluez-utils ########## >>- extract bluez-utils and change into the directory >>- configure the makefiles for cross-compiling. run: >> ./configure --build=i686-pc-linux-gnu \ >> --host=arm-linux \ >> --prefix=DESTDIR \ >> [--sysconfdir=DESTDIR/etc \] >> LDFLAGS=-LDESTDIR/lib >> >>- LDFLAGS is where the bluez lib will be searched for. >>(Please note that -L is needed. For example LDFLAGS=-L/opt/bluez/lib) >> >>- run "make" and "make install" >> >> >>######### 3. final steps, tests ########## >>Please note: This mini-howto assumes you have a bluetooth enabled kernel. >>If you haven't already, install it now. >> >>Depending on your setup, you might be interested in every kb >>of diskspace to save. With -s stripping and removing of unnecessary >>files, it's possible to save ~350kb... >> >>copy DESTDIR to your target platform. >> >>on your target platform: >>- add "DESTDIR/lib" to /etc/ld.so.conf and, run "ldconfig" >>- run "./hcid -n" in DESTDIR/sbin >>Check the output. >>If everything works well, abort hcid and start it withhout "-n". >> >>- "DESTDIR/bin/hcitool dev" should show you your devices >>- "DESTDIR/bin/hcitool scan" perform an inquiry scan > > > Hi, > somehow your usage of DESTDIR seems incorrect. With --prefix, the prefix > for programs on the target system is specified. You seem to use it for > the library path for linking as well. I have attached my version. > > Regards, > Erwin > > > > > > > ------------------------------------------------------------------------ > > # > # set up environment > # > PATH, CC, CFLAGS, LDFLAGS, TARGETARCH, TOOLS > > TOOLS ... base directory for cross-compiler installation (e.g. /usr/local) > TARGETARCH ... target architecture (e.g. arm-elf) > > # > # cross-compiling bluez-libs > # > ./configure --host=$TARGETARCH --prefix=\"\"" > make > make DESTDIR="$TOOLS/$TARGETARCH" install > > # > # cross-compiling bluez-utils > # > # applications for /bin > # BLUEZ_UTILS_PROGS=dund/dund pand/pand hidd/hidd tools/ciptool tools/hcitool tools/l2ping rfcomm/rfcomm tools/sdptool > # BLUEZ_UTILS_SPROGS=tools/hciattach tools/hciconfig hcid/hcid sdpd/sdpd > # ROOT ... directory for target root filesystem > > ./configure "--host=$TARGETARCH --prefix=\"\" --with-bluez=$TOOLS/$TARGETARCH/include --with-usb=$TOOLS/$TARGETARCH/include" > make > install $BLUEZ_UTILS_PROGS $ROOT/bin > install $BLUEZ_UTILS_SPROGS $ROOT/sbin ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ Bluez-users mailing list Bluez-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bluez-users