使用makefile移动现有文件

时间:2016-09-28 13:16:38

标签: c makefile

我的makefile中包含以下代码:

CONTIKI_PROJECT = blank
UPNP = ..
RT = $(UPNP)/../uJ/BUILDENV/RT/
APPL = $(UPNP)/../uJ/Applications/

CCVT    ?= $(UPNP)/../classCvt/classCvt
TOBIN   ?= $(UPNP)/../classCvt/tobinfile
CMD = $(TOBIN) -c $(CCVT)

upload:
    CLASSPATH=$(RT)/real:$(RT)fake:$(RT)/fake/uj javac $(RT)/real/java/lang/*.java
    CLASSPATH=$(RT)/real:$(RT)/fake:$(RT)/fake/uj javac $(APPL)/UJ*.java 
    CLASSPATH=$(RT)/real:$(RT)/fake:$(RT)/fake/uj \
        javac $(APPL)/UJ*.java $(APPL)/$(CLASS).java
    find $(APPL)/ -iname "$(CLASS).class" >> temp_files
    $(CMD) $(APPL)/$(CLASS).class >$(CLASS).raw_ujc

" .raw_ujc"文件出现在makefile的目录中,如预期的那样,是一个简单的文本文件。 tobinfile是一个.c文件,它执行printf并将其输出放入.raw_ujc。 但是,类似地,它在执行printf时生成二进制文件(通过执行fwrite(& v,sizeof(v),1,rawf),其中v是字节,rawf是具有特定名称的文件)。 这会在$(APPL)文件夹中生成二进制文件。 我想将此文件移动到.file_ujc文件所在的makefile文件夹中。

我还没有弄清楚如何做到这一点。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您正在寻找的答案很简单:

$(CMD) $(APPL)/$(CLASS).class >$(CLASS).raw_ujc
-mv $(APPL)/rawf .

这会在rawf执行后将文件$(APPL)$(CMD)目录移动到当前目录。 -前缀忽略移动中的错误(例如,如果rawf文件不存在),可能不是您想要的。