What does “all” stand for in a makefile?

A build, as Makefile understands it, consists of a lot of targets. For example, to build a project you might need Build file1.o out of file1.c Build file2.o out of file2.c Build file3.o out of file3.c Build executable1 out of file1.o and file3.o Build executable2 out of file2.o If you implemented this workflow with makefile, … Read more

C Makefile – missing seperator. stop

Makefile requires that all “commands” in a rule are indented by one tab. You have, for example, this rule: That is wrong, the command-line should be intended with an actual tab (not spaces) like

Undefined reference maybe makefile is wrong?

The errors that you’re getting are linker errors, telling you that while linking your program the linker can’t find a function named ‘CreateSet’ (etc.). It’s not immediately obvious why that should be the case, because it appears that you’re including “set.o” in the build command. To troubleshoot build problems, it’s often useful to figure out … Read more

Passing additional variables from command line to make

You have several options to set up variables from outside your makefile: From environment – each environment variable is transformed into a makefile variable with the same name and value. You may also want to set -e option (aka –environments-override) on, and your environment variables will override assignments made into makefile (unless these assignments themselves … Read more

makefiles CFLAGS

CFLAGS is a variable that is most commonly used to add arguments to the compiler. In this case, it define macros. So the -DPACKET_LINK is the equivalent of putting #define PACKET_LINK 1 at the top of all .c and .h files in your project. Most likely, you have code inside your project that looks if these macros are defined … Read more

Make error: missing separator

As indicated in the online manual, the most common cause for that error is that lines are indented with spaces when make expects tab characters. Correct where \t is TAB (U+0009) Wrong where each . represents a SPACE (U+0020).