Installing glib in non-standard prefix fails - makefile

I'm trying to install glib in a non-standard prefix but I get the following when running make install:
/bin/sh ../libtool --mode=install /usr/bin/install -c libgthread-2.0.la '/root/build/lib'
libtool: install: error: cannot install `libgthread-2.0.la' to a directory not ending in /usr/local/lib
Any reason why I have to install gthread only in a prefix ending with /usr/local/lib?

I also just stumbled over that problem when compiling MonetDB on my Linux machine. Here is the solution/workaround that worked for me: Always make clean after ./configure.
In your example you should be able to do:
./configure --prefix=/root/build && make clean && make && make install
I found the solution in a discussion on an apache httpd bug where Joe Orton shares his knowledge:
A "make clean" is usually necessary after re-running "configure".

Using:
make clean
make distclean
Works for me.

The install path of a library can usually be customized rather than the default one under somewhere /usr/local/.
For some libraries, you should specify it with ./configure like this:
./configure --prefix=/the/new/install/path
make
make install
Others allow you to specify it when make install:
./configure
make
make install prefix=/the/new/install/path
You can try both. At least one should resolve your issue.

Related

macOS "./configure: No such file or directory" problem

When I try to install Sphinx with this guide
./configure --with-pgsql --with-mysql #from guide
make #from guide
sudo make install #from guide
./configure
-bash: ./configure: No such file or directory
$ autoreconf --install
autoreconf: 'configure.ac' or 'configure.in' is required
Are you running the ./configure command within the Sphinx source code folder? These instructions are for compiling Sphinx.
It's worth noting that the latest (v3.x) Sphinx releases aren't available as source code, only as pre-compiled binaries. So if that's what you've downloaded, you'll want to copy the files in ./bin - which would include indexer and searchd - into a location within your PATH (I would suggest /usr/local/bin).
Not excellent solution (because without mysql), but working (as all in programming world).
1) brew remove mysql
2) brew install mysql#5.7 (I don't know why, but it is working only with this version)
3) download sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz and extract and cd to it
4) ./configure --with-pgsql --without-mysql and make and sudo make install
It is working for me, because I need postgresql first of all

autoreconf: 'configure.ac' or 'configure.in' is required

I followed the instructions to install FB Machine Learning tools.
One of the libraries installation instructions are
cd ~/libraries
git clone https://github.com/facebook/folly.git
cd folly/folly/
autoreconf -ivf
./configure
cp -R ~/libraries/gtest-1.7/* ./test/gtest-1.7/
make
make check
sudo make install
sudo ldconfig # reload the lib paths after freshly installed folly. fbthrift needs it.
I have problem at autoreconf -ivf, the error is
autoreconf: 'configure.ac' or 'configure.in' is required
But when I install autoreconf, I have the newest version.
autoconf is already the newest version (2.69-9).
0 upgraded, 0 newly installed, 0 to remove and 26 not upgraded.
What could be wrong?
folly is not using the autotols anymore, but CMake (there is only a CMakeLists.txt file, not configure.*).
See here for the steps: https://github.com/facebook/folly#dependencies
Installing pkgconf package fixed it for me.
error: autoreconf: 'configure.ac' or 'configure.in' is required
Just don't try to install.
In most cases the autoreconf -i command helps, but it did not work for you due to an inappropriate package :\
In your case will be adequately to look at the documentation for installation from the terminal to your OS.

Protobuf cannot find shared libraries

I have installed protobuf by using following commands:
./configure
make
make check
make install
However when I run protoc I get following error:
protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file: No such file or directory
sudo ldconfig
or
export LD_LIBRARY_PATH=/usr/local/lib
should solve the problem.
You can also use
$ sudo ldconfig # refresh shared library cache.
as stated at the installation page
This issue can be resolved by following these steps:
vim /etc/ld.so.conf
/usr/local/lib(add it in .conf)
This issue can be resolved by following these steps:
sudo make uninstall
sudo make distclean
sudo make clean
./configure --prefix=/usr
This cleans the current installation and installs protobuf at /usr
Run ldconfig to update ld.so.cache after making sure that /usr/local/lib is listed in /etc/ld.so.conf. i.e.
Edit /etc/ld.so.conf and append /usr/local/lib to it and run ldconfig

How do I compile jzmq for ZeroMQ on OSX?

Trying to follow the directions from: http://github.com/zeromq/jzmq
I installed pkg-config using Homebrew and then I run the following commands:
./autogen.sh
./configure
The configure fails with:
checking how to hardcode library paths into programs... immediate
./configure: line 15263: syntax error near unexpected token `newline'
./configure: line 15263: ` PKG_CHECK_MODULES('
A better solution is:
eval `brew --config | grep HOMEBREW_PREFIX | sed 's/: /=/'`
sudo bash -c 'echo '$HOMEBREW_PREFIX/share/aclocal' >> `aclocal --print-ac-dir`/dirlist'
This will allow the version of aclocal that ships with OSX to find any macros installed by homebrew packages.
With homebrew, the key is the warning message:
~/code/foss/java/jzmq$ brew install pkg-config
==> Downloading http://pkg-config.freedesktop.org/releases/pkg-config-0.25.tar.gz
==> ./configure --disable-debug --prefix=/usr/local/Cellar/pkg-config/0.25 --with-pc-path=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11/lib/pkgconfig
==> make install
Warning: m4 macros were installed to "share/aclocal".
Homebrew does not append "/usr/local/share/aclocal"
to "/usr/share/aclocal/dirlist". If an autoconf script you use
requires these m4 macros, you'll need to add this path manually.
==> Summary
/usr/local/Cellar/pkg-config/0.25: 8 files, 232K, built in 19 seconds
If you look at /usr/local/Cellar/pkg-config/0.25/share/aclocal/, you will see:
$ ls /usr/local/Cellar/pkg-config/0.25/share/aclocal/
pkg.m4
You need to append /usr/local/Cellar/pkg-config/0.25/share/aclocal/ to /usr/share/aclocal/dirlist,like this:
$ cat /usr/share/aclocal/dirlist
/usr/local/share/aclocal
/usr/local/Cellar/pkg-config/0.25/share/aclocal/
And then re-run autogen and the other steps.
I made a simple list about jzmq building for MacOS.
Install brew
https://brew.sh
Install tools for jzmq building
brew install autoconf
brew install automake
brew install libtool
brew install pkg-config
brew install zeromq#3.2
Download jzmq source
https://github.com/zeromq/jzmq source download to ~/somewhere/jzmq
Add symbolic link to /usr/local/include
cd /usr/local/include
ln -s /usr/local/Cellar/zeromq\#3.2/3.2.5/include/zmq.h
ln -s /usr/local/Cellar/zeromq\#3.2/3.2.5/include/zmq_utils.h
Add symbolic linke to /usr/local/lib
cd /usr/local/lib
ln -s /usr/local/Cellar/zeromq\#3.2/3.2.5/lib/libzmq.3.dylib
ln -s /usr/local/Cellar/zeromq\#3.2/3.2.5/lib/libzmq.a
ln -s /usr/local/Cellar/zeromq\#3.2/3.2.5/lib/libmq.dylib
ln -s /usr/local/Cellar/zeromq\#3.2/3.2.5/lib/pkgconfig/
Build jzmq-jni
cd ~/somewhere/jzmq
cd jzmq-jni
./autogen.sh
./configure
make
make install
Add option to VM options
VM options -Djava.library.path=/usr/local/lib
From the zeromq mailing list:
Building 0MQ from the development
trunk on a UNIX style OS (Linux, OS X)
requires that pkg-config
(http://pkg-config.freedesktop.org/wiki/)
be installed. A regular source build
of 0MQ does not require pkg-config.
On Mac OS X, pkg-config does not come
with the system, so when you try to do
./configure you may see errors like:
./configure: line 23913: syntax error near unexpected token `GLIB,'
./configure: line 23913: `PKG_CHECK_MODULES(GLIB, glib-2.0 gthread-2.0)'
To resolve this, you need to install
the latest pkg-config:
tar xzf pkg-config-0.25.tar.gz
cd pkg-config-0.25
./configure --prefix=/usr/local/pkg-config-0.25 --datarootdir=/usr/share
make
sudo make install
Then you will need to put
/usr/local/pkg-config-0.25/bin on your
$PATH. It is important to include the
"--datarootdir=/usr/share" option,
which will install the pkg.m4 file in
/usr/share/aclocal, where aclocal will
be able to find it.
Then you can build 0MQ:
cd zeromq2
./autogen.sh # must do this again after installing pkg-config
./configure # add other options here
make
sudo make install
Edited to reflect latest pkg-config version (0.25).
I came here with the same question, and I don't feel this is answered. I also installed ZeroMQ and pkg-config via Homebrew. /usr/local/share/aclocal/pkg.m4 exists and comes from pkg-config 0.25. It seems that Homebrew has satisfied the requirements listed but it still fails.
Trying to compile jzmq on Mac OS X, proved to be a bit of a headache. I followed the instructions above. I was still getting following error
syntax error near unexpected token
`PKG_CHECK_MODULES
The instructions above tell you to copy the pkgk.m4 file into /usr/share/aclocal, but your directory might be different. Basically you need the dir that automake searches for macro definitions.
The _PKG_CHECK_MODULES_ macro is defined in the pkg.m4 file. This file must be installed in the appropriate directory, which is searched by automake. Somehow automake is installed twice on my OS X, one in /usr and another in /Developer/usr. Make sure you know which one it's using. Just do which automake. If yours in is /Developer/usr, then copy the pkg.m4 file to /Developer/usr/share/aclocal.
For me, the problem was that I didn't have pkg-config installed.
On Osx Mountain Lion I don't have the dirlist file as Phil Calçado said, but a simple symlink from /usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4 to /usr/share/aclocal made the trick and now jzmq build fine.

How to compile Clisp 2.46?

When I try to compile the newest version of Clisp on Ubuntu 8.04 I always get this error after running configure:
Configure findings:
FFI: no (user requested: default)
readline: yes (user requested: yes)
libsigsegv: no, consider installing GNU libsigsegv
./configure: libsigsegv was not detected, thus some features, such as
generational garbage collection and
stack overflow detection in interpreted Lisp code
cannot be provided.
Please do this:
mkdir tools; cd tools; prefix=`pwd`/i686-pc-linux-gnu
wget http://ftp.gnu.org/pub/gnu/libsigsegv/libsigsegv-2.5.tar.gz
tar xfz libsigsegv-2.5.tar.gz
cd libsigsegv-2.5
./configure --prefix=${prefix} && make && make check && make install
cd ../..
./configure --with-libsigsegv-prefix=${prefix} --with-readline --with-unicode --with-module=i18n --with-module=gdbm --with-module=pcre --with-module=readline --with-module=regexp
If you insist on building without libsigsegv, please pass
--ignore-absence-of-libsigsegv
to this script:
./configure --ignore-absence-of-libsigsegv --with-readline --with-unicode --with-module=i18n --with-module=gdbm --with-module=pcre --with-module=readline --with-module=regexp
I've tried doing as requested, but it didn't help: it seems to ignore the --with-libsigsegv-prefix option. I also tried putting installing libsigsegv in a standard location (/usr/local). Oh, and of course, Ubuntu tells me that libsigsegv and libsigsegv-dev are installed in the system.
I'd really like to be able to compile this version of Clips, as it introduces some serious improvements over the version shipped with Ubuntu (I'd also like to have PCRE).
Here are my notes from compiling CLISP on Ubuntu in the past, hope this helps:
sudo apt-get install libsigsegv-dev libreadline5-dev
# as of 7.10, Ubuntu's libffcall1-dev is broken and I had to get it from CVS
# and make sure CLISP didn't use Ubuntu's version.
sudo apt-get remove libffcall1-dev libffcall1
cvs -z3 -d:pserver:anonymous#cvs.sv.gnu.org:/sources/libffcall co -P ffcall
cd ffcall; ./configure; make
sudo make install
cvs -z3 -d:pserver:anonymous#clisp.cvs.sourceforge.net:/cvsroot/clisp co -P clisp
cd clisp
./configure --with-libffcall-prefix=/usr/local --prefix=/home/luis/Software
ulimit -s 16384
cd src; make install
If you look at 'config.log' it might tell you why configure is not finding libsigsegv

Resources