Skip to content
This repository has been archived by the owner on May 4, 2023. It is now read-only.

Commit

Permalink
Going back to a monorepo
Browse files Browse the repository at this point in the history
  • Loading branch information
cgsfv committed Apr 6, 2021
1 parent e67d563 commit 6360480
Show file tree
Hide file tree
Showing 86 changed files with 6,869 additions and 491 deletions.
68 changes: 48 additions & 20 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,31 +1,50 @@
# Setup the Freedom build script environment
include scripts/Freedom.mk
include scripts/Package.mk
# Reuse the default target
.PHONY: package
package: all

.PHONY: regress
regress: all

.PHONY: cleanup
cleanup: all

.PHONY: flushup
flushup: all

# Make uses /bin/sh by default, ignoring the user's value of SHELL.
# Some systems now ship with /bin/sh pointing at dash, and this Makefile
# requires bash
SHELL = /bin/bash

BINDIR_PREFIX ?= ./
OBJDIR_PREFIX ?= ./
BINDIR := $(BINDIR_PREFIX)bin
OBJDIR := $(OBJDIR_PREFIX)obj

# The default target
.PHONY: all
all:
@echo " Makefile targets: *-package *-regress *-cleanup *-flushup clean flush help all"
@echo " Makefile modules: *-*package *-*regress *-*cleanup *-*flushup clean flush help all"

.PHONY: help
help:
@echo ""
@echo " SiFive Freedom Tools - Makefile targets:"
@echo " SiFive Freedom Tools - Makefile modules:"
@echo ""
@echo " *-package"
@echo " *-package, *-native-package, *-cross-package"
@echo " Build the binary packages for * repo."
@echo ""
@echo " *-regress"
@echo " *-regress, *-native-regress, *-cross-regress"
@echo " Test the prebuilt packages for * repo."
@echo ""
@echo " *-cleanup"
@echo " *-cleanup, *-native-cleanup, *-cross-cleanup"
@echo " Clean the build artifacts for * repo."
@echo ""
@echo " *-flushup"
@echo " *-flushup, *-native-flushup, *-cross-flushup"
@echo " Flush the build artifacts for * repo."
@echo ""
@echo " clean"
@echo " Remove the src, obj and bin directories."
@echo " Remove the obj and bin directories."
@echo ""
@echo " flush"
@echo " Remove the obj directory."
Expand All @@ -34,7 +53,7 @@ help:
@echo " Show this help."
@echo ""
@echo " all"
@echo " Show Makefile targets."
@echo " Show Makefile modules."
@echo ""
@echo " * refers to an item from the package list"
@echo " toolchain-metal"
Expand All @@ -52,12 +71,21 @@ help:
@echo ""

# Include Makefiles for all modules
include modules/freedom-binutils-metal.mk
include modules/freedom-gcc-metal.mk
include modules/freedom-gdb-metal.mk
include modules/freedom-toolchain-metal.mk
include modules/freedom-qemu.mk
include modules/freedom-sdk-utilities.mk
include modules/freedom-openocd.mk
include modules/freedom-trace-decoder.mk
include modules/freedom-xc3sprog.mk
include modules/freedom-binutils-metal/Monorepo.mk
include modules/freedom-gcc-metal/Monorepo.mk
include modules/freedom-gdb-metal/Monorepo.mk
include modules/freedom-toolchain-metal/Monorepo.mk
include modules/freedom-qemu/Monorepo.mk
include modules/freedom-sdk-utilities/Monorepo.mk
include modules/freedom-openocd/Monorepo.mk
include modules/freedom-trace-decoder/Monorepo.mk
include modules/freedom-xc3sprog/Monorepo.mk

# Targets that don't build anything
.PHONY: clean
clean::
rm -rf $(OBJDIR) $(BINDIR)

.PHONY: flush
flush::
rm -rf $(OBJDIR)
50 changes: 34 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,35 @@
SiFive Freedom RISC-V Tools
SiFive Freedom RISC-V Tools for Embedded Development
--------

At SiFive we've been distributing binary release packages of the
tools that target our Freedom RISC-V platforms. This repository
contains the scripts we use to build these tools.

### The packages:

* https://github.com/sifive/freedom-toolchain-metal
* https://github.com/sifive/freedom-binutils-metal
* https://github.com/sifive/freedom-gcc-metal
* https://github.com/sifive/freedom-gdb-metal
* https://github.com/sifive/freedom-qemu
* https://github.com/sifive/freedom-sdk-utilities
* https://github.com/sifive/freedom-openocd
* https://github.com/sifive/freedom-trace-decoder
* https://github.com/sifive/freedom-xc3sprog
At SiFive we've been distributing binary release packages of the embedded development
tools that target our Freedom RISC-V platforms. This repository contains the scripts
we use to build these tools.

### Packages and their contents

* RISC-V GNU Newlib Toolchain (`riscv64-unknown-elf-*`)
* Binutils
* GCC
* GDB
* Newlib (and nano)
* LibExpat
* Python
* RISC-V OpenOCD (`riscv-openocd-*`)
* OpenOCD
* LibUSB, LibUSB-Compat, LibFTDI
* RISC-V QEMU (`riscv-qemu-*`)
* QEMU (riscv32-softmmu + riscv64-softmmu)
* ZLib, LibFFI, LibIConv, GetText, GLib, LibPNG, JPEG, PixMan
* SDK Utilities (`sdk-utilities-*`)
* DTC (Device Tree Compiler)
* Freedom Elf2Hex
* Spike DASM (Disassembler)
* Trace Decoder (`trace-decoder-*`)
* Trace Decoder
* SWIG, Binutils (bfd, opcodes, liberty, ZLib
* XC3SPROG (`xc3sprog-*`)
* XC3SPROG
* LibUSB, LibUSB-Compat, LibFTDI, LibIConv

All the packages has a uniquely named root folder, making it easy to untar/unzip'ing
multiple versions next to each other.
Expand All @@ -40,6 +54,10 @@ On Ubuntu, executing the following command should suffice:
$ sudo apt-get install cmake autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf patchutils bc zlib1g-dev libexpat-dev libtool pkg-config mingw-w64 mingw-w64-tools texlive zip python-dev gettext libglib2.0-dev libpixman-1-dev swig ninja-build python3
$ sudo pip3 install meson

On Ubuntu, for cross-building Windows packages you should use [Linuxbrew](https://docs.brew.sh/Homebrew-on-Linux) to install extra dependencies:

$ brew install mingw-w64

On OS X, you can use [Homebrew](http://brew.sh) to install most of the dependencies and then you also need [MacTex](http://www.tug.org/mactex/):

$ brew install cmake autoconf automake gawk gnu-sed gnu-tar texinfo libtool pkg-config wget xz swig python3 ninja meson
Expand Down
50 changes: 0 additions & 50 deletions modules/freedom-binutils-metal.mk

This file was deleted.

122 changes: 122 additions & 0 deletions modules/freedom-binutils-metal/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# Setup the Freedom build script environment
include ../../scripts/Freedom.mk

# Include version identifiers to build up the full version string
include Metadata.mk
PACKAGE_WORDING := Bare Metal Binutils
PACKAGE_HEADING := riscv64-unknown-elf-binutils
PACKAGE_VERSION := $(RISCV_BINUTILS_VERSION)-$(FREEDOM_BINUTILS_METAL_ID)$(EXTRA_SUFFIX)
PACKAGE_COMMENT := \# SiFive Freedom Package Properties File

# Source code directory references
BARE_METAL_TUPLE := riscv64-unknown-elf
BARE_METAL_CC_FOR_TARGET ?= $(BARE_METAL_TUPLE)-gcc
BARE_METAL_CXX_FOR_TARGET ?= $(BARE_METAL_TUPLE)-g++

# Some special package configure flags for specific targets
$(WIN64)-binutils-host := --host=$(WIN64)
$(WIN64)-binutils-configure := --with-included-gettext
$(UBUNTU64)-binutils-host := --host=x86_64-linux-gnu
$(UBUNTU64)-binutils-configure := --with-included-gettext
$(DARWIN)-binutils-configure := --with-included-gettext
$(REDHAT)-binutils-configure := --with-included-gettext

# Setup the package targets and switch into secondary makefile targets
# Targets $(PACKAGE_HEADING)/install.stamp and $(PACKAGE_HEADING)/libs.stamp
include ../../scripts/Package.mk

$(OBJDIR)/%/build/$(PACKAGE_HEADING)/install.stamp: \
$(OBJDIR)/%/build/$(PACKAGE_HEADING)/build-binutils/build.stamp
$(eval $@_TARGET := $(patsubst $(OBJDIR)/%/build/$(PACKAGE_HEADING)/install.stamp,%,$@))
$(eval $@_INSTALL := $(patsubst %/build/$(PACKAGE_HEADING)/install.stamp,%/install/$(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$($@_TARGET),$@))
$(eval $@_PROPERTIES := $(patsubst %/build/$(PACKAGE_HEADING)/install.stamp,%/install/$(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$($@_TARGET).properties,$@))
mkdir -p $(dir $@)
git log --format="[%ad] %s" > $(abspath $($@_INSTALL))/$(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$($@_TARGET).changelog
rm -f $(abspath $($@_PROPERTIES))
echo "$(PACKAGE_COMMENT)" > $(abspath $($@_PROPERTIES))
echo "PACKAGE_TYPE = freedom-tools" >> $(abspath $($@_PROPERTIES))
echo "PACKAGE_DESC_SEG = $(PACKAGE_WORDING)" >> $(abspath $($@_PROPERTIES))
echo "PACKAGE_FIXED_ID = $(PACKAGE_HEADING)" >> $(abspath $($@_PROPERTIES))
echo "PACKAGE_BUILD_ID = $(FREEDOM_BINUTILS_METAL_ID)$(EXTRA_SUFFIX)" >> $(abspath $($@_PROPERTIES))
echo "PACKAGE_CORE_VER = $(RISCV_BINUTILS_VERSION)" >> $(abspath $($@_PROPERTIES))
echo "PACKAGE_TARGET = $($@_TARGET)" >> $(abspath $($@_PROPERTIES))
echo "PACKAGE_VENDOR = SiFive" >> $(abspath $($@_PROPERTIES))
echo "PACKAGE_RIGHTS = sifive-v00 eclipse-v20" >> $(abspath $($@_PROPERTIES))
echo "RISCV_TAGS = $(FREEDOM_BINUTILS_METAL_RISCV_TAGS)" >> $(abspath $($@_PROPERTIES))
echo "TOOLS_TAGS = $(FREEDOM_BINUTILS_METAL_TOOLS_TAGS)" >> $(abspath $($@_PROPERTIES))
cp $(abspath $($@_PROPERTIES)) $(abspath $($@_INSTALL))/
tclsh ../../scripts/check-maximum-path-length.tcl $(abspath $($@_INSTALL)) "$(PACKAGE_HEADING)" "$(RISCV_BINUTILS_VERSION)" "$(FREEDOM_BINUTILS_METAL_ID)$(EXTRA_SUFFIX)"
tclsh ../../scripts/check-same-name-different-case.tcl $(abspath $($@_INSTALL))
echo $(PATH)
date > $@

# We might need some extra target libraries for this package
$(OBJ_NATIVE)/build/$(PACKAGE_HEADING)/libs.stamp: \
$(OBJ_NATIVE)/build/$(PACKAGE_HEADING)/install.stamp
date > $@

$(OBJ_WIN64)/build/$(PACKAGE_HEADING)/libs.stamp: \
$(OBJ_WIN64)/build/$(PACKAGE_HEADING)/install.stamp
-$(WIN64)-gcc -print-search-dirs | grep ^programs | cut -d= -f2- | tr : "\n" | xargs -I {} find {} -iname "libwinpthread*.dll" | xargs cp -t $(OBJDIR)/$(WIN64)/install/$(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$(WIN64)/bin
-$(WIN64)-gcc -print-search-dirs | grep ^libraries | cut -d= -f2- | tr : "\n" | xargs -I {} find {} -iname "libgcc_s_seh*.dll" | xargs cp -t $(OBJDIR)/$(WIN64)/install/$(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$(WIN64)/bin
-$(WIN64)-gcc -print-search-dirs | grep ^libraries | cut -d= -f2- | tr : "\n" | xargs -I {} find {} -iname "libstdc*.dll" | xargs cp -t $(OBJDIR)/$(WIN64)/install/$(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$(WIN64)/bin
-$(WIN64)-gcc -print-search-dirs | grep ^libraries | cut -d= -f2- | tr : "\n" | xargs -I {} find {} -iname "libssp*.dll" | xargs cp -t $(OBJDIR)/$(WIN64)/install/$(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$(WIN64)/bin
date > $@

$(OBJDIR)/%/build/$(PACKAGE_HEADING)/source.stamp:
$(eval $@_TARGET := $(patsubst $(OBJDIR)/%/build/$(PACKAGE_HEADING)/source.stamp,%,$@))
$(eval $@_INSTALL := $(patsubst %/build/$(PACKAGE_HEADING)/source.stamp,%/install/$(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$($@_TARGET),$@))
$(eval $@_BUILDLOG := $(abspath $(patsubst %/build/$(PACKAGE_HEADING)/source.stamp,%/buildlog/$(PACKAGE_HEADING),$@)))
$(eval $@_SRCBALL := $(abspath $(BINDIR)/$(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$($@_TARGET).src.tar.gz))
tclsh ../../scripts/check-naming-and-version-syntax.tcl "$(PACKAGE_WORDING)" "$(PACKAGE_HEADING)" "$(RISCV_BINUTILS_VERSION)" "$(FREEDOM_BINUTILS_METAL_ID)$(EXTRA_SUFFIX)"
rm -rf $($@_INSTALL)
mkdir -p $($@_INSTALL)
rm -rf $($@_BUILDLOG)
mkdir -p $($@_BUILDLOG)
rm -rf $(dir $@)
mkdir -p $(dir $@)
git log > $($@_BUILDLOG)/$(PACKAGE_HEADING)-git-commit.log
git remote -v > $($@_BUILDLOG)/$(PACKAGE_HEADING)-git-remote.log
git clone --single-branch --branch $(RISCV_BINUTILS_BRANCH) $(RISCV_BINUTILS_GITURL) $(dir $@)/$(RISCV_BINUTILS_FOLDER)
cd $(dir $@)/$(RISCV_BINUTILS_FOLDER) && git checkout --detach $(RISCV_BINUTILS_COMMIT)
cd $(dir $@)/$(RISCV_BINUTILS_FOLDER) && git submodule update --init --recursive
mkdir -p $(dir $($@_SRCBALL))
cd $(dir $@); $(TAR) --dereference --hard-dereference -c $(RISCV_BINUTILS_FOLDER) | gzip > $($@_SRCBALL)
date > $@

# Reusing binutils build script across binutils-metal, gcc-metal and trace-decoder
include scripts/build_binutils_target.mk

$(OBJDIR)/%/build/$(PACKAGE_HEADING)/build-binutils/build.stamp: \
$(OBJDIR)/%/build/$(PACKAGE_HEADING)/build-binutils/support.stamp
$(eval $@_TARGET := $(patsubst $(OBJDIR)/%/build/$(PACKAGE_HEADING)/build-binutils/build.stamp,%,$@))
$(eval $@_INSTALL := $(patsubst %/build/$(PACKAGE_HEADING)/build-binutils/build.stamp,%/install/$(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$($@_TARGET),$@))
$(eval $@_BUILDLOG := $(abspath $(patsubst %/build/$(PACKAGE_HEADING)/build-binutils/build.stamp,%/buildlog/$(PACKAGE_HEADING),$@)))
$(MAKE) -C $(dir $@) -j1 install install-pdf install-html &>$($@_BUILDLOG)/build-binutils-make-install.log
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-addr2line
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-ar
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-as
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-c++filt
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-elfedit
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-gprof
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-ld
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-ld.bfd
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-nm
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-objcopy
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-objdump
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-ranlib
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-readelf
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-size
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-strings
tclsh ../../scripts/dyn-lib-check-$($@_TARGET).tcl $(abspath $($@_INSTALL))/bin/riscv64-unknown-elf-strip
date > $@

$(OBJDIR)/$(NATIVE)/test/$(PACKAGE_HEADING)/test.stamp: \
$(OBJDIR)/$(NATIVE)/test/$(PACKAGE_HEADING)/launch.stamp
mkdir -p $(dir $@)
PATH=$(abspath $(OBJDIR)/$(NATIVE)/launch/$(PACKAGE_TARNAME)/bin):$(PATH) riscv64-unknown-elf-ld -v
PATH=$(abspath $(OBJDIR)/$(NATIVE)/launch/$(PACKAGE_TARNAME)/bin):$(PATH) riscv64-unknown-elf-objdump -v
PATH=$(abspath $(OBJDIR)/$(NATIVE)/launch/$(PACKAGE_TARNAME)/bin):$(PATH) riscv64-unknown-elf-readelf -v
PATH=$(abspath $(OBJDIR)/$(NATIVE)/launch/$(PACKAGE_TARNAME)/bin):$(PATH) riscv64-unknown-elf-size -v
@echo "Finished testing $(PACKAGE_HEADING)-$(PACKAGE_VERSION)-$(NATIVE).tar.gz tarball"
date > $@
8 changes: 8 additions & 0 deletions modules/freedom-binutils-metal/Metadata.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
include ../../scripts/base_binutils_metadata.mk

# Customization ID, which should identify the customization added to the original by SiFive
FREEDOM_BINUTILS_METAL_ID := $(FREEDOM_BINUTILS_ID)

# Characteristic tags, which should be usable for matching up providers and consumers
FREEDOM_BINUTILS_METAL_RISCV_TAGS := $(FREEDOM_BINUTILS_RISCV_TAGS)
FREEDOM_BINUTILS_METAL_TOOLS_TAGS := $(FREEDOM_BINUTILS_TAG_PREFIX)-metal
42 changes: 42 additions & 0 deletions modules/freedom-binutils-metal/Monorepo.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
.PHONY: binutils-metal binutils-metal-package binutils-metal-native-package binutils-metal-cross-package
.PHONY: binutils-metal-regress
.PHONY: binutils-metal-cleanup binutils-metal-native-cleanup binutils-metal-cross-cleanup
.PHONY: binutils-metal-flushup binutils-metal-native-flushup binutils-metal-cross-flushup
binutils-metal: binutils-metal-package

.PHONY: binutils-only binutils-only-package binutils-only-native-package binutils-only-cross-package binutils-only-regress
binutils-only-package: binutils-metal-package
binutils-only-native-package: binutils-metal-native-package
binutils-only-cross-package: binutils-metal-cross-package
binutils-only-regress: binutils-metal-regress
binutils-only: binutils-metal

binutils-metal-package:
$(MAKE) -C modules/freedom-binutils-metal package BINDIR_PREFIX=$(abspath $(BINDIR_PREFIX))/ OBJDIR_PREFIX=$(abspath $(OBJDIR_PREFIX))/ EXTRA_OPTION=$(EXTRA_OPTION) EXTRA_SUFFIX=$(EXTRA_SUFFIX)

binutils-metal-native-package:
$(MAKE) -C modules/freedom-binutils-metal native-package BINDIR_PREFIX=$(abspath $(BINDIR_PREFIX))/ OBJDIR_PREFIX=$(abspath $(OBJDIR_PREFIX))/ EXTRA_OPTION=$(EXTRA_OPTION) EXTRA_SUFFIX=$(EXTRA_SUFFIX)

binutils-metal-cross-package:
$(MAKE) -C modules/freedom-binutils-metal cross-package BINDIR_PREFIX=$(abspath $(BINDIR_PREFIX))/ OBJDIR_PREFIX=$(abspath $(OBJDIR_PREFIX))/ EXTRA_OPTION=$(EXTRA_OPTION) EXTRA_SUFFIX=$(EXTRA_SUFFIX)

binutils-metal-regress:
$(MAKE) -C modules/freedom-binutils-metal regress BINDIR_PREFIX=$(abspath $(BINDIR_PREFIX))/ OBJDIR_PREFIX=$(abspath $(OBJDIR_PREFIX))/ EXTRA_OPTION=$(EXTRA_OPTION) EXTRA_SUFFIX=$(EXTRA_SUFFIX)

binutils-metal-cleanup:
$(MAKE) -C modules/freedom-binutils-metal cleanup BINDIR_PREFIX=$(abspath $(BINDIR_PREFIX))/ OBJDIR_PREFIX=$(abspath $(OBJDIR_PREFIX))/

binutils-metal-native-cleanup:
$(MAKE) -C modules/freedom-binutils-metal native-cleanup BINDIR_PREFIX=$(abspath $(BINDIR_PREFIX))/ OBJDIR_PREFIX=$(abspath $(OBJDIR_PREFIX))/

binutils-metal-cross-cleanup:
$(MAKE) -C modules/freedom-binutils-metal cross-cleanup BINDIR_PREFIX=$(abspath $(BINDIR_PREFIX))/ OBJDIR_PREFIX=$(abspath $(OBJDIR_PREFIX))/

binutils-metal-flushup:
$(MAKE) -C modules/freedom-binutils-metal flushup BINDIR_PREFIX=$(abspath $(BINDIR_PREFIX))/ OBJDIR_PREFIX=$(abspath $(OBJDIR_PREFIX))/

binutils-metal-native-flushup:
$(MAKE) -C modules/freedom-binutils-metal native-flushup BINDIR_PREFIX=$(abspath $(BINDIR_PREFIX))/ OBJDIR_PREFIX=$(abspath $(OBJDIR_PREFIX))/

binutils-metal-cross-flushup:
$(MAKE) -C modules/freedom-binutils-metal cross-flushup BINDIR_PREFIX=$(abspath $(BINDIR_PREFIX))/ OBJDIR_PREFIX=$(abspath $(OBJDIR_PREFIX))/
Loading

0 comments on commit 6360480

Please sign in to comment.