SRC_DIR=./src/ OBJ_DIR=./lib/ HDR_DIR=./include/ USR_SRC_DIR=./usr/src/ USR_BIN_DIR=./bin/ #-------------------------------------- #-------------------------------------- SRC_FILES = $(wildcard $(SRC_DIR)*.cpp) OBJ_FILES = $(patsubst $(SRC_DIR)%.cpp,$(OBJ_DIR)%.o,$(SRC_FILES)) USR_FILES = $(wildcard $(USR_SRC_DIR)*.cpp) USR_TARGET = $(patsubst $(USR_SRC_DIR)%.cpp,%,$(USR_FILES)) #-------------------------------------- CC=g++ CCFLAGS=-g -lrt -std=c++11 -pthread EXCL=driver_serial_emulate.o # Uncomment to use virtual serial port. Run 'make clean all' afterwards #EXCL=driver_serial.o .SECONDARY: all: $(USR_TARGET:%=$(USR_BIN_DIR)%) %: $(USR_BIN_DIR)% @echo ---- DONE ---- $(USR_BIN_DIR)%: $(filter-out $(OBJ_DIR)$(EXCL) ,$(OBJ_FILES)) $(USR_SRC_DIR)%.cpp $(CC) $(CCFLAGS) -o $(@) $^ -I./include/ $(OBJ_DIR)%.o: $(SRC_DIR)%.cpp $(CC) $(CCFLAGS) -c -o $@ $< -I$(HDR_DIR) clean: rm $(USR_BIN_DIR)* rm $(OBJ_DIR)*