gnu-make相关内容
我手头有一个任务,我的源文件在下面: apps/$(APP_NAME)/$(APP_ENV)/$(APP_NAME).yml 然后我需要将这些文件处理为: .output/$(APP_NAME)/$(APP_ENV).yml 我无法整理此类生成文件的规则,其中我的app_name是动态的并且来自 APP_NAMES=$(shell ls -1 $(APP_DIRS))
..
我有一个存储项目资产的目录,比如: +-- assets | +-- styles | | +-- child | | | +-- child.css | | +-- main.css | +-- font.ttf | +-- image.png 如您所见,它们是几种文件类型(这只是一个示例,可能还有更多类型),树深度可能会有所不同。 如何将所有
..
有没有办法使用GNU make递归地获取目录路径和所有子目录的路径,而无需显式编写 dirpaths := dirpaths +=$(wlidcard L0dir/*) dirpaths +=$(wlidcard L0dir/*/*) 等等。 L0dir ├── L1subdir1 │ ├── L2subdir1 │
..
我试图通过写入 来抑制rm命令中的错误 生成文件: ... clean: $(wildcard *.mod) -rm $^ 2>/dev/null ... 我跑了: $ make clean rm 2>/dev/null make: [clean] Error 64 (ignored) 我仍然收到错误。 不管怎样,当我尝试 $ rm [some non
..
手头的任务如下:在食谱中调用的外部工具生成一个Makefile,它应该立即被make包括在内。然后,另一个规则使用包含的数据生成进一步的包含文件。Make应该再次重新启动,然后才能处理进一步的规则。请考虑以下示例: $(info ------- Restart $(MAKE_RESTARTS)) all : include a include b a : p touch a
..
以下示例直接来自GNU制作手册: program: $(OBJECTS) $(file >$@.in,$^) $(CMD) $(CMDFLAGS) @$@.in @rm $@.in 这非常有效。但是,如果我颠倒$(FILE)和外部工具的顺序,行为仍然是相同的:首先执行$(FILE),然后才执行外部工具。 是否可以在配方中调用外部工具,
..
我对此Makefile结构有问题。 make commit.install应创建foo.txt,然后将其放入某个文件夹。但是,make不会调用创建foo.text的目标。这意味着我必须调用make foo.txt来创建文件本身,然后调用make commit.install来复制它。我认为Make Not Expansion变量依赖项有问题。 ./Common.mk src.in
..
我正在对我的一个项目使用带有GNU make生成器的CMake,然后想详细地构建它。 我对实际产生东西的行感兴趣,对以下行不感兴趣: gmake[2]: Entering directory '/some/where' gmake[2]: Leaving directory '/some/other/place' 也没有写着: cd /some/where && /path/
..
在GNU生成文件中,环境变量和参数/变量/宏之间经常存在交互。还有几种不同的赋值运算符,命令行上可以提供&覆盖&变量,还有override指令。 这些交互的优先规则是什么? 考虑这个生成文件: # Use := to avoid infinite recursion of macro expansion CFLAGS := -g -O2 $(CFLAGS) hello: src/
..
我收到以下错误 make: *** No rule to make target `stretchy_buffer.o', needed by `tsh'. Stop 正在尝试创建此生成文件 SRCS = stretchy_buffer.c def.c tsh_builtin_commands.c tsh_jobs.c tsh_main.c tsh_routines.c tsh_
..
此问题与Convert Cygwin path to Windows path in a makefile 相关,但不同。 我需要转换Windows路径,如: C:srcin 放入Unix路径,如: /c/src/bin 在Makefile中,我可以使用以下代码来转换这样的路径: slashedpath = $(subst \,/,$(windowspath))
..
我正在尝试构建Linux内核模块: KBUILD_EXTRA_SYMBOLS := ../../Module.symvers KBUILD_EXTRA_SYMBOLS := ../../dir0/Module.symvers KDIR = ../../../../kernel/linux-4.9 INCLUDES = -I../dir1/dir2/dir3 -I.
..
使用-jNmake运行gnu-make规则时,会创建一个jobserver,用于管理跨子制造的作业计数。此外,您还可以通过为其添加前缀+-例如: 来将其“传递给一个Make配方” target : +./some/complex/call/to/another/make target 现在,我不是子make,而是一个(Python)脚本,它运行一些复杂的打包操作(对于mak
..
我有一个包含多个Docker文件的项目,每个文件都位于我用作Docker镜像标签的命名目录中。我需要为每个Dockerfile构建、测试和推送一个docker映像。我需要做什么才能使用GNU Make进行如下工作? # BUILDS needs to be a list of directories, not a list of Dockerfiles BUILDS := $(wildca
..
我有一个这样的Makefile: setup: setenv var1 "$(var1)"; setenv var2 "$(var2)"; task1: setup source task1.csh task2: setup source task2.csh 我使用以下命令调用生成文件: make var1=value1 var2=value2 task1
..
我在Windows中使用以下Makefile处理器尝试使用curl、rm、start等命令:http://gnuwin32.sourceforge.net/packages/make.htm 这似乎是不可能的,相反,我似乎对命令的使用非常有限。有哪些方法可以扩展我的命令集? 如有任何帮助,我将不胜感激。谢谢 推荐答案 如果您对仅用于Windows的解决方案感到满意,您可以将
..
我想向一个(GNU)生成文件添加一个快速检查,它可以提醒用户-j/--jobs(并行生成)的可用性。也就是说,类似于 $ make TIP: this will build faster if you use use "make -j" Building .. $ make -j Building in parallel .. 如何确定执行Makefile时的并行作业数?
..
4.13 of the GNU Make manual一节介绍了所谓的双冒号规则: 双冒号规则是在目标名称后使用‘::’而不是‘:’编写的规则。当同一目标出现在多个规则中时,它们的处理方式与普通规则不同。 当一个目标出现在多个规则中时,所有规则必须是同一类型:全部为普通规则,或全部为双冒号。如果它们是双冒号,则它们中的每一个都是独立的。如果目标早于双冒号规则的任何先决条件,则执行该规则
..
这是我的目标,我想在其中为list变量中的每个元素运行一个循环。 问题是循环运行,但test变量值被作为空 传递 list = mlflow emr common=$(someDir)/common .PHONY:build build: for var in $(list); do cd ${common}; test=$(git diff --n
..
我在使用Automake时遇到以下错误。我知道您可以将AUTOMAKE_OPTIONS=subdir-Objects“放在Makefile.am的顶部。但我如何为所有文件设置此行为,这样我就不需要逐个执行此操作? Makefile.am:454: warning: source file 'libs/esl/src/esl_threadmutex.c' is in a subdirector
..