Magic Makefile streamlines software build/make process with its powerful management capabilities.
- You don't have to list your source files
- You don't have to manually manage header file dependencies
- You don't have to manually manage test scripts
- You can provide specialized source code for various platforms with ease
One thing to keep in mind is that Magic Makefile does not spend any time interrogating the system for capabilities. As a programmer, you know best about the platforms you support and should write the code accordingly.
The Magic.mak makefile and its companion autobuild.sh script offer several benefits, including building a statically linked library with config-tool, building test programs, tool programs, and gui programs that use the library, running test scripts automatically (possibly under valgrind), and building doxygen docs.
In addition, you can create emacs TAGS and vi tags files from the source code, install the final binaries, development files, or doxygen docs into a system, and build a zip or tgz package of the installable files.
Platform-specific packages can be built with the help of external tools such as epm, nsis, or dpkg, and resultant packages or test results can be shipped to another server via scp. You can also cross-compile the code for mingw32 or embedded linux systems.
Autobuild packages, tests, and ship them from scratch with a single command line and create a qmake.pro file so qt/qmake users can build with their tools. You can build gui programs with WxWidgets, GTK, win32, and Mac OS X Cocoa and build macosx universal programs and libraries targeting 10.4 (Tiger) or 10.5 (Leopard).
To get started with Magic Makefile, make the appropriate subdirs and put your source code in the appropriate directories. Everything else is automatic. Keep in mind that all source code in the src directory will be put into a library, and each source file that has a 'main()' function must live in one of the directories: tools, examples, or tests. The gui directory is still experimental.
To use Magic Makefile, make sure your project is properly set up, including the descriptions, copyright, and author information. Put your h files in the include dir and your c++ files (.cpp or .cc) in the src dir. Any single c++ file test programs go in the tests dir, any single c++ file tools in the tools dir, and any single file c++ example programs in the examples dir.
You can build your project via the *configure* script or the *autobuild.sh* script. Simply make sure all intermediate generated files are put in a separate dir before running the script. For more information, refer to the ../autobuild/autobuild.sh --help command.
Version 5: N/A