You've already forked M5Stack_Linux_Libs
mirror of
https://github.com/m5stack/M5Stack_Linux_Libs.git
synced 2026-05-20 11:01:38 -07:00
107 lines
2.4 KiB
Makefile
107 lines
2.4 KiB
Makefile
|
|
|
|
CROSS =
|
|
CC = $(CROSS)gcc
|
|
CXX = $(CROSS)g++
|
|
|
|
DEBUG =
|
|
CFLAGS = $(DEBUG) -Wall -c -fPIC -Wno-comment
|
|
LDFLAGS = -fPIC -shared -lm
|
|
MV = mv -f
|
|
RM = rm -rf
|
|
LN = ln -sf
|
|
|
|
TARGET = libimlib.so
|
|
|
|
|
|
TOP_PATH = $(shell pwd)
|
|
SRC_PATH = $(TOP_PATH)/src
|
|
|
|
INC_PATH =
|
|
INC_PATH += -I$(TOP_PATH)/include
|
|
|
|
|
|
|
|
MOD_PATH = $(TOP_PATH)/modules
|
|
MOD_LIB_PATH = $(MOD_PATH)/lib
|
|
MOD_INC_PATH = $(MOD_PATH)/include
|
|
|
|
DIRS = $(shell find $(SRC_PATH) -maxdepth 3 -type d)
|
|
FILES = $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cpp))
|
|
|
|
|
|
##########################################################
|
|
# modules
|
|
##########################################################
|
|
modules =
|
|
MODULES_PATH = $(foreach m, $(modules), $(MOD_PATH)/$(m))
|
|
|
|
|
|
##########################################################
|
|
# srcs
|
|
##########################################################
|
|
SRCS_CPP += $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cpp))
|
|
SRCS_CC += $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cc))
|
|
SRCS_C += $(foreach dir, $(DIRS), $(wildcard $(dir)/*.c))
|
|
|
|
|
|
##########################################################
|
|
# objs
|
|
##########################################################
|
|
OBJS_CPP = $(patsubst %.cpp, %.o, $(SRCS_CPP))
|
|
OBJS_CC = $(patsubst %.cc, %.o, $(SRCS_CC))
|
|
OBJS_C = $(patsubst %.c, %.o, $(SRCS_C))
|
|
|
|
##########################################################
|
|
# paths
|
|
##########################################################
|
|
INC_PATH += -I$(MOD_INC_PATH)
|
|
INC_PATH += -I$(MOD_PATH)
|
|
LIB_PATH += -L$(TOP_PATH)/lib
|
|
LIB_PATH += -L$(MOD_LIB_PATH)
|
|
|
|
##########################################################
|
|
# libs
|
|
##########################################################
|
|
|
|
##########################################################
|
|
# building
|
|
##########################################################
|
|
all:$(TARGET)
|
|
|
|
$(TARGET) : $(OBJS_CPP) $(OBJS_CC) $(OBJS_C)
|
|
@ for i in $(MODULES_PATH); \
|
|
do \
|
|
make -C $$i; \
|
|
done
|
|
|
|
$(CXX) $^ -o $@ $(LIB_PATH) $(LIBS) $(LDFLAGS)
|
|
# $(AR) -r libimlib.a $(OBJS_C)
|
|
@ echo Create $(TARGET) ok...
|
|
|
|
$(OBJS_CPP):%.o : %.cpp
|
|
$(CXX) $(CFLAGS) $< -o $@ $(INC_PATH)
|
|
|
|
$(OBJS_CC):%.o : %.cc
|
|
$(CC) $(CFLAGS) $< -o $@ $(INC_PATH)
|
|
|
|
$(OBJS_C):%.o : %.c
|
|
$(CC) $(CFLAGS) $< -o $@ $(INC_PATH)
|
|
|
|
.PHONY : clean
|
|
clean:
|
|
@ $(RM) $(TARGET) $(OBJS_CPP) $(OBJS_CC) $(OBJS_C)
|
|
# @ $(RM) libimlib.a
|
|
@ for i in $(MODULES_PATH); \
|
|
do \
|
|
make clean -C $$i; \
|
|
done
|
|
@echo clean all...
|
|
|
|
clean_o:
|
|
@ $(RM) $(OBJS_CPP) $(OBJS_CC) $(OBJS_C)
|
|
@echo clean all...
|
|
|
|
rebuild :
|
|
make clean
|
|
make
|