144 lines
4.4 KiB
Plaintext
144 lines
4.4 KiB
Plaintext
.gitignore
|
|
|
|
export DHALL_GENODE
|
|
export DHALL_GENODE_TYPES
|
|
export DHALL_PRELUDE
|
|
export NIX_LDFLAGS
|
|
export NIX_PATH
|
|
export PKG_CONFIG_PATH
|
|
|
|
ERRATA_DIR=$(TUP_CWD)/errata
|
|
|
|
OUTPUTS_OUT=$(TUP_CWD)/out
|
|
|
|
OUT_BIN_DIR = $(OUTPUTS_OUT)/bin
|
|
OUT_PKG_DIR = $(OUTPUTS_OUT)/pkg
|
|
OUT_RAW_DIR = $(OUTPUTS_OUT)/raw
|
|
|
|
ifeq (@(TUP_ARCH),i386)
|
|
CC_MARCH = -march=i686 -m32
|
|
LD_MARCH = -melf_i386
|
|
AS_MARCH = -march=i686 --32
|
|
endif
|
|
|
|
ifeq (@(TUP_ARCH),x86_64)
|
|
TOOL_CHAIN_PREFIX=genode-x86-
|
|
CC_MARCH = -m64 -mcmodel=large
|
|
LD_MARCH = -melf_x86_64
|
|
endif
|
|
|
|
ifeq (@(TUP_ARCH),arm_v8)
|
|
CC_MARCH = -march=armv8-a
|
|
endif
|
|
|
|
GENODE_DIR = $(TUP_CWD)
|
|
|
|
LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name`
|
|
|
|
!prg = | $(GENODE_DIR)/<lib> $(GENODE_DIR)/<pkg-config> \
|
|
|> ^o LD %o^ \
|
|
$(LD) $(LD_MARCH) $(LDFLAGS) \
|
|
-L$(LIB_DIR) \
|
|
`$(PKG_CONFIG) --libs $(LIBS) genode-prg` \
|
|
%f \
|
|
$(LIBGCC) \
|
|
-o %o \
|
|
|> %d
|
|
|
|
!lib = | $(GENODE_DIR)/<lib> $(GENODE_DIR)/<pkg-config> |> ^o LD %o^ $(LD) $(LD_MARCH) %f $(LDFLAGS) `$(PKG_CONFIG) --libs genode-lib $(LIBS)` -L$(LIB_DIR) -o %o |>
|
|
|
|
ifeq ($(RAW_NAME),)
|
|
RAW_NAME = $(TARGET_NAME)
|
|
endif
|
|
|
|
ifeq ($(BIN_NAME),)
|
|
BIN_NAME = $(TARGET_NAME)
|
|
endif
|
|
|
|
ifeq ($(PKG_NAME),)
|
|
PKG_NAME = $(TARGET_NAME)
|
|
endif
|
|
|
|
ifdef DEPOT_VERSION
|
|
DEPOT_VERSION = @(DEPOT_VERSION)
|
|
else
|
|
DEPOT_VERSION = current
|
|
endif
|
|
|
|
BIN_DIR = $(OUT_BIN_DIR)/$(BIN_NAME)/$(DEPOT_VERSION)
|
|
PKG_DIR = $(OUT_PKG_DIR)/$(PKG_NAME)/$(DEPOT_VERSION)
|
|
RAW_DIR = $(OUT_RAW_DIR)/$(RAW_NAME)/$(DEPOT_VERSION)
|
|
|
|
!bin = |> |>
|
|
!pkg = |> |>
|
|
!raw = |> |>
|
|
|
|
&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
|
|
|
|
!collect_bin = |> ^ COLLECT %b^ \
|
|
$(TOOL_CHAIN_PREFIX)strip -o %o %f \
|
|
|> $(OUT_BIN_DIR)/$(BIN_NAME)/%b $(OUTPUTS_OUT)/<bin>
|
|
|
|
CC = $(TOOL_CHAIN_PREFIX)gcc
|
|
CXX = $(TOOL_CHAIN_PREFIX)g++
|
|
LD= $(TOOL_CHAIN_PREFIX)ld
|
|
AR = $(TOOL_CHAIN_PREFIX)ar
|
|
AS = $(TOOL_CHAIN_PREFIX)as
|
|
OBJCOPY = $(TOOL_CHAIN_PREFIX)objcopy
|
|
AS_OPT += $(AS_MARCH)
|
|
|
|
NIX_BUILD = nix-build --option substitute no
|
|
|
|
LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name`
|
|
|
|
PKG_CONFIG = pkg-config
|
|
|
|
!asm = |> ^ CC %b^ @(CC_WRAPPER) $(CC) $(DEFINES) $(CFLAGS) $(CFLAGS_%e) $(CFLAGS_%f) -D__ASSEMBLY__ $(INCLUDES) -c %f -o %o |> %B.o
|
|
|
|
!cc = | $(GENODE_DIR)/<pkg-config> |> ^o CC %f^ @(CC_WRAPPER) $(CC) $(DEFINES) $(CFLAGS) $(CFLAGS_%e) $(CFLAGS_%f) `$(PKG_CONFIG) --cflags $(LIBS) $(LIBS_CFLAGS)` $(INCLUDES) -c -fPIC -g %f -o %o |> %B.o
|
|
|
|
!cc_port = | $(GENODE_DIR)/<pkg-config> |> ^o CC %o^ @(CC_WRAPPER) $(CC) $(DEFINES) $(CFLAGS) $(CFLAGS_%o) $(INCLUDES) `$(PKG_CONFIG) --cflags $(LIBS) $(LIBS_CFLAGS)` -c -fPIC -g -o %o |> %B.o
|
|
|
|
!cxx = | $(GENODE_DIR)/<pkg-config> |> ^o CXX %b^ @(CC_WRAPPER) $(CXX) $(DEFINES) $(CXXFLAGS) $(CXXFLAGS_%e) $(CXXFLAGS_%f) `$(PKG_CONFIG) --cflags $(LIBS)` $(INCLUDES) -c -fPIC -g %f -o %o |> %B.o
|
|
|
|
!cxx_port = | $(GENODE_DIR)/<pkg-config> |> ^o CXX %o^ @(CC_WRAPPER) $(CXX) $(DEFINES) $(CXXFLAGS) $(CXXFLAGS_%f) `$(PKG_CONFIG) --cflags $(LIBS)` $(INCLUDES) -c -fPIC -g -o %o |> %B.o
|
|
|
|
!ld = | $(GENODE_DIR)/<lib> $(GENODE_DIR)/<pkg-config> |> ^o LD %o^ $(LD) $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` --whole-archive --start-group %f --no-whole-archive --end-group -o %o |>
|
|
|
|
!strip = |> strip -o %o %f |>
|
|
|
|
!ln = |> ln -s %f %o |>
|
|
|
|
ifeq (@(TUP_ARCH),i386)
|
|
AS_MARCH = -march=i686 --32
|
|
endif
|
|
|
|
DEPOT_MANIFEST = $(OUTPUTS_OUT)/manifest.dhall
|
|
|
|
DHALL = dhall
|
|
|
|
!index_pkg = | $(OUTPUTS_OUT)/<manifest> |> ^ Generate index.dhall^\
|
|
$(DHALL) <<< '{ info = (%f).indexInfo, name = "$(PKG_NAME)", version = ($(DEPOT_MANIFEST)).pkg.$(PKG_NAME).version }' > %o \
|
|
|> $(PKG_DIR)/index.dhall $(OUTPUTS_OUT)/index/<entry>
|
|
|
|
!render_runtime = | $(VERSIONS_SED_FILE) |> ^o render %d runtime^ \
|
|
$(DHALL) text <<< '$(ERRATA_DIR)/renderRuntime.dhall (%f).runtime' \
|
|
> $(OUT_PKG_DIR)/$(PKG_NAME)/current/runtime; \
|
|
xmllint --noout -schema $(ERRATA_DIR)/runtime.xsd - \
|
|
< $(OUT_PKG_DIR)/$(PKG_NAME)/current/runtime; \
|
|
echo $(PKG_DEPENDS) | tr ' ' '\n' | sed \
|
|
-e 's|_/\(.*\)/\(.*\)$|local/\1/\2/current|' \
|
|
> $(OUT_PKG_DIR)/$(PKG_NAME)/current/archives; \
|
|
sed -f $(VERSIONS_SED_FILE) $(OUT_PKG_DIR)/$(PKG_NAME)/current/archives \
|
|
> $(OUT_PKG_DIR)/$(PKG_NAME)/current/.ARCHIVES; \
|
|
|> \
|
|
$(OUT_PKG_DIR)/$(PKG_NAME)/current/runtime \
|
|
$(OUT_PKG_DIR)/$(PKG_NAME)/current/archives \
|
|
$(OUT_PKG_DIR)/$(PKG_NAME)/current/.ARCHIVES \
|
|
$(OUT_PKG_DIR)/<pkg> \
|