Files
M5Stack_Linux_Libs/github_source/minicv2/Makefile
T
2024-04-23 16:28:35 +08:00

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