The primary reason for the interdicting an automated Makefile generation feature in SNiFF+ was to "make" projects more manageable and easier to maintain from a build perspective. When new files or targets are added to a project, developers typically don't want to be involved in the modification of Makefiles because Makefiles tend to be very complex and changing Makefiles could have wide ranging side-effects on the overall system.
SNiFF+ knows which source files belong to a project and extracts include dependencies for browsing purposes. Hence, SNiFF+ could easily use its symbol database together with generic rules about how to build executables, libraries, etc. to generate Makefiles. SNiFF+ can derive file dependencies of source and header files, generate include paths for header files that are part of the project structure, and automatically update Makefiles when new files are added to a project.
Each time a SNiFF+ project is created, a project Makefile is created from a Makefile template,
<language>
.mk
and <platform>
.mk
are located in the
$SNIFF_DIR/make_support
directory.
Features
SNiFF+'s Make Support:
Specifying your compiler
SNiFF+ does not have its own compiler. To compile in SNiFF+, you must have a compiler installed on your computer. By default, the following compiler is specified in your Platform Makefile:
If you use any other compiler to compile SNiFF+ projects, please specify it in your Platform Makefile. For information about Platform Makefiles, see Platform Makefile. The Platform Makefile then uses dependency and include path information from your Project Makefile. For information about Project Makefiles, see Project Makefile. In addition, make sure that your
The gnu compiler
Microsoft Developer Studio
![]() |
Note
| Project Makefiles in a PWE are always symbolic links to those in the accessed SSWE, since Make assumes that Makefiles are stored in local directories.
| |
Sharing object files
SNiFF+ also creates symbolic links in your PWE to shared object files and targets in your team's SOWE. This is done by means of a special help target, symbolic_links.
Before compiling source files and building targets locally in your PWE, we recommend that you first build (run) symbolic_links. This will reduce disk space and speed up compilation time by eliminating unnecessary recompilation and relinking.
To find out how to build symbolic_links, please refer to Building the help targets.
When you build targets in your PWE, SNiFF+'s Make Support first checks whether any object files need to be rebuilt or whether any targets need to be relinked. If so, SNiFF+ removes it and then rebuilds it (same principle applies to a target that needs to be relinked).