I need a good tutorial for makefiles in general and linux commands too

Over six months ago, I made this post (please do have a look at it, it should explain my background, and why I'm asking such stupid questions): http://www.cplusplus.com/forum/beginner/157585/

where I was helped a lot by JLBorges. Since then, I stopped programming due to lack of time. But now, I'm back to it. What brought me back here is drone.io. This concept of a program being compiled as soon as you push files to github is magical to me. So, I ask you a few things:

1) What exactly is "testing"? I hear that word tossed around a lot.
2) With that out of the way, can you explain what continuous integration exactly is?
3) I was looking around drone.io, and came across the command make, and discovered makefiles. However, I still haven't fully understood them. Can someone link me to a good tutorial on these?
4) I saw commands like "rm" in makefiles, and I recognized those as unix commands. Seeing as I'm using mingw as compiler anyway, I figured it would be nice to learn more unix commands and parameters. Is there a free resource where I can learn more about them?

Thanks for them help.
Last edited on
1) What exactly is "testing"? I hear that word tossed around a lot.


"Testing" is the process of checking that your code does what you meant it to. You provides inputs, you look at what happens, and you check that what happens with various inputs is what you wanted to happen.
Here is the definitive link on make: http://www.gnu.org/software/make/manual/
So that is 1) and 3) out of the way. 2) and 4) anyone?
"Continuous integration" is the practice and philosophy of very frequent complete builds of software (i.e. a complete compilation, link and making ready for installation), generally with associated frequent (and often highly automated) testing, for the purpose of improved quality by ensuring that compilation/linking problems are found very quickly, and a code change that causes tests to fail is also found very quickly.

Compare with the practice of working on code for lengthy periods of time without conducting a complete build of the software.
4)

https://en.wikipedia.org/wiki/List_of_Unix_commands


All I did was Google Unix commands Google and wiki are your best friends :+)

As well as those links, one can google man rm for example, this shows the manual page (man) for the particular command. man is also available from a Unix like shell prompt.
Thanks for 2) Moschops, and 4) TheIdeasMan :)
4)

https://en.wikipedia.org/wiki/List_of_Unix_commands


All I did was Google Unix commands Google and wiki are your best friends :+)

As well as those links, one can google man rm for example, this shows the manual page (man) for the particular command. man is also available from a Unix like shell prompt.


However, how many of these are particularly useful to a programming environment?
However, how many of these are particularly useful to a programming environment?


That's up to you. Use the ones that are useful to you. Don't use the ones that aren't useful to you.

Topic archived. No new replies allowed.