platform/upstream/ninja.git
13 years agoMerge branch 'doxygen'
Evan Martin [Fri, 22 Apr 2011 18:29:36 +0000 (11:29 -0700)]
Merge branch 'doxygen'

13 years agocanonicalize paths on the command-line as they're used
Evan Martin [Fri, 22 Apr 2011 17:58:40 +0000 (10:58 -0700)]
canonicalize paths on the command-line as they're used

I'm not entirely happy with my solution.  I think Ninja should
always use canonicalized paths internally, so we should canonicalize
all paths as we receive them (from the command line and from build
files).  But there are other places where we pass paths around
(like in all the tool commands) and I don't want to add manual calls
to canonicalize in each.

Perhaps the longer-term solution is to add some sort of
GetNodeCanonicalize() to State and then make all of the functions that
work with paths as strings (like Builder::AddTarget or RunBrowsePython)
instead only accept a Node*.

13 years agouse util's CanonicalizePath in parsers as well
Evan Martin [Fri, 22 Apr 2011 17:49:42 +0000 (10:49 -0700)]
use util's CanonicalizePath in parsers as well

13 years agohandle foo//bar in CanonicalizePath
Evan Martin [Fri, 22 Apr 2011 17:45:42 +0000 (10:45 -0700)]
handle foo//bar in CanonicalizePath

13 years agoactually link in util_test
Evan Martin [Fri, 22 Apr 2011 17:36:07 +0000 (10:36 -0700)]
actually link in util_test

13 years agodoxygen_mainpage is not an implicit dependency.
Nicolas Despres [Thu, 21 Apr 2011 05:35:39 +0000 (07:35 +0200)]
doxygen_mainpage is not an implicit dependency.

This way it does not appear in the $in variables.

13 years agoAdjust DOXYGEN_MAINPAGE rule description.
Nicolas Despres [Mon, 18 Apr 2011 19:59:15 +0000 (21:59 +0200)]
Adjust DOXYGEN_MAINPAGE rule description.

Now it prints its output file.

13 years agoTouching README and co triggers rebuild of doxygen.
Nicolas Despres [Mon, 18 Apr 2011 19:31:13 +0000 (21:31 +0200)]
Touching README and co triggers rebuild of doxygen.

Before the main page was an order-only dependency of the doxygen target.
Thus, modification in the README did not triggers rebuild of the doxygen
target as it ought to be.

We have several ways to fix this issue:

1) Make the '$builddir/doxygen_mainpage' target an explicit dependency:

build $builddir/doxygen_mainpage: doxygen_mainpage \
  README HACKING COPYING | $doxygen_mainpage_generator
build doxygen: doxygen doxygen.config $builddir/doxygen_mainpage

2) Duplicate the explicit dependencies of the '$builddir/doxygen_mainpage'
   target as implicit dependencies of the 'doxygen' target and keep the
   '$builddir/doxygen_mainpage' target as an order-only dependency:

build $builddir/doxygen_mainpage: doxygen_mainpage \
  README HACKING COPYING | $doxygen_mainpage_generator
build doxygen: doxygen doxygen.config \
  | README HACKING COPYING \
  || $builddir/doxygen_mainpage

I chose the first option since the doxygen executable only cares about its
first argument.  But it would not be the case for all commands.  So I
think introducing "slice" support for the $in and $out variables would be
great.  This way I could rewrite the 'doxygen' rule this way:

rule doxygen
  command = doxygen $in[0]
  description = DOXYGEN $in[0]

Note that using variables to avoid duplication does not work since the
three files are seen as a single one:

doxygen_deps = README HACKING COPYING

build $builddir/doxygen_mainpage: doxygen_mainpage \
  $doxygen_deps | $doxygen_mainpage_generator
build doxygen: doxygen doxygen.config \
  | $doxygen_deps \
  || $builddir/doxygen_mainpage

Maybe Ninja's philosophy expects the generators to generate the second
option.

13 years agoPrefix error messages by script name.
Nicolas Despres [Mon, 18 Apr 2011 18:52:37 +0000 (20:52 +0200)]
Prefix error messages by script name.

It helps when debugging compilation output to know who is speaking even if
Ninja buffers command output contrary to make.

13 years agoMake include_file() never returns 1.
Nicolas Despres [Mon, 18 Apr 2011 18:49:20 +0000 (20:49 +0200)]
Make include_file() never returns 1.

Otherwise the script is stopped because errexit option is set.

13 years agoCall error() not fatal() if file is not found.
Nicolas Despres [Mon, 18 Apr 2011 07:23:42 +0000 (09:23 +0200)]
Call error() not fatal() if file is not found.

13 years agoAdd missing Apache license header.
Nicolas Despres [Mon, 18 Apr 2011 07:17:44 +0000 (09:17 +0200)]
Add missing Apache license header.

Reviewed by Evan Martin.

13 years agoFix gitignore line for Doxygen.
Nicolas Despres [Mon, 18 Apr 2011 07:16:47 +0000 (09:16 +0200)]
Fix gitignore line for Doxygen.

Reviewed by Evan Martin.

13 years agoMerge branch 'term-fix' of https://github.com/SByer/ninja
Evan Martin [Mon, 18 Apr 2011 03:14:31 +0000 (20:14 -0700)]
Merge branch 'term-fix' of https://github.com/SByer/ninja

13 years agoAdd doxygen support.
Nicolas Despres [Thu, 14 Apr 2011 17:28:46 +0000 (19:28 +0200)]
Add doxygen support.

13 years agoMerge branch 'master' of github.com:martine/ninja
Evan Martin [Fri, 15 Apr 2011 19:26:45 +0000 (12:26 -0700)]
Merge branch 'master' of github.com:martine/ninja

Conflicts:
src/util.cc
src/util.h

13 years agoRemove the declaration of DumpBacktrace.
Thiago Farina [Fri, 15 Apr 2011 19:22:07 +0000 (12:22 -0700)]
Remove the declaration of DumpBacktrace.

This function was removed on 01880fb3a2a13f9071e9729c3a13752846828ed2.

13 years agoMove CanonicalizePath into util.h so it can be shared by the other modules.
Thiago Farina [Sat, 19 Mar 2011 21:53:43 +0000 (18:53 -0300)]
Move CanonicalizePath into util.h so it can be shared by the other modules.

Also add util_test.cc and move the CanonicalizePathTest into there.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
13 years agoFix an exception when terminal is narrow or set for unlimited width
Scott Byer [Thu, 7 Apr 2011 21:16:06 +0000 (14:16 -0700)]
Fix an exception when terminal is narrow or set for unlimited width

13 years agoMerge branch 'errors-reporting' of https://github.com/polrop/ninja
Evan Martin [Tue, 22 Mar 2011 21:29:48 +0000 (14:29 -0700)]
Merge branch 'errors-reporting' of https://github.com/polrop/ninja

13 years agoAdd missing CPP guards.
Nicolas Despres [Tue, 22 Mar 2011 07:48:16 +0000 (08:48 +0100)]
Add missing CPP guards.

13 years agoPrefix error messages with program name.
Nicolas Despres [Mon, 21 Mar 2011 20:43:08 +0000 (21:43 +0100)]
Prefix error messages with program name.

It make it easier while debugging to know who is reporting the error:
Ninja itself or one of the command called by Ninja during the build
process or one of the generator which called Ninja.

13 years agoAdd link to mailing list to README.
Evan Jones [Thu, 17 Mar 2011 13:33:11 +0000 (09:33 -0400)]
Add link to mailing list to README.

13 years agosrc/inline.sh: fix typo
IWATSUKI Hiroyuki [Mon, 14 Mar 2011 01:49:37 +0000 (18:49 -0700)]
src/inline.sh: fix typo

I (Evan) got this wrong in the previous commit.

13 years agoinline.sh: BSD / OS X fixes
IWATSUKI Hiroyuki [Sun, 13 Mar 2011 21:37:54 +0000 (14:37 -0700)]
inline.sh: BSD / OS X fixes

13 years agofix test that relied on pointer values
Evan Martin [Wed, 9 Mar 2011 00:03:13 +0000 (16:03 -0800)]
fix test that relied on pointer values

13 years agomake bad build tests fail earlier
Evan Martin [Tue, 8 Mar 2011 23:54:01 +0000 (15:54 -0800)]
make bad build tests fail earlier

13 years agofix terrible bug in gyp patch
Evan Martin [Sat, 12 Mar 2011 00:00:39 +0000 (16:00 -0800)]
fix terrible bug in gyp patch

13 years agofix bootstrap when build dir already exists
Evan Martin [Mon, 7 Mar 2011 22:42:44 +0000 (14:42 -0800)]
fix bootstrap when build dir already exists

13 years agomove the implementation of GraphViz to source file
Thiago Farina [Mon, 7 Mar 2011 22:34:25 +0000 (14:34 -0800)]
move the implementation of GraphViz to source file

13 years agoupdate gyp patch
Evan Martin [Mon, 7 Mar 2011 22:10:37 +0000 (14:10 -0800)]
update gyp patch

13 years agofix bootstrap by running python inliner too
Evan Martin [Mon, 7 Mar 2011 22:10:00 +0000 (14:10 -0800)]
fix bootstrap by running python inliner too

13 years agoinline.sh: rewrite for better portability
Evan Martin [Mon, 7 Mar 2011 20:52:29 +0000 (12:52 -0800)]
inline.sh: rewrite for better portability

13 years agohandle variable expansion with upper-case characters
Orestis Agathokleous [Mon, 7 Mar 2011 20:25:55 +0000 (12:25 -0800)]
handle variable expansion with upper-case characters

13 years agouse a shell script to inline browse.py
Evan Martin [Sun, 6 Mar 2011 00:27:25 +0000 (16:27 -0800)]
use a shell script to inline browse.py

Relying on the inline-assembly trick was cute but it didn't work on
other platforms; relying on xxd will make us depend on xxd being
available.  Instead, inline browse.py into a header using a shell
script.

(Making this work required fixing multiple bugs in ninja...)

13 years agofiles that have both implicit and explicit edges should be implicit
Evan Martin [Mon, 7 Mar 2011 19:25:10 +0000 (11:25 -0800)]
files that have both implicit and explicit edges should be implicit

This is just deleting some code that was written in anticipation
of staying memory-resident; when loading a depfile, we don't need
to attempt to update existing entries in the dependency list, we
just need to blindly add them.

13 years agocanonicalize paths loaded from depfiles
Evan Martin [Mon, 7 Mar 2011 17:56:18 +0000 (09:56 -0800)]
canonicalize paths loaded from depfiles

If a C file #includes "../foo.cc", then gcc will emit paths like
"bar/../foo.cc" into the dependency file; canonicalize these when we
load the file.

Add a test module for testing the graph dirty recomputation directly,
without all the build classes around it.

13 years agomore comments
Evan Martin [Sun, 6 Mar 2011 01:40:42 +0000 (17:40 -0800)]
more comments

13 years agomove VirtualFileSystem into test.*
Evan Martin [Sun, 6 Mar 2011 01:39:48 +0000 (17:39 -0800)]
move VirtualFileSystem into test.*

13 years agomove test support into test.*
Evan Martin [Sun, 6 Mar 2011 01:36:11 +0000 (17:36 -0800)]
move test support into test.*

13 years agodon't rely on /proc for 'browse' mode
Evan Martin [Sat, 5 Mar 2011 23:32:03 +0000 (15:32 -0800)]
don't rely on /proc for 'browse' mode

Instead, pass the script code via stdin.
We end up with a zombie (the child process that passes the script code)
because we can't ignore SIGCHLD in the parent (the Python code relies on
being able to wait for children), but the zombie dies with the outer
process.  This probably could be avoided by double-forking or other
approaches, but it doesn't seem worth the effort.

13 years agofactor browse out into its own file
Evan Martin [Sat, 5 Mar 2011 21:43:02 +0000 (13:43 -0800)]
factor browse out into its own file

13 years agochdir into a temp dir before disk tests
Evan Martin [Sat, 5 Mar 2011 21:31:46 +0000 (13:31 -0800)]
chdir into a temp dir before disk tests

13 years agodrop use of ar's T flag
Evan Martin [Sat, 5 Mar 2011 21:19:37 +0000 (13:19 -0800)]
drop use of ar's T flag

This produces smaller archives, which is important for large projects
to not clobber your disk cache.  But we are small (the resulting .a is
~3.5mb for debug) and it's not supported on older operating systems.

13 years agolimit output width to prevent line-wrapping
Evan Martin [Wed, 2 Mar 2011 20:22:07 +0000 (12:22 -0800)]
limit output width to prevent line-wrapping

13 years agolinux: simpler way to get number of processors
Evan Martin [Tue, 1 Mar 2011 23:15:54 +0000 (15:15 -0800)]
linux: simpler way to get number of processors

From a conversation with Anatol Pomazau <anatol@google.com>.

13 years agoprint short name of command before dumping command stdout/stderr
Evan Martin [Tue, 1 Mar 2011 22:25:51 +0000 (14:25 -0800)]
print short name of command before dumping command stdout/stderr

Previously we showed the full command line, but with this change
we only show the full command line in verbose mode or when the
command fails.

13 years agodrop DumpBacktrace
Evan Martin [Mon, 28 Feb 2011 20:02:01 +0000 (12:02 -0800)]
drop DumpBacktrace

It wasn't that helpful; simplifies other platforms to just not use it.

13 years agoupdate gyp patch
Evan Martin [Mon, 28 Feb 2011 19:59:29 +0000 (11:59 -0800)]
update gyp patch

(Needed to fix Chrome build.)

13 years agoget the number of CPUs on FreeBSD and OS X via sysctl()
Evan Martin [Mon, 28 Feb 2011 19:47:46 +0000 (11:47 -0800)]
get the number of CPUs on FreeBSD and OS X via sysctl()

From a patch from asmodai@in-nomine.org and dmitry@codingrobots.com.

13 years agobootstrap.sh: FreeBSD support
asmodai [Mon, 28 Feb 2011 19:44:33 +0000 (11:44 -0800)]
bootstrap.sh: FreeBSD support

13 years agodoc phony actions
Evan Martin [Fri, 11 Feb 2011 16:36:44 +0000 (08:36 -0800)]
doc phony actions

13 years agocheck off todo
Evan Martin [Thu, 10 Feb 2011 18:58:29 +0000 (10:58 -0800)]
check off todo

13 years agoFix various typos.
Ralph Giles [Mon, 7 Feb 2011 05:42:58 +0000 (21:42 -0800)]
Fix various typos.

13 years agoMerge branch 'master' of https://github.com/geophree/ninja
Evan Martin [Tue, 8 Feb 2011 18:34:52 +0000 (10:34 -0800)]
Merge branch 'master' of https://github.com/geophree/ninja

13 years agoMerge branch 'master' of neugierig.org:projects/git/ninja
Evan Martin [Tue, 8 Feb 2011 18:24:12 +0000 (10:24 -0800)]
Merge branch 'master' of neugierig.org:projects/git/ninja

13 years agoquick-fix gyp.patch for chrome change
Evan Martin [Tue, 8 Feb 2011 18:23:33 +0000 (10:23 -0800)]
quick-fix gyp.patch for chrome change

13 years agoMerge branch 'master' of https://github.com/martine/ninja
Evan Martin [Mon, 7 Feb 2011 19:15:29 +0000 (11:15 -0800)]
Merge branch 'master' of https://github.com/martine/ninja

13 years agoFix a typo in the manual.
Jeff Hanke [Sun, 6 Feb 2011 21:50:52 +0000 (13:50 -0800)]
Fix a typo in the manual.

13 years agoadd copyrights
Evan Martin [Sun, 6 Feb 2011 19:02:57 +0000 (11:02 -0800)]
add copyrights

13 years agoclean up bootstrap
Evan Martin [Sun, 6 Feb 2011 17:20:07 +0000 (09:20 -0800)]
clean up bootstrap

13 years agocreate builddir on start; fixes bootstrap
Evan Martin [Sun, 6 Feb 2011 17:12:39 +0000 (09:12 -0800)]
create builddir on start; fixes bootstrap

13 years agouse -f for input file, matching make
Evan Martin [Sat, 5 Feb 2011 19:38:36 +0000 (11:38 -0800)]
use -f for input file, matching make

13 years agocheck in demo file
Evan Martin [Sat, 5 Feb 2011 19:37:26 +0000 (11:37 -0800)]
check in demo file

13 years agocheck off todo item
Evan Martin [Sat, 5 Feb 2011 19:34:56 +0000 (11:34 -0800)]
check off todo item

13 years agoinclude command name when printing output, add newline
Evan Martin [Sat, 5 Feb 2011 19:32:40 +0000 (11:32 -0800)]
include command name when printing output, add newline

13 years agofancier output
Evan Martin [Sat, 5 Feb 2011 19:29:04 +0000 (11:29 -0800)]
fancier output

13 years agocleanup phony testing
Evan Martin [Sat, 5 Feb 2011 19:04:47 +0000 (11:04 -0800)]
cleanup phony testing

13 years agomore todo
Evan Martin [Fri, 4 Feb 2011 17:25:44 +0000 (09:25 -0800)]
more todo

13 years agoadd -k flag to todo
Evan Martin [Fri, 4 Feb 2011 05:37:57 +0000 (21:37 -0800)]
add -k flag to todo

13 years agouse builddir for log file
Evan Martin [Fri, 4 Feb 2011 05:36:01 +0000 (21:36 -0800)]
use builddir for log file

13 years agomore todo
Evan Martin [Fri, 4 Feb 2011 05:23:17 +0000 (21:23 -0800)]
more todo

13 years agoignore whitespace in makefiles
Evan Martin [Fri, 4 Feb 2011 00:55:25 +0000 (16:55 -0800)]
ignore whitespace in makefiles

13 years agorefactor parse error messages
Evan Martin [Fri, 4 Feb 2011 00:51:51 +0000 (16:51 -0800)]
refactor parse error messages

13 years agoinclude path when printing a makefile parse error
Evan Martin [Fri, 4 Feb 2011 00:44:30 +0000 (16:44 -0800)]
include path when printing a makefile parse error

13 years agoMerge branch 'master' of neugierig.org:projects/git/ninja
Evan Martin [Thu, 3 Feb 2011 18:40:42 +0000 (10:40 -0800)]
Merge branch 'master' of neugierig.org:projects/git/ninja

13 years agogyp updates
Evan Martin [Thu, 3 Feb 2011 18:40:32 +0000 (10:40 -0800)]
gyp updates

13 years agoadd idea to todo
Evan Martin [Tue, 1 Feb 2011 22:09:42 +0000 (14:09 -0800)]
add idea to todo

13 years agomore todo
Evan Martin [Tue, 1 Feb 2011 18:29:14 +0000 (10:29 -0800)]
more todo

13 years agoimplement parallelism flag
Evan Martin [Tue, 1 Feb 2011 18:18:16 +0000 (10:18 -0800)]
implement parallelism flag

13 years agoparallelism flag, guess based on cpuinfo
Evan Martin [Tue, 1 Feb 2011 18:14:43 +0000 (10:14 -0800)]
parallelism flag, guess based on cpuinfo

13 years agoupdate gyp patch
Evan Martin [Mon, 31 Jan 2011 19:43:19 +0000 (11:43 -0800)]
update gyp patch

13 years agomore docs
Evan Martin [Mon, 31 Jan 2011 17:29:32 +0000 (09:29 -0800)]
more docs

13 years agomention the tools in the docs
Evan Martin [Mon, 31 Jan 2011 17:20:40 +0000 (09:20 -0800)]
mention the tools in the docs

13 years agomove tools into a flag
Evan Martin [Fri, 28 Jan 2011 17:50:58 +0000 (09:50 -0800)]
move tools into a flag

13 years agominor doc updates
Evan Martin [Fri, 28 Jan 2011 17:40:44 +0000 (09:40 -0800)]
minor doc updates

13 years agodoc updates
Evan Martin [Thu, 27 Jan 2011 23:32:01 +0000 (15:32 -0800)]
doc updates

13 years agomore speed claims
Evan Martin [Wed, 26 Jan 2011 18:08:54 +0000 (10:08 -0800)]
more speed claims

13 years agoremove introductory comments from build file
Evan Martin [Wed, 26 Jan 2011 18:05:20 +0000 (10:05 -0800)]
remove introductory comments from build file

It's not intended to be human-friendly, so don't pretend.

13 years agodoc updates
Evan Martin [Wed, 26 Jan 2011 18:02:48 +0000 (10:02 -0800)]
doc updates

13 years agomark browse.py as an implicit dep
Evan Martin [Mon, 24 Jan 2011 18:15:22 +0000 (10:15 -0800)]
mark browse.py as an implicit dep

13 years agomove dry run info inside build log
Evan Martin [Sun, 23 Jan 2011 20:00:55 +0000 (12:00 -0800)]
move dry run info inside build log

13 years agopass config into build log
Evan Martin [Sun, 23 Jan 2011 19:58:01 +0000 (11:58 -0800)]
pass config into build log

13 years agorecompact log files
Evan Martin [Sun, 23 Jan 2011 19:28:38 +0000 (11:28 -0800)]
recompact log files

13 years agodoc updates
Evan Martin [Sun, 23 Jan 2011 05:58:37 +0000 (21:58 -0800)]
doc updates

13 years agoallow implicit deps
Evan Martin [Sun, 23 Jan 2011 04:51:52 +0000 (20:51 -0800)]
allow implicit deps

13 years agofancier elisp, handle "include"
Evan Martin [Sun, 23 Jan 2011 03:05:26 +0000 (19:05 -0800)]
fancier elisp, handle "include"

13 years agotodo updates
Evan Martin [Sun, 23 Jan 2011 02:55:46 +0000 (18:55 -0800)]
todo updates

13 years agorefactor main
Evan Martin [Sun, 23 Jan 2011 00:56:39 +0000 (16:56 -0800)]
refactor main

13 years agocall out ctl-c for quitting
Evan Martin [Sun, 23 Jan 2011 00:39:54 +0000 (16:39 -0800)]
call out ctl-c for quitting