Exclude source file in compilation using Makefile

c++, makefile

Solution

If you're using GNU Make, you can use `filter-out`:

SRC_FILES := $(wildcard src/*.cpp)
SRC_FILES := $(filter-out src/bar.cpp, $(SRC_FILES))

Or as one line:

SRC_FILES = $(filter-out src/bar.cpp, $(wildcard src/*.cpp))

Problem

Is it possible to exclude a source file in the compilation process using wildcard function in a Makefile? Like have several source files, ``` src/foo.cpp src/bar.cpp src/... ``` Then in my makefile I have, ``` SRC_FILES = $(wildcard src/*.cpp) ``` But I want to exclude the bar.cpp. Is this possible?

Original source