Home > Blockchain >  How to fix ./configure in MSYS2?
How to fix ./configure in MSYS2?

Time:04-28

I'm trying to build libxc-4.3.4 in an MSYS2 shell on Windows 10. I've installed the latest version of MSYS2 (msys2-x86_64-20220319.exe) and followed the installation instructions. I've installed build tools using

pacman -S --needed base-devel mingw-w64-x86_64-toolchain autoconf

I've installed libxc dozens of time on Linux machines. The first step is

./configure --prefix /somewhere

But in MSYS2 I get

$ ./configure --prefix $PWD/../libxc
bash: ./configure: No such file or directory

How can I make this work?

CodePudding user response:

MSYS2 prerequisites

First of all make sure MSYS2 has all programs that are needed.

In the MSYS2 shell first update the package manager information:

pacman -Syu --noconfirm

Then install the packages you need. I would recommend at least these:

pacman -S --noconfirm autoconf autoconf-archive automake make libtool pkg-config

Project sources

Next you should make sure the folder you are in actually has a configure script:

ls -l configure

A lot of projects these days are switching to more efficient build systems like CMake or Meson. I usually use the following command in the projects source folder to check for several build systems:

ls -ld configure* m4 CMakeLists.txt cmake Makefile GNUmakefile setup.py scons SConscript SConstruct meson.build meson_options.txt *.pro *.proj *.sln BUILD.gn .gn 2> /dev/null

building libxc

For the libxc project I see there is a CMakeLists.txt file and also a configure.ac file. So either you should look into using CMake or generate the configure file with:

touch README ChangeLog
autoreconf -f -i -I m4 

I have just tried to build libxc in MSYS2 with CMake and Ninja and this worked:

# set the line below to the desired install location
INSTALLPREFIX=D:\Prog\changeme

# build static library
cmake -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DENABLE_PYTHON:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -S. -Bbuild_static &&
 ninja -Cbuild_static install/strip &&
 echo SUCCESS

# build shared library
cmake -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -DENABLE_PYTHON:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -S. -Bbuild_shared &&
 ninja -Cbuild_shared install/strip &&
 echo SUCCESS
  • Related