Questions tagged «gnu-make»

这个标签是关于gmake的问题,gmake是用于维护和更新程序的make工具的GNU版本。




15
如何在makefile中打印出变量
在我的makefile文件中,我有一个变量“ NDK_PROJECT_PATH”,我的问题是在编译时如何将其打印出来? 我阅读了显示“ $ PATH”字符串的Make文件回显,然后尝试执行以下操作: @echo $(NDK_PROJECT_PATH) @echo $(value NDK_PROJECT_PATH) 两者都给我 "build-local.mk:102: *** missing separator. Stop." 谁知道为什么它对我不起作用?
246 makefile  gnu-make 

4
在规则执行时定义make变量
在我的GNUmakefile中,我想有一个使用临时目录的规则。例如: out.tar: TMP := $(shell mktemp -d) echo hi $(TMP)/hi.txt tar -C $(TMP) cf $@ . rm -rf $(TMP) 按照书面规定,上述规则在解析规则时会创建一个临时目录。这意味着,即使我没有一直做out.tar,也会创建许多临时目录。我想避免/ tmp堆满未使用的临时目录。 有没有一种方法可以导致仅在触发规则时定义变量,而不是在定义规则时定义? 我的主要思想是将mktemp和tar转储到Shell脚本中,但这似乎有些难看。
208 makefile  gnu-make 

12
如何获取Makefile的当前相对目录?
我在应用程序特定的目录中有几个Makefile,例如: /project1/apps/app_typeA/Makefile /project1/apps/app_typeB/Makefile /project1/apps/app_typeC/Makefile 每个Makefile在此路径上一级都包含一个.inc文件: /project1/apps/app_rules.inc 在app_rules.inc内部,我设置了要在生成二进制文件的位置放置目标文件。我希望所有二进制文件都在各自的app_type路径中: /project1/bin/app_typeA/ 我尝试使用$(CURDIR),如下所示: OUTPUT_PATH = /project1/bin/$(CURDIR) 但是相反,我将二进制文件埋入了整个路径名,如下所示:(请注意冗余) /project1/bin/projects/users/bob/project1/apps/app_typeA 我该怎么做才能获得执行的“当前目录”,以便我只知道app_typeX将二进制文件放入其各自的types文件夹中?

17
如何获得makefile中的目标列表?
我使用过rake(一个Ruby make程序),它有一个选项来获取所有可用目标的列表,例如 > rake --tasks rake db:charset # retrieve the charset for your data... rake db:collation # retrieve the collation for your da... rake db:create # Creates the databases defined in y... rake db:drop # Drops the database for your curren... ... 但是在GNU make中似乎没有选择这样做。 显然,自2007年以来,几乎已经有相应的代码了-http: //www.mail-archive.com/help-make@gnu.org/msg06434.html。 无论如何,我几乎没有办法从makefile中提取目标,您可以将其包含在makefile中。 list: @grep '^[^#[:space:]].*:' …

7
如何为调试和发布版本配置我的makefile?
我的项目有以下makefile,我想对其进行配置以进行发布和调试。在我的代码中,我有很多#ifdef DEBUG宏,因此只需设置此宏并将-g3 -gdwarf2标志添加到编译器即可。我怎样才能做到这一点? $(CC) = g++ -g3 -gdwarf2 $(cc) = gcc -g3 -gdwarf2 all: executable executable: CommandParser.tab.o CommandParser.yy.o Command.o g++ -g -o output CommandParser.yy.o CommandParser.tab.o Command.o -lfl CommandParser.yy.o: CommandParser.l flex -o CommandParser.yy.c CommandParser.l gcc -g -c CommandParser.yy.c CommandParser.tab.o: CommandParser.y bison -d CommandParser.y g++ -g -c CommandParser.tab.c Command.o: Command.cpp g++ -g …
175 makefile  gnu-make 




4
gmake和make有什么区别?
我想了解“ gmake”和“ make”之间的区别吗? 在我的linux机器上,它们是相同的: % gmake --version GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % make --version GNU Make 3.81 Copyright (C) 2006 …
127 build  makefile  gnu-make 

4
如何从另一个Makefile调用Makefile?
我收到一些意外的结果,从另一个调用一个生成文件。我有两个makefile,一个叫做/path/to/project/makefile,另一个叫/path/to/project/gtest-1.4.0/make/Makefile。我试图让前者称呼后者。在/ path / to / project / makefile中,我有 dev: $(OBJ_FILES) $(CPPC) $(LIBS) $(FLAGS_DEV) $(OBJ_FILES) -o $(BIN_DIR)/$(PROJECT) $(MAKE) -f ./gtest-1.4.0/make/Makefile clean: rm -f ./*~ ./gmon.out ./core $(SRC_DIR)/*~ $(OBJ_DIR)/*.o rm -f ../svn-commit.tmp~ rm -f $(BIN_DIR)/$(PROJECT) make -f gtest-1.4.0/make/Makefile clean 在/path/to/project/gtest-1.4.0/make/Makefile我里面 all: $(TESTS) clean: rm -f $(TESTS) gtest.a gtest_main.a *.o 发出以下内容: cd /path/to/project …
125 makefile  gnu-make 

9
如何在Windows中安装和使用“ make”?
我正在遵循某人的说明,该人的存储库已克隆到我的机器上。我想要的很简单:能够将make命令用作设置代码环境的一部分。但是我使用的是Windows,我在网上搜索的唯一目的是找到要下载的make.exe文件,要下载的make-4.1.tar.gz文件(接下来我不知道该怎么做)以及有关下载MinGW(对于GNU;但安装后,我没有提到“ make”)。 我不需要GNU编译器或相关的东西;我只想在Windows中使用“ make”。请告诉我该怎么做。 提前致谢!

12
检查Makefile中是否存在程序
如何检查是否可以从Makefile调用程序? (也就是说,该程序应该存在于路径中,否则可以被调用。) 例如,它可用于检查安装了哪个编译器。 例如类似这样的问题,但不假定底层shell与POSIX兼容。
115 makefile  gnu-make 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.