http://www.openembedded.org/api.php?action=feedcontributions&user=Kgilmer&feedformat=atomOpenembedded.org - User contributions [en]2024-03-28T22:42:47ZUser contributionsMediaWiki 1.29.0http://www.openembedded.org/index.php?title=OpenEmbedded_Tools_for_Eclipse_(OTE)&diff=4333OpenEmbedded Tools for Eclipse (OTE)2011-06-29T09:08:11Z<p>Kgilmer: Delete 'current form' section</p>
<hr />
<div>= Overview =<br />
<br />
OpenEmbedded Tools for Eclipse (OTE) is a set of Eclipse plugins to make using OpenEmbedded from within Eclipse possible. This page describes a set of workflows that perform common OpenEmbedded tasks, as well as the current state of development of the plugins.<br />
<br />
= Status =<br />
<br />
OTE is in a beta form. Functionality present within the plugins should work well, but development on them is fairly new. Bugs are expected!<br />
<br />
== Changelog ==<br />
<br />
=== <tt>0.8.5</tt>===<br />
Bug Fixes <br />
* Invalid thread access in console view when starting build. <br />
* No longer use "-b" option in Bitbake to specify build recipe, due to <br />
problems in Bitbake. <br />
<br />
Features <br />
* Deprecate outdated Bug Labs Linux installer option. <br />
* Update OpenEmbedded Dev installer option with newer bitbake and <br />
configuration variables. <br />
<br />
Known Issues <br />
* "Import recipe as project" feature relies on "bitbake -b" option. <br />
In recent Bitbake versions, this feature is broken, so the Eclipse <br />
action is also broken. <br />
<br />
=== <tt>0.7.0</tt> ===<br />
* Numerous fixes in <b>Create Project Wizard</b> to sync to latest OE-Dev install.<br />
<br />
== License ==<br />
<br />
OTE is licensed under the [http://www.eclipse.org/legal/epl-v10.html Eclipse Public License (EPL)]. <br />
<br />
== Source ==<br />
<br />
Sources are available at svn://svn.buglabs.net/ote/trunk.<br />
<br />
== Updatesite ==<br />
<br />
The OTE updatesite, used to install the plugins from within Eclipse:<br />
<br />
http://bugcommunity.com/downloads/files/ote/updatesite/<br />
<br />
= Workflow =<br />
OTE is designed to facilitate a set of typical actions or tasks that an OE developer would do.<br />
<br />
== Install OpenEmbedded ==<br />
1. To install a new copy of OpenEmbedded, select the wizard from the <tt>File -> New... -> Other...</tt> menu.<br />
[[Image:Ote create project wizard 1.png]]<br />
<br />
<br />
2. Next, select the flavor of OpenEmbedded you wish to install.<br />
[[Image:Ote create project wizard 2.png]]<br />
<br />
<br />
3. Now specify configuration parameters. If fields are unfamiliar, leave the defaults and proceed.<br />
[[Image:Ote create project wizard 3.png]]<br />
<br />
<br />
4. Assuming all the necessary system tools are available, the wizard will download sources and configure your new OpenEmbedded install.<br />
<br />
<br />
[[Image:Ote create project wizard 4.png]]<br />
<br />
5. Now by clicking finish, an Eclipse project will be created. It may take a few moments for Eclipse to index all the files in the project. Your workbench should look something like this:<br />
<br />
[[Image:Ote workbench 1.png]]<br />
<br />
== Import Existing OE into Workspace ==<br />
To access the Import Project wizard, select <tt>File -> Import...</tt> and select the <b>Import OpenEmbedded Project</b> wizard from the general dialog like so:<br />
<br />
[[Image:Ote import project wizard 1.png]]<br />
<br />
Next fill in the three fields required for importing the project. <br />
* Name: this is the name of the Eclipse project in your workspace and can be anything.<br />
* Location: this is the base directory of your OpenEmbedded project.<br />
* Init Script: this is the shell script that initializes OE environment variables and updates the path.<br />
<br />
[[Image:Ote_import_project_wizard_2.png]]<br />
<br />
The final wizard page shows the output of what you would see in the terminal after executing <tt>bitbake -e</tt>.<br />
<br />
[[Image:Ote_import_project_wizard_3.png]]<br />
<br />
After clicking finish a new project should be available in your workspace. Depending on your machine it may take some moments for Eclipse to scan the entire set of files. It is important to note that even though the project appears in your Eclipse workspace, the files are accessed from your OE project root. So, modifications to these files will be reflected in your existing OE install.<br />
<br />
== Create Recipe ==<br />
<br />
This simple wizard generates a template recipe file based on fields that are entered by the user. The wizard can be accessed via <tt>File -> New...</tt> and selecting New OpenEmbedded Recipe from the dialog. Here is what the wizard looks like:<br />
<br />
[[Image:Ote create recipe wizard 1.png]]<br />
<br />
Now by entering the fields and selecting <b>Finish</b> a new recipe will be generated. Note that currently the Location field must contain a valid directory, so if you're creating a completely new recipe you'll need to create the directory before running this wizard. Here is an example of a recipe filled out:<br />
<br />
[[Image:Ote create recipe wizard 2.png]]<br />
<br />
After clicking <b>Finish</b> Eclipse will open an editor on the generated file. Here is an example:<br />
<br />
[[Image:Ote create recipe wizard 3.png]]<br />
<br />
From here the user can add necessary details to the recipe for building.<br />
<br />
== Edit Recipe ==<br />
<br />
<br />
<br />
Recipes can be selected in the Navigator view by opening the <tt>recipes</tt> or <tt>packages</tt> directory in your OpenEmbedded install. Any file with a <tt>.bb, .inc</tt> or <tt>.conf</tt> extension will be loaded by the BitBake editor. This editor offers the following features.<br />
=== Find Recipe ===<br />
Eclipse offers a nice file selection dialog that allows for files to be quickly edited without navigating through many folders. This dialog is activated with <tt>ctrl-shift-r</tt>. The 'r' stands for resource, Eclipse terminology for a file. In this dialog begin typing the file you want to edit. Wildcards and regular expressions are supported. Previously edited files are already available. Here is a screenshot of the dialog:<br />
<br />
[[Image:Ote_resource_browser_1.png]]<br />
<br />
=== Syntax Highlighting ===<br />
The recipe file in the editor will color various sections of the recipe. For example comments will be green, variable declarations will be blue.<br />
=== Variable Auto-Completion ===<br />
Some conventional variables are available by hitting <tt>ctrl-space</tt> in the editor window. Here is a screenshot of the context menu:<br />
<br />
[[Image:Ote_edit_recipe_3.png]]<br />
=== Function Templates ===<br />
The bitbake editor will create a template function or <tt>addtask</tt> declaration when selected from the <tt>ctrl-space</tt> menu.<br />
=== Hover-over Variable Information ===<br />
The bitbake editor will show the value of previously declared variables when the mouse is put over them. The appear as tooltip text. Here is an example of this feature:<br />
<br />
[[Image:Ote_edit_recipe_2.png]]<br />
<br />
== Build Recipe ==<br />
<br />
A package can be generated from Eclipse via the toolbar or the context menu. This function essentially calls <b><tt>bitbake -b <selected package></tt></b> to perform the build. The output of the <tt>bitbake</tt> command will be displayed in the console view.<br />
<br />
== Import Recipe Sources as New Project ==<br />
<br />
This allows application developers to create a source project from an OpenEmbedded recipe. This is a simple way to begin modifying a project from within Eclipse. Other Eclipse plugins such as [http://www.eclipse.org/cdt/ CDT (C/C++ development tools)] or [http://pydev.org/ PyDev (Python development tools)] may be used with these imported projects. However automatic integration is not supported from within OTE and adding appropriate project natures will either need to be done from within the respective plugin or manually by editing the <tt>.project</tt> file in your project.<br />
<br />
== Browse OE variables ==<br />
OTE provides a quick way of viewing and searching through BitBake/OE variables. The wizard is activate from the OTE toolbar and looks like this:<br />
<br />
[[Image:Ote variable browser 1.png]]<br />
<br />
= Contact =<br />
Please see the [http://groups.google.com/group/openembedded-tools-for-eclipse OTE Google Group] for questions or problems with OTE.<br />
<br />
[[Category:User]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=OpenEmbedded_Tools_for_Eclipse_(OTE)&diff=4331OpenEmbedded Tools for Eclipse (OTE)2011-06-29T09:06:11Z<p>Kgilmer: Remove version section</p>
<hr />
<div>= Overview =<br />
<br />
OpenEmbedded Tools for Eclipse (OTE) is a set of Eclipse plugins to make using OpenEmbedded from within Eclipse possible. This page describes a set of workflows that perform common OpenEmbedded tasks, as well as the current state of development of the plugins.<br />
<br />
= Status =<br />
<br />
OTE is in a beta form. Functionality present within the plugins should work well, but development on them is fairly new. Bugs are expected!<br />
<br />
== Current Work as of 12/24/09 ==<br />
* Documentation<br />
* Bug Fixes<br />
<br />
== Changelog ==<br />
<br />
=== <tt>0.8.5</tt>===<br />
Bug Fixes <br />
* Invalid thread access in console view when starting build. <br />
* No longer use "-b" option in Bitbake to specify build recipe, due to <br />
problems in Bitbake. <br />
<br />
Features <br />
* Deprecate outdated Bug Labs Linux installer option. <br />
* Update OpenEmbedded Dev installer option with newer bitbake and <br />
configuration variables. <br />
<br />
Known Issues <br />
* "Import recipe as project" feature relies on "bitbake -b" option. <br />
In recent Bitbake versions, this feature is broken, so the Eclipse <br />
action is also broken. <br />
<br />
=== <tt>0.7.0</tt> ===<br />
* Numerous fixes in <b>Create Project Wizard</b> to sync to latest OE-Dev install.<br />
<br />
== License ==<br />
<br />
OTE is licensed under the [http://www.eclipse.org/legal/epl-v10.html Eclipse Public License (EPL)]. <br />
<br />
== Source ==<br />
<br />
Sources are available at svn://svn.buglabs.net/ote/trunk.<br />
<br />
== Updatesite ==<br />
<br />
The OTE updatesite, used to install the plugins from within Eclipse:<br />
<br />
http://bugcommunity.com/downloads/files/ote/updatesite/<br />
<br />
= Workflow =<br />
OTE is designed to facilitate a set of typical actions or tasks that an OE developer would do.<br />
<br />
== Install OpenEmbedded ==<br />
1. To install a new copy of OpenEmbedded, select the wizard from the <tt>File -> New... -> Other...</tt> menu.<br />
[[Image:Ote create project wizard 1.png]]<br />
<br />
<br />
2. Next, select the flavor of OpenEmbedded you wish to install.<br />
[[Image:Ote create project wizard 2.png]]<br />
<br />
<br />
3. Now specify configuration parameters. If fields are unfamiliar, leave the defaults and proceed.<br />
[[Image:Ote create project wizard 3.png]]<br />
<br />
<br />
4. Assuming all the necessary system tools are available, the wizard will download sources and configure your new OpenEmbedded install.<br />
<br />
<br />
[[Image:Ote create project wizard 4.png]]<br />
<br />
5. Now by clicking finish, an Eclipse project will be created. It may take a few moments for Eclipse to index all the files in the project. Your workbench should look something like this:<br />
<br />
[[Image:Ote workbench 1.png]]<br />
<br />
== Import Existing OE into Workspace ==<br />
To access the Import Project wizard, select <tt>File -> Import...</tt> and select the <b>Import OpenEmbedded Project</b> wizard from the general dialog like so:<br />
<br />
[[Image:Ote import project wizard 1.png]]<br />
<br />
Next fill in the three fields required for importing the project. <br />
* Name: this is the name of the Eclipse project in your workspace and can be anything.<br />
* Location: this is the base directory of your OpenEmbedded project.<br />
* Init Script: this is the shell script that initializes OE environment variables and updates the path.<br />
<br />
[[Image:Ote_import_project_wizard_2.png]]<br />
<br />
The final wizard page shows the output of what you would see in the terminal after executing <tt>bitbake -e</tt>.<br />
<br />
[[Image:Ote_import_project_wizard_3.png]]<br />
<br />
After clicking finish a new project should be available in your workspace. Depending on your machine it may take some moments for Eclipse to scan the entire set of files. It is important to note that even though the project appears in your Eclipse workspace, the files are accessed from your OE project root. So, modifications to these files will be reflected in your existing OE install.<br />
<br />
== Create Recipe ==<br />
<br />
This simple wizard generates a template recipe file based on fields that are entered by the user. The wizard can be accessed via <tt>File -> New...</tt> and selecting New OpenEmbedded Recipe from the dialog. Here is what the wizard looks like:<br />
<br />
[[Image:Ote create recipe wizard 1.png]]<br />
<br />
Now by entering the fields and selecting <b>Finish</b> a new recipe will be generated. Note that currently the Location field must contain a valid directory, so if you're creating a completely new recipe you'll need to create the directory before running this wizard. Here is an example of a recipe filled out:<br />
<br />
[[Image:Ote create recipe wizard 2.png]]<br />
<br />
After clicking <b>Finish</b> Eclipse will open an editor on the generated file. Here is an example:<br />
<br />
[[Image:Ote create recipe wizard 3.png]]<br />
<br />
From here the user can add necessary details to the recipe for building.<br />
<br />
== Edit Recipe ==<br />
<br />
<br />
<br />
Recipes can be selected in the Navigator view by opening the <tt>recipes</tt> or <tt>packages</tt> directory in your OpenEmbedded install. Any file with a <tt>.bb, .inc</tt> or <tt>.conf</tt> extension will be loaded by the BitBake editor. This editor offers the following features.<br />
=== Find Recipe ===<br />
Eclipse offers a nice file selection dialog that allows for files to be quickly edited without navigating through many folders. This dialog is activated with <tt>ctrl-shift-r</tt>. The 'r' stands for resource, Eclipse terminology for a file. In this dialog begin typing the file you want to edit. Wildcards and regular expressions are supported. Previously edited files are already available. Here is a screenshot of the dialog:<br />
<br />
[[Image:Ote_resource_browser_1.png]]<br />
<br />
=== Syntax Highlighting ===<br />
The recipe file in the editor will color various sections of the recipe. For example comments will be green, variable declarations will be blue.<br />
=== Variable Auto-Completion ===<br />
Some conventional variables are available by hitting <tt>ctrl-space</tt> in the editor window. Here is a screenshot of the context menu:<br />
<br />
[[Image:Ote_edit_recipe_3.png]]<br />
=== Function Templates ===<br />
The bitbake editor will create a template function or <tt>addtask</tt> declaration when selected from the <tt>ctrl-space</tt> menu.<br />
=== Hover-over Variable Information ===<br />
The bitbake editor will show the value of previously declared variables when the mouse is put over them. The appear as tooltip text. Here is an example of this feature:<br />
<br />
[[Image:Ote_edit_recipe_2.png]]<br />
<br />
== Build Recipe ==<br />
<br />
A package can be generated from Eclipse via the toolbar or the context menu. This function essentially calls <b><tt>bitbake -b <selected package></tt></b> to perform the build. The output of the <tt>bitbake</tt> command will be displayed in the console view.<br />
<br />
== Import Recipe Sources as New Project ==<br />
<br />
This allows application developers to create a source project from an OpenEmbedded recipe. This is a simple way to begin modifying a project from within Eclipse. Other Eclipse plugins such as [http://www.eclipse.org/cdt/ CDT (C/C++ development tools)] or [http://pydev.org/ PyDev (Python development tools)] may be used with these imported projects. However automatic integration is not supported from within OTE and adding appropriate project natures will either need to be done from within the respective plugin or manually by editing the <tt>.project</tt> file in your project.<br />
<br />
== Browse OE variables ==<br />
OTE provides a quick way of viewing and searching through BitBake/OE variables. The wizard is activate from the OTE toolbar and looks like this:<br />
<br />
[[Image:Ote variable browser 1.png]]<br />
<br />
= Contact =<br />
Please see the [http://groups.google.com/group/openembedded-tools-for-eclipse OTE Google Group] for questions or problems with OTE.<br />
<br />
[[Category:User]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=OpenEmbedded_Tools_for_Eclipse_(OTE)&diff=4329OpenEmbedded Tools for Eclipse (OTE)2011-06-29T09:04:44Z<p>Kgilmer: Add 0.8.5 version to changelog</p>
<hr />
<div>= Overview =<br />
<br />
OpenEmbedded Tools for Eclipse (OTE) is a set of Eclipse plugins to make using OpenEmbedded from within Eclipse possible. This page describes a set of workflows that perform common OpenEmbedded tasks, as well as the current state of development of the plugins.<br />
<br />
= Status =<br />
<br />
OTE is in a beta form. Functionality present within the plugins should work well, but development on them is fairly new. Bugs are expected!<br />
<br />
== Current Work as of 12/24/09 ==<br />
* Documentation<br />
* Bug Fixes<br />
<br />
== Version ==<br />
<br />
Current available version is <tt>0.7.0</tt>.<br />
<br />
== Changelog ==<br />
<br />
=== <tt>0.8.5</tt>===<br />
Bug Fixes <br />
* Invalid thread access in console view when starting build. <br />
* No longer use "-b" option in Bitbake to specify build recipe, due to <br />
problems in Bitbake. <br />
<br />
Features <br />
* Deprecate outdated Bug Labs Linux installer option. <br />
* Update OpenEmbedded Dev installer option with newer bitbake and <br />
configuration variables. <br />
<br />
Known Issues <br />
* "Import recipe as project" feature relies on "bitbake -b" option. <br />
In recent Bitbake versions, this feature is broken, so the Eclipse <br />
action is also broken. <br />
<br />
=== <tt>0.7.0</tt> ===<br />
* Numerous fixes in <b>Create Project Wizard</b> to sync to latest OE-Dev install.<br />
<br />
== License ==<br />
<br />
OTE is licensed under the [http://www.eclipse.org/legal/epl-v10.html Eclipse Public License (EPL)]. <br />
<br />
== Source ==<br />
<br />
Sources are available at svn://svn.buglabs.net/ote/trunk.<br />
<br />
== Updatesite ==<br />
<br />
The OTE updatesite, used to install the plugins from within Eclipse:<br />
<br />
http://bugcommunity.com/downloads/files/ote/updatesite/<br />
<br />
= Workflow =<br />
OTE is designed to facilitate a set of typical actions or tasks that an OE developer would do.<br />
<br />
== Install OpenEmbedded ==<br />
1. To install a new copy of OpenEmbedded, select the wizard from the <tt>File -> New... -> Other...</tt> menu.<br />
[[Image:Ote create project wizard 1.png]]<br />
<br />
<br />
2. Next, select the flavor of OpenEmbedded you wish to install.<br />
[[Image:Ote create project wizard 2.png]]<br />
<br />
<br />
3. Now specify configuration parameters. If fields are unfamiliar, leave the defaults and proceed.<br />
[[Image:Ote create project wizard 3.png]]<br />
<br />
<br />
4. Assuming all the necessary system tools are available, the wizard will download sources and configure your new OpenEmbedded install.<br />
<br />
<br />
[[Image:Ote create project wizard 4.png]]<br />
<br />
5. Now by clicking finish, an Eclipse project will be created. It may take a few moments for Eclipse to index all the files in the project. Your workbench should look something like this:<br />
<br />
[[Image:Ote workbench 1.png]]<br />
<br />
== Import Existing OE into Workspace ==<br />
To access the Import Project wizard, select <tt>File -> Import...</tt> and select the <b>Import OpenEmbedded Project</b> wizard from the general dialog like so:<br />
<br />
[[Image:Ote import project wizard 1.png]]<br />
<br />
Next fill in the three fields required for importing the project. <br />
* Name: this is the name of the Eclipse project in your workspace and can be anything.<br />
* Location: this is the base directory of your OpenEmbedded project.<br />
* Init Script: this is the shell script that initializes OE environment variables and updates the path.<br />
<br />
[[Image:Ote_import_project_wizard_2.png]]<br />
<br />
The final wizard page shows the output of what you would see in the terminal after executing <tt>bitbake -e</tt>.<br />
<br />
[[Image:Ote_import_project_wizard_3.png]]<br />
<br />
After clicking finish a new project should be available in your workspace. Depending on your machine it may take some moments for Eclipse to scan the entire set of files. It is important to note that even though the project appears in your Eclipse workspace, the files are accessed from your OE project root. So, modifications to these files will be reflected in your existing OE install.<br />
<br />
== Create Recipe ==<br />
<br />
This simple wizard generates a template recipe file based on fields that are entered by the user. The wizard can be accessed via <tt>File -> New...</tt> and selecting New OpenEmbedded Recipe from the dialog. Here is what the wizard looks like:<br />
<br />
[[Image:Ote create recipe wizard 1.png]]<br />
<br />
Now by entering the fields and selecting <b>Finish</b> a new recipe will be generated. Note that currently the Location field must contain a valid directory, so if you're creating a completely new recipe you'll need to create the directory before running this wizard. Here is an example of a recipe filled out:<br />
<br />
[[Image:Ote create recipe wizard 2.png]]<br />
<br />
After clicking <b>Finish</b> Eclipse will open an editor on the generated file. Here is an example:<br />
<br />
[[Image:Ote create recipe wizard 3.png]]<br />
<br />
From here the user can add necessary details to the recipe for building.<br />
<br />
== Edit Recipe ==<br />
<br />
<br />
<br />
Recipes can be selected in the Navigator view by opening the <tt>recipes</tt> or <tt>packages</tt> directory in your OpenEmbedded install. Any file with a <tt>.bb, .inc</tt> or <tt>.conf</tt> extension will be loaded by the BitBake editor. This editor offers the following features.<br />
=== Find Recipe ===<br />
Eclipse offers a nice file selection dialog that allows for files to be quickly edited without navigating through many folders. This dialog is activated with <tt>ctrl-shift-r</tt>. The 'r' stands for resource, Eclipse terminology for a file. In this dialog begin typing the file you want to edit. Wildcards and regular expressions are supported. Previously edited files are already available. Here is a screenshot of the dialog:<br />
<br />
[[Image:Ote_resource_browser_1.png]]<br />
<br />
=== Syntax Highlighting ===<br />
The recipe file in the editor will color various sections of the recipe. For example comments will be green, variable declarations will be blue.<br />
=== Variable Auto-Completion ===<br />
Some conventional variables are available by hitting <tt>ctrl-space</tt> in the editor window. Here is a screenshot of the context menu:<br />
<br />
[[Image:Ote_edit_recipe_3.png]]<br />
=== Function Templates ===<br />
The bitbake editor will create a template function or <tt>addtask</tt> declaration when selected from the <tt>ctrl-space</tt> menu.<br />
=== Hover-over Variable Information ===<br />
The bitbake editor will show the value of previously declared variables when the mouse is put over them. The appear as tooltip text. Here is an example of this feature:<br />
<br />
[[Image:Ote_edit_recipe_2.png]]<br />
<br />
== Build Recipe ==<br />
<br />
A package can be generated from Eclipse via the toolbar or the context menu. This function essentially calls <b><tt>bitbake -b <selected package></tt></b> to perform the build. The output of the <tt>bitbake</tt> command will be displayed in the console view.<br />
<br />
== Import Recipe Sources as New Project ==<br />
<br />
This allows application developers to create a source project from an OpenEmbedded recipe. This is a simple way to begin modifying a project from within Eclipse. Other Eclipse plugins such as [http://www.eclipse.org/cdt/ CDT (C/C++ development tools)] or [http://pydev.org/ PyDev (Python development tools)] may be used with these imported projects. However automatic integration is not supported from within OTE and adding appropriate project natures will either need to be done from within the respective plugin or manually by editing the <tt>.project</tt> file in your project.<br />
<br />
== Browse OE variables ==<br />
OTE provides a quick way of viewing and searching through BitBake/OE variables. The wizard is activate from the OTE toolbar and looks like this:<br />
<br />
[[Image:Ote variable browser 1.png]]<br />
<br />
= Contact =<br />
Please see the [http://groups.google.com/group/openembedded-tools-for-eclipse OTE Google Group] for questions or problems with OTE.<br />
<br />
[[Category:User]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=OpenEmbedded_Tools_for_Eclipse_(OTE)&diff=4327OpenEmbedded Tools for Eclipse (OTE)2011-06-29T09:01:36Z<p>Kgilmer: /* Contact */</p>
<hr />
<div>= Overview =<br />
<br />
OpenEmbedded Tools for Eclipse (OTE) is a set of Eclipse plugins to make using OpenEmbedded from within Eclipse possible. This page describes a set of workflows that perform common OpenEmbedded tasks, as well as the current state of development of the plugins.<br />
<br />
= Status =<br />
<br />
OTE is in a beta form. Functionality present within the plugins should work well, but development on them is fairly new. Bugs are expected!<br />
<br />
== Current Work as of 12/24/09 ==<br />
* Documentation<br />
* Bug Fixes<br />
<br />
== Version ==<br />
<br />
Current available version is <tt>0.7.0</tt>.<br />
<br />
== Changelog ==<br />
<br />
=== <tt>0.7.0</tt> ===<br />
* Numerous fixes in <b>Create Project Wizard</b> to sync to latest OE-Dev install.<br />
<br />
== License ==<br />
<br />
OTE is licensed under the [http://www.eclipse.org/legal/epl-v10.html Eclipse Public License (EPL)]. <br />
<br />
== Source ==<br />
<br />
Sources are available at svn://svn.buglabs.net/ote/trunk.<br />
<br />
== Updatesite ==<br />
<br />
The OTE updatesite, used to install the plugins from within Eclipse:<br />
<br />
http://bugcommunity.com/downloads/files/ote/updatesite/<br />
<br />
= Workflow =<br />
OTE is designed to facilitate a set of typical actions or tasks that an OE developer would do.<br />
<br />
== Install OpenEmbedded ==<br />
1. To install a new copy of OpenEmbedded, select the wizard from the <tt>File -> New... -> Other...</tt> menu.<br />
[[Image:Ote create project wizard 1.png]]<br />
<br />
<br />
2. Next, select the flavor of OpenEmbedded you wish to install.<br />
[[Image:Ote create project wizard 2.png]]<br />
<br />
<br />
3. Now specify configuration parameters. If fields are unfamiliar, leave the defaults and proceed.<br />
[[Image:Ote create project wizard 3.png]]<br />
<br />
<br />
4. Assuming all the necessary system tools are available, the wizard will download sources and configure your new OpenEmbedded install.<br />
<br />
<br />
[[Image:Ote create project wizard 4.png]]<br />
<br />
5. Now by clicking finish, an Eclipse project will be created. It may take a few moments for Eclipse to index all the files in the project. Your workbench should look something like this:<br />
<br />
[[Image:Ote workbench 1.png]]<br />
<br />
== Import Existing OE into Workspace ==<br />
To access the Import Project wizard, select <tt>File -> Import...</tt> and select the <b>Import OpenEmbedded Project</b> wizard from the general dialog like so:<br />
<br />
[[Image:Ote import project wizard 1.png]]<br />
<br />
Next fill in the three fields required for importing the project. <br />
* Name: this is the name of the Eclipse project in your workspace and can be anything.<br />
* Location: this is the base directory of your OpenEmbedded project.<br />
* Init Script: this is the shell script that initializes OE environment variables and updates the path.<br />
<br />
[[Image:Ote_import_project_wizard_2.png]]<br />
<br />
The final wizard page shows the output of what you would see in the terminal after executing <tt>bitbake -e</tt>.<br />
<br />
[[Image:Ote_import_project_wizard_3.png]]<br />
<br />
After clicking finish a new project should be available in your workspace. Depending on your machine it may take some moments for Eclipse to scan the entire set of files. It is important to note that even though the project appears in your Eclipse workspace, the files are accessed from your OE project root. So, modifications to these files will be reflected in your existing OE install.<br />
<br />
== Create Recipe ==<br />
<br />
This simple wizard generates a template recipe file based on fields that are entered by the user. The wizard can be accessed via <tt>File -> New...</tt> and selecting New OpenEmbedded Recipe from the dialog. Here is what the wizard looks like:<br />
<br />
[[Image:Ote create recipe wizard 1.png]]<br />
<br />
Now by entering the fields and selecting <b>Finish</b> a new recipe will be generated. Note that currently the Location field must contain a valid directory, so if you're creating a completely new recipe you'll need to create the directory before running this wizard. Here is an example of a recipe filled out:<br />
<br />
[[Image:Ote create recipe wizard 2.png]]<br />
<br />
After clicking <b>Finish</b> Eclipse will open an editor on the generated file. Here is an example:<br />
<br />
[[Image:Ote create recipe wizard 3.png]]<br />
<br />
From here the user can add necessary details to the recipe for building.<br />
<br />
== Edit Recipe ==<br />
<br />
<br />
<br />
Recipes can be selected in the Navigator view by opening the <tt>recipes</tt> or <tt>packages</tt> directory in your OpenEmbedded install. Any file with a <tt>.bb, .inc</tt> or <tt>.conf</tt> extension will be loaded by the BitBake editor. This editor offers the following features.<br />
=== Find Recipe ===<br />
Eclipse offers a nice file selection dialog that allows for files to be quickly edited without navigating through many folders. This dialog is activated with <tt>ctrl-shift-r</tt>. The 'r' stands for resource, Eclipse terminology for a file. In this dialog begin typing the file you want to edit. Wildcards and regular expressions are supported. Previously edited files are already available. Here is a screenshot of the dialog:<br />
<br />
[[Image:Ote_resource_browser_1.png]]<br />
<br />
=== Syntax Highlighting ===<br />
The recipe file in the editor will color various sections of the recipe. For example comments will be green, variable declarations will be blue.<br />
=== Variable Auto-Completion ===<br />
Some conventional variables are available by hitting <tt>ctrl-space</tt> in the editor window. Here is a screenshot of the context menu:<br />
<br />
[[Image:Ote_edit_recipe_3.png]]<br />
=== Function Templates ===<br />
The bitbake editor will create a template function or <tt>addtask</tt> declaration when selected from the <tt>ctrl-space</tt> menu.<br />
=== Hover-over Variable Information ===<br />
The bitbake editor will show the value of previously declared variables when the mouse is put over them. The appear as tooltip text. Here is an example of this feature:<br />
<br />
[[Image:Ote_edit_recipe_2.png]]<br />
<br />
== Build Recipe ==<br />
<br />
A package can be generated from Eclipse via the toolbar or the context menu. This function essentially calls <b><tt>bitbake -b <selected package></tt></b> to perform the build. The output of the <tt>bitbake</tt> command will be displayed in the console view.<br />
<br />
== Import Recipe Sources as New Project ==<br />
<br />
This allows application developers to create a source project from an OpenEmbedded recipe. This is a simple way to begin modifying a project from within Eclipse. Other Eclipse plugins such as [http://www.eclipse.org/cdt/ CDT (C/C++ development tools)] or [http://pydev.org/ PyDev (Python development tools)] may be used with these imported projects. However automatic integration is not supported from within OTE and adding appropriate project natures will either need to be done from within the respective plugin or manually by editing the <tt>.project</tt> file in your project.<br />
<br />
== Browse OE variables ==<br />
OTE provides a quick way of viewing and searching through BitBake/OE variables. The wizard is activate from the OTE toolbar and looks like this:<br />
<br />
[[Image:Ote variable browser 1.png]]<br />
<br />
= Contact =<br />
Please see the [http://groups.google.com/group/openembedded-tools-for-eclipse OTE Google Group] for questions or problems with OTE.<br />
<br />
[[Category:User]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=OpenEmbedded_Tools_for_Eclipse_(OTE)&diff=4325OpenEmbedded Tools for Eclipse (OTE)2011-06-29T09:00:04Z<p>Kgilmer: Update contact section to point to google group.</p>
<hr />
<div>= Overview =<br />
<br />
OpenEmbedded Tools for Eclipse (OTE) is a set of Eclipse plugins to make using OpenEmbedded from within Eclipse possible. This page describes a set of workflows that perform common OpenEmbedded tasks, as well as the current state of development of the plugins.<br />
<br />
= Status =<br />
<br />
OTE is in a beta form. Functionality present within the plugins should work well, but development on them is fairly new. Bugs are expected!<br />
<br />
== Current Work as of 12/24/09 ==<br />
* Documentation<br />
* Bug Fixes<br />
<br />
== Version ==<br />
<br />
Current available version is <tt>0.7.0</tt>.<br />
<br />
== Changelog ==<br />
<br />
=== <tt>0.7.0</tt> ===<br />
* Numerous fixes in <b>Create Project Wizard</b> to sync to latest OE-Dev install.<br />
<br />
== License ==<br />
<br />
OTE is licensed under the [http://www.eclipse.org/legal/epl-v10.html Eclipse Public License (EPL)]. <br />
<br />
== Source ==<br />
<br />
Sources are available at svn://svn.buglabs.net/ote/trunk.<br />
<br />
== Updatesite ==<br />
<br />
The OTE updatesite, used to install the plugins from within Eclipse:<br />
<br />
http://bugcommunity.com/downloads/files/ote/updatesite/<br />
<br />
= Workflow =<br />
OTE is designed to facilitate a set of typical actions or tasks that an OE developer would do.<br />
<br />
== Install OpenEmbedded ==<br />
1. To install a new copy of OpenEmbedded, select the wizard from the <tt>File -> New... -> Other...</tt> menu.<br />
[[Image:Ote create project wizard 1.png]]<br />
<br />
<br />
2. Next, select the flavor of OpenEmbedded you wish to install.<br />
[[Image:Ote create project wizard 2.png]]<br />
<br />
<br />
3. Now specify configuration parameters. If fields are unfamiliar, leave the defaults and proceed.<br />
[[Image:Ote create project wizard 3.png]]<br />
<br />
<br />
4. Assuming all the necessary system tools are available, the wizard will download sources and configure your new OpenEmbedded install.<br />
<br />
<br />
[[Image:Ote create project wizard 4.png]]<br />
<br />
5. Now by clicking finish, an Eclipse project will be created. It may take a few moments for Eclipse to index all the files in the project. Your workbench should look something like this:<br />
<br />
[[Image:Ote workbench 1.png]]<br />
<br />
== Import Existing OE into Workspace ==<br />
To access the Import Project wizard, select <tt>File -> Import...</tt> and select the <b>Import OpenEmbedded Project</b> wizard from the general dialog like so:<br />
<br />
[[Image:Ote import project wizard 1.png]]<br />
<br />
Next fill in the three fields required for importing the project. <br />
* Name: this is the name of the Eclipse project in your workspace and can be anything.<br />
* Location: this is the base directory of your OpenEmbedded project.<br />
* Init Script: this is the shell script that initializes OE environment variables and updates the path.<br />
<br />
[[Image:Ote_import_project_wizard_2.png]]<br />
<br />
The final wizard page shows the output of what you would see in the terminal after executing <tt>bitbake -e</tt>.<br />
<br />
[[Image:Ote_import_project_wizard_3.png]]<br />
<br />
After clicking finish a new project should be available in your workspace. Depending on your machine it may take some moments for Eclipse to scan the entire set of files. It is important to note that even though the project appears in your Eclipse workspace, the files are accessed from your OE project root. So, modifications to these files will be reflected in your existing OE install.<br />
<br />
== Create Recipe ==<br />
<br />
This simple wizard generates a template recipe file based on fields that are entered by the user. The wizard can be accessed via <tt>File -> New...</tt> and selecting New OpenEmbedded Recipe from the dialog. Here is what the wizard looks like:<br />
<br />
[[Image:Ote create recipe wizard 1.png]]<br />
<br />
Now by entering the fields and selecting <b>Finish</b> a new recipe will be generated. Note that currently the Location field must contain a valid directory, so if you're creating a completely new recipe you'll need to create the directory before running this wizard. Here is an example of a recipe filled out:<br />
<br />
[[Image:Ote create recipe wizard 2.png]]<br />
<br />
After clicking <b>Finish</b> Eclipse will open an editor on the generated file. Here is an example:<br />
<br />
[[Image:Ote create recipe wizard 3.png]]<br />
<br />
From here the user can add necessary details to the recipe for building.<br />
<br />
== Edit Recipe ==<br />
<br />
<br />
<br />
Recipes can be selected in the Navigator view by opening the <tt>recipes</tt> or <tt>packages</tt> directory in your OpenEmbedded install. Any file with a <tt>.bb, .inc</tt> or <tt>.conf</tt> extension will be loaded by the BitBake editor. This editor offers the following features.<br />
=== Find Recipe ===<br />
Eclipse offers a nice file selection dialog that allows for files to be quickly edited without navigating through many folders. This dialog is activated with <tt>ctrl-shift-r</tt>. The 'r' stands for resource, Eclipse terminology for a file. In this dialog begin typing the file you want to edit. Wildcards and regular expressions are supported. Previously edited files are already available. Here is a screenshot of the dialog:<br />
<br />
[[Image:Ote_resource_browser_1.png]]<br />
<br />
=== Syntax Highlighting ===<br />
The recipe file in the editor will color various sections of the recipe. For example comments will be green, variable declarations will be blue.<br />
=== Variable Auto-Completion ===<br />
Some conventional variables are available by hitting <tt>ctrl-space</tt> in the editor window. Here is a screenshot of the context menu:<br />
<br />
[[Image:Ote_edit_recipe_3.png]]<br />
=== Function Templates ===<br />
The bitbake editor will create a template function or <tt>addtask</tt> declaration when selected from the <tt>ctrl-space</tt> menu.<br />
=== Hover-over Variable Information ===<br />
The bitbake editor will show the value of previously declared variables when the mouse is put over them. The appear as tooltip text. Here is an example of this feature:<br />
<br />
[[Image:Ote_edit_recipe_2.png]]<br />
<br />
== Build Recipe ==<br />
<br />
A package can be generated from Eclipse via the toolbar or the context menu. This function essentially calls <b><tt>bitbake -b <selected package></tt></b> to perform the build. The output of the <tt>bitbake</tt> command will be displayed in the console view.<br />
<br />
== Import Recipe Sources as New Project ==<br />
<br />
This allows application developers to create a source project from an OpenEmbedded recipe. This is a simple way to begin modifying a project from within Eclipse. Other Eclipse plugins such as [http://www.eclipse.org/cdt/ CDT (C/C++ development tools)] or [http://pydev.org/ PyDev (Python development tools)] may be used with these imported projects. However automatic integration is not supported from within OTE and adding appropriate project natures will either need to be done from within the respective plugin or manually by editing the <tt>.project</tt> file in your project.<br />
<br />
== Browse OE variables ==<br />
OTE provides a quick way of viewing and searching through BitBake/OE variables. The wizard is activate from the OTE toolbar and looks like this:<br />
<br />
[[Image:Ote variable browser 1.png]]<br />
<br />
= Contact =<br />
Please see the [[http://groups.google.com/group/openembedded-tools-for-eclipse OTE Google Group]] for questions or problems with OTE.<br />
<br />
[[Category:User]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=624JavaRecipeHowto2008-10-03T22:09:59Z<p>Kgilmer: /* Inheriting java-library */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, [http://www.gnu.org/software/classpath/ gnu classpath], and [http://www.cacaojvm.org/ cacao], it is necessary. First, try building cacao-native. In OpenEmbedded the convention is to append "-native" to a package if it's intended to be used on the host rather than something intended for the target. This should pull in the dependencies.<br />
<br />
$ bitbake cacao-native<br />
<br />
...<br />
<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple [http://osgi.org OSGi] framework.<br />
<br />
== General Items ==<br />
<br />
The first step is to decide where your recipe should live. It's a good idea when adding or modifying recipes to isolate them in such a way that they are easily installed on top of existing OE installations. However for now we will just add our recipe into the Jalimo oe-overlay directory. On my machine this directory is:<br />
<br />
$OEROOT/jalimo/oe-overlay/packages<br />
<br />
In <tt>packages</tt> I will create a directory <tt>concierge</tt> and a file <tt>concierge.bb</tt>. There are a few items that are common to all recipes, some metadata used to identify the package, it's license, and where it comes from. Here is our initial recipe <tt>concierge.bb</tt>:<br />
<br />
DESCRIPTION = "A lightweight R3 OSGi Framework"<br />
AUTHOR = "Jan Rellermeyer"<br />
LICENSE = "BSD"<br />
HOMEPAGE = "http://concierge.sourceforge.net"<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
The next step is to add the <tt>java-library</tt> functionality into your recipe so that compiling and jarring the code is easy.<br />
<br />
inherit java-library<br />
<br />
We need to use another tool called <tt>fastjar-native</tt> which will take our compiled code and create a Jar. In Bitbake the way to describe that you depend on another recipe is the DEPENDS variable:<br />
<br />
DEPENDS = "fastjar-native"<br />
<br />
== Pulling in your Sources ==<br />
<br />
An OE variable <tt>SRC_URI</tt> defines where BitBake looks for package sources from. Looking on the Concierge homepage, it appears that the sources live in an svn server here: <br />
<br />
svn://concierge.svn.sourceforge.net/svnroot/concierge<br />
<br />
Now we have to make a decision about what version we want to build. It is possible to write recipes for different versions of packages. The common practice is to create an ".inc" file that includes common functionality across all the versions. For now we will only be providing one version so this isn't necessary. Looking in the <tt>tags</tt> folder shows that the latest release is 1.0.0 RC3. We will define our <tt>SRC_URI</tt> variable to load sources for this tag:<br />
<br />
SRC_URI = "svn://concierge.svn.sourceforge.net/svnroot/concierge/tags/Concierge/1.0.0.RC3/;module=framework;proto=https;rev=220;localdir=${PN}"<br />
<br />
Note the parameters in the string. These parameters are read by BitBake to determine what exactly to download and where to put the sources. <tt>${PN}</tt> defines 'Package Name' and is a good way of keeping recipe code clean and reusable.<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=623JavaRecipeHowto2008-10-03T22:00:34Z<p>Kgilmer: /* Inheriting java-library */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, [http://www.gnu.org/software/classpath/ gnu classpath], and [http://www.cacaojvm.org/ cacao], it is necessary. First, try building cacao-native. In OpenEmbedded the convention is to append "-native" to a package if it's intended to be used on the host rather than something intended for the target. This should pull in the dependencies.<br />
<br />
$ bitbake cacao-native<br />
<br />
...<br />
<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple [http://osgi.org OSGi] framework.<br />
<br />
== General Items ==<br />
<br />
The first step is to decide where your recipe should live. It's a good idea when adding or modifying recipes to isolate them in such a way that they are easily installed on top of existing OE installations. However for now we will just add our recipe into the Jalimo oe-overlay directory. On my machine this directory is:<br />
<br />
$OEROOT/jalimo/oe-overlay/packages<br />
<br />
In <tt>packages</tt> I will create a directory <tt>concierge</tt> and a file <tt>concierge.bb</tt>. There are a few items that are common to all recipes, some metadata used to identify the package, it's license, and where it comes from. Here is our initial recipe <tt>concierge.bb</tt>:<br />
<br />
DESCRIPTION = "A lightweight R3 OSGi Framework"<br />
AUTHOR = "Jan Rellermeyer"<br />
LICENSE = "BSD"<br />
HOMEPAGE = "http://concierge.sourceforge.net"<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
The next step is to add the <tt>java-library</tt> functionality into your recipe so that compiling and jarring the code is easy.<br />
<br />
inherit java-library<br />
<br />
== Pulling in your Sources ==<br />
<br />
An OE variable <tt>SRC_URI</tt> defines where BitBake looks for package sources from. Looking on the Concierge homepage, it appears that the sources live in an svn server here: <br />
<br />
svn://concierge.svn.sourceforge.net/svnroot/concierge<br />
<br />
Now we have to make a decision about what version we want to build. It is possible to write recipes for different versions of packages. The common practice is to create an ".inc" file that includes common functionality across all the versions. For now we will only be providing one version so this isn't necessary. Looking in the <tt>tags</tt> folder shows that the latest release is 1.0.0 RC3. We will define our <tt>SRC_URI</tt> variable to load sources for this tag:<br />
<br />
SRC_URI = "svn://concierge.svn.sourceforge.net/svnroot/concierge/tags/Concierge/1.0.0.RC3/;module=framework;proto=https;rev=220;localdir=${PN}"<br />
<br />
Note the parameters in the string. These parameters are read by BitBake to determine what exactly to download and where to put the sources. <tt>${PN}</tt> defines 'Package Name' and is a good way of keeping recipe code clean and reusable.<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=622JavaRecipeHowto2008-10-03T22:00:02Z<p>Kgilmer: /* Pulling in your Sources */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, [http://www.gnu.org/software/classpath/ gnu classpath], and [http://www.cacaojvm.org/ cacao], it is necessary. First, try building cacao-native. In OpenEmbedded the convention is to append "-native" to a package if it's intended to be used on the host rather than something intended for the target. This should pull in the dependencies.<br />
<br />
$ bitbake cacao-native<br />
<br />
...<br />
<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple [http://osgi.org OSGi] framework.<br />
<br />
== General Items ==<br />
<br />
The first step is to decide where your recipe should live. It's a good idea when adding or modifying recipes to isolate them in such a way that they are easily installed on top of existing OE installations. However for now we will just add our recipe into the Jalimo oe-overlay directory. On my machine this directory is:<br />
<br />
$OEROOT/jalimo/oe-overlay/packages<br />
<br />
In <tt>packages</tt> I will create a directory <tt>concierge</tt> and a file <tt>concierge.bb</tt>. There are a few items that are common to all recipes, some metadata used to identify the package, it's license, and where it comes from. Here is our initial recipe <tt>concierge.bb</tt>:<br />
<br />
DESCRIPTION = "A lightweight R3 OSGi Framework"<br />
AUTHOR = "Jan Rellermeyer"<br />
LICENSE = "BSD"<br />
HOMEPAGE = "http://concierge.sourceforge.net"<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
The next step is to add the <tt>java-library</tt> functionality into your recipe so that compiling and jarring the code is easy.<br />
<br />
inheret java-library<br />
<br />
== Pulling in your Sources ==<br />
<br />
An OE variable <tt>SRC_URI</tt> defines where BitBake looks for package sources from. Looking on the Concierge homepage, it appears that the sources live in an svn server here: <br />
<br />
svn://concierge.svn.sourceforge.net/svnroot/concierge<br />
<br />
Now we have to make a decision about what version we want to build. It is possible to write recipes for different versions of packages. The common practice is to create an ".inc" file that includes common functionality across all the versions. For now we will only be providing one version so this isn't necessary. Looking in the <tt>tags</tt> folder shows that the latest release is 1.0.0 RC3. We will define our <tt>SRC_URI</tt> variable to load sources for this tag:<br />
<br />
SRC_URI = "svn://concierge.svn.sourceforge.net/svnroot/concierge/tags/Concierge/1.0.0.RC3/;module=framework;proto=https;rev=220;localdir=${PN}"<br />
<br />
Note the parameters in the string. These parameters are read by BitBake to determine what exactly to download and where to put the sources. <tt>${PN}</tt> defines 'Package Name' and is a good way of keeping recipe code clean and reusable.<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=621JavaRecipeHowto2008-10-03T21:58:57Z<p>Kgilmer: /* Pulling in your Sources */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, [http://www.gnu.org/software/classpath/ gnu classpath], and [http://www.cacaojvm.org/ cacao], it is necessary. First, try building cacao-native. In OpenEmbedded the convention is to append "-native" to a package if it's intended to be used on the host rather than something intended for the target. This should pull in the dependencies.<br />
<br />
$ bitbake cacao-native<br />
<br />
...<br />
<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple [http://osgi.org OSGi] framework.<br />
<br />
== General Items ==<br />
<br />
The first step is to decide where your recipe should live. It's a good idea when adding or modifying recipes to isolate them in such a way that they are easily installed on top of existing OE installations. However for now we will just add our recipe into the Jalimo oe-overlay directory. On my machine this directory is:<br />
<br />
$OEROOT/jalimo/oe-overlay/packages<br />
<br />
In <tt>packages</tt> I will create a directory <tt>concierge</tt> and a file <tt>concierge.bb</tt>. There are a few items that are common to all recipes, some metadata used to identify the package, it's license, and where it comes from. Here is our initial recipe <tt>concierge.bb</tt>:<br />
<br />
DESCRIPTION = "A lightweight R3 OSGi Framework"<br />
AUTHOR = "Jan Rellermeyer"<br />
LICENSE = "BSD"<br />
HOMEPAGE = "http://concierge.sourceforge.net"<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
The next step is to add the <tt>java-library</tt> functionality into your recipe so that compiling and jarring the code is easy.<br />
<br />
inheret java-library<br />
<br />
== Pulling in your Sources ==<br />
<br />
An OE variable <tt>SRC_URI</tt> defines where BitBake looks for package sources from. Looking on the Concierge homepage, it appears that the sources live in an svn server here: <br />
<br />
svn://concierge.svn.sourceforge.net/svnroot/concierge<br />
<br />
Now we have to make a decision about what version we want to build. It is possible to write recipes for different versions of packages. The common practice is to create an ".inc" file that includes common functionality across all the versions. For now we will only be providing one version so this isn't necessary. Looking in the <tt>tags</tt> folder shows that the latest release is 1.0.0 RC3. We will define our <tt>SRC_URI</tt> variable to load sources for this tag:<br />
<br />
SRC_URI = "svn://concierge.svn.sourceforge.net/svnroot/concierge/tags/Concierge/1.0.0.RC3/<br />
;module=framework;proto=https;rev=220;localdir=${PN}"<br />
<br />
Note the parameters in the string. These parameters are read by BitBake to determine what exactly to download and where to put the sources. <tt>${PN}</tt> defines 'Package Name' and is a good way of keeping recipe code clean and reusable.<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=620JavaRecipeHowto2008-10-03T21:58:37Z<p>Kgilmer: /* Pulling in your Sources */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, [http://www.gnu.org/software/classpath/ gnu classpath], and [http://www.cacaojvm.org/ cacao], it is necessary. First, try building cacao-native. In OpenEmbedded the convention is to append "-native" to a package if it's intended to be used on the host rather than something intended for the target. This should pull in the dependencies.<br />
<br />
$ bitbake cacao-native<br />
<br />
...<br />
<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple [http://osgi.org OSGi] framework.<br />
<br />
== General Items ==<br />
<br />
The first step is to decide where your recipe should live. It's a good idea when adding or modifying recipes to isolate them in such a way that they are easily installed on top of existing OE installations. However for now we will just add our recipe into the Jalimo oe-overlay directory. On my machine this directory is:<br />
<br />
$OEROOT/jalimo/oe-overlay/packages<br />
<br />
In <tt>packages</tt> I will create a directory <tt>concierge</tt> and a file <tt>concierge.bb</tt>. There are a few items that are common to all recipes, some metadata used to identify the package, it's license, and where it comes from. Here is our initial recipe <tt>concierge.bb</tt>:<br />
<br />
DESCRIPTION = "A lightweight R3 OSGi Framework"<br />
AUTHOR = "Jan Rellermeyer"<br />
LICENSE = "BSD"<br />
HOMEPAGE = "http://concierge.sourceforge.net"<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
The next step is to add the <tt>java-library</tt> functionality into your recipe so that compiling and jarring the code is easy.<br />
<br />
inheret java-library<br />
<br />
== Pulling in your Sources ==<br />
<br />
An OE variable <tt>SRC_URI</tt> defines where BitBake looks for package sources from. Looking on the Concierge homepage, it appears that the sources live in an svn server here: <br />
<br />
svn://concierge.svn.sourceforge.net/svnroot/concierge<br />
<br />
Now we have to make a decision about what version we want to build. It is possible to write recipes for different versions of packages. The common practice is to create an ".inc" file that includes common functionality across all the versions. For now we will only be providing one version so this isn't necessary. Looking in the <tt>tags</tt> folder shows that the latest release is 1.0.0 RC3. We will define our <tt>SRC_URI</tt> variable to load sources for this tag:<br />
<br />
SRC_URI = "svn://concierge.svn.sourceforge.net/svnroot/concierge/tags/Concierge/1.0.0.RC3/;module=framework;proto=https;rev=220;localdir=${PN}"<br />
<br />
Note the parameters in the string. These parameters are read by BitBake to determine what exactly to download and where to put the sources. <tt>${PN}</tt> defines 'Package Name' and is a good way of keeping recipe code clean and reusable.<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=619JavaRecipeHowto2008-10-03T21:52:18Z<p>Kgilmer: /* Inheriting java-library */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, [http://www.gnu.org/software/classpath/ gnu classpath], and [http://www.cacaojvm.org/ cacao], it is necessary. First, try building cacao-native. In OpenEmbedded the convention is to append "-native" to a package if it's intended to be used on the host rather than something intended for the target. This should pull in the dependencies.<br />
<br />
$ bitbake cacao-native<br />
<br />
...<br />
<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple [http://osgi.org OSGi] framework.<br />
<br />
== General Items ==<br />
<br />
The first step is to decide where your recipe should live. It's a good idea when adding or modifying recipes to isolate them in such a way that they are easily installed on top of existing OE installations. However for now we will just add our recipe into the Jalimo oe-overlay directory. On my machine this directory is:<br />
<br />
$OEROOT/jalimo/oe-overlay/packages<br />
<br />
In <tt>packages</tt> I will create a directory <tt>concierge</tt> and a file <tt>concierge.bb</tt>. There are a few items that are common to all recipes, some metadata used to identify the package, it's license, and where it comes from. Here is our initial recipe <tt>concierge.bb</tt>:<br />
<br />
DESCRIPTION = "A lightweight R3 OSGi Framework"<br />
AUTHOR = "Jan Rellermeyer"<br />
LICENSE = "BSD"<br />
HOMEPAGE = "http://concierge.sourceforge.net"<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
The next step is to add the <tt>java-library</tt> functionality into your recipe so that compiling and jarring the code is easy.<br />
<br />
inheret java-library<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=618JavaRecipeHowto2008-10-03T21:43:40Z<p>Kgilmer: /* General Items */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, [http://www.gnu.org/software/classpath/ gnu classpath], and [http://www.cacaojvm.org/ cacao], it is necessary. First, try building cacao-native. In OpenEmbedded the convention is to append "-native" to a package if it's intended to be used on the host rather than something intended for the target. This should pull in the dependencies.<br />
<br />
$ bitbake cacao-native<br />
<br />
...<br />
<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple [http://osgi.org OSGi] framework.<br />
<br />
== General Items ==<br />
<br />
The first step is to decide where your recipe should live. It's a good idea when adding or modifying recipes to isolate them in such a way that they are easily installed on top of existing OE installations. However for now we will just add our recipe into the Jalimo oe-overlay directory. On my machine this directory is:<br />
<br />
$OEROOT/jalimo/oe-overlay/packages<br />
<br />
In <tt>packages</tt> I will create a directory <tt>concierge</tt> and a file <tt>concierge.bb</tt>. There are a few items that are common to all recipes, some metadata used to identify the package, it's license, and where it comes from. Here is our initial recipe <tt>concierge.bb</tt>:<br />
<br />
DESCRIPTION = "A lightweight R3 OSGi Framework"<br />
AUTHOR = "Jan Rellermeyer"<br />
LICENSE = "BSD"<br />
HOMEPAGE = "http://concierge.sourceforge.net"<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=617JavaRecipeHowto2008-10-03T21:38:31Z<p>Kgilmer: /* Java Native Tools */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, [http://www.gnu.org/software/classpath/ gnu classpath], and [http://www.cacaojvm.org/ cacao], it is necessary. First, try building cacao-native. In OpenEmbedded the convention is to append "-native" to a package if it's intended to be used on the host rather than something intended for the target. This should pull in the dependencies.<br />
<br />
$ bitbake cacao-native<br />
<br />
...<br />
<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple [http://osgi.org OSGi] framework.<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=616JavaRecipeHowto2008-10-03T21:38:15Z<p>Kgilmer: /* Java Native Tools */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, [http://www.gnu.org/software/classpath/ gnu classpath], and [http://www.cacaojvm.org/ cacao], it is necessary. First, try building cacao-native. In OpenEmbedded the convention is to append "-native" to a package if it's intended to be used on the host rather than something intended for the target. This should pull in the dependencies.<br />
<br />
$ bitbake cacao-native<br />
...<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple [http://osgi.org OSGi] framework.<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=615JavaRecipeHowto2008-10-03T21:31:29Z<p>Kgilmer: /* Creating a recipe */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, gnu classpath, and cacao, it is necessary. First, try building cacao-native. This should pull in most of the dependencies.<br />
<br />
$ bitbake cacao-native<br />
...<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple [http://osgi.org OSGi] framework.<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=614JavaRecipeHowto2008-10-03T21:29:37Z<p>Kgilmer: /* BitBake Classes */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, gnu classpath, and cacao, it is necessary. First, try building cacao-native. This should pull in most of the dependencies.<br />
<br />
$ bitbake cacao-native<br />
...<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code by handing mapping to OE-hosts JVM, and managing classpath dependencies. These classes also define conventions for where JVMs, and Java libraries should live on the target image.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple OSGi framework.<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=613JavaRecipeHowto2008-10-03T21:27:28Z<p>Kgilmer: /* Creating a recipe */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, gnu classpath, and cacao, it is necessary. First, try building cacao-native. This should pull in most of the dependencies.<br />
<br />
$ bitbake cacao-native<br />
...<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [http://concierge.sourceforge.net Concierge], a light and simple OSGi framework.<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=612JavaRecipeHowto2008-10-03T21:27:18Z<p>Kgilmer: /* Creating a recipe */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, gnu classpath, and cacao, it is necessary. First, try building cacao-native. This should pull in most of the dependencies.<br />
<br />
$ bitbake cacao-native<br />
...<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [[http://concierge.sourceforge.net Concierge]], a light and simple OSGi framework.<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=611JavaRecipeHowto2008-10-03T21:08:35Z<p>Kgilmer: /* Creating a recipe */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, gnu classpath, and cacao, it is necessary. First, try building cacao-native. This should pull in most of the dependencies.<br />
<br />
$ bitbake cacao-native<br />
...<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code.<br />
<br />
= Creating a recipe =<br />
<br />
Now it's time to write our own recipe for a Java library. This will allow a package to be built and deployed to an OE image, and lets other people benefit from the work. In this example we will be writing a recipe for [].<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=610JavaRecipeHowto2008-10-03T21:04:59Z<p>Kgilmer: /* Java Native Tools */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, gnu classpath, and cacao, it is necessary. First, try building cacao-native. This should pull in most of the dependencies.<br />
<br />
$ bitbake cacao-native<br />
...<br />
NOTE: package cacao-native-0.99.3: completed<br />
NOTE: Tasks Summary: Attempted 265 tasks of which 248 didn't need to be rerun and 0 failed.<br />
NOTE: build 200810031648: completed<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code.<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=609JavaRecipeHowto2008-10-03T21:03:59Z<p>Kgilmer: /* BitBake Classes */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, gnu classpath, and cacao, it is necessary. First, try building cacao-native. This should pull in most of the dependencies.<br />
<br />
$ bitbake cacao-native<br />
...<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>. These classes make it easier to write recipes that require or generate Java code.<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=608JavaRecipeHowto2008-10-03T21:02:34Z<p>Kgilmer: /* BitBake Classes */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, gnu classpath, and cacao, it is necessary. First, try building cacao-native. This should pull in most of the dependencies.<br />
<br />
$ bitbake cacao-native<br />
...<br />
<br />
= BitBake Classes =<br />
<br />
BitBake classes are how the core bitbake program can be extended for specific tasks. The Jalimo group has added two bbclasses: <tt>java.bbclass</tt>, <tt>java-library.bbclass</tt>.<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=607JavaRecipeHowto2008-10-03T20:54:45Z<p>Kgilmer: /* Java Native Tools */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
The next step is to build the host-side tools that will be used to compile Java libraries. While this process is somewhat complex, involving tools such as ecj, gnu classpath, and cacao, it is necessary. First, try building cacao-native. This should pull in most of the dependencies.<br />
<br />
$ bitbake cacao-native<br />
...<br />
<br />
= BitBake Classes =<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =<br />
<br />
[[Category:Java]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=Success_stories&diff=473Success stories2008-08-26T18:39:36Z<p>Kgilmer: /* Commercial */</p>
<hr />
<div>A list of projects, companies and other people using OE as well as some quotes from OE users.<br />
<br />
== Commercial == <br />
* 4G-Systems are using it for the [http://meshcube.org Meshcube], see [http://www.meshcube.org/meshwiki/OpenEmbeddedDevelopment] <br />
* Dream Multimedia TV are using it for their Dreambox 702x, see [http://developer.elitedvb.net/listprojects.php?curr_dir=80] <br />
* [http://www.mn-solutions.de M&N Solutions] is using it for it's MNCI "Ramses" device for software release 5.4. They use a local derivate of OE for their radio hand-held terminals RT3000 and RT4000 and for their fork-lift terminal RT2100. <br />
* [http://www.toradex.com Toradex] are using it for their Colibri development boards <br />
* [http://www.emqbit.com/ emQbit] is using it for their development boards <br />
* [http://openmoko.com/ OpenMoko] is using it for the OpenMoko SmartPhone Distribution <br />
* Techsol is using it for their [http://www.medallionsystem.com/ Medallion] boards. <br />
* [http://www.gumstix.com/ Gumstix] is using OpenEmbedded for their small form factor Basix, Connex, and Verdex motherboards<br />
* [http://buglabs.net Bug Labs] is using Poky Linux on the [http://buglabs.net/products BUG] device, a portable and modular Linux platform.<br />
<br />
== Inhouse Usage == <br />
* AMD: internal work on distributions for a thin client <br />
* [http://www.openedhand.com Openedhand] : Internal development work and custom images <br />
* Siemens: internal work in R&D <br />
* TI: internal work on distributions for developer boards <br />
* [http://www.digital-cube.co.kr Digitalcube] : internal work in R&D for developer boards and PMP <br />
* [http://www.kernelconcepts.de/en kernel concepts] : Internal R&D tasks and demo images for customers. <br />
* NXP Semiconductors: Custom images & distributions for research purposes with third parties.<br />
<br />
== Education and Research == <br />
* University of Twente: http://www.freeband.nl/project.cfm?id=494&language=en <br />
* University of California, San Diego: https://wiisard.org/ <br />
* University of Frankfurt: ELAN Project (E-Learning in Mobile Ad-hoc Networks) <br />
* BEC Systems: Research Project on Intel Mainstone (http://bec-systems.com)<br />
<br />
== Open Source == <br />
* All [http://www.angstrom-distribution.org Ångström] releases are based on OE<br />
* All [http://openzaurus.org OpenZaurus] releases >= 3.5.1 are based on OE <br />
* All [http://opensimpad.org OpenSIMpad] releases >= 0.9.1 are based on OE <br />
* [http://www.nslu2-linux.org/wiki/OpenSlug/HomePage OpenSlug] distribution for the Linksys NSLU2 and the [http://www.nslu2-linux.org/wiki/Unslung/HomePage Unslung] distribution for the NSLU2 as well. <br />
* [http://owmnr.ifaistos.awmn.net OWMNR] - Open Wireless Metropolitan Network Router. OE based distribution for creating a wireless router. <br />
* [http://gpephone.linuxtogo.org GPE Phone Edition] uses OE for VMWare demo images and to build SDKs. <br />
* The [http://jlime.com JLime] Linux distribution uses OE for all current releases. <br />
* [http://openinkpot.org OpenInkPot] is OE based Linux distribution for e-ink e-reader devices<br />
<br />
== Open Hardware ==<br />
* [http://wiki.emqbit.com/free-ecb-at91 Free ECB_AT91] - A open Single Board computer that [http://wiki.emqbit.com/openembedded runs openembedded]. <br />
<br />
== Quotes == <br />
''Well, looks like openembedded has really sorted out my install/setup nightmare for this eval board... thanks you guys. In the last 4 hours, i've gotten more done with this board than i have in 6 months.'' <br />
<br />
''I will try and add an smdk2410.conf machine file to the setup soon... not that i expect it'll be useful to a lot of people, but i'll try to at least document it so that other machines can be supported easily enough.'' <br />
<br />
''Well I just got OE set up and I've been really impressed so far.'' <br />
<br />
''OE takes all of the hassle out of cross-compiling.''<br />
<br />
[[Category:Community]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=Success_stories&diff=472Success stories2008-08-26T18:38:40Z<p>Kgilmer: /* Commercial */</p>
<hr />
<div>A list of projects, companies and other people using OE as well as some quotes from OE users.<br />
<br />
== Commercial == <br />
* 4G-Systems are using it for the [http://meshcube.org Meshcube], see [http://www.meshcube.org/meshwiki/OpenEmbeddedDevelopment] <br />
* Dream Multimedia TV are using it for their Dreambox 702x, see [http://developer.elitedvb.net/listprojects.php?curr_dir=80] <br />
* [http://www.mn-solutions.de M&N Solutions] is using it for it's MNCI "Ramses" device for software release 5.4. They use a local derivate of OE for their radio hand-held terminals RT3000 and RT4000 and for their fork-lift terminal RT2100. <br />
* [http://www.toradex.com Toradex] are using it for their Colibri development boards <br />
* [http://www.emqbit.com/ emQbit] is using it for their development boards <br />
* [http://openmoko.com/ OpenMoko] is using it for the OpenMoko SmartPhone Distribution <br />
* Techsol is using it for their [http://www.medallionsystem.com/ Medallion] boards. <br />
* [http://www.gumstix.com/ Gumstix] is using OpenEmbedded for their small form factor Basix, Connex, and Verdex motherboards<br />
* [http://buglabs.net Bug Labs] is using Poky Linux on the [http://buglabs.net/products BUG] device, and module mobile Linux platform.<br />
<br />
== Inhouse Usage == <br />
* AMD: internal work on distributions for a thin client <br />
* [http://www.openedhand.com Openedhand] : Internal development work and custom images <br />
* Siemens: internal work in R&D <br />
* TI: internal work on distributions for developer boards <br />
* [http://www.digital-cube.co.kr Digitalcube] : internal work in R&D for developer boards and PMP <br />
* [http://www.kernelconcepts.de/en kernel concepts] : Internal R&D tasks and demo images for customers. <br />
* NXP Semiconductors: Custom images & distributions for research purposes with third parties.<br />
<br />
== Education and Research == <br />
* University of Twente: http://www.freeband.nl/project.cfm?id=494&language=en <br />
* University of California, San Diego: https://wiisard.org/ <br />
* University of Frankfurt: ELAN Project (E-Learning in Mobile Ad-hoc Networks) <br />
* BEC Systems: Research Project on Intel Mainstone (http://bec-systems.com)<br />
<br />
== Open Source == <br />
* All [http://www.angstrom-distribution.org Ångström] releases are based on OE<br />
* All [http://openzaurus.org OpenZaurus] releases >= 3.5.1 are based on OE <br />
* All [http://opensimpad.org OpenSIMpad] releases >= 0.9.1 are based on OE <br />
* [http://www.nslu2-linux.org/wiki/OpenSlug/HomePage OpenSlug] distribution for the Linksys NSLU2 and the [http://www.nslu2-linux.org/wiki/Unslung/HomePage Unslung] distribution for the NSLU2 as well. <br />
* [http://owmnr.ifaistos.awmn.net OWMNR] - Open Wireless Metropolitan Network Router. OE based distribution for creating a wireless router. <br />
* [http://gpephone.linuxtogo.org GPE Phone Edition] uses OE for VMWare demo images and to build SDKs. <br />
* The [http://jlime.com JLime] Linux distribution uses OE for all current releases. <br />
* [http://openinkpot.org OpenInkPot] is OE based Linux distribution for e-ink e-reader devices<br />
<br />
== Open Hardware ==<br />
* [http://wiki.emqbit.com/free-ecb-at91 Free ECB_AT91] - A open Single Board computer that [http://wiki.emqbit.com/openembedded runs openembedded]. <br />
<br />
== Quotes == <br />
''Well, looks like openembedded has really sorted out my install/setup nightmare for this eval board... thanks you guys. In the last 4 hours, i've gotten more done with this board than i have in 6 months.'' <br />
<br />
''I will try and add an smdk2410.conf machine file to the setup soon... not that i expect it'll be useful to a lot of people, but i'll try to at least document it so that other machines can be supported easily enough.'' <br />
<br />
''Well I just got OE set up and I've been really impressed so far.'' <br />
<br />
''OE takes all of the hassle out of cross-compiling.''<br />
<br />
[[Category:Community]]</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=455JavaRecipeHowto2008-08-23T16:38:27Z<p>Kgilmer: /* General Open Embedded */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
<br />
If you get a parse error or sanity check error, please consult the general OE troubleshooting page.<br />
<br />
== Java Native Tools ==<br />
<br />
= BitBake Classes =<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=454JavaRecipeHowto2008-08-23T16:37:56Z<p>Kgilmer: /* General Open Embedded */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
NOTE: Handling BitBake files: \ (5485/5485) [100 %]<br />
NOTE: Parsing finished. 5249 cached, 0 parsed, 236 skipped, 0 masked.<br />
NOTE: Cache is clean, not saving.<br />
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help'<br />
for usage information.<br />
$<br />
<br />
== Java Native Tools ==<br />
<br />
= BitBake Classes =<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=453JavaRecipeHowto2008-08-23T16:35:37Z<p>Kgilmer: /* General Open Embedded */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
After installing OpenEmbedded, go to the root of the installation and run <tt>bitbake</tt> to confirm your environment is working properly:<br />
<br />
$ bitbake<br />
<br />
== Java Native Tools ==<br />
<br />
= BitBake Classes =<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=452JavaRecipeHowto2008-08-23T15:34:47Z<p>Kgilmer: /* Prerequisites */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
Before proceeding with this howto, you'll need to verify that your OpenEmbedded build environment is working properly. This falls into two categories, the core BitBake system and the OpenEmbedded recipes, and the Java tools that are built inside of OpenEmbedded.<br />
<br />
== General Open Embedded ==<br />
<br />
== Java Native Tools ==<br />
<br />
= BitBake Classes =<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=451JavaRecipeHowto2008-08-23T15:33:21Z<p>Kgilmer: /* Overview */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>. An example library will be built from sources: Concierge, an OSGi framework.<br />
<br />
= Prerequisites =<br />
<br />
== General Open Embedded ==<br />
<br />
== Java Native Tools ==<br />
<br />
= BitBake Classes =<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=450JavaRecipeHowto2008-08-23T15:32:28Z<p>Kgilmer: /* Overview */</p>
<hr />
<div>= Overview =<br />
<br />
This page describes how to create a recipe for a pre-existing Java project or library that is not currently available in OpenEmbedded or Jalimo. It assumes a basic working knowledge of OpenEmbedded and Java tools such as <tt>javac</tt>.<br />
<br />
= Prerequisites =<br />
<br />
== General Open Embedded ==<br />
<br />
== Java Native Tools ==<br />
<br />
= BitBake Classes =<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =</div>Kgilmerhttp://www.openembedded.org/index.php?title=JavaRecipeHowto&diff=449JavaRecipeHowto2008-08-23T15:30:08Z<p>Kgilmer: Outline of Java Library Howto</p>
<hr />
<div>= Overview =<br />
<br />
= Prerequisites =<br />
<br />
== General Open Embedded ==<br />
<br />
== Java Native Tools ==<br />
<br />
= BitBake Classes =<br />
<br />
= Creating a recipe =<br />
<br />
== General Items ==<br />
<br />
== Inheriting <tt>java-library</tt> ==<br />
<br />
== Pulling in your Sources ==<br />
<br />
== Testing it out ==<br />
<br />
== Examining the Result ==<br />
<br />
= Conclusion =<br />
<br />
= Troubleshooting =</div>Kgilmerhttp://www.openembedded.org/index.php?title=Java&diff=448Java2008-08-23T15:09:52Z<p>Kgilmer: /* Bootstrap process */</p>
<hr />
<div>This page is here to answer all things Java related to OpenEmbedded.<br />
<br />
=Where to get answers about Java support in OpenEmbedded?=<br />
The Java support in OpenEmbedded is maintained through the [http://jalimo.org Jalimo] project. As such we encourage you to subscribe to this project's mailing list and post your question there. Developers of OpenEmbedded-derived distributions like Angstrom are also encouraged to delegate questions of their users to Jalimo.<br />
<br />
You can also use the mailing list to discuss new recipes prior to putting them into OpenEmbedded's bug tracker.<br />
<br />
=State of support=<br />
==Virtual machine and class library==<br />
Currently (July 2008) you will be able to build packages for your target system that use either JamVM or Cacao as the virtual machine and GNU Classpath as the class library.<br />
<br />
Support for PhoneME Advanced (CDC) and OpenJDK (with Cacao as the runtime) is planned.<br />
<br />
==Java libraries==<br />
The number of available Java libraries is still small but can grow quickly as the necessary infrastructure is in place. Currently libraries such as dbus-java, kxml2, libmatthew, librxtx, sqlitejdbc, javasqlite, woodstox, xmlpull, SWT (3.4, Gtk+) are available.<br />
<br />
==J2ME MIDP2.0==<br />
J2ME MIDP2.0 is supported through the MIDPath project. MIDPath provides the neccessary libraries (taken from PhoneME and/or the respective JSRs) and OpenEmbedded has direct support for a few devices (e.g. button mappings). Please <br />
note that while MIDPath can run most MIDP2.0 programs it is no official MIDP2.0 implementation.<br />
<br />
==Toolchain==<br />
In order to build Java packages no virtual machine needs to be installed on the build machine. OpenEmbedded builds everything on its own.<br />
<br />
Missing but planned to be included are popular Java build tools like Ant.<br />
<br />
=== GNU Classpath Tools ===<br />
Included in the package classpath-native are the tools 'gjar', 'gjavah', 'gjavap', 'gjarsigner' (and soon gjdoc). Those tools usually work without problems and should be fully compatible to the ones provided by OpenJDK.<br />
<br />
=== ECJ ===<br />
Instead of Sun's Java Compiler 'javac' most packages in OpenEmbedded are compiled with the command-line version of the Eclipse project's ECJ. You need the package ecj-bootstrap-native to get access to the 'javac' and 'ecj' binary that are provided by it.<br />
<br />
=== OpenJDK language tools ===<br />
Very soon OpenEmbedded will support the OpenJDK language tools consisting of javac, javap, javah and apt. Put openjdk-langtools-native to the dependencies of your recipe and use the binaries which have 'sun-' prepended (e.g. 'sun-javac') if you need them explicitly. Albeit the tools are from OpenJDK they run on Cacao/JamVM and GNU Classpath.<br />
<br />
Currently openjdk-langtools-native is not a provider of virtual/javac-native since it needs a Java5 capable runtime and compiler itself and ecj-bootstrap-native delivers its own 'javac'. This is going to be fixed as well.<br />
<br />
The OpenJDK language are currently in the Jalimo overlay only.<br />
<br />
=Configuring=<br />
In this section you learn about the things you can set up. In many OpenEmbedded-based distributions some or most of these decision may have already been made for you so there is no need to specify them. However in case you want to provide the Java support in your distribution you need to know which knobs are available.<br />
<br />
==Bootstrap process==<br />
As told in the toolchain support section the whole Java support in OpenEmbedded is self-hosting. This mean you do not need to have any bit of Java on your build machine as OpenEmbedded will build this itself.<br />
<br />
This bootstrap process contains the following steps: At first jikes-native is compiled which is a Java 1.4-capable compiler that does not need a runtime or (strictly) a class library to work. With this compiler we compile the initial runtime (package virtual/java-initial).<br />
<br />
virtual/java-initial is a preliminary runtime. This virtual package is currently provided by cacao-initial or jamvm-initial. After that ecj-initial is built. At that point we have a 1.5-capable compiler running on a Java 1.4 compatible VM.<br />
<br />
The compiler is then used to build virtual/java-native and finally virtual/javac-native. The former virtual package is provided by either cacao-native or jamvm-native. The latter package is currently only provided through ecj-bootstrap-native. Having built these packages provides the OpenEmbedded build environment with a Java5-capable compiler and runtime. At that point we are ready to compile any other Java package.<br />
<br />
==Bootstrap virtual machine aka virtual/java-initial==<br />
The bootstrap virtual machine has the sole purpose of running ecj-initial (the bootstrap compiler) to compile a 1.5-capable runtime and library. The bootstrap VM runs on your build host and is therefore a -native package. Inside the native staging directory the VM provides a 'java-initial' executable.<br />
<br />
As told above there are currently two packages that provide 'virtual/java-native'. Add<br />
<br />
PREFERRED_PROVIDER_virtual/java-initial = "cacao-initial"<br />
PREFERRED_VERSION_cacao-initial = "0.98"<br />
<br />
to your local or site configuration to choose the Cacao VM. This virtual machine has a JIT compiler and is generally faster but takes a bit longer to compile. Furthermore this VM is only tested to work correctly on X86 build hosts. If you chose Cacao there will also be a 'cacao-initial' binary in your native staging directory.<br />
<br />
In case Cacao is unsuitable for you add<br />
<br />
PREFERRED_PROVIDER_virtual/java-initial = "jamvm-initial"<br />
PREFERRED_VERSION_jamvm-initial = "1.4.5"<br />
<br />
to your configuration. JamVM is an interpreting Java virtual machine. Despite interpreting only it is very fast (implements many modern interpreter techniques) and compiles quickly. Furthermore it is known to work on X86 and PowerPC build hosts.<br />
<br />
==Native virtual machine aka virtual/java-native==<br />
As for virtual/java-initial this virtual package provides a Java virtual machine which runs on your build host. Its purpose is to run any Java programs that are needed during your build process. The most prominent program that it is supposed to run is the compiler ECJ. The virtual/java-native package provides a 'java' binary inside the native staging directory. At the moment you can chose between two runtimes: Cacao and JamVM.<br />
<br />
As for the general features it is the same as for java-initial. However for virtual/java-native later versions of the VMs are used so stability and platform support is better. For instance you can use cacao-native on PowerPC as well since the version of Cacao used properly supports it.<br />
<br />
To chose Cacao add the following lines to your configuration:<br />
<br />
PREFERRED_PROVIDER_virtual/java-native = "cacao-native"<br />
PREFERRED_VERSION_cacao-native = "0.99.2"<br />
<br />
Besides 'java' cacao-native install a 'cacao' binary into the native staging directory.<br />
<br />
If you favor JamVM (or are having trouble with Cacao) use:<br />
<br />
PREFERRED_PROVIDER_virtual/java-native = "jamvm-native"<br />
PREFERRED_VERSION_jamvm-native = "1.5.1"<br />
<br />
There will also be a 'jamvm' binary in native staging directory besides the 'java' one with jamvm-native.<br />
<br />
== Native Java compiler aka virtual/javac-native ==<br />
The virtual/javac-native package provides the 'javac' binary which is to be found within the native staging directory. This compiler is used to build all of the Java packages within OpenEmbedded. <br />
<br />
At the moment only the package ecj-bootstrap-native provides virtual/javac-native but it is planned that in the future Sun's javac will be available.<br />
<br />
Add the following lines to your configuration to make the Java compiler setting fixed:<br />
<br />
PREFERRED_PROVIDER_virtual/javac-native = "ecj-bootstrap-native"<br />
<br />
== Target virtual machine aka virtual/java ==<br />
The virtual package virtual/java specifies which runtime is the ''default'' virtual machine for J2SE Java program. This does not mean that you cannot install a second runtime (which is possible). At the moment Cacao and JamVM are supported runtimes. Cacao is ready for X86, PowerPC and ARM systems (others are untested AVR32 is not suppported) and has a JIT compiler. JamVM can be used on X86, PowerPC, ARM and MIPS.<br />
<br />
When installed all runtimes provide the 'java' executable (chosen through update-alternatives).<br />
<br />
To select Cacao as the default runtime add the following lines to your configuration:<br />
<br />
PREFERRED_PROVIDER_virtual/java = "cacao"<br />
PREFERRED_VERSION_cacao = "0.99.2"<br />
<br />
If you prefer JamVM add those:<br />
<br />
PREFERRED_PROVIDER_virtual/java = "jamvm"<br />
PREFERRED_VERSION_jamv = "1.5.1"<br />
<br />
While other versions of Cacao and JamVM are available you should try to use the suggested ones first.<br />
<br />
== GNU Classpath for headless machines aka classpath-minimal ==<br />
Through setting the provider for 'classpath' you can decide whether you build a full class library with support for AWT/Swing (having a gtk+ dependency) or a variant that works without that and is primarily meant for headless devices. It might also be handy if you decide not to use AWT/Swing and use SWT instead. To chose the minimal variant add this to your configuration:<br />
<br />
PREFERRED_PROVIDER_classpath = "classpath-minimal"<br />
<br />
Otherwise you need to add this line:<br />
<br />
PREFERRED_PROVIDER_classpath = "classpath"<br />
<br />
Currently the Angstrom distribution does not set a preference and you have to provide your own.<br />
<br />
= Caveats, known issues, hints, miscellaneous information =<br />
== Version suggestions ==<br />
Everyone and his dog knows that combining glibc 2.8, gcc 2.95 and Linux kernel 2.6.26 is not going to work. In the GNU Classpath realm we also have a set of versions that do not fit together. Here are some suggestions for your PREFERRED_VERSIONs. Stick to these if you are unsure. You can always find out which version are ''supposed'' to be compatible by reading the READMEs of the VMs.<br />
<br />
=== jamvm-initial and classpath-initial ===<br />
Use this and nothing else:<br />
<br />
PREFERRED_VERSION_jamvm-initial = "1.4.5"<br />
PREFERRED_VERSION_classpath-initial = "0.93"<br />
<br />
=== cacao-initial and classpath-initial ===<br />
Use this and nothing else:<br />
<br />
PREFERRED_VERSION_cacao-initial = "0.98"<br />
PREFERRED_VERSION_classpath-initial = "0.93"<br />
<br />
=== jamvm[-native] and classpath[-native] ===<br />
These are the latest releases and they seem to be stable. Highly recommended:<br />
<br />
PREFERRED_VERSION_jamvm-native = "1.5.1"<br />
PREFERRED_VERSION_classpath-native = "0.97.2"<br />
<br />
The same goes for the target device:<br />
<br />
PREFERRED_VERSION_jamvm = "1.5.1"<br />
PREFERRED_VERSION_classpath = "0.97.2"<br />
<br />
=== cacao[-native] and classpath[-native] ===<br />
These are the latest releases and they seem to be stable. Highly recommended:<br />
<br />
PREFERRED_VERSION_cacao-native = "0.99.2"<br />
PREFERRED_VERSION_classpath-native = "0.97.2"<br />
<br />
The same goes for the target device:<br />
<br />
PREFERRED_VERSION_cacao = "0.99.2"<br />
PREFERRED_VERSION_classpath = "0.97.2"<br />
<br />
== Cacao and GCC 4.3 ==<br />
It seems to me that Cacao (especially 0.99.2) is miscompiled when using GCC 4.3. You will experience that ecj-bootstrap-native will produce spurious errors when compiling classes. If that happens to you switch to JamVM.<br />
<br />
== Extra binaries and symlinks ==<br />
Since both Cacao and JamVM can be installed in staging you can use this and modify the 'java' or 'java-initial' symlink if you want to switch to a certain VM.<br />
<br />
== ecj-bootstrap-native and ecj-initial ==<br />
Since ecj-initial and ecj-bootstrap-native can use the ''same'' jar file we skip the compilation step for the former package and really just use the jar from ecj-initial. Therefore ecj-bootstrap-native has a dependency on ecj-initial directly.<br />
<br />
== Debugging Cacao on the target ==<br />
You need to debug the Cacao JVM on your target device using GDB and need some pointers on how to get started? Read [https://wiki.evolvis.org/jalimo/index.php/CacaoDebugging this] page from the Jalimo Wiki.<br />
<br />
=Future plans =<br />
==PhoneME Advanced==<br />
A recipe (or many) that provides PhoneME Advanced is in the making. On the target this runtime will be available as 'cvm' and 'java-cdc'.<br />
<br />
==Default Bytecode compliance level==<br />
Soon an option will be introduced to set the default bytecode compliance level. For any Java package that does not explicitly provide this level (not many do this) the one you set in your configuration will be used.<br />
<br />
==OpenJDK + Cacao==<br />
The flexibility of the Cacao runtime allows it to run it with OpenJDK's class library. This allows you to use the official class library and a JIT-capable runtime on an ARM device (as of today Hotspot has no JIT on ARM).<br />
<br />
==ant-native==<br />
Ant is an often used tool in the Java world. Even OpenJDK uses it. Unfortunately it is also a complex beast with many dependencies (many of which use Ant itself). Still there is work in progress to build and use it inside OpenEmbedded.<br />
<br />
[[Category:FAQ]]<br />
[[Category:Software Components]]<br />
[[Category:Java]]</div>Kgilmer