makefile

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四A/D 接口实验

Makefile解析:

TOPDIR = ../ #表示上层目录

include $(TOPDIR)Rules.mak #上层目录的makefile其中包含了编译规则EXTR A_LIBS += -lpthread #为EXTRA_LIBS追加变量定义..线程函数编译需要

#连接线程的动态库文件

EXEC = $(INSTALL_DIR)/ /ad ./ad #定义目标文件路径

OBJS = term.o #定义依赖文件变量

all: $(EXEC) #Makefile默认从这里执行

$(EXEC): $(OBJS) #初始化文件中的变量推导隐含规则$(CC) $(LDFLAGS) -o $@ $(OBJS) $(EXTRA_LIBS)#初始化文件中的变量推导隐含规则

Install: #安装目标文件伪指令$(EXP_INSTALL) $(EXEC) $(INSTALL_DIR) #安装命令

clean: #clean伪指令

-rm -f $(EXEC) *.elf *.elf2flt *.gdb *.o #clean的命令行

实验五D/A 接口实验

MAKEFILE解释:

#TOPDIR := $(shell cd ..; pwd)

TOPDIR := . #当前目录

#KERNELDIR = /usr/src/linux

#KERNELDIR = /opt/host/armv4l/src/linux

KERNELDIR = /arm2410cl/kernel/linux-2.4.18-2410cl/ #编译驱动模块时需要到内核版本的include文1 件中的Makefile

INCLUDEDIR = $(KERNELDIR)/include

#以下都是定义编译器版本变量

CROSS_COMPILE=armv4l-unknown-linux-

AS =$(CROSS_COMPILE)as

LD =$(CROSS_COMPILE)ld

CC =$(CROSS_COMPILE)gcc

CPP =$(CC) -E

AR =$(CROSS_COMPILE)ar

NM =$(CROSS_COMPILE)nm

STRIP =$(CROSS_COMPILE)strip

OBJCOPY =$(CROSS_COMPILE)objcopy

OBJDUMP =$(CROSS_COMPILE)objdump

#以上都是定义编译器版本变量

CFLAGS += -I.. #定义CFLAGS编译参数

CFLAGS += -Wall -O -D__KERNEL__ -DMODULE -I$(INCLUDEDIR) #追加CFLAGS变量的定义,TARGET = s3c2410-exio.o da_main #定义目标文件的依赖文件

all: $(TARGET) #make默认从这里开始

s3c2410-exio.o:s3c2410-exio.c #定义目标文件的依赖文件

$(CC) -c $(CFLAGS) $^ -o $@ #初始化文件中的变量推导隐含规则,并编译

da_main:da_main.o #定义目标文件的依赖文件

$(CC) $^ -o $@ #初始化文件中的变量推导隐含规则,并编译

clean: #clean伪指令

rm -f *.o *~ core .depend

实验六直流电机

Makefile分析:

TOPDIR = ../ //变量TOPDIR代表顶层目录,赋值为上一层目录include $(TOPDIR)Rules.mak //包含TOPDIR目录中的Rules.mak文件INSTALL_DIR = $(TOPDIR)/bin //安装目录为../bin

EXTR A_LIBS += -lpthread //额外的库lpthread,编译线程程序要用到TARGET = dcm_main //要编译生成的目标

all: $(TARGET)

dcm_main: dcm_main.o // dcm_main是目标,dcm_main.o是依赖$(CC) $(CFLAGS) $^ -o $@

//执行命令:armv4l-unknown-linux-gcc dcm_main.c – o dcm_main

install:

$(EXP_INSTALL) $(TARGET) $(INSTALL_DIR) //执行make install 时执行这命令

clean:

rm -f *.o a.out da *.gdb dcm_main //执行make clean 时清除中间变量

8 字数码管和点阵数码管实验

Makefile:

#TOPDIR := $(shell cd ..; pwd)

TOPDIR := .

#KERNELDIR = /usr/src/linux

#KERNELDIR = /opt/host/armv4l/src/linux

KERNELDIR = /arm2410cl/kernel/linux-2.4.18-2410cl/ #内核源代码路径INCLUDEDIR = $(KERNELDIR)/include #头文件路径

CROSS_COMPILE=armv4l-unknown-linux-

#预定义变量

AS =$(CROSS_COMPILE)as #汇编程序的名称默认为as

LD =$(CROSS_COMPILE)ld #makefile变量赋值

CC =$(CROSS_COMPILE)gcc #C编译器的名称默认为cc

CPP =$(CC) –E #C++编译器的名称默认为g++

AR =$(CROSS_COMPILE)ar #库文件维护程序的名称默认值为ar NM =$(CROSS_COMPILE)nm

STRIP =$(CROSS_COMPILE)strip

OBJCOPY =$(CROSS_COMPILE)objcopy

OBJDUMP =$(CROSS_COMPILE)objdump

#设置C编译器的选项

CFLAGS += -I..

CFLAGS += -Wall -O -D__KERNEL__ -DMODULE -I$(INCLUDEDIR)

TARGET = s3c2410-led.o test_led #需要编译生成的目标文件

all: $(TARGET)

#编译

s3c2410-led.o:s3c2410-led.c

$(CC) -c $(CFLAGS) $^ -o $@

test_led:test_led.o

$(CC) $^ -o $@

#清除

clean:

rm -f *.o *~ core .depend

线程

/* thread.c */

#include

#include

相关文档
最新文档