シェルスクリプトで makefile を使用したデプロイ

シェルスクリプトで makefile を使用したデプロイ

たとえば、

srcdir = ../libc  # Src directory
prefix = /usr/local           // Installation path 

最初の行はmakefileから取得され、2行目はconfig.make.

シェルスクリプトの$srcdir変数にアクセスする必要があります$prefix

` = `私が見つけた1つの解決策は、andとdoの`=`後のすべての部分を切り取ることでした。#//eval

シンプルで信頼性の高い他のソリューションはありますか?

私はここにいます#!/bin/sh

ベストアンサー1

シェルスクリプトで外国語を解析しようとすると絶対にできません。常に予期しない警告に直面し、すべてに適応しようとするのは悪夢になるだけです。
代わりに、ネイティブインタプリタを使用して解析し、必要なものを提供してください。

getmakevar() {
    makefile="$1"
    var="$2"

    make getmakevar -f -  <<EOI
include $makefile

getmakevar:
    @echo \$($var)
EOI
}

これはPOSIXと互換性があり、すべての可能なmakefile形式を処理できます(有効なgnu makeの場合)。


# cat Makefile
bar=baz
myvar = /foo/$(bar)

# getmakevar Makefile myvar
/foo/baz

おすすめ記事