How to add multiple directories in ./configure --libdir? - makefile

In a Makefile, there is the following:
./configure --prefix=$(ROOTPATH) --libdir=$(MJSONLIBDIR)
How can I include multiple directories in --libdir?

This issue can be closed. I confuse the role of --libdir, it is to install the libraries generated in the $./configure && make process, not the libraries to include for the proper execution of $./configure && make command.

Related

config.status: error: cannot find input file: `po/Makefile.in.in'

I hit this error message while trying to build gnote using GNU Autotools.
I had first run:
$ git clean -xf # to clean the tree of untracked files, then
$ autoreconf # to create the script named `configure`, and finally
$ ./configure # to check my system, and create Makefiles from their templates
Neither po/Makefile.in.in nor po/Makefile.in exist in the source tree that I downloaded.
Yet configure needs to make this po/Makefile, as called for in the root Makefile.am in this line:
SUBDIRS = data src po help
Where do I get, or how do I make, po/Makefile.in.in?
Like all Gnome related packages, gnote uses many steps of buildsystem setup beyond just running autoreconf.
The autogen.sh script gnote comes with should run all the required steps to set up the buildsystem.
As usual, run the autogen.sh script with the --help parameter if you want to call configure separately.
po/Makefile.in.in is created by running intltoolize from the intltool package. It needs to be run from the project tree's root directory.
There isn't much documentation on intltoolize that I could find except for the brief man page, but it's source code says that that it's a fork of an older utility called libtoolize, and it's a relatively short script.
(BTW, if you don't already have intltoolize installed, you can figure out which package installs it, with this: sudo apt-file find intltoolize.)
*.in files are templates used by AutoMake to create a Makefile.
.in.in is a soft link to /usr/share/intltool/Makefile.in.in.

How to specify ./configure's parameters '--includedir' and '--libdir' to cmake

Question about installing log4cplus.
log4cplus has two way to make & install.
./configure && make && make install
cmake xxx && make && make install
When I use the 1st one, parameters --includedir=PATH and --libdir=PATH can be specified to configure, because I want to install them into different paths.
How can I specify the two equivalent parameters to cmake?
Thanks!
Since package log4cplus uses CMake module GNUInstallDirs, you may use variables CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_INCLUDEDIR for adjust installation paths for libraries and headers correspondingly:
cmake -DCMAKE_INSTALL_LIBDIR=<libdir-path> -DCMAKE_INSTALL_INCLUDEDIR=<includedir-path>
For more info see that question.

what happens if you do make clean in the gcc 4.9 configure directory

i just installed gcc4.9 in my home/myname/gcc-4.9 directory, I did the following:
1. cd /home/myname/gcc-source (where i have to run the config script)
2. ./configure --prefix=/home/myname/gcc-4.9 (and flags)
3. make && make install
4. now all the lib, bin, include etc folders are in /home/myname/gcc-4.9 directory.
I accidentally did a make clean in the /home/myname/gcc-source/ directory and it started removing a lot of files which were make'ed.
Will my gcc still work ? I didnt see any files getting deleted from /home/myname/gcc-4.9 folder as such.
Or should i do ./configure and make && make install again ?
Will my gcc still work ?
Yes!
make && make install consists of two parts:
make - compile (create executable)
make install - copy compiled executable to appropriate directory
make clean undoes result of make, but does not touch result of make install (i.e. your program stays installed)

autoconf without install files

I have started recently to work with automake and autoconf and I am a little confused about how to distribute the code.
Usually when I get a code that works with a configure file, the only thing that I get is a confiure file and the code itself with the Makefile.am and so on. Usually I do
./configure
make
sudo make install
and thats all but when I generate my configure from a configure.ac file it toss out lots of files that I thought where just temporary but if I give the code to a partner and he makes configure, it doesn't work, it needs either remake the autoreconf or have all this files (namely instal.sh,config.sub...).
Is there something that I am missing? How can I distribute the code easily and clean?
I have searched a lot but I think I am searching for the right thing because I cannot find anything useful.
Thanks a lot in advance!
Automake provides a make dist target. This automatically creates a .tar.gz from your project. This archive is set up in such a way that the recipient can simply extract it and run the usual ./configure && make && make install invocation.
It is generally not recommended to check the files generated by Autotools into your repository. This is because they are derived objects. You wouldn't check in your .o files!
Usually, it is a good idea to provide a autogen.sh script that carries out any actions required to re-create the Autotools build infrastructure in a new version control system checkout. Often, it can be as simple as:
#!/bin/sh
autoreconf -i
Then set it chmod +x, and the instructions for compiling from a clean checkout can be ./autogen.sh && ./configure && make.

make *** no targets specified and no makefile found. stop

I have a problem installing package dionaea.
After I type this:
./configure --with-lcfg-include=/opt/dionaea/include/ \
--with-lcfg-lib=/opt/dionaea/lib/ \
--with-python=/opt/dionaea/bin/python3.1 \
--with-cython-dir=/usr/bin \
--with-udns-include=/opt/dionaea/include/ \
--with-udns-lib=/opt/dionaea/lib/ \
--with-emu-include=/opt/dionaea/include/ \
--with-emu-lib=/opt/dionaea/lib/ \
--with-gc-include=/usr/include/gc \
--with-ev-include=/opt/dionaea/include \
--with-ev-lib=/opt/dionaea/lib \
--with-nl-include=/opt/dionaea/include \
--with-nl-lib=/opt/dionaea/lib/ \
--with-curl-config=/opt/dionaea/bin/ \
--with-pcap-include=/opt/dionaea/include \
--with-pcap-lib=/opt/dionaea/lib/ \
--with-glib=/opt/dionaea
and the next step is:
#make
An error message appears:
make: *** No targets specified and no makefile found. Stop.
My directory is /usr/local/src
make takes a makefile as input. Makefile usually is named makefile or Makefile. The configure command should generate a makefile, so that make could be in turn executed. Check if a makefile has been generated under your working directory.
running ./configure should solve your problem.
I got the same error and i fixed it by looking at the solution from this site:
http://trac.macports.org/ticket/40476.
SO did you got any error after running './configure' ? Maybe something about lacking tclConfig.sh.
If so, instead of running './configure', you have to search for the tclConfigure.sh first and then put it in the command, in my case, its located in /usr/lib/. And then run:
'./configure ----with-tcl=/usr/lib --with-tclinclude=/usr/include'
./configure command should generate a makefile, named makefile or Makefile. if in the directory there is no this file, you should check whether the configure command execute success.
in my case, I configure the apr-util:
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
because the --with-apr=/usr/local/apr/bin/apr-1-config, the apr did not install yet, so there configure fail, there did not generate the apr's /usr/local/apr/bin/apr-1-config.
So I install the apr, then configure the apr-util, it works.
You had to have something like this:
"configure: error: "Error: libcrypto required."
after your ./configure runs. So you need to resolve noticed dependencies first and then try ./configure once more time and then run make !
I recently ran into this problem while trying to do a manual install of texane's open-source STLink utility on Ubuntu. The solution was, oddly enough,
make clean
make
If after ./configure Makefile.in and Makefile.am are generated and make fail (by showing this following make: *** No targets specified and no makefile found. Stop.) so there is something not configured well, to solve it, first run "autoconf" commande to solve wrong configuration then re-run "./configure" commande and finally "make"
Delete your source tree that was gunzipped or gzipped and extracted to folder and reextract again. Supply your options again
./configure --with-option=/path/etc ...
Then if all libs are present, your make should succeed.
This may happen if there is any read and write permission denial to the user. Like C:\Windows\System32\ have restricted access and you are cloned and trying to make from such restricted directory.
If you create Makefile in the VSCode, your makefile doesnt run. I don't know the cause of this issue. Maybe the configuration of the file is not added to system. But I solved this way. delete created makefile, then go to project directory and right click mouse later create a file and named Makefile. After fill the Makefile and run it. It will work.
Try
make clean
./configure --with-option=/path/etc
make && make install
In my case there was a file Makefile.PL in a database library:
http://www.cpan.org/modules/by-module/DBI/DBI-1.630.tar.gz
The following command created the makefile
perl Makefile.PL
After that, make command worked
I think that it can mean that ./configure command failed for some reason, in my case it was due to a missing package. So i have used my OS package manager to install required package (autoconf and autoconf-archive in my case), then it worked.
first time try
make clean
make
if these didn't solve your issue you have to install build packages.
debian base
apt-get install build-essential libgtk-3-dev
For RHEL/CentOS
sudo yum install gcc glibc glibc-common gd gd-devel -y
Step 1: Install the Required Dependencies
First, launch the Terminal and run the commands below to install the required dependencies and libraries.
sudo apt install autoconf automake libpcre3-dev libnl-3-dev libsqlite3-dev libssl-dev ethtool build-essential g++ libnl-genl-3-dev libgcrypt20-dev libtool python3-distutils
sudo apt install -y pkg-config
Step 2: Compile and Install
Now, run the commands below (one by one in order) to compile the source code and install Your Repo on your system.
[Before this enter you directory ex: cd folder_name]
sudo autoreconf -i
sudo ./configure --with-experimental --with-ext-scripts
sudo make
sudo make install
I hope this time problem will be solved.
You need to check the output of the configure command.
Mine contained this error:
configure: error: in `/home/ubuntu/build/php-8.0.19':
configure: error: The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Then I googled the error and solved it.
Before running "make" you need to configure your build using "CMake"
Try:
cmake .
Creating Makefile in the VScode did not worked for me. So, delete the make file created in the VS code, go to the project directory and create file add all the commands in it and name it as Makefile and save. Then try to execute it in VS code. It will work. Don't know why it doesn't work with VS code.
Unpack the source from a working directory and cd into the file directory as root. Use the commands ./configure then make and make install

Resources