genode-ehmry/Tuprules.tup

130 lines
3.5 KiB
Plaintext

.gitignore
ifeq (@(TUP_ARCH),i386)
CC_MARCH = -march=i686 -m32
LD_MARCH = -melf_i386
endif
ifeq (@(TUP_ARCH),x86_64)
CC_MARCH = -m64 -mcmodel=large
LD_MARCH = -melf_x86_64
endif
GENODE_DIR = $(TUP_CWD)/upstream
ifeq ($(RAW_NAME),)
RAW_NAME = $(TARGET_NAME)
endif
ifeq ($(BIN_NAME),)
BIN_NAME = $(TARGET_NAME)
endif
ifeq ($(PKG_NAME),)
PKG_NAME = $(TARGET_NAME)
endif
GIT_VERSION=`git describe --always`
BIN_VERSION=$(GIT_VERSION)
PKG_VERSION=$(GIT_VERSION)
ifeq ($(RAW_VERSION),)
RAW_VERSION=$(GIT_VERSION)
endif
DEPOT_DIR = $(TUP_CWD)/depot
DEPOT_RAW_DIR = $(DEPOT_DIR)/raw
DEPOT_BIN_DIR = $(DEPOT_DIR)/bin
DEPOT_PKG_DIR = $(DEPOT_DIR)/pkg
PUBLIC_DIR = $(TUP_CWD)/public
PUBLIC_RAW_DIR = $(PUBLIC_DIR)/raw
PUBLIC_BIN_DIR = $(PUBLIC_DIR)/bin
PUBLIC_PKG_DIR = $(PUBLIC_DIR)/pkg
RAW_DIR = $(DEPOT_RAW_DIR)/$(RAW_NAME)/current
# Destination for locally defined raw package
BIN_DIR = $(DEPOT_BIN_DIR)/$(BIN_NAME)/current
# Destination for locally defined binary package
PKG_DIR = $(DEPOT_BIN_DIR)/$(BIN_NAME)/current
# Destination for locally defined runtime package
!raw = |> ^ COLLECT %o^ \
echo $(RAW_DEPENDS) local/raw/$(RAW_NAME)/$(RAW_VERSION) | tr ' ' '\n' > %o; \
echo local/raw/$(RAW_NAME)/$(RAW_VERSION) > %o \
|> $(RAW_DIR)/.ARCHIVES $(DEPOT_DIR)/<raw-archives>
!bin = |> ^ COLLECT %o^ \
echo $(BIN_DEPENDS) local/src/$(BIN_NAME)/$(BIN_VERSION) | tr ' ' '\n' > %o; \
|> $(BIN_DIR)/.ARCHIVES $(DEPOT_DIR)/<bin-archives>
# Macro invoked in BIN_RULES
&RAW_RULES = errata/raw.tup
# Rules for finalizing a locally defined raw package
&BIN_RULES = errata/bin.tup
# Rules for finalizing a locally defined binary package
&PKG_RULES = errata/pkg.tup
# Rules for finalizing a locally defined runtime package
AWK_LOCAL_ARCHIVES = awk -F '/' \
'{if ($1 != "local") {print $0} \
else {print $1"/"$2"/"$3"/current"}}'
!pkg = |> |>
!collect_raw = |> ^ COLLECT %o^ \
cp %f %o \
|> $(RAW_DIR)/%b
!collect_bin = |> ^ COLLECT %o^ \
strip -o %o %f \
|> $(DEPOT_BIN_DIR)/$(BIN_NAME)/current/%b
!collect_pkg_runtime = | $(VERSIONS_SED_FILE) |> ^ package %f^ \
xmllint --noout -schema $(ERRATA_DIR)/runtime.xsd %f; \
cp %f $(DEPOT_PKG_DIR)/$(PKG_NAME)/current/runtime; \
echo $(PKG_DEPENDS) | tr ' ' '\n' | sed \
-e 's|_/\(.*\)/\(.*\)$|local/\1/\2/current|' \
> $(DEPOT_PKG_DIR)/$(PKG_NAME)/current/archives; \
sed -f $(VERSIONS_SED_FILE) $(DEPOT_PKG_DIR)/$(PKG_NAME)/current/archives \
> $(DEPOT_PKG_DIR)/$(PKG_NAME)/current/.ARCHIVES; \
|> \
$(DEPOT_PKG_DIR)/$(PKG_NAME)/current/archives \
$(DEPOT_PKG_DIR)/$(PKG_NAME)/current/.ARCHIVES \
$(DEPOT_PKG_DIR)/$(PKG_NAME)/current/runtime \
$(DEPOT_DIR)/<packages>
!collect_pkg = |> ^ COLLECT %o^ cp %f %o \
|> $(DEPOT_PKG_DIR)/$(PKG_NAME)/current/%b \
$(DEPOT_DIR)/<packages>
VERSIONS_SED_FILE = $(TUP_CWD)/versions.sed
PKG_SED_FILE = $(TUP_CWD)/pkg.sed
RAW_LISTING = $(TUP_CWD)/raw-list
BIN_LISTING = $(TUP_CWD)/bin-list
PKG_LISTING = $(TUP_CWD)/pkg-list
SDK_INCLUDE = $(TUP_CWD)/sdk.tup
ERRATA_DIR = $(TUP_CWD)/errata
export PKG_CONFIG_PATH
PKG_CONFIG = PKG_CONFIG_PATH=$(GENODE_DIR)/pkg-config:$PKG_CONFIG_PATH pkg-config
ifndef TOOL_CHAIN_PREFIX
error TOOL_CHAIN_PREFIX not configured
endif
CC = @(TOOL_CHAIN_PREFIX)gcc
CXX = @(TOOL_CHAIN_PREFIX)g++
LD= @(TOOL_CHAIN_PREFIX)ld
AR = @(TOOL_CHAIN_PREFIX)ar
OBJCOPY = @(TOOL_CHAIN_PREFIX)objcopy
!cc = |> ^ CC %f^ $(CC) $(DEFINES) $(CFLAGS) $(CFLAGS_%e) $(CFLAGS_%f) -c %f -o %o |>
!cxx = | $(GENODE_DIR)/<pkg-config> |> ^ CC %f^ $(CC) $(DEFINES) $(CXXFLAGS) $(CXXFLAGS_%e) $(CXXFLAGS_%f) -c %f -o %o |>
!ld = |> ^ LD %o^ $(LD) $(LDFLAGS) %f -o %o |>