Skip to content

balena/ohcount

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ohcount

NOTE: THE PRIMARY DOCUMENTATION FOR OHCOUNT IS EXTRACTED FROM SOURCE CODE BY DOXYGEN. FOR THE MOST UP-TO-DATE DOCS, PLEASE SEE BELOW FOR INFO ON BUILDING AND REFERING TO THE DOXYGEN DOCS.

Ohloh/SourceForge's source code line counter.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License Version 2 as published by the Free Software Foundation.

Ohcount is specifically licensed under GPL v2.0, and no later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Overview

Ohcount is a library for counting lines of source code. It was originally developed at Ohloh, and is used to generate the reports at www.ohloh.net.

Ohcount supports multiple languages within a single file: for example, a complex HTML document might include regions of both CSS and JavaScript.

Ohcount has two main components: a detector which determines the primary language family used by a particular source file, and a parser which provides a line-by-line breakdown of the contents of a source file.

Ohcount includes a command line tool that allows you to count individual files or whole directory trees. It also allows you to find source code files by language family, or to create a detailed annotation of an individual source file.

Ohcount includes a Ruby binding which allows you to directly access its language detection features from a Ruby application.

System Requirements

Ohcount is supported on Mac OS X 10.4 and 10.5 and Ubuntu 8.04 LTS. Other Linux environments should also work, but your mileage may vary.

Ohcount does not support Windows.

Ohcount targets Ruby 1.8.6. The build script requires a bash shell. You also need a C compiler to build the native extensions.

Source Code

Ohcount source code is available as a Git repository:

git clone git://github.com/andyverprauskus/ohcount.git

Doc files

To build the more extensive Doxygen docs, do > cd doc > Doxygen Doxyfile

After building the docs, view them with a browser by opening doc/html/index.html. On a mac, you can install Doxygen with "sudo port install Doxygen". On Debian/Ubuntu, install with "sudo apt-get instal doxygen".

Building Ohcount

You will need ragel 6.3 or higher, gperf, bash, cmake (version 2.8.0 or greater), pcre and gcc (version 4.1.2 or greater) to build ohcount. If you want to build some of the language bindings (Ruby and Python), you will need SWIG too. Once you have them, go to the top directory of ohcount and type:

> mkdir ../ohcount_build
> cd ../ohcount_build
> cmake ../ohcount
> make
> make test

Building Ohcount Ruby binding

To build the Ruby extension, enable the flag ENABLE_RUBY in cmake:

> cmake -DENABLE_RUBY=TRUE ../ohcount

Building Ohcount Python binding

To build the Python extension, enable the flag ENABLE_PYTHON in cmake:

> cmake -DENABLE_PYTHON=TRUE ../ohcount

Building Ohcount Python binding on MinGW/MSYS

If you already not done, you will need to create libpythonXX.a from pythonXX.dll of your Python install. For accomplish this, just run:

> python mingw_setup.py

The command below should come after, on the build directory, to make the new libpythonXX.a in effect:

> cmake -DPYTHON_LIBRARY=/path/to/python/libs/libpythonXX.a .

Using Ohcount

Once you've building ohcount, the executable program will be at bin/ohcount. The most basic use is to count lines of code in a directory tree, run: "ohcount" to count the current directory and source code in any child directories

For additional docs, including how to add a new language, see the Doxygen docs

Particularly, for instructions on adding a new language, follow the instructions at doc/html/detector_doc.html Read http://labs.ohloh.net/ohcount/wiki/HowToSubmitPatches for information about having your patch accepted.

Building language wrappers to use ohcount from Ruby or Python

To build the ruby wrapper, run "bash build ruby".

To build the python wrapper, run

> python python/setup.py build
> python python/setup.py install

The python wrapper is new and has only been tested on Gentoo and CentOS. Feedback on it is particularly welcome.

DEPENDENCIES

SWIG, pcre, ragel, gperf, bash, cmake

About

The Ohloh source code line counter Added support for CMake building / Added support for Python extension / Minor bugfixes to support Windows (MinGW/MSYS and maybe Cygwin)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Other 26.8%
  • C 23.3%
  • JavaScript 10.3%
  • Perl 7.9%
  • Ruby 6.2%
  • Python 1.7%
  • Other 23.8%