23,217
社区成员




CROSS=arm-linux-
APPNAME=main
#font objs
FONTDIR = ./font
FONT_OBJS += $(FONTDIR)/font13_ASCII.o
FONT_OBJS += $(FONTDIR)/font13B_ASCII.o
FONT_OBJS += $(FONTDIR)/font16_ASCII.o
FONT_OBJS += $(FONTDIR)/font16B_ASCII.o
FONT_OBJS += $(FONTDIR)/font24_ASCII.o
FONT_OBJS += $(FONTDIR)/font24B_ASCII.o
FONT_OBJS += $(FONTDIR)/font32_ASCII.o
FONT_OBJS += $(FONTDIR)/font32B_ASCII.o
FONT_OBJS += $(FONTDIR)/hzk12.o
FONT_OBJS += $(FONTDIR)/hzk16.o
FONT_OBJS += $(FONTDIR)/hzk24.o
#image objs
IMAGEDIR = ./image
IMAGE_OBJS += $(IMAGEDIR)/image_analog.o
IMAGE_OBJS += $(IMAGEDIR)/image_analog_dbm.o
IMAGE_OBJS += $(IMAGEDIR)/image_analog_dbmv.o
IMAGE_OBJS += $(IMAGEDIR)/image_analog_dbuv.o
IMAGE_OBJS += $(IMAGEDIR)/image_buttons_background.o
IMAGE_OBJS += $(IMAGEDIR)/image_background.o
IMAGE_OBJS += $(IMAGEDIR)/image_battery_0.o
IMAGE_OBJS += $(IMAGEDIR)/image_battery_1.o
IMAGE_OBJS += $(IMAGEDIR)/image_battery_2.o
IMAGE_OBJS += $(IMAGEDIR)/image_battery_3.o
IMAGE_OBJS += $(IMAGEDIR)/image_battery_4.o
IMAGE_OBJS += $(IMAGEDIR)/image_time_background.o
IMAGE_OBJS += $(IMAGEDIR)/image_minispec.o
C_OBJS = lcd_tft.o bmp.o i2c.o main.o keyboard.o gpio.o $(FONT_OBJS) $(IMAGE_OBJS)
all: $(APPNAME)
$(APPNAME): $(C_OBJS)
$(CROSS)gcc -lpthread -o $(APPNAME) $(C_OBJS)
main.o:main.c lcd_tft.h bmp.h i2c.h keyboard.h $(FONTDIR)/font.h $(IMAGEDIR)/image.h
$(CROSS)gcc -c main.c
lcd_tft.o:lcd_tft.c lcd_tft.h $(FONTDIR)/font.h
$(CROSS)gcc -c lcd_tft.c
bmp.o:bmp.c bmp.h
$(CROSS)gcc -c bmp.c
i2c.o:i2c.c i2c.h
$(CROSS)gcc -c i2c.c
keyboard.o:keyboard.c i2c.h keyboard.h
$(CROSS)gcc -c keyboard.c
gpio.o:gpio.c gpio.h
$(CROSS)gcc -c gpio.c
$(FONT_OBJS):
cd $(FONTDIR) && $(MAKE)
$(IMAGE_OBJS):
cd $(IMAGEDIR) && $(MAKE)
clean:
rm -vf $(APPNAME) *.o *.*~ *~
cd $(FONTDIR) && make clean
cd $(IMAGEDIR) && make clean
CROSS=arm-linux-
C_OBJS = font13_ASCII.o font13B_ASCII.o font16_ASCII.o font16B_ASCII.o font24_ASCII.o font24B_ASCII.o font32_ASCII.o font32B_ASCII.o hzk12.o hzk16.o hzk24.o
.PHONY:font
font:$(C_OBJS)
font13_ASCII.o:font13_ASCII.c font.h
$(CROSS)gcc -c font13_ASCII.c
font13B_ASCII.o:font13B_ASCII.c font.h
$(CROSS)gcc -c font13B_ASCII.c
font16_ASCII.o:font16_ASCII.c font.h
$(CROSS)gcc -c font16_ASCII.c
font16B_ASCII.o:font16B_ASCII.c font.h
$(CROSS)gcc -c font16B_ASCII.c
font24_ASCII.o:font24_ASCII.c font.h
$(CROSS)gcc -c font24_ASCII.c
font24B_ASCII.o:font24B_ASCII.c font.h
$(CROSS)gcc -c font24B_ASCII.c
font32_ASCII.o:font32_ASCII.c font.h
$(CROSS)gcc -c font32_ASCII.c
font32B_ASCII.o:font32B_ASCII.c font.h
$(CROSS)gcc -c font32B_ASCII.c
hzk12.o:hzk12.c font.h
$(CROSS)gcc -c hzk12.c
hzk16.o:hzk16.c font.h
$(CROSS)gcc -c hzk16.c
hzk24.o:hzk24.c font.h
$(CROSS)gcc -c hzk24.c
.PHONY:clean
clean:
rm -vf *.o *.*~ *~
main.o:main.c lcd_tft.h bmp.h i2c.h keyboard.h $(FONTDIR)/font.h $(IMAGEDIR)/image.h
$(CROSS)gcc -c main.c
cd $(FONTDIR) && $(MAKE)
cd $(IMAGEDIR) && $(MAKE)
这种方法你测试一下呢
#global directory defined
TOPDIR = $(shell pwd)
SRCDIR = $(TOPDIR)/src
LIBDIR = $(TOPDIR)/lib
OBJECTDIR = $(TOPDIR)/build
INCLUDEDIR = $(TOPDIR)/include
#cross compile tools defined
#CROSS_COMPILE ?=
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
RANLIB = $(CROSS_COMPILE)ranlib
#local host tools defined
CP := cp
RM := rm
MKDIR := mkdir
SED := sed
FIND := find
MKDIR := mkdir
XARGS := xargs
VPATH := $(shell ls -AxR $(SRCDIR)| grep ":"| grep -v "\.svn" | grep -v "\.git"| tr -d ':')
SOURCEDIRS := $(VPATH)
#search source file in the current dir
SOURCES := $(foreach subdir,$(SOURCEDIRS),$(wildcard $(subdir)/*.c))
SRCOBJS := $(patsubst %.c,%.o,$(SOURCES))
BUILDOBJS := $(subst $(SRCDIR),$(OBJECTDIR),$(SRCOBJS))
$(OBJECTDIR)/%.o: $(SRCDIR)/%.c
@[ -d $(dir $(subst $(SRCDIR),$(OBJECTDIR),$@)) ] | $(MKDIR) -p $(dir $(subst $(SRCDIR),$(OBJECTDIR),$@))
$(CC) $(CPPFLAGS) $(CFLAGS) -o $(subst $(SRCDIR),$(OBJECTDIR),$@) -c $<
CROSS=arm-linux-
APPNAME=main
FONT_OBJS = font13_ASCII.o font13B_ASCII.o ...#省略,补全
IMAGE_OBJS = image_analog.o image_analog_dbm.o ...#省略,补全
C_OBJS = lcd_tft.o bmp.o i2c.o main.o keyboard.o gpio.o $(FONT_OBJS) $(IMAGE_OBJS)
all: $(APPNAME)
$(APPNAME): $(C_OBJS)
$(CROSS)gcc -lpthread -o $(APPNAME) $(C_OBJS)
main.o:main.c lcd_tft.h bmp.h i2c.h keyboard.h $(FONTDIR)/font.h $(IMAGEDIR)/image.h
$(CROSS)gcc -c main.c
lcd_tft.o:lcd_tft.c lcd_tft.h $(FONTDIR)/font.h
$(CROSS)gcc -c lcd_tft.c
...
#font objs
font13_ASCII.o: ./font/font13_ASCII.c ./font/font.h
$(CROSS)gcc -c ./font/font13_ASCII.c
font13B_ASCII.o: ./font/font13B_ASCII.c ./font/font.h
$(CROSS)gcc -c ./font/font13B_ASCII.c
...
#image objs
image_analog.o: ./image/image_analog.c
$(CROSS)gcc -c ./image/image_analog.c
image_analog_dbm.o: ./image/image_analog_dbm.c
$(CROSS)gcc -c ./image/image_analog_dbm.c
...
...