Releasing Executables and Automatically Building Projects with Release Manager


Kevin Greene



There are some cases where a project needs to be released that needs to be compiled and the executable must be released in lieu of the source code. This can automatically be accomplished by creating and using the buildlist.

The buildlist file is actually named ".buildlist" and is similar to the ".topiclist" file in that it sets global preferences for the project. The .buildlist file contains information regarding what parts of a project to build to generate executables and what part to exclude from release (ie, source code). To use the buildlist, created a .buildlist file at the top level of the project. A Makefile must also be created with make commands to compile and optionally clean up the project during the build. The Makefile must move the executable to appropriate locations for release. (e.g., servlets or some other directory.) The buildlist file must contain a 'build' command at the very minimum. All other lines are optional.


.buildlist file format:

commands are in key = value format

# comments

build = make build command

preclean = makefile clean command run before build command(optional)

postclean = makefile clean command run after build command (optional)

exclude = file path to exclude from release (source directories to not release) [multiple directories separated by commas]



example .buildlist:

#buildlist example

#realclean is make command (ie, make realclean)

preclean = realclean

#make release to build executables

build = release

#make cleanup after build

postclean = cleanup

#do not release sourcecode or test dirs!

exclude = src,test,image/test.gif


makefile environment:

A makefile variable $TARGETHOST will allow creators of the makefile to determine appropriate binaries to release based on target host. $TARGETHOST is the host passed to stage on the command line.


For Release Manager Admin:

The name of the buildlist file is configured in the global config file usually located at /opt/ims/local/dev_release.cfg. The key "BUILDLIST" is set to the desired name. The current name is ".buildlist".