Software system build method and apparatus that supports multiple users in a software development environment
First Claim
1. A computer software program building apparatus, comprising:
- a computer system, said computer system includes a software building computer program, a memory that includes one or more cache memories, one or more time stamped source files stored in said memory, and one or more time stamped object files stored in said cache memory that include one or more identification strings that identify by name and version number all source files that are constituents of said object file;
a build list that identifies source files by name and version number and explicit object files by name, wherein said source files and said explicit object files comprise the software system to be built;
a source file handler, said source file handler generates a cache link structure and an object file list from said build list, wherein said cache link structure comprises links that associate each said source file listed on said build list to a corresponding source file stored in said cache memory wherein each link includes the time stamp of the corresponding source file, and said object file list comprises the names of explicit object files listed on said build list and potentially usable object file names created from said source file names on said build list; and
an object file handler that generates links to cached object files corresponding to said explicit object files and said potentially usable object files listed on said object file list, wherein each link includes the time stamp of the corresponding object file, and adds said links to said cache link structure.
8 Assignments
0 Petitions
Accused Products
Abstract
The present invention is a method and apparatus for building a software system in a networked software development environment, utilizing existing software version control and build tools such as RCS and MAKE. Source and object files are loaded into network caches shared by multiple users at local workstations. At individual workstations, a cache link structure generated from a user-created build list is provided to the software building program, which then builds the desired software system using links to cached files. The present invention thus minimizes the amount of computing resources required to build software programs by eliminating the need to store multiple local copies of building block software files, and to rebuild object files that may be unchanged from prior builds. A method for maintaining and updating network caches to maximize the efficiency of cache link creation is also disclosed.
104 Citations
9 Claims
-
1. A computer software program building apparatus, comprising:
-
a computer system, said computer system includes a software building computer program, a memory that includes one or more cache memories, one or more time stamped source files stored in said memory, and one or more time stamped object files stored in said cache memory that include one or more identification strings that identify by name and version number all source files that are constituents of said object file;
a build list that identifies source files by name and version number and explicit object files by name, wherein said source files and said explicit object files comprise the software system to be built;
a source file handler, said source file handler generates a cache link structure and an object file list from said build list, wherein said cache link structure comprises links that associate each said source file listed on said build list to a corresponding source file stored in said cache memory wherein each link includes the time stamp of the corresponding source file, and said object file list comprises the names of explicit object files listed on said build list and potentially usable object file names created from said source file names on said build list; and
an object file handler that generates links to cached object files corresponding to said explicit object files and said potentially usable object files listed on said object file list, wherein each link includes the time stamp of the corresponding object file, and adds said links to said cache link structure. - View Dependent Claims (6, 7, 8, 9)
checking for the existence of an identification file that corresponds to an object file stored in said cache memory whose name corresponds in part to said object file listed on said object file list, said identification file further comprises said one or more identification strings from its said corresponding object file; and
reading said identification string from said identification file if said identification file exists, otherwise, reading said identification string from said object file stored in said cache memory whose name corresponds in part to said object file listed on said object file list.
-
-
2. A computer software program building system, comprising:
-
a computer system, said computer system includes a software building computer program, a memory that includes one or more cache memories, one or more time stamped source files stored in said memory, and one or more time stamped object files stored in said cache memory that include one or more identification strings that identify by name and version number all source files that are constituents of said object file;
a build list that identifies source files by name and version number and explicit object files by name, wherein said source files and said explicit object files comprise the software system to be built;
a source file handler, said source file handler generates a cache link structure and an object file list from said build list, wherein said cache link structure comprises links that associate each said source file listed on said build list to a corresponding source file stored in said cache memory, wherein each link includes the time stamp of the corresponding source file, and said object file list comprises the names of explicit object files listed on said build list and potentially usable object file names created from said source file names on said build list; and
an object file handler that generates links to cached object files corresponding to said explicit object files and said potentially usable object files listed on said object file list, wherein each link includes the time stamp of the corresponding object file, and adds said links to said cache link structure.
-
-
3. A method that makes a computer software program building apparatus, comprising:
-
providing a computer system, said computer system includes a software building computer program, a memory that includes one or more cache memories, one or more time stamped source files stored in said memory, and one or more time stamped object files stored in said cache memory that include one or more identification strings that identify by name and version number all source files that are constituents of said object file;
providing a build list that identifies source files by name and version number and explicit object files by name, wherein said source files and said explicit object files comprise the software system to be built;
providing a source file handler, said source file handler generates a cache link structure and an object file list from said build list, wherein said cache link structure comprises links that associate each said source file listed on said build list to a corresponding source file stored in said cache memory, wherein each link includes the time stamp of the corresponding source file, and said object file list comprises the names of explicit object files listed on said build list and potentially usable object file names created from said source file names on said build list; and
providing an object file handler that generates links to cached object files corresponding to said explicit object files and said potentially usable object files listed on said object file list, wherein each link includes the time stamp of the corresponding object file, and adds said links to said cache link structure.
-
-
4. A method that uses a computer software program building apparatus, comprising:
-
providing a computer system, said computer system includes a software building computer program, a memory that includes one or more cache memories, one or more time stamped source files stored in said memory, and one or more time stamped object files stored in said cache memory that include one or more identification strings that identify by name and version number all source files that are constituents of said object file;
creating a build list that identifies source files by name and version number and explicit object files by name, wherein said source files and said explicit object files comprise the software system to be built;
generating a cache link structure and an object file list from said build list using a source file handler, wherein said cache link structure comprises links that associate each said source file listed on said build list to a corresponding source file stored in said cache memory, wherein each link includes the time stamp of the corresponding source file, and said object file list comprises the names of explicit object files listed on said build list and potentially usable object file names created from said source file names on said build list;
generating one or more links to cached object files corresponding to said explicit object files and said potentially usable object files listed on said object file list using an object file handler, wherein each link includes the time stamp of the corresponding object file, said object file handler also adds said links to said cache link structure; and
providing said cache link structure to said software building program.
-
-
5. A program storage device readable by a computer system that tangibly embodies a program of instructions executable by the computer system to perform a method that uses a computer software program building apparatus, said method comprising:
-
providing a computer system, said computer system includes a software building computer program, a memory that includes one or more cache memories, one or more time stamped source files stored in said memory, and one or more time stamped object files stored in said cache memory that include one or more identification strings that identify by name and version number all source files that are constituents of said object file;
creating a build list that identifies source files by name and version number and explicit object files by name, wherein said source files and said explicit object files comprise the software system to be built;
generating a cache link structure and an object file list from said build list using a source file handler, wherein said cache link structure comprises links that associate each said source file listed on said build list to a corresponding source file stored in said cache memory, wherein each link includes the time stamp of the corresponding source file, and said object file list comprises the names of explicit object files listed on said build list and potentially usable object file names created from said source file names on said build list;
generating one or more links to cached object files corresponding to said explicit object files and said potentially usable object files listed on said object file list using an object file handler, wherein each link includes the time stamp of the corresponding object file, said object file handler also adds said links to said cache link structure; and
providing said cache link structure to said software building program.
-
Specification