You might already know about a little code called SYNOW. SYNOW is a nice code, and good at what it does -- identify lines in the face of massive line blending that characterizes supernova spectra. This project, brute, is a set of C++ header files that make a code like SYNOW, but also makes other codes -- including something that can fit supernova spectra with much less supervision than SYNOW (provided you have the processing power).
Warning -- The above paragraph is text that has come back from the future in a time machine.
You will need the CFITSIO library installed, in particular to read the atomic data files. Maybe that sounds funny, but (a) most users are astronomers and have CFITSIO installed already and (b) it is an extremely flexible format to use and easy to set up. It's also plenty fast and makes me not worry about byte rotation.
2. Lua
This is not really a dependency, but it should be documented here anyway. Lua is a powerful, fast, light-weight, embeddable scripting language (more about Lua). Specifically, brute makes use of the Lua API library, and its source code is included along with the brute source code. NOTE FOR NON-LINUX USERS: you must edit the PLAT variable in the Lua makefile to reflect what platform you are using (i.e., change "linux" to "aix" if that is what you are building on).
Many brute executables use Lua scripts for their configuration -- this gives the user quite a bit of flexibility while also keeping me from having to write a complicated parser for dealing with structured input. Since Lua is distributed under the MIT license, and is thus compatible with the GPL, I distribute Lua with the brute source rather than ask people to install it. I can also control what version of Lua brute builds against, which reduces compatibility issues. Note that none of the Lua API library, compiler, or interpreter will be installed on your system -- the API is only used to compile.