Skip to content
This repository has been archived by the owner on Nov 5, 2024. It is now read-only.

Commit

Permalink
Enable automated builds and releases
Browse files Browse the repository at this point in the history
* Allow use of custom toolchain

* Add ci

* Cleanup
  • Loading branch information
pudelkoM authored Oct 5, 2019
1 parent 2bd1849 commit 3db592f
Show file tree
Hide file tree
Showing 3 changed files with 169 additions and 63 deletions.
33 changes: 33 additions & 0 deletions .circleci/build-sdklt.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash

set -e
set -x

export YAML=/usr
export YAML_LIBDIR=$YAML/src/.libs

export KDIR=$HOME/linux-4.14.49-OpenNetworkLinux

export TOOLCHAIN_DIR=/usr
export TARGET_ARCHITECTURE=""
export CROSS_COMPILE=""

export SDKLT=$HOME/project
export SDK=$SDKLT/src


# Add your flags here
# export CC=clang-3.9
# export LD=lld-3.9
# export ADD_CFLAGS="-g -fno-omit-frame-pointer -O0"

cd $SDK/appl/demo
make TARGET_PLATFORM=xlr_linux clean -j
make TARGET_PLATFORM=xlr_linux -j 4

tar czf $HOME/sdklt-4.14.49.tgz \
-C $SDKLT/src/appl/linux/build/xlr_linux/lkm/knet/ linux_ngknet.ko \
-C $SDKLT/src/appl/linux/build/xlr_linux/lkm/bde/ linux_ngbde.ko \
-C $SDKLT/src/appl/demo/build/xlr_linux/ sdklt \
-C $SDKLT/src/appl/sdklib/build/xlr_linux/ include/sdklt \
-C $SDKLT/src/appl/sdklib/build/xlr_linux/ lib/libsdklt.a lib/libsdklt.so
73 changes: 73 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#
# Copyright 2019-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

version: 2.1

jobs:
build:
docker:
- image: debian:testing
steps:
- run:
name: Setup build environment
command: |
apt update
apt install -y --no-install-recommends libyaml-dev python python-pip python-setuptools libelf-dev wget clang-8 gcc-9 make git ca-certificates ssh
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 10
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-8 10
update-alternatives --install /usr/bin/cc cc /usr/bin/clang 10
pip install pyyaml
- run:
name: Get Kernel sources
command: |
pushd $HOME
wget https://github.com/opennetworkinglab/OpenNetworkLinux/releases/download/onlpv2-dev-1.0.1/linux-4.14.49-OpenNetworkLinux.tar.xz
tar xf linux-4.14.49-OpenNetworkLinux.tar.xz
rm linux-4.14.49-OpenNetworkLinux.tar.xz
popd
- checkout
- run:
name: Build SDKLT
command: .circleci/build-sdklt.sh
- persist_to_workspace:
root: ~/
paths:
- sdklt-4.14.49.tgz

publish-github-release:
docker:
- image: circleci/golang:1.10
steps:
- attach_workspace:
at: ./artifacts
- run:
name: "Publish Release on GitHub"
command: |
go get -u github.com/tcnksm/ghr
ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete r${CIRCLE_BUILD_NUM} ./artifacts/
workflows:
version: 2
sdklt:
jobs:
- build
- publish-github-release:
requires:
- build
filters:
branches:
only: master
126 changes: 63 additions & 63 deletions src/appl/make/xlr_linux.mk
Original file line number Diff line number Diff line change
@@ -1,90 +1,90 @@
#
# Copyright: (c) 2018 Broadcom. All Rights Reserved. "Broadcom" refers to
# Copyright: (c) 2018 Broadcom. All Rights Reserved. "Broadcom" refers to
# Broadcom Limited and/or its subsidiaries.
#
#
# Broadcom Switch Software License
#
# This license governs the use of the accompanying Broadcom software. Your
# use of the software indicates your acceptance of the terms and conditions
# of this license. If you do not agree to the terms and conditions of this
#
# This license governs the use of the accompanying Broadcom software. Your
# use of the software indicates your acceptance of the terms and conditions
# of this license. If you do not agree to the terms and conditions of this
# license, do not use the software.
# 1. Definitions
# "Licensor" means any person or entity that distributes its Work.
# "Software" means the original work of authorship made available under
# "Software" means the original work of authorship made available under
# this license.
# "Work" means the Software and any additions to or derivative works of
# "Work" means the Software and any additions to or derivative works of
# the Software that are made available under this license.
# The terms "reproduce," "reproduction," "derivative works," and
# The terms "reproduce," "reproduction," "derivative works," and
# "distribution" have the meaning as provided under U.S. copyright law.
# Works, including the Software, are "made available" under this license
# by including in or with the Work either (a) a copyright notice
# referencing the applicability of this license to the Work, or (b) a copy
# Works, including the Software, are "made available" under this license
# by including in or with the Work either (a) a copyright notice
# referencing the applicability of this license to the Work, or (b) a copy
# of this license.
# 2. Grant of Copyright License
# Subject to the terms and conditions of this license, each Licensor
# grants to you a perpetual, worldwide, non-exclusive, and royalty-free
# copyright license to reproduce, prepare derivative works of, publicly
# display, publicly perform, sublicense and distribute its Work and any
# Subject to the terms and conditions of this license, each Licensor
# grants to you a perpetual, worldwide, non-exclusive, and royalty-free
# copyright license to reproduce, prepare derivative works of, publicly
# display, publicly perform, sublicense and distribute its Work and any
# resulting derivative works in any form.
# 3. Grant of Patent License
# Subject to the terms and conditions of this license, each Licensor
# grants to you a perpetual, worldwide, non-exclusive, and royalty-free
# patent license to make, have made, use, offer to sell, sell, import, and
# otherwise transfer its Work, in whole or in part. This patent license
# applies only to the patent claims licensable by Licensor that would be
# infringed by Licensor's Work (or portion thereof) individually and
# Subject to the terms and conditions of this license, each Licensor
# grants to you a perpetual, worldwide, non-exclusive, and royalty-free
# patent license to make, have made, use, offer to sell, sell, import, and
# otherwise transfer its Work, in whole or in part. This patent license
# applies only to the patent claims licensable by Licensor that would be
# infringed by Licensor's Work (or portion thereof) individually and
# excluding any combinations with any other materials or technology.
# If you institute patent litigation against any Licensor (including a
# cross-claim or counterclaim in a lawsuit) to enforce any patents that
# you allege are infringed by any Work, then your patent license from such
# Licensor to the Work shall terminate as of the date such litigation is
# If you institute patent litigation against any Licensor (including a
# cross-claim or counterclaim in a lawsuit) to enforce any patents that
# you allege are infringed by any Work, then your patent license from such
# Licensor to the Work shall terminate as of the date such litigation is
# filed.
# 4. Redistribution
# You may reproduce or distribute the Work only if (a) you do so under
# this License, (b) you include a complete copy of this License with your
# distribution, and (c) you retain without modification any copyright,
# You may reproduce or distribute the Work only if (a) you do so under
# this License, (b) you include a complete copy of this License with your
# distribution, and (c) you retain without modification any copyright,
# patent, trademark, or attribution notices that are present in the Work.
# 5. Derivative Works
# You may specify that additional or different terms apply to the use,
# reproduction, and distribution of your derivative works of the Work
# ("Your Terms") only if (a) Your Terms provide that the limitations of
# Section 7 apply to your derivative works, and (b) you identify the
# specific derivative works that are subject to Your Terms.
# Notwithstanding Your Terms, this license (including the redistribution
# You may specify that additional or different terms apply to the use,
# reproduction, and distribution of your derivative works of the Work
# ("Your Terms") only if (a) Your Terms provide that the limitations of
# Section 7 apply to your derivative works, and (b) you identify the
# specific derivative works that are subject to Your Terms.
# Notwithstanding Your Terms, this license (including the redistribution
# requirements in Section 4) will continue to apply to the Work itself.
# 6. Trademarks
# This license does not grant any rights to use any Licensor's or its
# affiliates' names, logos, or trademarks, except as necessary to
# This license does not grant any rights to use any Licensor's or its
# affiliates' names, logos, or trademarks, except as necessary to
# reproduce the notices described in this license.
# 7. Limitations
# Platform. The Work and any derivative works thereof may only be used, or
# Platform. The Work and any derivative works thereof may only be used, or
# intended for use, with a Broadcom switch integrated circuit.
# No Reverse Engineering. You will not use the Work to disassemble,
# reverse engineer, decompile, or attempt to ascertain the underlying
# No Reverse Engineering. You will not use the Work to disassemble,
# reverse engineer, decompile, or attempt to ascertain the underlying
# technology of a Broadcom switch integrated circuit.
# 8. Termination
# If you violate any term of this license, then your rights under this
# license (including the license grants of Sections 2 and 3) will
# If you violate any term of this license, then your rights under this
# license (including the license grants of Sections 2 and 3) will
# terminate immediately.
# 9. Disclaimer of Warranty
# THE WORK IS PROVIDED "AS IS" WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OR CONDITIONS OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR
# NON-INFRINGEMENT. YOU BEAR THE RISK OF UNDERTAKING ANY ACTIVITIES UNDER
# THIS LICENSE. SOME STATES' CONSUMER LAWS DO NOT ALLOW EXCLUSION OF AN
# THE WORK IS PROVIDED "AS IS" WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OR CONDITIONS OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR
# NON-INFRINGEMENT. YOU BEAR THE RISK OF UNDERTAKING ANY ACTIVITIES UNDER
# THIS LICENSE. SOME STATES' CONSUMER LAWS DO NOT ALLOW EXCLUSION OF AN
# IMPLIED WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO YOU.
# 10. Limitation of Liability
# EXCEPT AS PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL
# THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE
# SHALL ANY LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,
# INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF
# OR RELATED TO THIS LICENSE, THE USE OR INABILITY TO USE THE WORK
# (INCLUDING BUT NOT LIMITED TO LOSS OF GOODWILL, BUSINESS INTERRUPTION,
# LOST PROFITS OR DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY OTHER
# COMMERCIAL DAMAGES OR LOSSES), EVEN IF THE LICENSOR HAS BEEN ADVISED OF
# EXCEPT AS PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL
# THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE
# SHALL ANY LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,
# INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF
# OR RELATED TO THIS LICENSE, THE USE OR INABILITY TO USE THE WORK
# (INCLUDING BUT NOT LIMITED TO LOSS OF GOODWILL, BUSINESS INTERRUPTION,
# LOST PROFITS OR DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY OTHER
# COMMERCIAL DAMAGES OR LOSSES), EVEN IF THE LICENSOR HAS BEEN ADVISED OF
# THE POSSIBILITY OF SUCH DAMAGES.
#
#
#
#
#
# Tool chain and platform settings for cross-compiling the SDK for the
# Broadcom XLR CPU board.
Expand All @@ -99,10 +99,10 @@
# Broadcom settings for TOOLCHAIN_DIR and KDIR
-include $(SDK)/INTERNAL/appl/make/xlr_linux_broadcom.mk

# Too chain directories
# Tool chain directories
TOOLCHAIN_BIN_DIR = $(TOOLCHAIN_DIR)/bin
LIBRARY_PATH = $(TOOLCHAIN_DIR)/lib:$(TOOLCHAIN_DIR)/lib64
TARGET_ARCHITECTURE = x86_64-fedora-linux-gnu
TARGET_ARCHITECTURE ?= x86_64-fedora-linux-gnu

# Add tools to system PATH
TOOL_PATH := $(TOOLCHAIN_BIN_DIR):$(TOOL_PATH)
Expand All @@ -112,12 +112,12 @@ override PATH := $(TOOL_PATH):$(PATH)
export TOOLCHAIN_BIN_DIR LIBRARY_PATH

# Tools prefix
CROSS_COMPILE = $(TARGET_ARCHITECTURE)-
CROSS_COMPILE ?= $(TARGET_ARCHITECTURE)-

# Build tools
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)ld
AR = $(CROSS_COMPILE)ar
CC ?= $(CROSS_COMPILE)gcc
LD ?= $(CROSS_COMPILE)ld
AR ?= $(CROSS_COMPILE)ar

# Architecture is required for building kernel modules
export ARCH=x86_64
Expand Down

0 comments on commit 3db592f

Please sign in to comment.