I’ve got several directories with subdirectories containing c or asm files and I want them all compiled/assembled and then linked. I’m not especially picky where the object files go (e.g. a special bin folder or in the src folder) as long as a make clean removes them all.
The structure would look something like this:
/src
/dir1
/dir1_1
+file1_1.s
+file1_2.s
+file1.s
/dir2
+file2.c
I’m sure there’s some easy way to create a makefile that compiles all files without me having to specify where it should look (compiling all files in one directory is doable with wildcards, but what then?).
If your project is small enough, you might get away with using a single hand-crafted makefile instead of a more sophisticated build system: check out the manual page on transformation functions to see what’s possible.
Your example project could be compiled with the following non-recursive makefile:
However, because
makecan access the shell, you could also use standard unix tools likefindinstead of the somewhat limited builtin functions, eg