2019-03-02 15:23:50 +01:00
|
|
|
.gitignore
|
|
|
|
|
2019-12-31 09:14:17 +01:00
|
|
|
AR = @(AR)
|
|
|
|
AS = @(AS)
|
|
|
|
CC = @(CC)
|
|
|
|
CXX = @(CXX)
|
|
|
|
LD= @(LD)
|
|
|
|
OBJCOPY = @(OBJCOPY)
|
|
|
|
STRIP = @(STRIP)
|
|
|
|
|
2019-09-22 14:12:04 +02:00
|
|
|
OUT_DIR=$(TUP_CWD)/out
|
2019-09-21 15:13:27 +02:00
|
|
|
DEV_DIR = $(TUP_CWD)/dev
|
2019-11-20 12:03:13 +01:00
|
|
|
DEV_LIB_DIR = $(DEV_DIR)/lib
|
|
|
|
|
2019-12-31 09:14:17 +01:00
|
|
|
ifdef IS_GCC
|
2020-01-13 11:12:36 +01:00
|
|
|
include Tuprules.gcc
|
2019-12-31 09:14:17 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef IS_LLVM
|
2020-01-13 11:12:36 +01:00
|
|
|
include Tuprules.llvm
|
2019-12-31 09:14:17 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(TOOLCHAIN_CONFIGURED),)
|
|
|
|
error no toolchain configuration is active
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq ($(TOOLCHAIN_CONFIGURED),X)
|
|
|
|
error "multiple toolchain configurations are active "
|
|
|
|
endif
|
2019-03-02 15:23:50 +01:00
|
|
|
|
|
|
|
ifeq (@(TUP_ARCH),i386)
|
2019-09-22 13:03:58 +02:00
|
|
|
X86 = y
|
2019-03-02 15:23:50 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq (@(TUP_ARCH),x86_64)
|
2019-09-22 13:03:58 +02:00
|
|
|
X86 = y
|
2019-03-02 15:23:50 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
GENODE_DIR = $(TUP_CWD)
|
|
|
|
|
2019-11-20 12:03:13 +01:00
|
|
|
!prg = | $(DEV_DIR)/<lib> $(DEV_DIR)/<pkg-config> \
|
2019-12-31 09:14:17 +01:00
|
|
|
|> ^o LD %o^ $(LD) -o %o $(LD_MARCH) $(LDFLAGS) -L$(DEV_LIB_DIR) %f `$(PKG_CONFIG) --libs $(LIBS) genode-prg` $(LIBGCC) |> %d
|
2019-03-02 15:23:50 +01:00
|
|
|
|
2019-11-20 12:03:13 +01:00
|
|
|
!lib = | $(DEV_DIR)/<lib> $(DEV_DIR)/<pkg-config> |> ^o LD %o^ $(LD) $(LD_MARCH) %f $(LDFLAGS) `$(PKG_CONFIG) --libs genode-lib $(LIBS)` -L$(DEV_LIB_DIR) -o %o |> %d.lib.so
|
2019-03-02 15:23:50 +01:00
|
|
|
|
|
|
|
!collect_bin = |> ^ COLLECT %b^ \
|
2019-12-31 09:14:17 +01:00
|
|
|
$(STRIP) -o %o %f \
|
2019-09-28 14:40:37 +02:00
|
|
|
|> $(OUT_DIR)/bin/%b $(OUT_DIR)/<bin>
|
|
|
|
|
|
|
|
!collect_shared = |> ^ COLLECT %b^ \
|
2019-11-20 12:03:13 +01:00
|
|
|
cp %f %o \
|
2019-09-28 14:40:37 +02:00
|
|
|
|> $(OUT_DIR)/lib/%b $(OUT_DIR)/<lib>
|
2019-03-02 15:23:50 +01:00
|
|
|
|
2019-09-21 15:13:27 +02:00
|
|
|
!collect_static = |> ^ COLLECT %b^ \
|
|
|
|
cp %f %o \
|
2019-11-20 12:03:13 +01:00
|
|
|
|> $(DEV_LIB_DIR)/%b \
|
2019-09-21 15:13:27 +02:00
|
|
|
$(DEV_DIR)/<lib> \
|
|
|
|
|
2019-12-31 09:14:17 +01:00
|
|
|
PKG_CONFIG_DIR = $(DEV_DIR)/lib/pkgconfig
|
2019-03-02 15:23:50 +01:00
|
|
|
|
2019-12-31 09:14:17 +01:00
|
|
|
ifdef NIX_OUTPUTS_DEV
|
2019-09-21 18:41:41 +02:00
|
|
|
export PKG_CONFIG_PATH
|
2019-12-31 09:14:17 +01:00
|
|
|
PKG_CONFIG = PKG_CONFIG_PATH=$(PKG_CONFIG_DIR):$PKG_CONFIG_PATH @(PKGCONFIG)
|
|
|
|
else
|
|
|
|
PKG_CONFIG = PKG_CONFIG_PATH=$(PKG_CONFIG_DIR) @(PKGCONFIG)
|
|
|
|
endif
|
2019-03-02 15:23:50 +01:00
|
|
|
|
2019-10-06 14:27:28 +02:00
|
|
|
CFLAGS += -g
|
|
|
|
CXXFLAGS += -g
|
2019-09-22 13:03:58 +02:00
|
|
|
|
|
|
|
ifdef OLEVEL
|
|
|
|
OLEVEL = @(OLEVEL)
|
|
|
|
else
|
2019-10-22 13:18:29 +02:00
|
|
|
OLEVEL = -O2
|
2019-09-22 13:03:58 +02:00
|
|
|
endif
|
2019-03-02 15:23:50 +01:00
|
|
|
|
2019-12-31 09:14:17 +01:00
|
|
|
!strip = |> $(STRIP) -o %o %f |>
|
2019-03-02 15:23:50 +01:00
|
|
|
|
|
|
|
!ln = |> ln -s %f %o |>
|
|
|
|
|
2019-12-31 09:14:17 +01:00
|
|
|
!ar = |> $(AR) -rcs %o %f |> %d.a
|
2019-09-21 15:13:27 +02:00
|
|
|
|
2019-09-28 14:40:37 +02:00
|
|
|
GIT_VERSION = `git describe || echo @(VERSION)`
|
2019-03-02 15:23:50 +01:00
|
|
|
|
2019-09-21 15:13:27 +02:00
|
|
|
SED_PKGCONFIG_FLAGS += -e "s|@VERSION@|$(GIT_VERSION)|"
|
2019-03-02 15:23:50 +01:00
|
|
|
|
|
|
|
!sed_pkgconfig_file = |> ^o SED %B^ \
|
|
|
|
sed $(SED_PKGCONFIG_FLAGS) $(SED_FLAGS) < %f > %o; \
|
2019-12-31 09:14:17 +01:00
|
|
|
$(PKG_CONFIG) --validate %o; \
|
2019-11-20 12:03:13 +01:00
|
|
|
|> $(PKG_CONFIG_DIR)/%B $(DEV_DIR)/<pkg-config>
|
2019-03-02 15:23:50 +01:00
|
|
|
|
|
|
|
!sed_pkgconfig_flags = |> ^o SED %d.pc^ \
|
|
|
|
sed $(SED_PKGCONFIG_FLAGS) $(SED_FLAGS) > %o; \
|
2019-12-31 09:14:17 +01:00
|
|
|
$(PKG_CONFIG) --validate %o; \
|
2019-11-20 12:03:13 +01:00
|
|
|
|> $(PKG_CONFIG_DIR)/%d.pc $(DEV_DIR)/<pkg-config>
|
2019-09-21 15:13:27 +02:00
|
|
|
|
2019-09-28 14:40:37 +02:00
|
|
|
!emit_lib_pkg_config = |> ^ emit %d.a pkg-config^ \
|
2019-09-21 15:13:27 +02:00
|
|
|
echo Name: %d >> %o; \
|
|
|
|
echo Description: Genode %d library >> %o; \
|
|
|
|
echo Version: $(GIT_VERSION) >> %o; \
|
2019-09-28 14:40:37 +02:00
|
|
|
echo Libs: -l:%d.a >> %o; \
|
2019-12-31 09:14:17 +01:00
|
|
|
$(PKG_CONFIG) --validate %o; \
|
2019-11-20 12:03:13 +01:00
|
|
|
|> $(PKG_CONFIG_DIR)/%d.pc $(DEV_DIR)/<pkg-config>
|