Techniques for building code entities

US9703550B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9703550-B1
Application numberUS-58684509-A
CountryUS
Kind codeB1
Filing dateSep 29, 2009
Priority dateSep 29, 2009
Publication dateJul 11, 2017
Grant dateJul 11, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Described are techniques for building a code entity. A plurality of configuration files are selected in accordance with a target and target variant. The target identifies hardware and software platform information about an environment in which the code entity is to be configured for execution. The target variant identifies a software build variation for a particular target. One or more build phases are performed using the plurality of configuration files selected in said selecting. The code entity is generated as an output of performing the one or more build phases where the code entity varies with the target and target variant.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for building a code entity comprising: selecting a plurality of configuration files in accordance with a target and target variant of the code entity, said plurality of configuration files specifying configuration options including any of a compilation option used in at least one compiling operation in a third build phase and a linking option used in at least one linking operation in the third build phase, for different target and target variant combinations; performing at least three build phases using the plurality of configuration files selected in said selecting, wherein each of the plurality of configuration files includes a section of information used in a second of the at least three build phases wherein the section of information of each of the plurality of configuration files includes one or more lines of definitions identifying any of the compilation option and the linking option, and said performing the at least three build phases further includes: performing a first build phase that includes merging information from the plurality of configuration files and generating a first build file and a second build file, wherein the first build phase includes generating merged definitions by merging the one or more lines of definitions identifying any of the compilation option and the linking option from the section of information of each of the plurality of configuration files, the merged definitions being included in the first build file; performing the second build phase using the first build file, wherein said second build phase includes dependency processing identifying a first set of one or more files that have been modified and a second set of one or more files dependent on any file of the first set, wherein said second build phase includes generating, in accordance with the merged definitions from the first build file and responsive to determining one or more modifications to the one or more files of the first set, one or more command lines for any of compiling in accordance with the compilation option and linking in accordance with the linking option one or more files from the first set to generate one or more files of the second set; and performing the third build phase using the second build file, the third build phase including generating each file of the second set dependent on a modified file of the first set, wherein the second build phase invokes any of a compiler and linker in the third build phase responsive to each modification of a file of the first set identified in the dependency processing of the second build phase, said any of a compiler and linker being invoked in the third build phase by executing the one or more command lines generated by the second build phase; and generating the code entity as an output of the at least three build phases, the code entity including executable code and varying with the target and target variant, wherein the code entity is any of a library and an executable code module. 2. The method of claim 1 , wherein said plurality of configuration files includes a first configuration file specifying target specific build configuration options for the target and a second configuration file specifying target variant specific build configuration options for the target variant. 3. The method of claim 2 , wherein the plurality of configuration files includes a third configuration file that is a default configuration file specifying default build configuration options for a plurality of different combinations of targets and target variants where each such combination is identified by a unique pairing of target and target variant. 4. The method of claim 3 , wherein the default configuration file includes a first build configuration option and said target configuration file includes a second build configuration option overriding the first build configuration option. 5. The method of claim 2 , wherein the target variant is one of a plurality of target variants, said plurality of target variants including a debug variant where the code entity for the target is used for debugging on the target and includes one or more debugging options enabled, and a production variant where the code entity for the target is a non-debug variant executed on the target and includes the one or more debugging options disabled. 6. The method of claim 2 , wherein the second build phase uses a make system including a utility which processes statements specifying how to derive an element from each of its dependencies. 7. The method of claim 2 , wherein the second build phase processes statements specifying how to derive an object file from one or more source code files. 8. The method of claim 7 , wherein the second build phase processes statements specifying how to compile the one or more source code files to generate the object file and how to link one or more object files to generate an executable file. 9. The method of claim 2 , wherein said third build phase is invoked by the second build phase. 10. The method of claim 9 , wherein the third build phase includes compiling one or more source files into one or more corresponding object files and the second build file includes statements used by a compiler during said compiling. 11. The method of claim 10 , wherein the first build file includes first information identifying one or more dependencies between at least two files and includes a definition identifying a compiler or a compilation option used in compiling in the third build phase. 12. The method of claim 9 , wherein the first build file and the second build file each include a portion of information as included in at least one of the first configuration file for the target and the second configuration file for the target variant. 13. The method of claim 9 , wherein the first build file and the second build file each include a portion of information that is derived information determined by the first build phase. 14. The method of claim 1 , wherein the target varies with whether the code entity is configured for execution in user space or kernel space. 15. The method of claim 1 , wherein a same set of user files is used in generating code entities for a plurality of different targets, the same set of user files including one or more source files and one or more other files indicating dependencies, said one or more other files having predefined format. 16. The method of claim 1 , wherein said target identifies a combination of a hardware and a software platform upon which the code entity, that is generated as an output of said method, executes, and wherein said target variant identifies a software build variation for a particular target. 17. A non-transitory computer readable medium comprising executable code stored thereon that when executed by a processor, performs a method of building a code entity comprising: selecting a plurality of configuration files in accordance with a target and target variant of the code entity, said plurality of configuration files specifying configuration options including any of a compilation option used in at least one compiling operation in a third build phase and a linking option used in at least one linking operation in the third build phase, for different target and target variant combinations; performing at least three build phases using the plurality of configuration files selected in said selecting, wherein each of the plurality of configuration files includes a section of information used in a second of the at least three build phases wherein the section of information of each of the plurality of co

Assignees

Inventors

Classifications

  • Configuring for program initiating, e.g. using registry, configuration files · CPC title

  • G06F8/71Primary

    Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9703550B1 cover?
Described are techniques for building a code entity. A plurality of configuration files are selected in accordance with a target and target variant. The target identifies hardware and software platform information about an environment in which the code entity is to be configured for execution. The target variant identifies a software build variation for a particular target. One or more build ph…
Who is the assignee on this patent?
Mccann Peter J, Gould Christopher M, Bell Iv Robert J, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F8/71. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 11 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).