1
votes

I'm trying to compile the following program inside of a docker container.

https://github.com/adaptivecomputing/torque

When attempting to run autoconf I am given an error "possibly undefined macro: AC_MSG_ERROR"

Google has dozens of results for this exact error. Most of them are solved by installing pkg-config or libtool-ltdl

As you can see from my docker file, both of those packages are installed.

FROM centos

RUN yum install -y autoconf make autogen gcc gcc-c++ openssl-devel git libxml2-devel libtool libtool-ltdl
RUN git clone git://github.com/adaptivecomputing/torque.git -b 4.2.6.1 /tmp/pbs_server
RUN cd /tmp/pbs_server
RUN autoconf
RUN ./configure --with-debug
RUN make -j4
RUN make install

Here is the error that I get when running docker build .

Step 4 : RUN autoconf  
configure.ac:50: error: possibly undefined macro: AC_MSG_ERROR  
      If this token and others are legitimate, please use m4_pattern_allow.  
      See the Autoconf documentation.  
configure.ac:54: error: possibly undefined macro: AM_INIT_AUTOMAKE  
configure.ac:57: error: possibly undefined macro: AM_PROG_CC_C_O  
configure.ac:63: error: possibly undefined macro: AM_MAINTAINER_MODE  
configure.ac:82: error: possibly undefined macro: AM_CONFIG_HEADER  
configure.ac:144: error: possibly undefined macro: AM_CONDITIONAL  
configure.ac:644: error: possibly undefined macro: AC_PROG_LIBTOOL  
configure.ac:651: error: possibly undefined macro: AM_PROG_LEX  
configure.ac:2053: error: possibly undefined macro: AC_DECL_H_ERRNO  
configure.ac:2056: error: possibly undefined macro: AC_DECL_FD_SET_SYS_SELECT_H  
configure.ac:2138: error: possibly undefined macro: AC_C_BIGENDIAN_CROSS  
configure.ac:2204: error: possibly undefined macro: AC_CREATE_GENERIC_CONFIG  

I have no problems compiling this program outside of docker and inside a normal server. I suspect there is a library or something that is missing.

Can anyone explain why I am getting this error, or better yet, how to work around it?

2

2 Answers

2
votes

As @BrettHale said, you'll need to install automake (I don't see in in the yum install line), as torque definitely uses it. And this:

RUN autoconf

probably should be:

RUN ./autogen.sh

It'll invoke autoconf, as well as other stuff. I still don't see why what you did seemed to die immediately. AC_MSG_ERROR, etc. are part of the base macros of autoconf. Almost like those macros are unreadable within docker...

1
votes

You will need to install autoconf, automake, and libtool. And possibly pkgconfig. After that, run the autogen.sh script. The autotool scripts should now be in place, and you can configure the package.