Working with the GoAhead Source Code
GoAhead releases are available as either a binary or source code distribution. It is your choice which distribution you choose, but the source code distribution has several advantages:
- You can recompile GoAhead to optimize it for your specific system environment.
- You can reconfigure GoAhead via configuration options to select the specific feature set you require.
- You can minimize the memory footprint and decrease the securable surface area.
Building GoAhead from Source
The GoAhead source distribution contains all the required source files, headers, tools, and test framework to reconfigure, build, and verify GoAhead. The software supports three tools for building from source.
- Visual Studio or Xcode projects
Building via make is the simplest and quickest way to build. Use make if you want a default build or if you need to integrate GoAhead with an existing make-based build system. Build with MakeMe if you want to customize or configure the software for your system, or if you need to cross-compile for another operating system or architecture. Use the IDE projects for Visual Studio or Xcode if you are most comfortable with these tools and want a default build.
We use the MakeMe tool internally for building and to generate the Makefiles, MakeMe and IDE projects. This cool tool generates clean, efficient makefiles and projects. The MakeMe project documents how to configure these generated Makefiles and projects on the MakeMe site. For full details, read on, courtesy of MakeMe:Building from Source
Accessing the Source Code
The GoAhead source code is hosted in a Git repository. We provide open read-only access. Write access is available to regular contributing developers. To check out the source use this command:
$ git clone http://github.com/embedthis/goahead
You can also view the repository at https://github.com/embedthis/goahead. This is also a convenient way to get the source code. Please use the master branch for the most recent stable snapshot. For daily builds, use the dev branch.