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

build: Add minimal Makefile #16

Merged
merged 1 commit into from
Jan 26, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
#
# Copyright (c) 2018 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

DESTBINDIR = /usr/local/bin

KATA_RUNTIME_NAME = kata-runtime
KATA_RUNTIME_PATH = $(DESTBINDIR)/$(KATA_RUNTIME_NAME)

ifeq (,$(KATA_RUNTIME))
# no argument specified
ifeq (,$(MAKECMDGOALS))
fail = true
endif

# remove goals that don't require the variable to be set
remaining=$(filter-out help,$(MAKECMDGOALS))

ifneq (,$(remaining))
fail = true
endif

ifeq ($(fail),true)
$(error "ERROR: KATA_RUNTIME not set - run 'make help'")
endif
endif

ifeq (cc,$(KATA_RUNTIME))
RUNTIME_DIR = cc-runtime
RUNTIME_NAME = kata-runtime-cc
TARGET = $(RUNTIME_NAME)
DESTTARGET = $(DESTBINDIR)/$(TARGET)
endif

ifeq (runv,$(KATA_RUNTIME))
RUNTIME_DIR = runv
RUNTIME_NAME = runv
Copy link
Member

@egernst egernst Jan 25, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jodh-intel should this be kata-runtime-runv?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nevermind -- I see that our runtime name is updated just to avoid confusion and we ultimately make the symlink regardless.

Thanks James -- looks fine to me....

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably, but runv's build doesn't allow the target name to be overridden unfortunately.

DESTTARGET = $(DESTBINDIR)/$(RUNTIME_NAME)
endif

default: build

build:
ifeq (cc,$(KATA_RUNTIME))
make -C $(RUNTIME_DIR) build-kata-system TARGET=$(TARGET) DESTTARGET=$(DESTTARGET)
endif
ifeq (runv,$(KATA_RUNTIME))
(cd $(RUNTIME_DIR) && [ -e configure ] || ./autogen.sh && ./configure && make)
endif

install: install-runtime create-symlink

install-runtime:
ifeq (cc,$(KATA_RUNTIME))
make -C $(RUNTIME_DIR) install-kata-system TARGET=$(TARGET) DESTTARGET=$(DESTTARGET)
endif
ifeq (runv,$(KATA_RUNTIME))
make -C $(RUNTIME_DIR) install
endif

create-symlink:
ln -sf $(DESTTARGET) $(KATA_RUNTIME_PATH)

remove-symlink:
rm -f $(KATA_RUNTIME_PATH)

clean: remove-symlink
ifeq (cc,$(KATA_RUNTIME))
make -C $(RUNTIME_DIR) clean TARGET=$(TARGET)
endif
ifeq (runv,$(KATA_RUNTIME))
make -C $(RUNTIME_DIR) clean
endif

help:
@printf "To build a Kata Containers runtime:\n"
@printf "\n"
@printf " \$$ make KATA_RUNTIME={cc|runv} [install]\n"
@printf "\n"
@printf "Project home: https://github.com/kata-containers\n"