[OpenIndiana-discuss] build xbindkeys from source

Tim Mooney Tim.Mooney at ndsu.edu
Mon Jul 29 23:43:28 UTC 2013


In regard to: Re: [OpenIndiana-discuss] build xbindkeys from source, Harry...:

> "Bryan N Iotti" <ironsides.medvet at gmail.com> writes:
>
>> I would look at three things:
>
>> 1) your compiler flags are peculiar. You have four "-I." includes for
>> the current directory. Why?
>>
>> 2) You are using both the debugging and optimization flags for gcc
>> ("-g" and "-O2"). Do you want a debuggable executable or an optimized
>> one?
>>
>> 3) The gmp.h header is a part of the GNU multiple precision
>> library. Are the packages for gmp, mpfr and mpr installed?
>>
>> Hope this helps.
>
> Thanks much for the input... checking into it I find that gmp, mpfr pkgs
> are both installed.  However, I find nothing whatever when I search for
> 'mpr' using the Pkg manager tools
>
> Concerning the gcc flags... I did not edit the Makefile included with
> the xbindkeys pkg.  I barely know enough to call 'make' let alone edit
> the makefile (sorry for the lack of any expertise).
>
> But also sort of assumed the packagers (packagors?) would know best for
> most things.  So I just followed the included ./INSTALL file's basic:
> './configure, make, make a test if desrired, make install'.
>
> Your point about -I. is well taken:
> (gcc -DHAVE_CONFIG_H -I. -I. -I.  -g -O2 -DFORK_FLAG=1 -DGUILE_FLAG=1
> -I. -Wall -g -O2 -c xbindkeys.c)

Neither 1) nor 2) have anything to do with the problem you're having.

It's completely "normal" for Makefiles generated via configure to have
include directories repeated on the command line.  The more external
packages (like guile) they depend upon, the more likely it is that there
will be multiple duplicate -I flags during compilation and -L flags during
linking.  It's unfortunate and it does look weird, but it's not the
source of the issue.

Both gcc and Sun's Workshop compiler are capable of generating optimized
binaries that also include debugging information, so it's not at all
odd to see both '-g' and '-O2' together.  That was configure's default
for years and years when configure detected that gcc was the compiler
in use.

The real issue relates to #3.  You're missing header files that 
guile expects should be installed.  I have almost no experience yet with
OI's pkg manager since I'm coming from a Solaris 10 and Linux background,
but typically a package shouldn't allow you to install it (at least
without warning you!) that there are prerequisite packages missing.

There is a potentially easy workaround, though.  Looking at the docs
for xbindkeys, guile appears optional.  It will use it if present, but
you can tell it you don't want it.  Unless you're certain you need guile
support, try building without it.

So either roll the source directory back to a fresh state with

 	make distclean

OR (much safer) delete the source directory and re-extract from the
.tar.gz, and then instead do

 	./configure --disable-guile

followed by make.

Tim
-- 
Tim Mooney                                             Tim.Mooney at ndsu.edu
Enterprise Computing & Infrastructure                  701-231-1076 (Voice)
Room 242-J6, IACC Building                             701-231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164



More information about the OpenIndiana-discuss mailing list