Use of stat instead of d_type from dirent struct.
[ohcount] / src / ohcount.h
1 // ohcount.h written by Mitchell Foral. mitchell<att>caladbolg.net.
2 // See COPYING for license information.
3
4 #ifndef OHCOUNT_H
5 #define OHCOUNT_H
6
7 /**
8  * @mainpage Ohcount
9  *
10  * The Ohloh source code line counter
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License Version 2 as
14  * published by the Free Software Foundation.
15  *
16  * Ohcount is specifically licensed under GPL v2.0, and no later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
25  *
26  * @section overview Overview
27  *
28  * Ohcount is a program for counting lines of source code. It was originally
29  * developed at Ohloh and used to generate the reports at www.ohloh.net
30  *
31  * Ohcount supports multiple languages within a single file: for example a
32  * complex HTML document might include regions of both CSS and Javascript.
33  *
34  * Ohcount has 4 main components:
35  *
36  * @li A detector which determines the primary language family used by a
37  *   particular source file.
38  * @li A parser which provides a line-by-line breakdown of the contents of a
39  *   source file.
40  * @li Another detector which tries to determine the license(s) the source file
41  *   is licensed under.
42  * @li A final detector for gestalts (via the Ruby extension).
43  *
44  * The command line tool allows you to profile individual files or whole
45  * directory trees.
46  *
47  * @section requirements System Requirements
48  *
49  * Ohcount is supported on Mac OSX 10.5 and Ubuntu 6.06 LTS. Other Linux
50  * environments should also work, but your mileage may vary. Windows is not
51  * supported.
52  *
53  * @section download Download
54  *
55  * Ohcount source code is available as a Git repository:
56  *
57  *   git clone git://ohcount.git.sourceforge.net/gitroot/ohcount/ohcount
58  *
59  * @section build Building Ohcount
60  *
61  * In order to build Ohcount, the following is required:
62  *
63  * @li GNU C compiler - http://gcc.gnu.org/
64  * @li Ragel 6.3 or later - http://research.cs.queensu.ca/~thurston/ragel/
65  * @li GNU gperf - http://www.gnu.org/software/gperf/
66  * @li PCRE - http://pcre.sourceforge.net/
67  *
68  * Run the 'build' script to build Ohcount.
69  *
70  * @code
71  * $ ./build
72  * @endcode
73  *
74  * You may then link or copy 'bin/ohcount' to your system's PATH.
75  *
76  * Building the Ruby extension of Ohcount requires:
77  *
78  * @li Ruby - http://ruby-lang.org/
79  * @li Swig - http://swig.org/
80  *
81  * @code
82  * $ ./build ruby
83  * @endcode
84  *
85  * You may then link or copy 'ruby/ohcount.{rb,so}' and 'ruby/gestalt{/,.rb}'
86  * to the appropriate places in your Ruby installation.
87  *
88  * @section start First Steps
89  *
90  * To measure lines of code, simply pass file or directory names to the
91  * bin/ohcount executable:
92  *
93  * @code
94  * $ ohcount helloworld.c
95  * @endcode
96  *
97  * Directories will be probed recursively. If you do not pass any parameters,
98  * the current directory tree will be counted.
99  *
100  * You can use the ohcount 'detect' option to simply determine the language
101  * family of each source file. The files will not be parsed or counted. For
102  * example, to find all of the Ruby files in the current directory tree:
103  *
104  * @code
105  * $ ohcount --detect | grep ^ruby
106  * @endcode
107  *
108  * The 'annotate' option presents a line-by-line accounting of the languages
109  * used in a source code file. For example:
110  *
111  * @code
112  * $ ohcount --annotate ./test/src_dir/php1.php
113  * @endcode
114  *
115  * More options can be found by typing:
116  *
117  * @code
118  * $ ohcount --help
119  * @endcode
120  *
121  * @section docs Additional Documentation
122  *
123  * See the Related Pages tab at the top of the page.
124  *
125  * @section contact Contact Ohloh
126  *
127  * For more information visit the Ohloh website: http://labs.ohloh.net
128  *
129  * You can reach Ohloh via email at: info@ohloh.net
130  */
131
132 #define COMMAND_ANNOTATE 1
133 #define COMMAND_DETECT 2
134 #define COMMAND_HELP 3
135 #define COMMAND_INDIVIDUAL 4
136 #define COMMAND_LICENSES 5
137 #define COMMAND_RAWENTITIES 6
138 #define COMMAND_SUMMARY 7
139
140 #endif