1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
UHD Firmware and FPGA Images Builder
===============================================================
The images directory contains the following:
* A Makefile for building firmware and FPGA images
* Scripts to load all the binaries for this current commit, as
well as create a new images package from the images in subdir
images/
This provides a clean and organized way to build all of the firmware and FPGA
images, the source code for which is in the `firmware` and `fpga` directories
one level above this, and also maintains a linkage between images and git commits.
Building the binaries
---------------------
The Makefile and build systems for the images are *probably* Unix-specific.
It's best to build the images on a Unix system with standard build tools. The
CMake package target will create an installable images package for your system.
__To build the images (unix):__
1. `make clean`
2. `make images`
__Fedora note:__
The sdcc binaries are prefixed with "sdcc-" which breaks the build.
However, /usr/libexec/sdcc contains properly named sdcc binaries.
`export PATH=${PATH}:/usr/libexec/sdcc`
Updating binaries
-----------------
This goes two ways:
1. Loading the correct binaries for this commit
2. Updating the binary package on this branch
### Loading the correct binaries ###
If you check out a branch or commit, you might want to use the exact same
binaries that were used when this branch or commit was generated.
To do this, run `populate_images.py`. This will either download the correct
images package from a web server or from a local directory if
`UHD_IMAGES_BASE_URL` is set.
### Updating the binaries ###
If you have commited changes to this branch that require new images, you
should probably update those.
Simply copy the new image binaries into images/. If necessary, run
`populate_images.py` before you do any of this, so all the untouched
images are the correct version. Then, run `create_imgs_package.py --commit "COMMIT MSG"`
to create a new ZIP file and commit the info.
If `UHD_IMAGES_BASE_URL` is set and is a local directory, it will move
the ZIP file to this directory after creating it.
### Updating the binaries ###
Typical workflow:
1. Check out a branch or commit (git checkout FOO)
2. Update the images/ subdir (`populate_images.py`)
3. Do some coding, and commit those changes (`git commit`)
4. Copy new binaries to images/
5. Commit the new binaries: `create_imgs_package.py --commit "Updated images on branch X"`
### The CPack system ###
Underlying `create_imgs_package.py` is a CPack system, which can be manually
invoked by:
1. `mkdir build`
2. `cd build`
3. `cmake -DCPACK_GENERATOR=<type> ../`
4. `make package`
The package generator types are described here:
http://www.cmake.org/Wiki/CMake:CPackPackageGenerators
|