I have this command that compiles my program.

```
c++ -O3 -Wall -shared -pthread -std=c++11 -fPIC $(python3 -m pybind11 --includes) f1.cpp f2.cpp -o exemple$(python3-config --extension-suffix)

```

I created the following Makefile.

```
test:
    c++ -O3 -Wall -shared -pthread -std=c++11 -fPIC $(python3 -m pybind11 --includes) f1.cpp f2.cpp -o exemple$(python3-config --extension-suffix)

```

The command will succeed if ran from terminal but make will fail.

It fails with the error

```
pybind11/pybind11.h: No such file or directory
    1 | #include <pybind11/pybind11.h>

```

This file is supposed to be imported with `$(python3 -m pybind11 --includes)` in the command.

I thought that commands in Makefile were executed much like a bash script.

What are the differences between running a command in bash and running a command in a Makefile ?