Skip to content

Commit

Permalink
Merge pull request #2 from Geontech/krogoth
Browse files Browse the repository at this point in the history
Bump to RH 2.0.4, split recipes, and tested against Yocto Krogoth
  • Loading branch information
btgoodwin authored Jan 10, 2017
2 parents 6619855 + 74e47ee commit fe3619e
Show file tree
Hide file tree
Showing 126 changed files with 1,515 additions and 2,737 deletions.
53 changes: 16 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
meta-REDHAWK-SDR
=================

> **Note:** This is a distant fork of [Axios' layer](http://github.com/Axios-Engineering/openembedded-hawk) that was fairly far removed. Their copyright has been added to this copyright list along with a large portion of the original README, and some recipes. After a series of updates and changes it was different enough that it was pushed as a separate layer.
> **Note:** This is a distant fork of [Axios' layer](http://github.com/Axios-Engineering/openembedded-hawk) that was fairly far removed. Their copyright has been added to this copyright list along various recipes and pieces of their README. After a series of updates and changes it was different enough that it was pushed as a separate layer.
What is Yocto/Open-Embedded?
---------------------------
Expand All @@ -12,9 +12,9 @@ From the [Yocto][1] page itself:
In short, [Yocto][1] allows you to build a custom, light weight embedded linux distribution built specifically for your hardware.

What is Openembedded-Hawk
What is Meta-REDHAWK-SDR
--------------------------
Openembedded-hawk is a set of [Yocto][1]/[Open-Embedded][2] recipes for the [REDHAWK][3] framework, its dependencies, and a handful of example components, devices, and shared libraries.
Meta-REDHAWK-SDR is a set of [Yocto][1]/[Open-Embedded][2] recipes for the [REDHAWK][3] framework, its dependencies, and a handful of example components, devices, and shared libraries.

This repository, along with the base Yocto framework will enable you to build the REDHAWK framework for any hardware platform in which a Board Support Package is available.

Expand All @@ -27,46 +27,21 @@ There are plenty of BSPs floating around for other hardware platforms so do some
Getting Started
----------------

1. Install the required software listed in the [Yocto Quick Start Packages Section][6]
The most straight-forward installation is to use Google's repo and our [manifest](http://github.com/GeonTech/meta-redhawk-sdr-manifests). It amounts to a handful of terminal commands to `repo init` a manifest, which downloads the layers for a given configuration. Then running a terminal command to use our bblayers and local configuration files as templates. And finally, running bitbake. Instructions are provided at the link above.

2. Checkout the Yocto Poky repositories dizzy branch:
Alternatively, you can clone this layer into your own Yocto source tree:

git clone -b dizzy git://git.yoctoproject.org/poky.git
cd <your work director where other meta* are loaded>
git clone git://github.com/geontech/meta-redhawk-sdr.git

Then edit your `build/conf/bblayers.conf` to include a reference to `meta-redhawk-sdr` at the end of the list. See our `meta-redhawk-sdr/conf/bblayers.conf.sample` as an example.

3. Clone the openembedded-hawk repository inside the poky folder as meta-redhawk.

```
cd poky
git clone https://<server>/openembedded/meta-redhawk-sdr.git meta-redhawk
```
4. Source the build-env script
```
source oe-init-build-env
```
5. Pick a machine type within the conf/local.conf file. The default will build for an emulated x86 machine type.
6. Add REDHAWK recipes to the build image. The easiest way to do this is by using the conf/local.conf file and adding the IMAGE_INSTALL_append variable at the end. Here is an example that adds the core framework, frontend, and a GPP. Note that all the dependencies will automatically be built including redhawk-core
```
IMAGE_INSTALL_append = " redhawk-frontend redhawk-gpp"
```
6. Add the meta-redhawk directory to the BBLAYERS variable in conf/bblayers.conf so yocto knows where to search for our custom recipes.
7. Build an image:
```
bitbake core-image-minimal
```
Alternative Methods
Finishing the Build
-------------------

In the `contrib/scripts` folder is the `build-image.sh` script, a derivative of a script from Philip Balister of Ettus Research who included it with their `meta-sdr`. It uses `wic` to build a single image file that can be directly copied to an SD card (`dd`) resulting in the appropriate partitions, etc., buased on the associated `wks` file. Specify the `BUILD_IMAGE` and `MACHINE` environment variables and this script will go through the whole process for you, automated.
In the `contrib/scripts` folder is the `build-image.sh` script, a derivative of a script from Philip Balister (@balister) of Ettus Research who included it with their `meta-sdr`. The script uses `wic` to build a single image file that can be directly copied to an SD card (`dd`) resulting in the appropriate partitions, etc., based on the associated `wks` file.

To use it, link this script into your `build` directory, set it to executable, and specify the `BUILD_IMAGE` and `MACHINE` environment variables (e.g., `qemuarm` and `redhawk-gpp-image`). Then running this script will go through the whole bitbake process for you, automated.

Additional Resources
--------------------
Expand All @@ -75,6 +50,8 @@ Additional Resources

[Bitbake cheatsheet][8]

[OpenEmbedded-Hawk][9]

[1]: https://www.yoctoproject.org/ "Yocto Project Homepage"
[2]: http://www.openembedded.org/wiki/Main_Page "Open-Embedded Project Homepage"
[3]: http://redhawksdr.org "REDHAWK Homepage"
Expand All @@ -83,3 +60,5 @@ Additional Resources
[6]: http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html#packages "Required Packages"
[7]: http://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html "Yocto Mega Manual"
[8]: http://www.openembedded.org/wiki/Bitbake_cheat_sheet "Bitbake Cheat Sheet"
[9]: http://github.com/axios-engineering/openembedded-hawk "Axios' OpenEmbedded-Hawk"

12 changes: 6 additions & 6 deletions conf/bblayers.conf.sample
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ BBFILES ?= ""

BBLAYERS ?= " \
##COREBASE##/meta \
##COREBASE##/../meta-xilinx \
##COREBASE##/../meta-oe/meta-oe \
##COREBASE##/../meta-oe/meta-networking \
##COREBASE##/../meta-oe/meta-python \
##COREBASE##/../meta-oe/meta-filesystems \
##COREBASE##/../meta-redhawk-sdr \
##COREBASE##/meta-yocto \
##COREBASE##/meta-openembedded/meta-oe \
##COREBASE##/meta-openembedded/meta-networking \
##COREBASE##/meta-openembedded/meta-python \
##COREBASE##/meta-openembedded/meta-filesystems \
##COREBASE##/meta-redhawk-sdr \
"

3 changes: 0 additions & 3 deletions conf/layer.conf
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,6 @@ BBFILES += "\
${LAYERDIR}/recipes-*/*/*.bbappend \
"

# Toolchains above 4.8 cause some trouble.
GCCVERSION = "4.8%"

BBFILE_COLLECTIONS += "redhawk"
BBFILE_PATTERN_redhawk = "^${LAYERDIR}/"
BBFILE_PRIORITY_redhawk = "10"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=e6a600fd5e1d9cbde2d9836802
DEPENDS = "redhawk-bulkio"
RDEPENDS_${PN} = "redhawk-bulkio"

SRC_URI = "git://github.com/RedhawkSDR/SigGen.git;branch=master;protocol=git \
SRC_URI = "git://github.com/RedhawkSDR/SigGen.git;tag=2.0.1;protocol=git \
file://01_Remove_x86_and_Impls.patch;patchdir=.. \
file://03_Add_Missing_Files.patch; \
file://02_Ossie_Check_fix.patch; \
Expand Down
73 changes: 73 additions & 0 deletions recipes-deps/omnievents/omnievents.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#
# This file is protected by Copyright. Please refer to the COPYRIGHT file distributed
# with this source distribution.
#
# This file is part of Geon Technology's meta-redhawk-sdr.
#
# Geon Technology's meta-redhawk-sdr is free software: you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# Geon Technology's meta-redhawk-sdr is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#

DESCRIPTION = "OmniEvents"
SECTION = "devel"
PRIORITY = "optional"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=68ad62c64cc6c620126241fd429e68fe"
DEPENDS += "omniorb boost"

# Sources, by default allow for the use of SRCREV pointing to orphaned tags/commits
SRCTAG ?= ""
SRCTAGARG = "${@['nobranch=1', 'tag=${SRCTAG}'][d.getVar('SRCTAG', True) != '']}"

SRC_URI = "git://github.com/redhawksdr/omniEvents.git;${SRCTAGARG};protocol=git \
file://omniEvents.patch \
file://config.mk.patch \
file://omniEvents \
"

S = "${WORKDIR}/git"

inherit autotools pkgconfig update-rc.d

EXTRA_OECONF="\
--with-omniorb=${STAGING_DIR}/${MACHINE}/usr \
--with-boost=${STAGING_DIR}/${MACHINE}/usr \
"

# Over-write default multi-threaded build temporarily.
PARALLEL_MAKE = ""

# omniNames is 10, omniEvents will be 11.
INITSCRIPT_NAME = "omniEvents"
INITSCRIPT_PARAMS = "defaults 11"

do_configure_append () {
# omniEvents isn't quite as auto-tooled as omniNames so its build
# in OE is a bit more involved; we have to manually copy sources, make files, etc.
# At this point, we're in the build folder.
cp -r ../git/Makefile ../git/idl ../git/src ../git/contrib ../git/tools ../git/examples .
}

do_compile () {
export IDL=${STAGING_DIR}/${BUILD_SYS}/usr/bin/omniidl
export IDL_COS_DIR=${STAGING_DIR}/${BUILD_SYS}/usr/share/idl/omniORB
oe_runmake
}

do_install () {
# Set a variable that the Makefiles obey for install.
autotools_do_install
install -d ${D}/etc ${D}/etc/init.d
install -m 0755 ${WORKDIR}/omniEvents ${D}/etc/init.d/omniEvents
}

71 changes: 3 additions & 68 deletions recipes-deps/omnievents/omnievents_2.7.0.bb
Original file line number Diff line number Diff line change
@@ -1,69 +1,4 @@
#
# This file is protected by Copyright. Please refer to the COPYRIGHT file distributed
# with this source distribution.
#
# This file is part of Geon Technology's meta-redhawk-sdr.
#
# Geon Technology's meta-redhawk-sdr is free software: you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# Geon Technology's meta-redhawk-sdr is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#

DESCRIPTION = "OmniEvents"
SECTION = "devel"
PRIORITY = "optional"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=68ad62c64cc6c620126241fd429e68fe"
DEPENDS += "omniorb boost"

SRC_URI = "git://github.com/redhawksdr/omniEvents.git;branch=develop;tag=2.7.0;protocol=git \
file://omniEvents.patch \
file://config.mk.patch \
file://omniEvents \
"

S = "${WORKDIR}/git"

inherit autotools pkgconfig update-rc.d

EXTRA_OECONF="\
--with-omniorb=${STAGING_DIR}/${MACHINE}/usr \
--with-boost=${STAGING_DIR}/${MACHINE}/usr \
"

# Over-write default multi-threaded build temporarily.
PARALLEL_MAKE = ""

# omniNames is 10, omniEvents will be 11.
INITSCRIPT_NAME = "omniEvents"
INITSCRIPT_PARAMS = "defaults 11"

do_configure_append () {
# omniEvents isn't quite as auto-tooled as omniNames so its build
# in OE is a bit more involved; we have to manually copy sources, make files, etc.
# At this point, we're in the build folder.
cp -r ../git/Makefile ../git/idl ../git/src ../git/contrib ../git/tools ../git/examples .
}

do_compile () {
export IDL=${STAGING_DIR}/${BUILD_SYS}/usr/bin/omniidl
export IDL_COS_DIR=${STAGING_DIR}/${BUILD_SYS}/usr/share/idl/omniORB
oe_runmake
}

do_install () {
# Set a variable that the Makefiles obey for install.
autotools_do_install
install -d ${D}/etc ${D}/etc/init.d
install -m 0755 ${WORKDIR}/omniEvents ${D}/etc/init.d/omniEvents
}
SRCTAG = "2.7.0"
PREFERRED_VERSION_omniorb = "4.1.6"
include omnievents.inc

4 changes: 4 additions & 0 deletions recipes-deps/omnievents/omnievents_2.7.1.bb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SRCTAG = "2.7.1"
PREFERRED_VERSION_omniorb = "4.2.0"
include omnievents.inc

20 changes: 20 additions & 0 deletions recipes-deps/omniorb/files/pyPrefixIsPrefix-4.2.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--- a/src/tool/omniidl/cxx/dir.mk 2014-03-25 11:22:12.000000000 -0400
+++ b/src/tool/omniidl/cxx/dir.mk 2017-01-06 13:49:56.793626502 -0500
@@ -73,14 +73,14 @@

ifdef UnixPlatform
#CXXDEBUGFLAGS = -g
-PYPREFIX := $(shell $(PYTHON) -c 'import sys; sys.stdout.write(sys.exec_prefix)')
+PYPREFIX := $(PREFIX)
PYVERSION := $(shell $(PYTHON) -c 'import sys; sys.stdout.write(sys.version[:3])')
PYINCDIR := $(PYPREFIX)/include
PYINCFILE := "<python$(PYVERSION)/Python.h>"
DIR_CPPFLAGS += -I$(PYINCDIR)/python$(PYVERSION) \
-I$(PYINCDIR)/python$(PYVERSION)mu \
-I$(PYINCDIR) \
- -DPYTHON_INCLUDE="<Python.h>"
+ -DPYTHON_INCLUDE=$(PYINCFILE)
endif



75 changes: 75 additions & 0 deletions recipes-deps/omniorb/files/rm_LongDouble-4.2.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
diff -Nuar omniORB-4.2.0/include/omniORB4/CORBA_sysdep_auto.h omniORB-4.2.0-patched/include/omniORB4/CORBA_sysdep_auto.h
--- omniORB-4.2.0/include/omniORB4/CORBA_sysdep_auto.h 2013-07-18 07:28:03.000000000 -0400
+++ omniORB-4.2.0-patched/include/omniORB4/CORBA_sysdep_auto.h 2017-01-09 08:34:47.292907892 -0500
@@ -70,12 +70,12 @@

#if !defined(OMNIORB_DISABLE_LONGDOUBLE)
# if defined(SIZEOF_LONG_DOUBLE) && (SIZEOF_LONG_DOUBLE == 16)
-# define HAS_LongDouble
+// # define HAS_LongDouble
# define _CORBA_LONGDOUBLE_DECL long double
# endif

# if defined(SIZEOF_LONG_DOUBLE) && (SIZEOF_LONG_DOUBLE == 12) && defined(__i386__)
-# define HAS_LongDouble
+// # define HAS_LongDouble
# define _CORBA_LONGDOUBLE_DECL long double
# endif
#endif
diff -Nuar omniORB-4.2.0/include/omniORB4/CORBA_sysdep_trad.h omniORB-4.2.0-patched/include/omniORB4/CORBA_sysdep_trad.h
--- omniORB-4.2.0/include/omniORB4/CORBA_sysdep_trad.h 2014-01-17 10:27:56.000000000 -0500
+++ omniORB-4.2.0-patched/include/omniORB4/CORBA_sysdep_trad.h 2017-01-09 08:37:30.544545283 -0500
@@ -136,7 +136,7 @@

// GCC claims to support long long on all platforms
# define HAS_LongLong
-# define HAS_LongDouble
+// # define HAS_LongDouble
# define _CORBA_LONGLONG_DECL long long
# define _CORBA_ULONGLONG_DECL unsigned long long
# define _CORBA_LONGDOUBLE_DECL long double
@@ -190,7 +190,7 @@
# define _CORBA_LONGDOUBLE_DECL long double
# define _CORBA_LONGLONG_CONST(x) (x##LL)

-# define HAS_LongDouble
+// # define HAS_LongDouble


#elif defined(_MSC_VER)
@@ -223,7 +223,7 @@

# define HAVE_STRTOULL

-# define HAS_LongDouble
+// # define HAS_LongDouble
# define HAS_LongLong
# define _CORBA_LONGDOUBLE_DECL long double
# define _CORBA_LONGLONG_DECL long long
@@ -258,7 +258,7 @@
# define HAS_Cplusplus_const_cast
# define OMNI_REQUIRES_FQ_BASE_CTOR
# define HAS_LongLong
-# define HAS_LongDouble
+// # define HAS_LongDouble
# define _CORBA_LONGLONG_DECL long long
# define _CORBA_ULONGLONG_DECL unsigned long long
# define _CORBA_LONGDOUBLE_DECL long double
@@ -283,7 +283,7 @@
# define HAS_Cplusplus_Namespace
# define HAS_Std_Namespace
# define HAS_LongLong
-# define HAS_LongDouble
+// # define HAS_LongDouble
# define _CORBA_LONGLONG_DECL long long
# define _CORBA_ULONGLONG_DECL unsigned long long
# define _CORBA_LONGDOUBLE_DECL long double
@@ -303,7 +303,7 @@
# define _CORBA_ULONGLONG_DECL unsigned long long
# define _CORBA_LONGLONG_CONST(x) (x##LL)
# if defined(_FPWIDETYPES)
-# define HAS_LongDouble
+// # define HAS_LongDouble
# define _CORBA_LONGDOUBLE_DECL long double
# endif
# ifndef HAVE_STD
Loading

0 comments on commit fe3619e

Please sign in to comment.