0

An app is trying to configure with

sudo make configure
(cd /opt/ioapi-3.2/ioapi   ;  sed -e 's|IOAPI_BASE|/opt/ioapi-3.2|' -e 's|LIBINSTALL||' -e 's|BININSTALL||' -e 's|IOAPI_DEFS||' -e 's|NCFLIBS|-L/opt/netcdf/lib -lnetcdff -L/opt/netcdf/lib -lnetcdf|' -e 's|MAKEINCLUDE|include /opt/ioapi-3.2/ioapi/Makeinclude|' -e 's|PVMINCLUDE|include  |' < Makefile..sed > Makefile )
/bin/sh: Makefile..sed: No such file or directory
make: *** [Makefile:211: configure] Error 1

I don't understand what the last part of the command is supposed to do and therefore why it's generating the error.

The output from make -n configure is:

(cd /home/centos/ioapi-3.2/ioapi   ;  sed -e 's|IOAPI_BASE|/home/centos/ioapi-3.2|' -e 's|LIBINSTALL||' -e 's|BININSTALL||' -e 's|IOAPI_DEFS||' -e 's|NCFLIBS|-lnetcdff -lnetcdf|' -e 's|MAKEINCLUDE|include /home/centos/ioapi-3.2/ioapi/Makeinclude|' -e 's|PVMINCLUDE|include  |' < Makefile..sed > Makefile )
(cd /home/centos/ioapi-3.2/m3tools ;  sed -e 's|IOAPI_BASE|/home/centos/ioapi-3.2|' -e 's|LIBINSTALL||' -e 's|BININSTALL||' -e 's|IOAPI_DEFS||' -e 's|NCFLIBS|-lnetcdff -lnetcdf|' -e 's|MAKEINCLUDE|include /home/centos/ioapi-3.2/ioapi/Makeinclude|' -e 's|PVMINCLUDE|include  |' < Makefile..sed > Makefile )
7
  • 1
    < Makefile..sed attempts to redirect input from a file named Makefile..sed - if the file does not exits, you will get the observed error No such file or directory. Jun 25, 2021 at 0:50
  • 2
    The double dot in Makefile..sed smells like something is missing, like Makefile.foo.sed. What does ls -l Makefile.*.sed have to offer? This could give a hint what causes the problem.
    – Philippos
    Jun 25, 2021 at 5:47
  • 1
    Did you follow the build instructions? Especially point 3 talks about several customization that you are expected to make.
    – Kusalananda
    Jun 25, 2021 at 6:34
  • I was following the instructions in the CMAQ user guide. They're similar and I did customize Makefile, ioapi/Makefile, and m3tools/Makefile along with Makeinclude. Jun 25, 2021 at 12:36
  • I tried to compile as user rather than as root just to check it out but it was the same problem. There's only one Makefile and it's still unclear why it's seeking Makefile..sed, Jun 25, 2021 at 14:33

1 Answer 1

0

Looking at the Makefile.template file of the ioapic-3.2 project on GitHub, it is clear that the sed command that you are seeing is the result of make using the SEDCMD variable:

SEDCMD = \
-e 's|IOAPI_BASE|$(BASEDIR)|' \
-e 's|LIBINSTALL|$(LIBINST)|' \
-e 's|BININSTALL|$(BININST)|' \
-e 's|IOAPI_DEFS|$(IOAPIDEFS)|' \
-e 's|NCFLIBS|$(NCFLIBS)|' \
-e 's|MAKEINCLUDE|include $(IODIR)/Makeinclude|' \
-e 's|PVMINCLUDE|include  $(PVMINCL)|'

like so:

configure: ${IODIR}/Makefile ${TOOLDIR}/Makefile
    (cd $(IODIR)   ;  sed $(SEDCMD) < Makefile.$(CPLMODE).sed > Makefile )
    (cd $(TOOLDIR) ;  sed $(SEDCMD) < Makefile.$(CPLMODE).sed > Makefile )

As you can see, it tries to read a file called Makefile.$(CPLMODE).sed. The CPLMODE variable is mentioned several times in comments in the Makefile, but never set to a default value.

It seems that valid values for this variable is nocpl, cpl, or pncf. The README.txt file in the repository says to customize the Makefile, which I must assume includes making a copy of Makefile.template called Makefile in the top-level directory of the project and then modifying this.

You just haven't made all the necessary modifications to it yet it seems.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .