Aside from reading the official documentation for make/gcc/etc, I learned most of my development tools by using them. I would recommend installing a Linux distribution, installing the development tools, and then attempting to build several open-source projects. You can browse around on sourceforge.net, for instance, and find an active project that runs on Linux and is written in the language(s) you are interested in. Each project will come with instructions on how to build it. After you are able to successfully build several projects (even from step-by-step instructions), you should start to get a decent grasp of the basic build tools. Once you feel comfortable with building from instructions, try reading through a project's makefiles (easiest to start with a smaller project), using the official make documentation when you need help (codaddict provided links in his post).
The ultimate test of your knowledge would be to take an existing C project that you have and writing a makefile from scratch (or adapting a makefile from another project) that will build it successfully. Start simple, perhaps a single C file. Slowly enlarge your project to several source files, then add a sub-folder containing source files, then try linking to an external library, etc etc. Start simple and work your way up, using makefiles from existing projects as guidelines.
I'm a "learn by doing" kind of person, so this method worked for me. YMMV.