# Lines starting with the pound sign are comments.
#
# This is one of two options you might need to tweak.
EXECUTABLE = myprogram
# You can modify the below as well, but probably
# won't need to.
#
# CC is for the name of the C compiler. CPPFLAGS denotes pre-processor
# flags, such as -I options. CFLAGS denotes flags for the C compiler.
# CXXFLAGS denotes flags for the C++ compiler. You may add additional
# settings here, such as PFLAGS, if you are using other languages such
# as Pascal.
CC = gcc
CPPFLAGS =
CFLAGS = -Wall -O2
CXXFLAGS = $(CFLAGS)
COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) -c
SRCS := $(wildcard *.c)
OBJS := $(patsubst %.c,%.o,$(SRCS))
DEPS := $(patsubst %.c,%.d,$(SRCS))
DIRS= input format
# "all" is the default target. Simply make it point to myprogram.
all: $(EXECUTABLE)
subdirs:
@for dir in $(DIRS); do $(MAKE) -C $$dir; done
# Define the components of the program, and how to link them together.
# These components are defined as dependencies; that is, they must be
# made up-to-date before the code is linked.
$(EXECUTABLE): subdirs $(DEPS) $(OBJS)
$(CC) -o $(EXECUTABLE) $(OBJS)
# Specify that the dependency files depend on the C source files.
%.d: %.c
$(CC) -M $(CPPFLAGS) $< > $@
$(CC) -M $(CPPFLAGS) $< | sed s///.o/.d/ >> $@
# Specify that all .o files depend on .c files, and indicate how
# the .c files are converted (compiled) to the .o files.
%.o: %.c
$(COMPILE) -o $@ $<
clean:
-rm $(OBJS) $(EXECUTABLE) $(DEPS) *~
@for dir in $(DIRS); do $(MAKE) -C $$dir clean; done
explain:
@echo "The following information represents your program:"
@echo "Final executable name: $(EXECUTABLE)"
@echo "Source files: $(SRCS)"
@echo "Object files: $(OBJS)"
@echo "Dependency files: $(DEPS)"
@echo "Subdictionary: $(DIRS)"
depend: $(DEPS)
@for dir in $(DIRS); do $(MAKE) -C $$dir; done
@echo "Dependencies are now up-to-date."
-include $(DEPS)
|
相关推荐
提供的CHM文件“关于C语言的MakeFile.CHM”很可能包含了更深入的Makefile使用技巧和EFI编程指南,而“www.pudn.com.txt”可能是发布者提供的额外信息或链接,可能指向更多相关的学习资源。 总的来说,理解和掌握...
#### 五、Makefile 使用技巧 1. **变量定义:** 在复杂的 Makefile 中,可以定义变量来存储经常使用的路径或选项,提高可读性和维护性。 ```makefile CC = cc CFLAGS = -g -Wall OBJ = main.o kbd.o command.o ...
这个“很不错的嵌入式makefile资料合集”显然是为了帮助学习者深入理解并掌握在嵌入式环境下的Makefile使用技巧。下面我们将详细探讨Makefile及其在嵌入式开发中的应用。 Makefile是Unix/Linux环境中的一种自动化...
内容概要:本文档详述了基于ARM Cortex-A7架构的100ask IMX6ULL开发板的应用开发全过程,内容覆盖开发环境搭建、常见命令介绍、Makefile使用技巧等关键点,提供了全面的操作指南和技术支持渠道,适用于初学者快速...
### Makefile使用手册知识点梳理 #### 一、Make概述 - **Make的作用**:Make是一种...以上是《Makefile使用手册》的主要知识点梳理,涵盖了从基本概念到高级技巧的各个方面,旨在帮助读者全面掌握Makefile的使用方法。
手册内容详实,不仅覆盖了基础概念,还提供了丰富的实例和技巧,是学习和应用Makefile不可或缺的参考资料。 手册开始部分提到了阅读指南,建议读者从概览开始逐步深入,并且了解文档中的问题和BUG报告方式,从而更...
- **循环**:虽然 Makefile 本身不支持循环结构,但可以通过递归调用 Make 或使用 `foreach` 等技巧实现类似的逻辑。 #### 七、总结 通过以上对 Makefile 文件的深入探讨,我们可以看到 Makefile 在项目构建中的...
《跟我一起学Makefile》是针对Linux环境下的Makefile编写技术进行深入讲解的资源集合,旨在帮助初学者和开发者快速理解和掌握Makefile的编写规则与技巧。Makefile在软件开发中扮演着重要的角色,它是自动化构建工具...
学习和掌握Makefile的多目录编译技巧对于提升开发效率至关重要。它可以避免手动跟踪和更新编译指令,尤其是在大型项目中,能够减少错误并促进团队协作。同时,了解和实践不同方法可以帮助我们选择最适合特定项目需求...
编写Makefile时,应遵循一些最佳实践,如保持规则简洁、避免副作用、使用模式规则、合理利用变量和函数等,以提高Makefile的可读性和维护性。 通过深入学习《GNU make中文手册-v3.80》,你将能够熟练掌握Makefile的...
在学习如何编写Makefile时,首先需要掌握其基本概念、基本格式、简化方法以及常见项目的Makefile编写技巧。 1. Makefile概念:在大型项目中,通常包含大量源代码文件,它们之间存在复杂的依赖关系。手工编译和链接...
Makefile的调试非常重要,需要了解Makefile的执行过程和调试技巧。Makefile的调试需要使用调试工具,例如GNU Make的调试选项和调试命令。 总结 Makefile是自动化编译和构建过程的工具,广泛应用于Linux和Unix...
### Makefile 的编写指导 #### 概述 Makefile 是一种用于自动化编译流程的脚本文件,在 Unix 和类 Unix 系统中广泛使用。它不仅适用于 C/C++ 项目,也...希望本文能够帮助您更好地理解和掌握 Makefile 的编写技巧。
### Vi编辑器使用知识点 #### 实验目标 - **熟练运用Vi编辑器**:通过...通过以上内容的学习与实践,可以有效地掌握Vi编辑器的基本使用技巧以及如何编写处理多文件的Makefile,这对于日常的编程工作是非常有帮助的。
Linux Makefile 实验文档深入探讨了Makefile在Linux和Unix系统中的应用...此外,还涉及了Makefile在处理跨平台兼容性以及项目模块化方面的高级应用,从而帮助读者深入理解Makefile在项目构建过程中的重要性和应用技巧。
通过熟练掌握Makefile的编写技巧,开发者可以更好地管理和维护大型项目,减少手动编译的繁琐工作,提升工作效率。在实际工作中,Makefile还可以与其他构建工具(如autotools、CMake等)结合,实现更复杂的构建流程。