#最外层的makefile负责进入每个子目录去make
PWD := $(shell pwd)
SUBDIRS = algorithms main
.PHONY:all
all:
@list='$(SUBDIRS)';for subdir in $$list; do \
make -C $$subdir M=$(PWD); \
done
.PHONY:clean
clean:
@list='$(SUBDIRS)'; for subdir in $$list; do \
make -C $$subdir M=$(PWD) clean;\
done
rm -f ./target/*
######### Makefile MLD ########
EXTENSION = c
CC = gcc
SUBDIR = src
OBJ = obj
DEP = dep
#CXXFLAGS:编译选项, LDFLAGS:链接选项
CXXFLAGS += -I /home/kouwq/Makefile/binary_search_mul/algorithms/include
#LDFLAGS +=
CXX_SOURCES =$(foreach dir,$(SUBDIR), $(wildcard $(dir)/*.$(EXTENSION)))
CXX_OBJECTS=$(patsubst %.$(EXTENSION), ${OBJ}/%.o, $(notdir $(CXX_SOURCES)))
DEP_FILES =$(patsubst %.$(EXTENSION), ${DEP}/%.d, $(notdir $(CXX_SOURCES)))
.PHONY:all
all: $(CXX_OBJECTS)
${OBJ}/%.o: ${SUBDIR}/%.$(EXTENSION)
$(CC) -c $(CXXFLAGS) $< -o $@
${DEP}/%.d: ${SUBDIR}/%.$(EXTENSION)
$(CC) $(CXXFLAGS) -MM $< | sed -e 1's,^,$(OBJ)/,' > $@
ifneq "$(MAKECMDGOALS)" "clean"
-include $(DEP_FILES)
endif
.PHONY:clean
clean:
-rm -f $(CXX_OBJECTS) $(DEP_FILES)
######### Makefile MLD ########
EXTENSION = c
CC = gcc
EXE = ../target/main
SUBDIR = src
OBJ = ./obj
DEP = ./dep
SUBDIR_A = ../algorithms/src
OBJ_A = ../algorithms/obj
#CXXFLAGS:编译选项, LDFLAGS:链接选项
CXXFLAGS += -I /home/kouwq/Makefile/binary_search_mul/algorithms/include
#LDFLAGS +=
CXX_SOURCES =$(foreach dir,$(SUBDIR), $(wildcard $(dir)/*.$(EXTENSION)))
CXX_OBJECTS=$(patsubst %.$(EXTENSION), ${OBJ}/%.o, $(notdir $(CXX_SOURCES)))
DEP_FILES =$(patsubst %.$(EXTENSION), ${DEP}/%.d, $(notdir $(CXX_SOURCES)))
CXX_SOURCES_A =$(foreach dir,$(SUBDIR_A), $(wildcard $(dir)/*.$(EXTENSION)))
CXX_OBJECTS_A=$(patsubst %.$(EXTENSION), ${OBJ_A}/%.o, $(notdir $(CXX_SOURCES_A)))
CXX_OBJECTS_T=$(CXX_OBJECTS) $(CXX_OBJECTS_A)
$(EXE): $(CXX_OBJECTS_T)
$(CC) $(CXX_OBJECTS_T) -o $(EXE)
${OBJ}/%.o: ${SUBDIR}/%.$(EXTENSION)
$(CC) -c $(CXXFLAGS) $< -o $@
${DEP}/%.d: ${SUBDIR}/%.$(EXTENSION)
$(CC) $(CXXFLAGS) -MM $< | sed -e 1's,^,$(OBJ)/,' > $@
ifneq "$(MAKECMDGOALS)" "clean"
-include $(DEP_FILES)
endif
.PHONY:clean
clean:
rm -f $(CXX_OBJECTS) $(DEP_FILES)