]> git.llucax.com Git - software/makeit.git/log
software/makeit.git
15 years agoRearrange detection of changes in build flags
Leandro Lucarella [Thu, 17 Sep 2009 17:09:29 +0000 (14:09 -0300)]
Rearrange detection of changes in build flags

Move the code to detect flags changes to trigger a rebuild together,
allowing more accurate messages and adding new variables to the list of
variables to monitor for changes to trigger a rebuild.

15 years agoImprove include directory handling
Leandro Lucarella [Thu, 17 Sep 2009 17:07:25 +0000 (14:07 -0300)]
Improve include directory handling

Remove the $J variable, it was useless for now. Rename $I to the more
verbose $(INCLUDE_DIR) since it won't be used very often by the user
(makefile writer nor makefile user).

The include directory symlink is now handled per-project, allowing the
inclusion of sub-project headers more naturally (without requiring to
prefix the parent project name and allowing the sub-project to keep its
original include directory name). The $P variable is not needed anymore
because of this.

The makefiles functions changed a little to allow per-project include
directory making Lib.mak not include any other files; because of that the
"all" rule now uses the "secondary expansion" to calculate the
prerequisites (the $(all) variable has not been populated yet when the
"all" rule is defined).

The Toplevel.mak files are now guarded to avoid multiple inclusions. This
should be not a problem since now the Toplevel.mak should not be changed,
is like an extension to Lib.mak that the user shouldn't mdify unless
he is hacking the build system.

The subproj is now renamed to otherproj to illustrate how the sub-directory
where it is stored doesn't have to match the name of the sub-project.

The pre-compiled headers feature is a little broken for now because the
system includes detection is too weak to differentiate things real system
includes from things included from $(INCLUDE_DIR).

15 years agoMake internal $V flag to store @ when pretty printing
Leandro Lucarella [Thu, 17 Sep 2009 14:20:03 +0000 (11:20 -0300)]
Make internal $V flag to store @ when pretty printing

Verbosity flag ($V variable) let the user decide if he want to see nice
small messages ($V empty) or the standard make output displaying the raw
commands as they are executed ($V non-empty).

Now the meaning of this flag is reversed (and stores "@" when non-empty)
to let the Makefile writer to easily silence commands dependending on the
verbosity flag. When writing a rule, just prepend $V to each action you
want to conditionally silence depending on the verbosity flag.

15 years agoMake subprojects read the Lib.mak from the parent project
Leandro Lucarella [Thu, 17 Sep 2009 13:47:45 +0000 (10:47 -0300)]
Make subprojects read the Lib.mak from the parent project

By moving the Config.mak inclusion to Toplevel.mak we can read the
configuration before anything else, letting the user to change the
top-level path ($T) for example, which can be useful to make the subproject
read the Lib.mak of the parent project for example.

15 years agoMove "all" taget to Lib.mak
Leandro Lucarella [Thu, 17 Sep 2009 13:43:13 +0000 (10:43 -0300)]
Move "all" taget to Lib.mak

To be able to do this, the top-level Build.mak is included in Lib.mak too,
because the $(all) variable should be populated before defining the "all"
target, so it can have $(all) as a prerequisite.

15 years agoInitial import of the all mighty make based build system
Leandro Lucarella [Thu, 17 Sep 2009 13:30:56 +0000 (10:30 -0300)]
Initial import of the all mighty make based build system

This is a test/example of a nice make based build system that support
automatic dependencies, variants, separated build directory, automatic
generation of pre-compiled header, subproject embedding and some other
goodies.

The only important file is Lib.mak, all the rest is just an usage example
and/or test.