#第一阶段:了解三要素
#(目标):依赖条件
#(命令)
#all:add.c sub.c mul.c dev.c main.c
# gcc add.c sub.c mul.c dev.c main.c -o app
#第二阶段:了解工作原理。自顶向下建立依赖,自下向上执行命令
#app:add.o sub.o mul.o dev.o main.o
# gcc add.o sub.o mul.o dev.o main.o -o app
#add.o:add.c
#sub.o:sub.c
#mul.o:mul.c
#dev.o:dev.c
#main.o:main.c
#第三阶段:增强通用型,可移植性 (makefile特殊变量与变量的定义使用)
# $@(目标) $^(所有依赖) $<(依赖中的第一个)
#VAR=$(wildcard *.c)
#OBJ=$(patsubst %.c,%.o,$(VAR))
#TARGET=app
#$(TARGET):*.o
# gcc $(VAR) -o $@
#%.o:%.c
#.PHONY:clean
#clean:
# -rm -f *.o
# -rm -f app
#text:
# @echo $(VAR)
# @echo $(OBJ)
#第四阶段Makefile
CC=arm-linux-gcc #编译器
CFLAGS=-c -g -Wall #编译参数
CPPFLAGS=-E -D #预处理参数
LDFLAGS=-L./lib -lmycal #加载库,库名
SRC=$(wildcard *.c)
OBJ=$(patsubst %.c,%.o,$(SRC))
TARGET=app
version=1.01
$(TARGET):$(OBJ)
$(CC) $(OBJ) -o $@
%.o:%.c
$(CC) $(CFLAGS) $<
.PHONY:clean
clean:
-rm -f *.o
-rm -f app
distclean:
rm /usr/bin/$(TARGET)
install:
sudo cp $(TARGET) /usr/bin
text:
@echo $(SRC)
@echo $(OBJ)