分享自己编写的一个比较通用的makefile

mac2024-02-21  38

############################################################################# # Author: jianwang16 # Date: 2017 06 18 # E-mail: jianwang16@foxmail.com ############################################################################# CROSS_COMPILE ?= TARGET = main #CUR_DIR = $(shell pwd) CUR_DIR = . SRCDIR = $(CUR_DIR)/src INCDIR = $(CUR_DIR)/inc OBJDIR = $(CUR_DIR)/obj LIB = -lwiringPi VPATH = src:inc CC := $(CROSS_COMPILE)gcc CFLAGS = -O2 -I$(INCDIR) -Wall -g -std=c99 # *.c->*.o SOURCES = $(foreach dir,$(SRCDIR),$(wildcard $(dir)/*.c)) #$(info SOURCES:$(SOURCES)) OBJECTS = $(addprefix $(OBJDIR)/,$(patsubst %.c,%.o,$(notdir $(SOURCES)))) #$(info OBJECTS:$(OBJECTS)) all:$(TARGET) $(TARGET):$(OBJECTS) $(info Building $(TARGET) with $(OBJECTS) and $(LIB)...) @$(CC) $(OBJECTS) -o $(TARGET) $(CFLAGS) $(LIB) @chmod a+x $(TARGET) $(info Building $@ finished) $(OBJDIR)/%.o:%.c $(INCLUDES) | $(OBJDIR) $(info Compiling $@ from $<...) @$(CC) -c $(CFLAGS) $< -o $@ $(info Compiling $@ finished) $(info ) $(OBJDIR): @mkdir -p $(OBJDIR) .PHONY:clean all clean: @$(RM) $(OBJDIR)/*.o main

 

最新回复(0)