r2 - 15 Mar 2005 - 18:19:26 - JacobElaYou are here: TWiki >  CSDocs Web  > ProgrammingTools

Programming Tools

make: Automatically Rebuild Your Programs

make is a tool to automate the recompilation of your programs. Rules for rebuilding your program are contained in a makefile. When given the right rules, make will only recompile those files that have changed since the last compile.

There are at least two versions of make available on our systems: the vendor supplied make, and GNUmake. /s/std/bin/make is GNU make. Each vendor's make may be a little bit different, but most makefiles should work with any make, unless you use special features.

See Also:

  • make manual pages
  • makedepend: Automatically Generate Makefile Dependency Lists
  • mkmf: Make Makefiles For Your Program

makedepend: Automatically Generate Makefile Dependency Lists

makedepend is a tool to process C and C++ source files and determine which include files each one depends upon. Makedepend can automatically generate the dependency list in your makefiles for use with the make program.

Makedepend reads each sourcefile in sequence and parses it like a C-preprocessor, processing all #include, #define, #undef, #ifdef, #ifndef, #endif, #if and #else directives so that it can correctly tell which #include, directives would be used in a compilation. Any #include, directives can reference files having other #include directives, and pars- ing will occur in these files as well.

The manual page has a good example of how makedepend is used.

See Also:

  • make: Automatically Rebuild Your Programs

mkmf: Make Makefiles For Your Program

mkmf is a tool to automatically generate makefiles for use with the make program.

See Also:

  • make: Automatically Rebuild Your Programs
  • makedepend: Automatically Generate Makefile Dependency Lists

Ctags And Etags: Make Editor "tags" Files For Programs

Editor tags allow the you to jump directly to the declaration of a function, #define, or typedef, while in a text editor.

  • ctags is used with the vi editor, and produces the file tags.
  • etags is used with the emacs editor, and produces the file TAGS.

You need to rebuild the tags file whenever you add or move declarations in your source files.

Ctags and etags work for C and C++, Fortran, Scheme, Lisp, pascal, lex, and yacc source files.

c++filt: C++ Name Demangler

C++ variable names are encoded ("mangled") to include information about type overloading. In order to debug or namelist a C++ object file, it may be necessary to demangle the names first. c++filt is a filter program to demangle C++ names.

It is often very useful to pipe the standard output from the linker to c++filt. This will demangle the names of missing symbols, making it easier for you to tell what is missing.

cdecl And C++decl: Compose And Decypher C/C++ Type Declarations

cdecl and c++decl are tools to help you compose, or decypher C and C++ type declerations.

You can enter an english description of the type you wish to declare, and cdecl will print an appropriate declaration for you. Or, you can type in a declaration that you do not understand, and cdecl will explain it in english.

cxref: Cross Reference C Source Files

cxref reads the named C source files and produces on the standard output a cross reference of all the identifiers and constants in the files.

protoize And Unprotoize: Add And Remove Function Prototypes

protoize is a tool to add ANSI C function prototypes to non-ANSI C programs. This is useful if you are converting existing code to ANSI C.

unprotoize is a tool to remove function prototypes from ANSI C programs.

source-highlight: Convert sorce code into html/ansi files with syntax highlighting

source-highlight is a tool that will take source code from many different languages and will output the source with syntax highlighting into an HTML, XHTML, or ANSI color escaped file.

Command line options for source-highlight can be found in its man page. A list of the supported languages, including Java and C++, can also be found on that page.

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
 
CSL Home
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback