From 777651148187bee83ab8ae0e4f752e3337cfb2ff Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Fri, 6 Aug 2010 18:49:23 -0700 Subject: uhd-images: created makefile and cmake packager for the images --- images/.gitignore | 2 ++ images/CMakeLists.txt | 42 +++++++++++++++++++++++++ images/Makefile | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++ images/README | 20 ++++++++++++ 4 files changed, 150 insertions(+) create mode 100644 images/.gitignore create mode 100644 images/CMakeLists.txt create mode 100644 images/Makefile create mode 100644 images/README (limited to 'images') diff --git a/images/.gitignore b/images/.gitignore new file mode 100644 index 000000000..8947b7a83 --- /dev/null +++ b/images/.gitignore @@ -0,0 +1,2 @@ +/build +/images diff --git a/images/CMakeLists.txt b/images/CMakeLists.txt new file mode 100644 index 000000000..7a5056c4b --- /dev/null +++ b/images/CMakeLists.txt @@ -0,0 +1,42 @@ +# +# Copyright 2010 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 . +# + +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(UHD-images) + +######################################################################## +# Config Files (include order is important) +######################################################################## +INCLUDE(${CMAKE_SOURCE_DIR}/../host/config/Python.cmake) +INCLUDE(${CMAKE_SOURCE_DIR}/../host/config/Version.cmake) + +######################################################################## +# Setup CPack +######################################################################## +SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Ettus Research - Universal Hardware Driver Images") +SET(CPACK_PACKAGE_VENDOR "Ettus Research LLC") +SET(CPACK_PACKAGE_CONTACT "support@ettus.com") +SET(CPACK_PACKAGE_VERSION_MAJOR ${UHD_VERSION_MAJOR}) +SET(CPACK_PACKAGE_VERSION_MINOR ${UHD_VERSION_MINOR}) +SET(CPACK_PACKAGE_VERSION_PATCH ${UHD_VERSION_PATCH}) +INCLUDE(CPack) #include after setting vars +MESSAGE(STATUS "Version: ${CPACK_PACKAGE_VERSION}") + +######################################################################## +# Install Images +######################################################################## +INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/images DESTINATION share/uhd) diff --git a/images/Makefile b/images/Makefile new file mode 100644 index 000000000..6ab54e6ac --- /dev/null +++ b/images/Makefile @@ -0,0 +1,86 @@ +# +# Copyright 2010 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 . +# + +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 = + +######################################################################## +# USRP2 firmware +######################################################################## +_usrp2_fw_dir = $(TOP_FW_DIR)/microblaze +_usrp2_fw_bin = $(BUILT_IMAGES_DIR)/usrp2_fw.bin +IMAGES_LIST += $(_usrp2_fw_bin) + +$(_usrp2_fw_bin): + cd $(_usrp2_fw_dir) && ./bootstrap + cd $(_usrp2_fw_dir) && ./configure --host=mb + make -C $(_usrp2_fw_dir) clean + make -C $(_usrp2_fw_dir) all + cp $(_usrp2_fw_dir)/usrp2/usrp2_txrx_uhd.bin $@ + +######################################################################## +# USRP2 fpga +######################################################################## +_usrp2_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/u2_rev3 +_usrp2_fpga_bin = $(BUILT_IMAGES_DIR)/usrp2_fpga.bin +IMAGES_LIST += $(_usrp2_fpga_bin) + +$(_usrp2_fpga_bin): + cd $(_usrp2_fpga_dir) && make -f Makefile.udp clean + cd $(_usrp2_fpga_dir) && make -f Makefile.udp bin + cp $(_usrp2_fpga_dir)/build-udp/u2_rev3.bin $@ + +######################################################################## +# Build rules +######################################################################## +##little rule to make the images directory +$(BUILT_IMAGES_DIR): + mkdir $@ + +images: $(BUILT_IMAGES_DIR) $(IMAGES_LIST) + +clean: + $(RM) -rf $(BUILT_IMAGES_DIR) + $(RM) -rf $(CMAKE_BUILD_DIR) + +#packages that a linux machine can build +linux-packages: + mkdir -p $(CMAKE_BUILD_DIR) + + cd $(CMAKE_BUILD_DIR) && cmake -DCPACK_GENERATOR=TGZ $(TOP_DIR) + make -C $(CMAKE_BUILD_DIR) package + + cd $(CMAKE_BUILD_DIR) && cmake -DCPACK_GENERATOR=ZIP $(TOP_DIR) + make -C $(CMAKE_BUILD_DIR) package + + cd $(CMAKE_BUILD_DIR) && cmake -DCPACK_GENERATOR=DEB $(TOP_DIR) + make -C $(CMAKE_BUILD_DIR) package + + cd $(CMAKE_BUILD_DIR) && cmake -DCPACK_GENERATOR=RPM $(TOP_DIR) + make -C $(CMAKE_BUILD_DIR) package diff --git a/images/README b/images/README new file mode 100644 index 000000000..ec8391826 --- /dev/null +++ b/images/README @@ -0,0 +1,20 @@ +The images directory contains the following: + - a Makefile for building firmware and fpga images + - a CMake file for building an images package + +The Makefile and build systems for the images are probably Unix specific. +Its best to build the images on a Unix system with standard build tools. +The CMake package target will create an images package for your system. + +To build the images (unix): + make clean + make images + +To build the package (unix): + mkdir build + cd build + cmake -DCPACK_GENERATOR= ../ + make package + +The package generator types are described here: + http://www.cmake.org/Wiki/CMake:CPackPackageGenerators -- cgit v1.2.3 From 9e419c7b7f35062ceb2ed4e508cadb163067593f Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Tue, 10 Aug 2010 11:55:27 -0700 Subject: uhd-images: do not require language check for images project --- images/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'images') diff --git a/images/CMakeLists.txt b/images/CMakeLists.txt index 7a5056c4b..75cb4c9d3 100644 --- a/images/CMakeLists.txt +++ b/images/CMakeLists.txt @@ -16,7 +16,7 @@ # CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT(UHD-images) +PROJECT(UHD-images NONE) ######################################################################## # Config Files (include order is important) -- cgit v1.2.3