Commit fdefb9ed authored by Ignacio (Nacho) Solis's avatar Ignacio (Nacho) Solis

CCNx Distillery (2.0) - Initial GitHub release

parents
# Created files and directories
build
usr
.distillery.stamp
src
# Temporary files
*.swp
*~
Copyright (c) 2013, 2014, 2015, 2016, Xerox Corporation (Xerox)and Palo Alto
Research Center (PARC)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Patent rights are not granted under this agreement. Patent rights are
available under FRAND terms.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL XEROX or PARC BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
##############################################################
#
# CCNx Distillery project
#
# Copyright PARC 2015, 2016
#
# See LICENSE FILE
# Ignacio Solis <Ignacio.Solis@parc.com>
#
# This is the main Makefile for the Distillery CCNx distribution.
# It is in charge of pulling in all necessary modules to build a full CCNx
# system.
# There is normally no need to modify this file. You can run "make help" to get
# more information or you can go directly to the configuration files to modify
# behavior.
DISTILLERY_VERSION=2.0
default.target: help
all: install-all
##############################################################
# Variables
#
# Set some variables
DISTILLERY_STAMP=.distillery.stamp
REBUILD_DEPENDS=
##############################################################
# Load the configuration
#
# For more information please see config.default.mk
#
DISTILLERY_CONFIG_DIR ?= config
DISTILLERY_USER_CONFIG_DIR ?= ${HOME}/.ccnx/distillery
DISTILLERY_DEFAULT_CONFIG ?= ${DISTILLERY_CONFIG_DIR}/config.mk
DISTILLERY_LOCAL_CONFIG ?= ${DISTILLERY_CONFIG_DIR}/local/config.mk
DISTILLERY_USER_CONFIG ?= ${DISTILLERY_USER_CONFIG_DIR}/config.mk
ifneq (,$(wildcard ${DISTILLERY_USER_CONFIG}))
include ${DISTILLERY_USER_CONFIG}
REBUILD_DEPENDS+=${DISTILLERY_USER_CONFIG}
else
DISTILLERY_USER_CONFIG+="[Not Found]"
endif
ifneq (,$(wildcard ${DISTILLERY_LOCAL_CONFIG}))
include ${DISTILLERY_LOCAL_CONFIG}
REBUILD_DEPENDS+=${DISTILLERY_LOCAL_CONFIG}
endif
include ${DISTILLERY_DEFAULT_CONFIG}
##############################################################
# Set the paths
#
# PATH: add our install dir, build dependencies and system dependencies
# LD_RUN_PATH: add our install dir
export PATH := $(DISTILLERY_INSTALL_DIR)/bin:$(DISTILLERY_TOOLS_DIR)/bin:$(PATH)
export LD_RUN_PATH := $(DISTILLERY_INSTALL_DIR)/lib
export CCNX_HOME
export FOUNDATION_HOME
##############################################################
# Modules
#
# Load the modules config. Please refer to that file for more information
DISTILLERY_MODULES_DIR=${DISTILLERY_CONFIG_DIR}/modules
# The modules variable is a list of modules. It will be populated by the
# modules config files.
modules=
modules_dir=
include ${DISTILLERY_MODULES_DIR}/*.mk
# Load user defined modules
DISTILLERY_USER_MODULES_DIR=${DISTILLERY_USER_CONFIG_DIR}/modules
ifneq (,$(wildcard ${DISTILLERY_USER_MODULES_DIR}))
include ${DISTILLERY_USER_MODULES_DIR}/*.mk
else
DISTILLERY_USER_MODULES_DIR+="[Not Found]"
endif
ifdef ${DISTILLERY_LOCAL_MODULES_DIR}
include ${DISTILLERY_LOCAL_MODULES_DIR}/*.mk
else
DISTILLERY_LOCAL_MODULES_DIR="[Undefined]"
endif
##############################################################
# Build variables and rules
#
# We're going to create lists of targets as convenience
modules_clean=$(modules:=.clean)
modules_distclean=$(modules:=.distclean)
modules_init=$(modules:=.init)
modules_check=$(modules:=.check)
modules_step=$(modules:=.step)
modules_fetch=$(modules_dir:=.fetch)
modules_status=$(modules_dir:=.status)
modules_nuke=$(modules_dir:=.nuke)
# These are the basic build rules. They will call the module specific rules
install-all: install-directories ${modules}
# If somebody calls "make Module", we will build and install it
${modules}:
@$(MAKE) $(@:=.build) # make Module.build
@$(MAKE) $(@:=.install) # make Module.install
${modules_step}:
@$(MAKE) $(@:.step=.build) # make Module.build
@$(MAKE) $(@:.step=.check) # make Module.check
@$(MAKE) $(@:.step=.install) # make Module.install
${modules_status}:
@echo '===================================================================='
@/bin/echo -n $(notdir $(@:.status=)) ": "
@# cd Module_dir; git rev-parse....; git status -s --branch
@cd $(@:.status=); \
git rev-parse HEAD 2> /dev/null ;\
git status -s --branch
${modules_fetch}:
@#cd Module_dir; git fetch
@cd $(@:.fetch=); \
git fetch
${modules_nuke}:
@#cd Module_dir; git fetch
@cd $(@:.nuke=); \
git clean -dfx && git reset --hard
clobber: distclean
@rm -rf ${CONFIGURE_CACHE_FILE}
@rm -rf ${DISTILLERY_INSTALL_DIR}/bin
@rm -rf ${DISTILLERY_INSTALL_DIR}/lib
@rm -rf ${DISTILLERY_INSTALL_DIR}/include
@rm -rf ${DISTILLERY_INSTALL_DIR}/share
@rm -rf ${DISTILLERY_INSTALL_DIR}/etc
@rm -rf .*.stamp
clean: ${modules_clean}
@rm -rf report.txt
distclean:
@rm -rf ${DISTILLERY_BUILD_DIR}
@rm -rf report.txt
update: ${modules_init}
check: ${modules_check}
step: ${modules_step}
status: ${modules_status}
fetch: ${modules_fetch}
nuke-all-modules: ${modules_nuke}
dependencies:
@${MAKE} -C dependencies
dependencies.clean:
@${MAKE} -C dependencies clean
dependencies.clobber:
@${MAKE} -C dependencies clobber
help:
@echo "Simple instructions: run \"make update step\""
@echo
@echo "---- Basic build targets ----"
@echo "make help - This help message"
@echo "make info - Show basic information"
@echo "make update - git clone and pull the different modules to the head of master"
@echo "make step - Module by module: configure, compile and install all software"
@echo " in the install directory (see make info) and run tests"
@echo "make all - Configure, compile and install all software in Distillery/build"
@echo "make check - Run all the tests"
@echo "make clobber - Clean the build, remove the install software"
@echo
@echo "---- Advanced targets ----"
@echo "make nuke-all-modules - DANGEROUS! Clean all the modules to git checkout (git clean -dfx)"
@echo " - You will lose all uncommited changes"
@echo "make clean - Clean the build"
@echo "make distclean - Distclean the build"
@echo
@echo "---- Basic module targets ----"
@echo "Module Directory = ${MODULES_DIRECTORY_DEFAULT}"
@echo "Modules Loaded = ${modules}"
@echo "Per-module targets: \"Module\" \"Module.distclean\" \"Module.nuke\" "
${DISTILLERY_STAMP}: ${REBUILD_DEPENDS}
touch $@
install-directories:
mkdir -p ${DISTILLERY_INSTALL_DIR}/include
mkdir -p ${DISTILLERY_INSTALL_DIR}/lib
mkdir -p ${DISTILLERY_INSTALL_DIR}/bin
Distillery.report:
@echo '###################################'
@echo 'Distillery report'
@echo "#" `date "+%Y-%m-%d %H:%M:%S"`
@echo "#" `uname -sr` "-" `uname -pm`
@echo "#" `uname -n`
@echo "#" PATH=${PATH}
@git status
@git log -1
@git diff -U1
report.txt:
$(MAKE) report > report.txt
@cat report.txt
distillery.checkout.error:
@echo
@echo ===========================================================
@echo
@echo DISTILLERY ERROR: You have not checked out a repository!
@echo Please make sure to run \"make update\" at least once
@echo
@echo Otherwise there is a misconfigured module,
@echo please check the module config files at .distillery/modules
@echo
@echo ===========================================================
@echo
info:
@echo ------ Distillery Info ------
@echo DISTILLERY_ROOT_DIR=${DISTILLERY_ROOT_DIR}
@echo DISTILLERY_DEFAULT_CONFIG=${DISTILLERY_DEFAULT_CONFIG}
@echo DISTILLERY_LOCAL_CONFIG=${DISTILLERY_LOCAL_CONFIG}
@echo DISTILLERY_USER_CONFIG=${DISTILLERY_USER_CONFIG}
@echo DISTILLERY_MODULES_DIR=${DISTILLERY_MODULES_DIR}
@echo DISTILLERY_LOCAL_MODULES_DIR=${DISTILLERY_LOCAL_MODULES_DIR}
@echo DISTILLERY_USER_MODULES_DIR=${DISTILLERY_USER_MODULES_DIR}
@echo DISTILLERY_INSTALL_DIR=${DISTILLERY_INSTALL_DIR}
@echo DISTILLERY_DEPENDENCIES_DIR=${DISTILLERY_DEPENDENCIES_DIR}
@echo DISTILLERY_EXTERN_DIR=${DISTILLERY_EXTERN_DIR}
@echo DISTILLERY_TOOLS_DIR=${DISTILLERY_TOOLS_DIR}
@echo LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
@echo LD_RUN_PATH=${LD_RUN_PATH}
@echo FOUNDATION_HOME=${FOUNDATION_HOME}
@echo CCNX_HOME=${CCNX_HOME}
@echo PATH=${PATH}
.PHONY: dependencies
# Distillery 2.0
This is the Distillery CCNx software distribution. It is in charge of pulling
together all the necessary modules to build a full CCNx software suite.
While Distillery brings a bunch of modules together; each module is
independent. As such, each may be from a different author or institution and
have it's own set of requirements. Please read their respective documentation.
Distillery provices a set of features for building CCNx software as well as
tools for writing, testing and evaluating code.
For Distillery licensing information please read the LICENSE file.
### Quick Start ###
Install dependencies:
```
make dependencies
```
The following commands will download all the code and compile it:
```
make update
make step
```
### Getting Started ###
To get simple help run `make`. This will give you a list of possible targets to
execute.
You will need to install dependencies `make dependencies`. You can pull the
code from all the sub projects using `make update`. You can compile all the
binaries using `make all`. Run all tests using `make check`. `make info` will
give you some information about the build environment.
### Contact ###
http://www.ccnx.org/
### License ###
This software is distributed under the following license:
```
Copyright (c) 2013, 2014, 2015, 2016, Xerox Corporation (Xerox)and Palo Alto
Research Center (PARC)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Patent rights are not granted under this agreement. Patent rights are
available under FRAND terms.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL XEROX or PARC BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```
CCNx Distillery Config Directory
This is the directory where CCNx Distillery stores it's configuration
information. Most configuration is parsed by makefile so the files are in
makefile format.
Important files and directories
# config.mk
This is the default configuration. DO NOT CHANGE THIS FILE. You can use this
file as a template to create your own configuration.
# modules
This is the modules directory. It has the configuration file for each module
that is available through Distillery.
# local
This directory (may or may not exist) is the place to put your local
configuration files. It gets ignored by git. Make will look for a
configuration file called config.mk in this directory to configure this
specific instance of Distillery.
###############################################################################
#
# Distillery default configuration
#
# DO NOT EDIT THIS FILE!!
#
# You can set your user configuration in the file ${HOME}/.ccnx/distilleryr/config.mk
# You can set your local configuration in the file [DISTILLERY]/config/config.mk
# You can use this file as a template. It will be included in the Makefile.
#
# Make will first parse the USER_CONFIG file. Later the LOCAL_CONFIG file.
# Finally the DEFAULT_CONFIG file will be parsed.
#
# If variables are directly assigned (=), they will override previous definitions
# If variables are conditionally assigned (?=) then the previous value will
# carry. This default file will use conditional assignments for statements. So
# if the variables are assigned in the USER_CONFIG or LOCAL_CONFIG files they
# will NOT be overriden. Only in the case when a variable is not defined it
# will be defined by this file.
#
# In the most typical situations the USER_CONFIG and LOCAL_CONFIG will use
# direct assignment of variables.
#
# Copyright 2016 Palo Alto Research Center Inc.
#
###############################################################################
# DISTILLERY_ROOT_DIR=/path/to/root/dir
# This is the root directory of the Distillery distribution. Many other paths depend
# on this. This file assumes that make is being run from the DISTILLERY
# directory. If this is not true, it's convenient to assign the variable at the
# shell.
DISTILLERY_ROOT_DIR?=$(shell pwd)
# This is the root directory where things are built. Currently not all modules
# support being built in a separate directory but we want to have the variable
# ready to switch over to out-of-tree compiles
DISTILLERY_BUILD_DIR?=${DISTILLERY_ROOT_DIR}/build
#DISTILLERY_BUILD_DIR?=${DISTILLERY_ROOT_DIR}
# Directories for the different module categories
FOUNDATION_SOURCE_DIR = ${DISTILLERY_ROOT_DIR}/src
FRAMEWORK_SOURCE_DIR = ${DISTILLERY_ROOT_DIR}/src
LANGUAGES_SOURCE_DIR = ${DISTILLERY_ROOT_DIR}/src
FORWARDER_SOURCE_DIR = ${DISTILLERY_ROOT_DIR}/src
# MAKE_BUILD_FLAGS
# Flags to pass to make when building the projects. This is mostly used for
# parallel builds. Disable by setting it to empty
MAKE_BUILD_FLAGS?=-j8
# DISTILLERY_INSTALL_DIR=/path/to/install/dir
# This is the directory where all the ccn software will be installed. This
# directory will be DELETED if you do a make clobber. Do not treat this the
# same way you would treat a system install directory.
DISTILLERY_INSTALL_DIR?=${DISTILLERY_ROOT_DIR}/usr
# DISTILLERY_DEPENDENCIES_DIR=/path/to/dependencies/dir
# This is the path to the dependencies directory. It is used as the base for
# the dependencies install directories. (tools and libraries)
# You should normally not edit this variable.
DISTILLERY_DEPENDENCIES_DIR?=/usr/local/ccnx/dependencies
# DISTILLERY_EXTERN_DIR=/path/to/dependencies/external/install/dir
# This is the directory where the dependencies will be installed. This
# directory is deleted and created as needed by the dependencies system.
# It is used in gravy for includes and linking. This should be for the TARGET
# architecture.
DISTILLERY_EXTERN_DIR?=${DISTILLERY_DEPENDENCIES_DIR}/build
# DISTILLERY_TOOLS_DIR=/path/to/dependency/tools/dir
# This directory holds some of the tools needed to build libccnx. It should be
# built for the HOST. The directory might be deleted and rebuilt by the
# dependency system. The directory will be included in the execution PATH as
# Distillery builds all the modules.
DISTILLERY_TOOLS_DIR?=${DISTILLERY_DEPENDENCIES_DIR}/build-tools
# CONFIGURE_CACHE_FILE
# File used by configure to cache results
CONFIGURE_CACHE_FILE?=${DISTILLERY_ROOT_DIR}/.configure.cache
# CONFIGURE_CACHE_FLAG
# This flag is used to cache the values out of configure
CONFIGURE_CACHE_FLAG=--cache-file ${CONFIGURE_CACHE_FILE}
# CONFIGURE_DEBUG_FLAG=--enable-debug
# This flag is added to some configure calls to enable debugging. Basically it
# turns on -g -O0
# To disable redefined it empty
CONFIGURE_DEBUG_FLAG?=--enable-debug
# CONFIGURE_OPENSSL_FLAG
# Flag to pass to configure if we need to define where openssl is
CONFIGURE_OPENSSL_FLAG?=--with-openssl=${DISTILLERY_EXTERN_DIR}
# CONFIGURE_LIBEVENT_FLAG
# Flag to pass to configure if we need to define where libevent is
CONFIGURE_LIBEVENT_FLAG?=--with-libevent=${DISTILLERY_EXTERN_DIR}
CONFIGURE_INSTALL_FLAG=INSTALL="/usr/bin/install -C"
CMAKE_MAKE_TEST_ARGS="ARGS=-j16"
# CONFIGURE_COVERAGE_FLAG
# Flag to pass to configure to enable coverage
#CONFIGURE_COVERAGE_FLAG?=--coverage
# DISABLE_UBUNTU_PACKAGE_CHECK
# This setting disables checking that the ubuntu packages are installed. In the default
# mode the build will fail if the packages are not installed.
# See the related setting DISABLE_UBUNTU_CHECK for system checks.
# NOTE: Any value is considered true!
#DISABLE_UBUNTU_PACKAGE_CHECK=True
# DISABLE_UBUNTU_CHECK
# This setting disables checking that the current system is the supported Ubuntu version
# If you are on Linux, and it's not the supported ubuntu version the build will fail.
# If you disable this setting the build system will not check. (For example if you wanted to build
# on Debian. See the related setting DISABLE_UBUNTU_PACKAGE_CHECK
# NOTE: Any value is considered true!
#DISABLE_UBUNTU_CHECK=True
# FOUNDATION_HOME
# This variable is used by scripts to know where to find the installed
# Foundation libraries and software.
FOUNDATION_HOME=${DISTILLERY_INSTALL_DIR}
# CCNX_HOME
# These variables are used by scripts to know where to find the installed
# CCNX software and libaries. They are also used by various packaging scripts.
CCNX_HOME=${DISTILLERY_INSTALL_DIR}
# ENABLE_ALL_MODULES_BY_DEFAULT
# This will be the default value for modules (YES or NO).
# Each module can be customized by setting the corresponding variable
# ENABLE_<MODULE> to either YES or NO to override the default.
ENABLE_ALL_MODULES_BY_DEFAULT=YES
# ENABLE_<MODULE>
# Enable individual modules. This is useful when you dissable all modules by
# default
#ENABLE_LONGBOW=YES
#ENABLE_LIBPARC=YES
LONGBOW_MODULE_NAME=LongBow
ENABLE_LONGBOW?=${ENABLE_ALL_MODULES_BY_DEFAULT}
ifeq (${ENABLE_LONGBOW},YES)
modules+=${LONGBOW_MODULE_NAME}
endif
LONGBOW_SOURCE_DIR=${FOUNDATION_SOURCE_DIR}/${LONGBOW_MODULE_NAME}
LONGBOW_BUILD_DIR=${DISTILLERY_BUILD_DIR}/${LONGBOW_MODULE_NAME}
LONGBOW_GIT_CONFIG=${LONGBOW_SOURCE_DIR}/.git/config
LONGBOW_GIT_REPOSITORY=git@github.com:PARC/LongBow.git
modules_dir+=${LONGBOW_SOURCE_DIR}
# init target, called to initialize the module, normally this would do a git
# checkout or download the source/binary from somewhere
LongBow.init: ${LONGBOW_GIT_CONFIG}
@cd ${LONGBOW_SOURCE_DIR} && git pull
${LONGBOW_GIT_CONFIG}:
@git clone ${LONGBOW_GIT_REPOSITORY} ${LONGBOW_SOURCE_DIR}
LongBow.build: ${LONGBOW_BUILD_DIR}/Makefile
${MAKE} ${MAKE_BUILD_FLAGS} -C ${LONGBOW_BUILD_DIR}
${LONGBOW_BUILD_DIR}/Makefile: ${LONGBOW_SOURCE_DIR}/CMakeLists.txt ${DISTILLERY_STAMP}
mkdir -p ${LONGBOW_BUILD_DIR}
cd ${LONGBOW_BUILD_DIR}; \
DEPENDENCY_HOME=${DISTILLERY_EXTERN_DIR} \
cmake ${LONGBOW_SOURCE_DIR} \
-DCMAKE_INSTALL_PREFIX=${DISTILLERY_INSTALL_DIR}
LongBow.install: ${LONGBOW_BUILD_DIR}/Makefile
@${MAKE} ${MAKE_BUILD_FLAGS} -C ${LONGBOW_BUILD_DIR} install
LongBow.clean: ${LONGBOW_BUILD_DIR}/Makefile
@${MAKE} ${MAKE_BUILD_FLAGS} -C ${LONGBOW_BUILD_DIR} clean
LongBow.distclean:
rm -rf ${LONGBOW_BUILD_DIR}
LongBow.check: ${LONGBOW_BUILD_DIR}/Makefile
@${MAKE} ${MAKE_BUILD_FLAGS} -C ${LONGBOW_BUILD_DIR} test ${CMAKE_MAKE_TEST_ARGS}
# The Makefile.am (or any other dependency for a Makefile) is created when a
# repository is cloned. We do not know what the user wants at this point so
# give the user an error.
${LONGBOW_SOURCE_DIR}/CMakeLists.txt:
@$(MAKE) distillery.checkout.error
LIBPARC_MODULE_NAME=Libparc
ENABLE_LIBPARC?=${ENABLE_ALL_MODULES_BY_DEFAULT}
ifeq (${ENABLE_LIBPARC},YES)
modules+=${LIBPARC_MODULE_NAME}
endif
LIBPARC_SOURCE_DIR=${FOUNDATION_SOURCE_DIR}/${LIBPARC_MODULE_NAME}
LIBPARC_BUILD_DIR=${DISTILLERY_BUILD_DIR}/${LIBPARC_MODULE_NAME}
LIBPARC_GIT_CONFIG=${LIBPARC_SOURCE_DIR}/.git/config
LIBPARC_GIT_REPOSITORY=git@github.com:PARC/Libparc.git
modules_dir+=${LIBPARC_SOURCE_DIR}
# init target, called to initialize the module, normally this would do a git
# checkout or download the source/binary from somewhere
Libparc.init: ${LIBPARC_GIT_CONFIG}
@cd ${LIBPARC_SOURCE_DIR} && git pull
${LIBPARC_GIT_CONFIG}:
@git clone ${LIBPARC_GIT_REPOSITORY} ${LIBPARC_SOURCE_DIR}
Libparc.build: ${LIBPARC_BUILD_DIR}/Makefile
${MAKE} ${MAKE_BUILD_FLAGS} -C ${LIBPARC_BUILD_DIR}
${LIBPARC_BUILD_DIR}/Makefile: ${LIBPARC_SOURCE_DIR}/CMakeLists.txt ${DISTILLERY_STAMP}
mkdir -p ${LIBPARC_BUILD_DIR}
cd ${LIBPARC_BUILD_DIR}; \
cmake ${LIBPARC_SOURCE_DIR} \
-DCMAKE_INSTALL_PREFIX=${DISTILLERY_INSTALL_DIR}
Libparc.install: ${LIBPARC_BUILD_DIR}/Makefile
@${MAKE} ${MAKE_BUILD_FLAGS} -C ${LIBPARC_BUILD_DIR} install
Libparc.clean: ${LIBPARC_BUILD_DIR}/Makefile
@${MAKE} ${MAKE_BUILD_FLAGS} -C ${LIBPARC_BUILD_DIR} clean
Libparc.distclean:
@rm -rf ${LIBPARC_BUILD_DIR}
Libparc.check: ${LIBPARC_BUILD_DIR}/Makefile
@${MAKE} ${MAKE_BUILD_FLAGS} -C ${LIBPARC_BUILD_DIR} test ${CMAKE_MAKE_TEST_ARGS}
# The Makefile.am (or any other dependency for a Makefile) is created when a
# repository is cloned. We do not know what the user wants at this point so
# give the user an error.
${LIBPARC_SOURCE_DIR}/CMakeLists.txt:
@$(MAKE) distillery.checkout.error
CCNx Distillery Modules
These modules are loaded in order.
autoconf-2.69
automake-1.14.1
doxygen-1.8.9.1
hfcca-1.7.1
libevent-2.0.22-stable
libtool-2.4.2
openssl-1.0.1q
pcre-8.38
uncrustify-0.61
cmake-3.4.3
This diff is collapsed.
#
# We need something to download files
#
# Copyright PARC 2014
#
CURL_EXISTS := $(shell which curl)
ifdef CURL_EXISTS
DOWNLOADER=curl -O -L
else
DOWNLOADER=wget
endif
#!/bin/make -f
export RUBY_DIR=$(shell pwd)/Jekyll
export GEM_HOME=${RUBY_DIR}
export GEM_PATH=${GEM_HOME}:/usr/lib/ruby/gems/2.0.0
SOURCE_DIR=PARC
JEKYLL_DIR=${GEM_HOME}/gems/jekyll-1.4.3/bin/jekyll
all: depend
check:
GEM_PATH=${GEM_PATH} GEM_HOME=${GEM_HOME} gem environment
depend: ${JEKYLL_DIR}
${JEKYLL_DIR}:
mkdir -p ${RUBY_DIR}
gem install -i ${RUBY_DIR} jekyll
clobber:
rm -rf ${RUBY_DIR}
# Makefile to install ubuntu dependencies
ubuntu.install.packages:
ubuntu-install-packages.sh
ubuntu.check:
ubuntu-check.sh
#
# We need something to detect Unixs
#