DevGuidelines

From Gnash Project Wiki

Jump to: navigation, search

Contents

Development Guidelines

All work will be done in branches using GIT. The GIT contrib directory script, git-new-workdir will be used to maintain separate source trees, one for each branch. All major branches will be shared ones, either on the internal gnashdev GIT repository, or the primary one on savannah.gnu.org.

All builds will be "vpath" ones, where you create a build directory, and configure from there. After any git pull that changes Makefile.am files, run automake in top level of the source directory. If any macros/*.m4 or configure.ac files change, then run ./autogen.sh in the top level of the source tree. If any files have been renamed, or moved between directories, after running ./autogen.sh in the source tree, cd to the build directory and run make distclean, then reconfigure. You can get the last configuration you used to cut & paste the same thing using head config.log

"make check" must pass before committing any branch to GIT master.

Resources

Xcode

It's possible to mix XCode with the GNU autotools. In XCode, just create a new project, and specify an external build system. Then you can tell it to use make in your configured build tree. Then when you click the Build button, it'll run "make -C [build dir]", and you can still click on the build errors, use the Xcode editor, etc... MacPorts will be used to build the dependent packages Gnash needs.

Win32

For Win32, we'll use Mingw32, which can be run as both a cross compiler, and native on windows without using Cygwin. When developing natively, we'll use Cygwin to run the configure script, but then run gcc with --no-cygwin, which produces standard win32 command line executables.

For either native or cross builds, we'll use the patched sysroot documented on the Cross_building_with_mingw page on this wiki.