# makefile
SHELL:=/bin/bash
PATH:=/path/to/new/programs:$(PATH)
my_var:=$(shell which program)
rule:
echo $(my_var)
which program
#output
$: make rule
echo
which program
/path/to/program
# prints nothing
我已经尝试了所有的方法,实际上回想起我之前创建makefile时让它起作用的过程。它正在变成一个泥潭--我所需要做的就是在安装之前检查一个exe文件是否存在。
我有几个关于在C中制作文件、标题和包含文件的一般性问题,我希望能得到一个容易解释的答案,因为所有的教程都是从"ok -我理解这个“到”这到底是什么“,只是用了几行。假设我有一个程序,我想为它创建一个makefile。
**fileA.c** contains the main and calls functions in **fileB.c** and **fileC.c**
**fileB.c** contains getopts and stdlib but no other file or function from other file
(正常的标题,对吧?)没有链接到任何其
我正在尝试编译我的程序,它有一个lex文件、一个yacc文件和几个C文件,我在中看到了这个例子。
我有几个关于这个makefile.It没有指定编译器(比如gcc )的问题-- makefile如何知道如何创建目标,比如scan.o、parse.o和myprogram.o?
# Makefile example -- scanner and parser.
# Creates "myprogram" from "scan.l", "parse.y", and "myprogram.c"
#
我在不同的目录中有一堆C文件,使用递归的Makefile我得到了一个make: nothing to be done for 'all'错误;但是如果我调整了依赖项,我可以让它工作.但我不明白我为什么要这么做。
这是我的原始Makefile:
APP_DIRS=rescoco ressys resvm
.PHONY: all
all: $(APP_DIRS)
$(APP_DIRS):
$(MAKE) --directory $@
clean:
$(RM) *~
现在,如果我将我的行:.PHONY改为.PHONY: all $(APP_DIRS),那么它构
如何在makefile中捕获文件名中的数字后缀?更准确地说,我有一本用latex写的书,由多个章节文件组成,我想写一个支持以下语法的makefile,用于编译整本书:
make book
对于单个章节:
make chapter_1
例如。我的文件是包含多行\include{chapter_i}和多个chapter_i.tex文件的book.tex文件,其中i是一个章节号。
感谢所有人!
我有一个makefile,其中包含一个Rules.mak文件,其中包含我想要使用的工具。问题是,如果他们想要解压缩一个版本或使用“本机”安装,tools文件夹有免费的选项。所以我想包括工具提取的规则,如果它存在,否则我想包括本机文件。
我们的目标是:
if Tool/Rules.mak exists then
include Tool/Rules.mak
else
include common/Rules-Tool.mak
fi
我尝试过bash或make两种方法,但由于这是预先包含的设置环境,所以我没有指定的目标,但由于检查失败而发出错误的调用。
if [ -f Tool/Rules
我正在尝试从新生成的文件夹中获取.tar.gz文件名(上面的一步)。我试着使用通配符,但没有成功,
在我的makefile中,我尝试了:
...
...
...
other parts
...
deb:
python setup.py sdist --- this step will generate a new folder called dist
cd dist; ls -l --- from here, I see the file is shown.
echo $(wildcard dist/*.tar.gz) (also tried