Makefile用法记录

作者: Jason416 | 来源:发表于2019-01-24 12:01 被阅读0次

示例一

.s.o:
    $(CC) $(CFLAGS) -o $@ -c $<
.c.o:
    $(CC) $(CFLAGS) -o $@ -c $<

.PHONY:
    clean
clean:
    rm -rf *.o
  • 这个规则表示所有的 .o文件都是依赖与相应的.c或.s文件;
  • $(CC) - 表示引用变量的值
  • $@ - 表示所有的目标
  • $< - 表示引用第一个依赖
  • $^ - 表示引用所有依赖
  • .PHONY - 声明伪目标

示例二 - 内核模块编译

export ARCH=arm
ifeq ($(KERNELRELEASE),)

ifeq ($(ARCH),arm)
    KERNEL_DIR ?= /home/topeet/itop4412_kernel_4_14_2_bsp/linux-4.14.2_iTop-4412_scp 
    ROOTFS  ?= `pwd` 
else
    KERNEL_DIR ?= /lib/modules/$(shell uname -r)/build
endif

PWD := $(shell pwd)

modules:
    $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules
module_install:
    $(MAKE) -C $(KERNEL_DIR) M=$(PWD) INSTALL_MOD_PATH=$(ROOTFS) module_install

.PHONY:
    clean

clean:
    $(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean
    @#rm -rf *.o *.ko *.mod* modules.* Moduele.*

else

obj-m := hello.o

endif
  • = 是最基本的赋值,最后展开的时候才赋值

  • := 是覆盖之前的值,与上面的=不同

  • ?= 是如果没有被赋值过就赋予等号后面的值

  • += 是添加等号后面的值

  • $(shell uname -r) 调用shell执行后面的命令(uname -r),作为变量的值

相关文章

  • Makefile用法记录

    示例一 这个规则表示所有的 .o文件都是依赖与相应的.c或.s文件; $(CC) - 表示引用变量的值 $@ - ...

  • makeFile用法

    案例一: start: @echo "hello" @cat hello.c all: @echo "test--...

  • Makefile编写

    背景 以前学的一些东西需要记录下 Makefile 编写 以自己实际项目来阐述每个的用法 目录结构15324023...

  • makefile的用法

    一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些...

  • Makefile中双竖线的用法

    在Android的makefile中有许多双竖线的用法,比如如下: _vendor_path_placeholde...

  • Makefile之原理概述篇

    前言 Android中涉及了太多的Makefile相关知识,特学习研究记录之。 一、Makefile有什么用途? ...

  • MakeFile基础入门用法简介

    很久以前写的一篇技术备忘了,隐约记得当时是看了APUE 2nd Edition这本书后,下载的源码在CentOS7...

  • 【编译】makefile使用

    本文重在记录makefile的使用方法,不介绍相关原理。注意:所有的makefile指令前面都需要两个 tab 缩...

  • 【一步步学习编写Makefile】Makefile介绍

    本文是学习Makefile的总结与记录,学习自 跟我一起写Makefile 感谢作者与整理者,需要pdf文件请留言...

  • 2-Linux C语言指针与内存-学习笔记

    Linux C语言指针与内存 前面我们对于: c语言的基本用法 makeFile文件的使用 main函数的详解 标...

网友评论

    本文标题:Makefile用法记录

    本文链接:https://www.haomeiwen.com/subject/jbsyjqtx.html