Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [mosquitto-dev] Cross-compiling Mosquitto

Hi Frank,

Sorry for the huge delay replying, this just fell down my list of
emails I'm afraid.

Thanks for the details, I've implemented a variation of what you've
suggested, e.g.


rather than


This doesn't break things for none-gcc compilers.



On Wed, Mar 26, 2014 at 4:06 PM, Frank Pagliughi
<fpagliughi@xxxxxxxxxxxxxx> wrote:
> Hi All,
> I recently cross-compiled Mosquitto 1.3 for an embedded ARM/Linux board, and
> although it wasn't too difficult, it did require a modification to the
> Makfiles to do an "install," and it might be nice to update the build files
> to make the process easier.
> Cross-compiling the binaries was easy. It just required setting all of the
> variables for the build tools. Assuming a cross-compiler prefix of
> "arm-linux-" I did this:
> $ make CC=arm-linux-gcc CXX=arm-linux-g++ \
>     AR=arm-linux-ar LD=arm-linux-ld
> That worked great. Then I tried to install the binaries to a staging
> directory, but the build uses the install "-s" switch to strip the binaries
> of debug symbols. This is the desired behavior, but, by default, it uses the
> native (x86) strip program. We need the one from the cross compiler. So I
> did a global search/replace in all the Makefiles of "$(INSTALL) -s" with:
> $(INSTALL) -s --strip-program=$(STRIP)
> And then I did the install with:
> $ make STRIP=arm-linux-strip DESTDIR=$PWD/_install install
> And that put all the cross-compiled binaries into ./_install, which I then
> copied onto the board.
> So anyway, I was thinking that it might be kind of nice to have a
> "CROSS_COMPILE" variable in the to automate this. Perhaps, like
> with the Linux kernel, just set this to the GCC prefix, and have the tool
> variables set automatically. Maybe it can be added this to like:
> # Uncomment to cross-compile the broker.
> # Set to the proper compiler prefix for the target board.
> #CROSS_COMPILE:=arm-linux-
> That could then be used to set the variables:
> And  then, maybe to prevent someone from accidentally installing
> cross-compiled binaries onto their host, also update the DESTDIR to
> something local, perhaps using the compiler prefix to come up with a staging
> directory name:
>     DESTDIR ?= $(PWD)/$(CROSS_COMPILE)build
> endif
> Thanks,
> Frank
> _______________________________________________
> mosquitto-dev mailing list
> mosquitto-dev@xxxxxxxxxxx

Back to the top