Makefile..sed 使用時のエラー

Makefile..sed 使用時のエラー

アプリが設定しようとしています

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

コマンドの最後の部分が何を実行するのか、またなぜエラーが発生するのか理解できません。

出力は次のmake -n configureようになります。

(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 )

答え1

プロジェクトMakefile.templateのファイルを見るioapic-3.2GitHubで、表示されているコマンドは変数を使用したsed結果であることは明らかです。makeSEDCMD

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)|'

そのようです:

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

ご覧のとおり、 というファイルを読み込もうとしていますMakefile.$(CPLMODE).sedCPLMODE変数は複数回言及されています。コメント欄Makefile で、デフォルト値に設定されることはありません。

この変数の有効な値はnocpl、、cplまたは のようですpncf。リポジトリ内のファイルには Makefile をカスタマイズするように記載されており、これにはプロジェクトの最上位ディレクトリでというREADME.txtのコピーを作成し、これを変更することが含まれると想定されます。Makefile.templateMakefile

どうやらまだ必要な変更をすべて行っていないようです。

関連情報