Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Self replicating, self configuring makefiles for collision avoidance and flexible partitioned builds

IP.com Disclosure Number: IPCOM000013572D
Original Publication Date: 2000-Mar-01
Included in the Prior Art Database: 2003-Jun-18
Document File: 2 page(s) / 54K

Publishing Venue

IBM

Abstract

In a multi-site development environment in which different development sites are contributing and own different parts of the single codebase and also an environment in which those parts of the code base owned by each site can be built in isolation or when combined with the parts of other sites, new approaches to build technology are required. In particular when we have a lot of Java* source files (but this idea is not limited to Java source files) organised in a hierarchy of directories corresponding to their packages and which different directories (=packages) are owned by different sites a build technology is required that: Can build by site or when files from different sites are combined together Eliminate makefile maintenance costs when adding new or deleting existing files or directories In our case, enforce consistent build options across all files

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 1 of 2

  Self replicating, self configuring makefiles for collision avoidance and flexible partitioned builds

    In a multi-site development environment in which different development sites are contributing and own different parts of the single codebase and also an environment in which those parts of the code base owned by each site can be built in isolation or when combined with the parts of other sites, new approaches to build technology are required. In particular when we have a lot of Java* source files (but this idea is not limited to Java source files) organised in a hierarchy of directories corresponding to their packages and which different directories (=packages) are owned by different sites a build technology is required that:

Can build by site or when files from different sites are combined together

Eliminate makefile maintenance costs when adding new or deleting existing files or directories

In our case, enforce consistent build options across all files


1.


2.


3.

A traditional approach to the problem would be to employ hand crafted makefiles in every directory of the directory hierarchy where each makefile would have hard coded within it the names of each source file to build (compile or whatever) and the names of all sub-directories into which the build should be progressed (by means of a CD (change directory) and an invocation of the makefile in the sub-directory). This approach suffers from problems with multi- site working in that if site A owns files a & b in directory dir1 and site B owns file c in directory dir1 then there is a collision over who owns the makefile for dir1, and what should the hand crafted contents of the dir1 makefile contain in order to allow both sites to build separately and together, a similar problem applies to the list of sub-directories which should be stepped into. The traditional approach also suffers from a need to manually change makefiles if a new file or directory is created or an existing file is deleted from a directory. Improvement 1 is to replace the handcrafted makefiles with "self configuring" makefiles which have no hand crafted element and instead determine the list of source files to build and sub-directories to step into dynamically when they are invoked. In the traditional manner each directory in the directory hierarchy still has its own copy of the self configuring makefile, although now all directories contain an identic...