images: Clear out code from days of yore

The images/ subdir is used to create images packages for release tags.
However, it contained a lot of code from many releases ago, prior to the
usage of the cache/ directory.

This simply removes all the old code that is no longer required for
creating release packages.
This commit is contained in:
Martin Braun 2021-12-17 14:04:58 +01:00 committed by Aaron Rossetto
parent c369b7046e
commit 30b157e4cf
4 changed files with 17 additions and 418 deletions

View file

@ -1,317 +0,0 @@
#
# Copyright 2010-2013 Ettus Research LLC
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
all:
@echo "Pick a specific target"
########################################################################
# Common Variables
########################################################################
TOP_DIR = $(shell pwd)
TOP_FW_DIR = $(TOP_DIR)/../firmware
TOP_FPGA_DIR = $(TOP_DIR)/../fpga
BUILT_IMAGES_DIR = $(TOP_DIR)/images
CMAKE_BUILD_DIR = $(TOP_DIR)/build
##filled in below
IMAGES_LIST =
##little rule to make the images directory
$(BUILT_IMAGES_DIR):
mkdir $@
mkdir $@/bit
GLOBAL_DEPS = $(BUILT_IMAGES_DIR)
########################################################################
# Utility Checks
########################################################################
ifeq ($(shell sdcc --help > /dev/null 2>&1 && echo $$?),0)
HAS_SDCC=1
endif
ifeq ($(shell zpu-elf-gcc --help > /dev/null 2>&1 && echo $$?),0)
HAS_ZPU_GCC=1
endif
ifeq ($(shell xtclsh -h > /dev/null 2>&1 && echo $$?),0)
HAS_XTCLSH=1
endif
ifeq ($(shell avr-gcc --version > /dev/null 2>&1 && echo $$?),0)
ifeq ($(shell avr-objcopy --version > /dev/null 2>&1 && echo $$?),0)
HAS_AVR_UTILS=1
endif
endif
########################################################################
# USRP1 and B100 firmware
########################################################################
ifdef HAS_SDCC
_usrp1_fw_dir = $(TOP_FW_DIR)/fx2
_usrp1_fw_ihx = $(BUILT_IMAGES_DIR)/usrp1_fw.ihx
_usrp_b100_fw_ihx = $(BUILT_IMAGES_DIR)/usrp_b100_fw.ihx
IMAGES_LIST += $(_usrp1_fw_ihx) $(_usrp_b100_fw_ihx)
$(_usrp1_fw_ihx): $(GLOBAL_DEPS)
cd $(_usrp1_fw_dir) && rm -rf build
cd $(_usrp1_fw_dir) && mkdir build
cd $(_usrp1_fw_dir)/build && cmake ../
cd $(_usrp1_fw_dir)/build && make
cp $(_usrp1_fw_dir)/build/usrp1/usrp1_fw.ihx $@
$(_usrp_b100_fw_ihx): $(_usrp1_fw_ihx)
cp $(_usrp1_fw_dir)/build/b100/b100_fw.ihx $(_usrp_b100_fw_ihx)
endif
########################################################################
# USRP1 fpga
########################################################################
_usrp1_fpga_dir = $(TOP_FPGA_DIR)/usrp1/rbf/rev4
_usrp1_fpga_rbf = $(BUILT_IMAGES_DIR)/usrp1_fpga.rbf
_usrp1_fpga_4rx_rbf = $(BUILT_IMAGES_DIR)/usrp1_fpga_4rx.rbf
IMAGES_LIST += $(_usrp1_fpga_rbf) $(_usrp1_fpga_4rx_rbf)
$(_usrp1_fpga_rbf): $(GLOBAL_DEPS)
cp $(_usrp1_fpga_dir)/std_2rxhb_2tx.rbf $@
$(_usrp1_fpga_4rx_rbf): $(GLOBAL_DEPS)
cp $(_usrp1_fpga_dir)/std_4rx_0tx.rbf $@
########################################################################
# USRP-B100 fpga
########################################################################
ifdef HAS_XTCLSH
_usrp_b100_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/B100
_usrp_b100_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_b100_fpga.bin
_usrp_b100_fpga_2rx_bin = $(BUILT_IMAGES_DIR)/usrp_b100_fpga_2rx.bin
IMAGES_LIST += $(_usrp_b100_fpga_bin) $(_usrp_b100_fpga_2rx_bin)
$(_usrp_b100_fpga_bin): $(GLOBAL_DEPS)
cd $(_usrp_b100_fpga_dir) && make -f Makefile.B100 clean
cd $(_usrp_b100_fpga_dir) && make -f Makefile.B100 bin
cp $(_usrp_b100_fpga_dir)/build-B100/B100.bin $@
$(_usrp_b100_fpga_2rx_bin): $(GLOBAL_DEPS)
cd $(_usrp_b100_fpga_dir) && make -f Makefile.B100_2RX clean
cd $(_usrp_b100_fpga_dir) && make -f Makefile.B100_2RX bin
cp $(_usrp_b100_fpga_dir)/build-B100_2RX/B100.bin $@
endif
########################################################################
# USRP2 and N-Series firmware
########################################################################
ifdef HAS_ZPU_GCC
_usrp2_fw_dir = $(TOP_FW_DIR)/zpu
_usrp2_fw_bin = $(BUILT_IMAGES_DIR)/usrp2_fw.bin
_usrp_n200_fw_bin = $(BUILT_IMAGES_DIR)/usrp_n200_fw.bin
_usrp_n210_fw_bin = $(BUILT_IMAGES_DIR)/usrp_n210_fw.bin
IMAGES_LIST += $(_usrp2_fw_bin) $(_usrp_n200_fw_bin) $(_usrp_n210_fw_bin)
$(_usrp2_fw_bin): $(GLOBAL_DEPS)
cd $(_usrp2_fw_dir) && rm -rf build
cd $(_usrp2_fw_dir) && mkdir build
cd $(_usrp2_fw_dir)/build && cmake ../
cd $(_usrp2_fw_dir)/build && make
cp $(_usrp2_fw_dir)/build/usrp2/usrp2_txrx_uhd.bin $@
$(_usrp_n200_fw_bin): $(_usrp2_fw_bin)
cp $(_usrp2_fw_dir)/build/usrp2p/usrp2p_txrx_uhd.bin $@
$(_usrp_n210_fw_bin): $(_usrp2_fw_bin)
cp $(_usrp2_fw_dir)/build/usrp2p/usrp2p_txrx_uhd.bin $@
endif
########################################################################
# USRP2 FPGA
########################################################################
ifdef HAS_XTCLSH
_usrp2_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/USRP2
_usrp2_fpga_bin = $(BUILT_IMAGES_DIR)/usrp2_fpga.bin
IMAGES_LIST += $(_usrp2_fpga_bin)
$(_usrp2_fpga_bin): $(GLOBAL_DEPS)
cd $(_usrp2_fpga_dir) && make clean
cd $(_usrp2_fpga_dir) && make bin
cp $(_usrp2_fpga_dir)/build/u2_rev3.bin $@
endif
########################################################################
# USRP N200 R2/R3 FPGA
########################################################################
ifdef HAS_XTCLSH
_usrp_n200_r3_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/N2x0
_usrp_n200_r3_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n200_r3_fpga.bin
_usrp_n200_r3_fpga_bit = $(BUILT_IMAGES_DIR)/bit/usrp_n200_r3_fpga.bit
IMAGES_LIST += $(_usrp_n200_r3_fpga_bin) $(_usrp_n200_r3_fpga_bit)
$(_usrp_n200_r3_fpga_bin): $(GLOBAL_DEPS)
cd $(_usrp_n200_r3_fpga_dir) && make -f Makefile.N200R3 clean
cd $(_usrp_n200_r3_fpga_dir) && make -f Makefile.N200R3 bin
cp $(_usrp_n200_r3_fpga_dir)/build-N200R3/u2plus.bin $@
$(_usrp_n200_r3_fpga_bit): $(_usrp_n200_r3_fpga_bin)
cp $(_usrp_n200_r3_fpga_dir)/build-N200R3/u2plus.bit $@
#its called r2 on the silkscreen, so make an r2
_usrp_n200_r2_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n200_r2_fpga.bin
IMAGES_LIST += $(_usrp_n200_r2_fpga_bin)
$(_usrp_n200_r2_fpga_bin): $(_usrp_n200_r3_fpga_bin)
cp $< $@
endif
########################################################################
# USRP N210 R2/R3 FPGA
########################################################################
ifdef HAS_XTCLSH
_usrp_n210_r3_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/N2x0
_usrp_n210_r3_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n210_r3_fpga.bin
_usrp_n210_r3_fpga_bit = $(BUILT_IMAGES_DIR)/bit/usrp_n210_r3_fpga.bit
IMAGES_LIST += $(_usrp_n210_r3_fpga_bin) $(_usrp_n210_r3_fpga_bit)
$(_usrp_n210_r3_fpga_bin): $(GLOBAL_DEPS)
cd $(_usrp_n210_r3_fpga_dir) && make -f Makefile.N210R3 clean
cd $(_usrp_n210_r3_fpga_dir) && make -f Makefile.N210R3 bin
cp $(_usrp_n210_r3_fpga_dir)/build-N210R3/u2plus.bin $@
$(_usrp_n210_r3_fpga_bit): $(_usrp_n210_r3_fpga_bin)
cp $(_usrp_n210_r3_fpga_dir)/build-N210R3/u2plus.bit $@
#its called r2 on the silkscreen, so make an r2
_usrp_n210_r2_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n210_r2_fpga.bin
IMAGES_LIST += $(_usrp_n210_r2_fpga_bin)
$(_usrp_n210_r2_fpga_bin): $(_usrp_n210_r3_fpga_bin)
cp $< $@
endif
########################################################################
# USRP N200 R4 FPGA
########################################################################
ifdef HAS_XTCLSH
_usrp_n200_r4_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/N2x0
_usrp_n200_r4_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n200_r4_fpga.bin
_usrp_n200_r4_fpga_bit = $(BUILT_IMAGES_DIR)/bit/usrp_n200_r4_fpga.bit
IMAGES_LIST += $(_usrp_n200_r4_fpga_bin) $(_usrp_n200_r4_fpga_bit)
$(_usrp_n200_r4_fpga_bin): $(GLOBAL_DEPS)
cd $(_usrp_n200_r4_fpga_dir) && make -f Makefile.N200R4 clean
cd $(_usrp_n200_r4_fpga_dir) && make -f Makefile.N200R4 bin
cp $(_usrp_n200_r4_fpga_dir)/build-N200R4/u2plus.bin $@
$(_usrp_n200_r4_fpga_bit): $(_usrp_n200_r4_fpga_bin)
cp $(_usrp_n200_r4_fpga_dir)/build-N200R4/u2plus.bit $@
endif
########################################################################
# USRP N210 R4 FPGA
########################################################################
ifdef HAS_XTCLSH
_usrp_n210_r4_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/N2x0
_usrp_n210_r4_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n210_r4_fpga.bin
_usrp_n210_r4_fpga_bit = $(BUILT_IMAGES_DIR)/bit/usrp_n210_r4_fpga.bit
IMAGES_LIST += $(_usrp_n210_r4_fpga_bin) $(_usrp_n210_r4_fpga_bit)
$(_usrp_n210_r4_fpga_bin): $(GLOBAL_DEPS)
cd $(_usrp_n210_r4_fpga_dir) && make -f Makefile.N210R4 clean
cd $(_usrp_n210_r4_fpga_dir) && make -f Makefile.N210R4 bin
cp $(_usrp_n210_r4_fpga_dir)/build-N210R4/u2plus.bin $@
$(_usrp_n210_r4_fpga_bit): $(_usrp_n210_r4_fpga_bin)
cp $(_usrp_n210_r4_fpga_dir)/build-N210R4/u2plus.bit $@
endif
########################################################################
# USRP E100 FPGA
########################################################################
ifdef HAS_XTCLSH
_usrp_e100_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/E1x0
_usrp_e100_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_e100_fpga_v2.bin
IMAGES_LIST += $(_usrp_e100_fpga_bin)
$(_usrp_e100_fpga_bin): $(GLOBAL_DEPS)
cd $(_usrp_e100_fpga_dir) && make -f Makefile.E100 clean
cd $(_usrp_e100_fpga_dir) && make -f Makefile.E100 bin
cp $(_usrp_e100_fpga_dir)/build-E100/E1x0.bin $@
endif
########################################################################
# USRP E110 FPGA
########################################################################
ifdef HAS_XTCLSH
_usrp_e110_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/E1x0
_usrp_e110_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_e110_fpga.bin
IMAGES_LIST += $(_usrp_e110_fpga_bin)
$(_usrp_e110_fpga_bin): $(GLOBAL_DEPS)
cd $(_usrp_e110_fpga_dir) && make -f Makefile.E110 clean
cd $(_usrp_e110_fpga_dir) && make -f Makefile.E110 bin
cp $(_usrp_e110_fpga_dir)/build-E110/E1x0.bin $@
endif
########################################################################
# OctoClock firmware
########################################################################
ifdef HAS_AVR_UTILS
_octoclock_fw_dir = $(TOP_FW_DIR)/octoclock
_octoclock_fw_bin = $(BUILT_IMAGES_DIR)/octoclock_r4_fw.hex
IMAGES_LIST += $(_octoclock_fw_bin)
$(_octoclock_fw_bin): $(GLOBAL_DEPS)
cd $(_octoclock_fw_dir) && mkdir build
cd $(_octoclock_fw_dir)/build && cmake ..
cd $(_octoclock_fw_dir)/build && make
cp $(TOP_FW_DIR)/octoclock/build/octoclock_r4_fw.hex $@
endif
########################################################################
# Build rules
########################################################################
images: $(IMAGES_LIST)
find $(BUILT_IMAGES_DIR) -type f | xargs chmod -x
find $(TOP_FPGA_DIR) -name "*.twr" | xargs grep constraint | grep met
package:
mkdir -p $(CMAKE_BUILD_DIR)
cd $(CMAKE_BUILD_DIR) && cmake -DUHD_RELEASE_MODE=OFF ..
cd $(CMAKE_BUILD_DIR) && cmake -DCPACK_GENERATOR=TGZ .. && make package
cd $(CMAKE_BUILD_DIR) && cmake -DCPACK_GENERATOR=ZIP .. && make package
clean:
$(RM) -rf $(BUILT_IMAGES_DIR)
$(RM) -rf $(CMAKE_BUILD_DIR)

View file

@ -19,12 +19,13 @@
Command-line utility to create a .zip-file with the current image set.
"""
import sys
import re
import os
import subprocess
import argparse
import shutil
import uhdimgs
import populate_images
def parse_args():
""" Parse args, duh """
@ -39,7 +40,6 @@ def download_images(img_root_dir):
"""
Run the images downloader
"""
import populate_images
populate_images.download_images(img_root_dir)
def get_version():
@ -51,18 +51,18 @@ def get_version():
git_output = subprocess.check_output(git_cmd).decode('UTF-8')
except subprocess.CalledProcessError as ex:
print(ex.output)
exit(1)
sys.exit(1)
print("Detected tag: {}".format(git_output))
version_mobj = re.search(r'[0-9]+\.[0-9]+\.[0-9]+\.[0-9]', git_output)
if version_mobj is None:
print("Error: Failure to resolve version from tag!")
exit(1)
sys.exit(1)
return version_mobj.group(0)
def main():
""" Go, go, go! """
args = parse_args()
img_root_dir = os.path.join(uhdimgs.get_images_dir(), 'images')
img_root_dir = os.path.join(populate_images.get_images_dir(), 'images')
print("== Clearing out the images directory at {}, if present...".format(img_root_dir))
shutil.rmtree(img_root_dir, ignore_errors=True)
print("== Downloading images...")
@ -76,7 +76,7 @@ def main():
subprocess.call(archive_cmd)
except subprocess.CalledProcessError as ex:
print(ex.output)
exit(1)
sys.exit(1)
print("== Done!")
if __name__ == "__main__":

View file

@ -10,19 +10,25 @@ Populates the current directory with a valid set of binaries for the
current commit.
"""
from __future__ import print_function
import os
import sys
import subprocess
import uhdimgs
def get_images_dir():
"""
Returns the absolute position of the images/ subdir
in the UHD source tree.
"""
return os.path.dirname(__file__)
def download_images(img_root_dir=None):
" Go, go, go! "
# Switch to correct dir
img_root_dir = img_root_dir or os.path.join(uhdimgs.get_images_dir(), 'images')
img_root_dir = img_root_dir or os.path.join(get_images_dir(), 'images')
if not os.path.isdir(img_root_dir):
print("== Creating images directory...")
os.mkdir(img_root_dir)
os.chdir(uhdimgs.get_images_dir())
os.chdir(get_images_dir())
print("== Starting download...")
try:
downloader_cmd = [
@ -34,7 +40,7 @@ def download_images(img_root_dir=None):
subprocess.check_call(downloader_cmd)
except (subprocess.CalledProcessError, OSError):
print("[ERROR] Failed to run downloader script.")
exit(1)
sys.exit(1)
print("== Done!")
if __name__ == "__main__":

View file

@ -1,90 +0,0 @@
#!/usr/bin/env python
#
# Copyright 2014 Ettus Research LLC
# Copyright 2018 Ettus Research, a National Instruments Company
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
"""
Utility module for packaging and handling UHD binary images.
"""
from __future__ import print_function
import re
import os
import sys
import hashlib
_DEFAULT_BASE_URL = "http://files.ettus.com/binaries/images"
_DEFAULT_BUFFER_SIZE = 8192
_CMAKE_MAIN_FILE = "../host/CMakeLists.txt"
_CMAKE_IMG_TPL = """
# This section is written automatically by /images/create_imgs_package.py
# Any manual changes in here will be overwritten.
SET(UHD_IMAGES_MD5SUM "{}")
SET(UHD_IMAGES_DOWNLOAD_SRC "{}")
"""
def get_cmake_main_file():
""" Returns a path to the CMakeLists.txt file that contains the image info. """
return _CMAKE_MAIN_FILE
def get_base_url():
""" Returns the base URL """
if os.environ.get("UHD_IMAGES_BASE_URL") is not None and os.environ.get("UHD_IMAGES_BASE_URL") != "":
return os.environ.get("UHD_IMAGES_BASE_URL")
else:
return _DEFAULT_BASE_URL
def base_url_is_local(base_url):
""" Returns true if the base URL is actually a http URL
instead of a local path. """
return not (base_url.find('http') == 0)
def get_images_dir():
"""
Returns the absolute position of the images/ subdir
in the UHD source tree.
"""
return os.path.dirname(__file__)
def update_main_cmake_file(md5, zipfilename):
"""
Update the section in host/CMakeLists.txt that contains
the ZIP filename and the MD5 hash.
"""
cmakef = open(_CMAKE_MAIN_FILE, 'r').read()
new_section = _CMAKE_IMG_TPL.format(md5, zipfilename)
regex = re.compile("(?<={{{IMG_SECTION)(.*)(?=#}}})", flags=re.MULTILINE|re.DOTALL)
cmakef = regex.sub(new_section, cmakef, count=1)
open(_CMAKE_MAIN_FILE, 'w').write(cmakef)
def get_total_md5(img_dir):
""" Creates an md5sum of everything in the images directory """
def _update_md5_for_dir_recursive(dir_root, md5_obj):
for (root, dirnames, filenames) in os.walk(dir_root):
for filename in filenames:
md5_obj.update(open(os.path.join(root, filename), 'rb').read())
sys.stdout.write('.')
sys.stdout.flush()
for dirname in dirnames:
_update_md5_for_dir_recursive(os.path.join(root, dirname), md5_obj)
md5 = hashlib.md5()
_update_md5_for_dir_recursive(img_dir, md5)
print("")
return md5.hexdigest()
def md5_checksum(filePath):
""" Return MD5 checksum of a single file. """
try:
with open(filePath, 'rb') as fh:
m = hashlib.md5()
while True:
data = fh.read(_DEFAULT_BUFFER_SIZE)
if not data:
break
m.update(data)
return m.hexdigest()
except Exception as e:
print("Failed to calculated MD5 sum of: %s (%s)" % (filePath, e))
raise e