检查makefile中的文件大小,如果文件太短则停止

时间:2012-05-20 11:57:26

标签: compilation makefile

有没有办法检查特定文件的大小是否小于某个常量?我在makefile中假设有关size的内容,并且如果我的假设不符合,我想确保我会收到错误。像assert这样的东西,但是在makefile中。

if filesize(file)>C then error else continue compilation

3 个答案:

答案 0 :(得分:3)

在编译前的某个地方把它放在你的规则中:

 test -n "$$(find filename -a -size +NNNc)"

其中filename是文件名,NNN是八位字节的大小。当大小小于或等于make时,返回false并暂停NNN

答案 1 :(得分:2)

我的方法,可能不是最漂亮的解决方案,但它对我有用:)

CHECKFILE = \
    if [ ! -f "file" ]; then \
        echo "file does not exist" ; exit 1 ; \
    fi; \
    FSIZE=$$(du -b "file" | cut -f 1) ; \
    if [ $$FSIZE -lt 100000 ]; then \
        echo "filesize too small" ; exit 1 ; \
    fi

all:
    @$(CHECKFILE)

答案 2 :(得分:1)

我更喜欢这个 - 如果大于256字节则继续,否则停止make--以便于阅读:

test `wc -c <$<` -gt 256;

在反引号中,文件$<被定向到wc -c,它返回$<的字节大小。在反引号评估$<的大小后,test随后与-gt&#34;大于&#34;操作