If step 17 depended on step 16, that should have been specified in the Makefile. That is the point of Makefiles - to specify an explicit ordering to dependencies. Using the -j option is very useful when, say, you're building the Linux kernel which has a lot of independent parts, but even it has some dependencies. make is a tool that does what you tell it and if you don't write a Makefile correctly then you can't very well expect that tool to be able to parallelize your build for you.
operator207 said:
At least that was when I started playing around with the option in FreeBSD's make world.
That may be true on Linux, but as I said, and just repeated, this was on FreeBSD doing a
make world (that link has obviously changed from what I used and read back in the late 90's) . Rarely, unless you had made some significant changes to the "world" you did not change anything in the Makefile for making world. This was also back in FreeBSD 3.x and early 4.x. (recent is 7.x) As you can imagine, its been awhile for me doing a make world. I normally do not do a make world anymore, as it has not been needed for what I do. Stability is key in my environment, not "cutting edge" so to speak.
I know the reason for Makefiles, their purpose, and the purpose of the make command. I have since I started compiling from source 10+ years ago.
Just because I do not go into depth on every comment I make, does not mean I am clueless.
It usually means I believe, because of previous comments by other posters, that we are all on a certain knowledge level.
When I was using make world, it was cutting edge, it was when that option to update the system just came out for FreeBSD. It was there in an infant form before, but had become more stable. There were a few times, when depending on what day you decided to do a make world, that you could literally bork your system, and have to spend most of the day fixing it because someone committed some bad code in a Makefile, or somewhere else. One way to keep this from happening, was to do a cvsup on Monday, and then wait till next Monday to make sure their was not any issues. When your admining many machines that are production, but need to be upgraded, but your company will not pay for backup servers to sit in their place while your upgrading, you tend to be a bit more cautious.
Regardless, you are essentially correct, in the fact of what a Makefile is, and how make works. However, if you used make to rebuild FreeBSD back in the 'day', you would have found it to not have been quite as mature as it is now.
note: NOTHING I am stating can be used for Linux as gospel, as I am NOT talking about Linux. True, it may be similar, but you CANNOT take everything you learn on Linux, and directly apply it to FreeBSD. You can take that knowledge, learn from it, and learn how to use FreeBSD, but it is definitely different. I know this, I have administered both for many years. I just prefer FreeBSD. To me FreeBSD is like those really comfortable pair of jeans you love to wear, and your wife loves to hide from you because of the holes in the crotch.