137 lines
3.9 KiB
Makefile
Executable File
137 lines
3.9 KiB
Makefile
Executable File
###################################
|
|
# License: Modified MIT (NON-AI)
|
|
# Copyright 2025 Timothy Prepscius
|
|
# See the LICENSE file in the root directory for license information.
|
|
###################################
|
|
|
|
#$(info $$PROJECTS is [${PROJECTS}])
|
|
|
|
SRC_C := $(foreach dir,$(PROJECTS),$(wildcard $(dir)/*.c)) $(SRC_C)
|
|
SRC_CPP := $(foreach dir,$(PROJECTS),$(wildcard $(dir)/*.cpp)) $(SRC_CPP)
|
|
SRC_CC := $(foreach dir,$(PROJECTS),$(wildcard $(dir)/*.cc)) $(SRC_CC)
|
|
|
|
SRC_MM := $(foreach dir,$(PROJECTS),$(wildcard $(dir)/*.mm)) $(SRC_MM)
|
|
SRC_M := $(foreach dir,$(PROJECTS),$(wildcard $(dir)/*.m)) $(SRC_M)
|
|
|
|
$(info $$IS_TEST is [${IS_TEST}])
|
|
ifneq (true,$(IS_TEST))
|
|
FILTER_OUT_C := $(FILTER_OUT_C) %Test.c %Tests.c
|
|
FILTER_OUT_CPP := $(FILTER_OUT_CPP) %Test.cpp %Tests.cpp
|
|
FILTER_OUT_MM := $(FILTER_OUT_MM) %Test.mm %Tests.mm
|
|
FILTER_OUT_M := $(FILTER_OUT_M) %Test.m %Tests.m
|
|
endif
|
|
|
|
ifneq ($(FILTER_CPP),)
|
|
SRC_CPP := $(filter $(FILTER_CPP),$(SRC_CPP))
|
|
endif
|
|
SRC_CPP := $(filter-out $(FILTER_OUT_CPP),$(SRC_CPP))
|
|
|
|
ifneq ($(FILTER_C),)
|
|
SRC_C := $(filter $(FILTER_C),$(SRC_C))
|
|
endif
|
|
SRC_C := $(filter-out $(FILTER_OUT_C),$(SRC_C))
|
|
|
|
ifneq ($(FILTER_MM),)
|
|
SRC_MM := $(filter $(FILTER_MM),$(SRC_MM))
|
|
endif
|
|
SRC_MM := $(filter-out $(FILTER_OUT_MM),$(SRC_MM))
|
|
|
|
ifneq ($(FILTER_M),)
|
|
SRC_M := $(filter $(FILTER_M),$(SRC_M))
|
|
endif
|
|
SRC_M := $(filter-out $(FILTER_OUT_M),$(SRC_M))
|
|
|
|
SRC := $(SRC_C) $(SRC_CPP) $(SRC_CC) $(SRC_MM) $(SRC_M) $(SRC)
|
|
SRC_CPP := $(filter %.cpp,$(SRC))
|
|
SRC_C := $(filter %.c,$(SRC))
|
|
SRC_MM := $(filter %.mm,$(SRC))
|
|
SRC_CC := $(filter %.cc,$(SRC))
|
|
SRC_M := $(filter %.m,$(SRC))
|
|
|
|
OBJ := \
|
|
$(SRC_CPP:%.cpp=%.o) \
|
|
$(SRC_CC:%.cc=%.o) \
|
|
$(SRC_MM:%.mm=%.o) \
|
|
$(SRC_C:%.c=%.o) \
|
|
$(SRC_M:%.m=%.o)
|
|
|
|
OBJ := $(patsubst ../%,external/%,$(OBJ))
|
|
OBJ := $(addprefix $(OBJPATH)/,$(OBJ))
|
|
|
|
#$(info $$OBJ is [${OBJ}])
|
|
|
|
############################
|
|
# USE dependencies
|
|
ifeq ($(USE_DEPENDENCIES),1)
|
|
DEPS := $(wildcard $(OBJ:%.o=%.d))
|
|
#$(info $$DEPS is [${DEPS}])
|
|
-include $(DEPS)
|
|
endif
|
|
|
|
PCH := $(SRC_PCH)
|
|
$(info $$PCH is [${PCH}])
|
|
|
|
ifneq ($(strip $(PCH)),)
|
|
BUILD_FLAGS := $(BUILD_FLAGS) -include $(OBJPATH)/Precompile.pch
|
|
endif
|
|
|
|
SHELL := /bin/bash
|
|
|
|
INCPATH += $(foreach d, $(includes), -I$d)
|
|
|
|
$(info $$_FLAGS is [${_FLAGS}])
|
|
|
|
$(OBJPATH)/%.o : %.cpp
|
|
-@mkdir -p $(dir $@)
|
|
@while [ ! -e $(dir $@) ]; do sleep 0.1; done
|
|
$(CPP) $(INCPATH) $(BUILD_FLAGS) $(_FLAGS) $(CPPFLAGS) $< -o $@
|
|
|
|
$(OBJPATH)/%.o : %.cc
|
|
-@mkdir -p $(dir $@)
|
|
@while [ ! -e $(dir $@) ]; do sleep 0.1; done
|
|
$(CPP) $(INCPATH) $(BUILD_FLAGS) $(_FLAGS) $(CPPFLAGS) $< -o $@
|
|
|
|
$(OBJPATH)/%.o : %.mm
|
|
-@mkdir -p $(dir $@)
|
|
@while [ ! -e $(dir $@) ]; do sleep 0.1; done
|
|
$(MM) $(INCPATH) $(BUILD_FLAGS) $(_FLAGS) $(MMFLAGS) $< -o $@
|
|
|
|
$(OBJPATH)/%.o : %.m
|
|
-@mkdir -p $(dir $@)
|
|
@while [ ! -e $(dir $@) ]; do sleep 0.1; done
|
|
$(M) $(INCPATH) $(BUILD_FLAGS) $(_FLAGS) $(MFLAGS) $< -o $@
|
|
|
|
$(OBJPATH)/%.o : %.c
|
|
-@mkdir -p $(dir $@)
|
|
@while [ ! -e $(dir $@) ]; do sleep 0.1; done
|
|
$(CC) $(INCPATH) $(BUILD_FLAGS) $(_FLAGS) $(CFLAGS) $< -o $@
|
|
|
|
## -------------------------------------------
|
|
## for externals (which occur for compile tests)
|
|
## -------------------------------------------
|
|
|
|
$(OBJPATH)/external/%.o : ../%.cpp
|
|
-@mkdir -p $(dir $@)
|
|
@while [ ! -e $(dir $@) ]; do sleep 0.1; done
|
|
$(CPP) $(INCPATH) $(BUILD_FLAGS) $(_FLAGS) $(CPPFLAGS) $< -o $@
|
|
|
|
$(OBJPATH)/external/%.o : ../%.cc
|
|
-@mkdir -p $(dir $@)
|
|
@while [ ! -e $(dir $@) ]; do sleep 0.1; done
|
|
$(CPP) $(INCPATH) $(BUILD_FLAGS) $(_FLAGS) $(CPPFLAGS) $< -o $@
|
|
|
|
$(OBJPATH)/external/%.o : ../%.mm
|
|
-@mkdir -p $(dir $@)
|
|
@while [ ! -e $(dir $@) ]; do sleep 0.1; done
|
|
$(MM) $(INCPATH) $(BUILD_FLAGS) $(_FLAGS) $(MMFLAGS) $< -o $@
|
|
|
|
$(OBJPATH)/external/%.o : ../%.m
|
|
-@mkdir -p $(dir $@)
|
|
@while [ ! -e $(dir $@) ]; do sleep 0.1; done
|
|
$(M) $(INCPATH) $(BUILD_FLAGS) $(_FLAGS) $(MFLAGS) $< -o $@
|
|
|
|
$(OBJPATH)/external/%.o : ../%.c
|
|
-@mkdir -p $(dir $@)
|
|
@while [ ! -e $(dir $@) ]; do sleep 0.1; done
|
|
$(CC) $(INCPATH) $(BUILD_FLAGS) $(_FLAGS) $(CFLAGS) $< -o $@
|