POV-Ray : Newsgroups : povray.off-topic : Unix shell : Re: Unix shell Server Time
3 Sep 2024 17:14:56 EDT (-0400)
  Re: Unix shell  
From: Darren New
Date: 29 Jan 2011 15:21:14
Message: <4d4476ba$1@news.povray.org>
Warp wrote:
>> I'm not. I'm just pointing out why Make is so baroque.
> 
>   That claim doesn't make any sense. All IDE project files are like makefiles
> (just with a different format). It's not like a makefile is somewhat special
> and different from any project file.

There are lots of ways in which make is inferior to most of the other build 
tools. For one, the only out-dated-ness information it tracks is file 
timestamps. If you change environment variables, it fails. If you restore an 
older version of an include file, it fails. If you change the source file 
then accidentally change the object file it fails. If you change a file your 
compilation depends on that isn't listed as a dependency (like stdio.h say) 
it fails.

>> The fact that all the 
>> stuff in the makefile is something you can't automate,
> 
>   What do you mean you can't automate? Of course you can. There are tons of
> tools to automatically create makefiles (and makefile rules).

The existence of tools to generate a makefile is exactly the point I'm 
making. At that point, you're no longer using Make. You have a makefile as 
an intermediate step in your compilation. That's not automating something 
with make. That's automating something with a makefile generator.

>> and which in practice 
>> you wide up actually having to compile everything twice, the first time just 
>> to create the makefile.
> 
>   You don't need to "compile" anything to create the makefile rules. You
> simply need to run a subset of the C preprocessor in order to see what
> includes what (this is, afaik, what gcc does when you run it with the -M
> option). It's not like it's an extremely heavy operation.

So you invoke the compiler to create the makefile. You're splitting hairs 
here. If I can't easily create the makefile by looking at the source code 
I'm trying to compile, it's baroque. :-)

>   Besides, you only have to create the rules once. If the dependencies
> don't change, you don't need to create them every time you want to compile.

You have to create the rules every time you change anything that might 
affect the compilation, whether that includes the .c file you're compiling 
or not.

-- 
Darren New, San Diego CA, USA (PST)
  "How did he die?"   "He got shot in the hand."
     "That was fatal?"
          "He was holding a live grenade at the time."


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.