Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Exclude source file in compilation using Makefile

Tags:

c++

makefile

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?

like image 710
domlao Avatar asked Apr 23 '12 07:04

domlao


2 Answers

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))
like image 179
Beta Avatar answered Nov 16 '22 09:11

Beta


use find for it :)

SRC_FILES := $(shell find src/ ! -name "bar.cpp" -name "*.cpp")
like image 18
K1773R Avatar answered Nov 16 '22 10:11

K1773R