Refactor Tup, flatten output directories

Make no attempt to replicate the depot layout.
This commit is contained in:
Ehmry - 2019-09-28 14:40:37 +02:00
parent d348e96b84
commit a7a0d3fe63
139 changed files with 365 additions and 379 deletions

View File

@ -21,12 +21,8 @@ ifeq (@(TUP_ARCH),arm_v8)
CC_MARCH = -march=armv8-a
endif
OUT_BIN_DIR = $(OUT_DIR)/bin
GENODE_DIR = $(TUP_CWD)
LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name`
!prg = | $(GENODE_DIR)/<lib> $(DEV_DIR)/<lib> $(GENODE_DIR)/<pkg-config> \
|> ^o LD %o^ \
$(LD) $(LD_MARCH) $(LDFLAGS) \
@ -37,29 +33,15 @@ LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name`
-o %o \
|> %d
!lib = | $(GENODE_DIR)/<lib> $(DEV_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 ($(BIN_NAME),)
BIN_NAME = $(TARGET_NAME)
endif
ifdef DEPOT_VERSION
DEPOT_VERSION = @(DEPOT_VERSION)
else
DEPOT_VERSION = current
endif
BIN_VERSION=$(DEPOT_VERSION)
!bin = |> |>
# Macro invoked in BIN_RULES
&BIN_RULES = errata/bin.tup
# Rules for finalizing a locally defined binary package
!lib = | $(GENODE_DIR)/<lib> $(DEV_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 |> %d.lib.so
!collect_bin = |> ^ COLLECT %b^ \
$STRIP -o %o %f \
|> $(OUT_BIN_DIR)/$(BIN_NAME)/%b $(OUT_DIR)/<bin>
|> $(OUT_DIR)/bin/%b $(OUT_DIR)/<bin>
!collect_shared = |> ^ COLLECT %b^ \
$STRIP -o %o %f \
|> $(OUT_DIR)/lib/%b $(OUT_DIR)/<lib>
!collect_static = |> ^ COLLECT %b^ \
cp %f %o \
@ -75,11 +57,11 @@ CXX = $CXX
LD= $LD
OBJCOPY = $OBJCOPY
CXXFLAGS += -Wno-undefined-bool-conversion -Wno-unknown-attributes -Wsystem-headers -Werror -Wno-uninitialized -Wno-mismatched-tags
#CXXFLAGS += -Wno-unused-command-line-argument
ifdef CXXFLAGS
CXXFLAGS = @(CXXFLAGS)
endif
export NIX_PATH
NIX_BUILD = nix-build --option substitute no
CXXFLAGS += -Wno-undefined-bool-conversion -Wno-unknown-attributes -Wsystem-headers -Werror -Wno-uninitialized -Wno-mismatched-tags
LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name`
@ -138,12 +120,6 @@ endif
rm tmp.o; \
|> $(DEV_DIR)/lib/%B.lib.so $(GENODE_DIR)/<lib>
!dhall = |> ^b dhall > %o^ dhall |>
ifeq (@(TUP_ARCH),i386)
AS_MARCH = -march=i686 --32
endif
BASE_DIR = $(GENODE_DIR)/repos/base
&BASE_DIR = repos/base
@ -154,12 +130,10 @@ BASE_DIR = $(GENODE_DIR)/repos/base
|> binary_%b.o
export AR
!ar = |> ^ MERGE %o^ $AR -rcs %o %f |> %d.lib.a
!ar = |> $AR -rcs %o %f |> %d.a
export version
GIT_VERSION = `git describe || echo $version`
GIT_VERSION = `git describe || echo @(VERSION)`
export TOOLCHAIN_DIR
SED_PKGCONFIG_FLAGS += -e "s|@DEPOT_VERSION@|$(GIT_VERSION)|"
SED_PKGCONFIG_FLAGS += -e "s|@VERSION@|$(GIT_VERSION)|"
@ -173,10 +147,10 @@ SED_PKGCONFIG_FLAGS += -e "s|@VERSION@|$(GIT_VERSION)|"
pkg-config --validate %o; \
|> $(PKG_CONFIG_DIR)/%d.pc $(GENODE_DIR)/<pkg-config>
!emit_lib_pkg_config = |> \
!emit_lib_pkg_config = |> ^ emit %d.a pkg-config^ \
echo Name: %d >> %o; \
echo Description: Genode %d library >> %o; \
echo Version: $(GIT_VERSION) >> %o; \
echo Libs: -l:%d.lib.a >> %o; \
echo Libs: -l:%d.a >> %o; \
pkg-config --validate %o; \
|> $(PKG_CONFIG_DIR)/%d.pc $(GENODE_DIR)/<pkg-config>

View File

@ -1,14 +0,0 @@
ifeq ($(BIN_NAME),)
error BIN_NAME is empty
endif
ifeq ($(BIN_VERSION),)
error BIN_VERSION is empty
endif
: |> !bin |>
# Finalize the metadata with the macro defined in the
# ../Tuprules.tup. The macro cannot be defined here
# because the "include" directive is not available for
# relative paths during "include_rules" so this file
# cannot be included by intermediate Tuprules.tup.

View File

View File

@ -1,14 +0,0 @@
ifeq ($(RAW_NAME),)
error RAW_NAME is empty
endif
ifeq ($(RAW_VERSION),)
error RAW_VERSION is empty
endif
: |> !raw |>
# Finalize the metadata with the macro defined in the
# ../Tuprules.tup. The macro cannot be defined here
# because the "include" directive is not available for
# relative paths during "include_rules" so this file
# cannot be included by intermediate Tuprules.tup.

View File

@ -4,4 +4,4 @@ endif
INCLUDES += -I$(TUP_CWD)/include
INCLUDES += -I$(BASE_DIR)/src/include
INCLUDES += -I@(LINUX_HEADERS)
INCLUDES += -I@(LINUX_HEADERS)/include

View File

@ -1,4 +1,3 @@
TARGET_NAME = core-linux
include_rules
GEN_CORE_DIR = $(BASE_DIR)/src/core
@ -8,17 +7,9 @@ DEFINES += -D_GNU_SOURCE
INCLUDES += \
-I$(REP_DIR)/src/core/include \
-I$(GEN_CORE_DIR)/include \
-I$(REP_DIR)/src/platform \
-I$(REP_DIR)/src/include \
-I$(BASE_DIR)/src/include \
include $(REP_DIR)/src/lib/syscall/headers.tup
SRC_CC += *.cc
SRC_CC += \
*.cc \
$(REP_DIR)/src/lib/base/env_reinit.cc \
$(BASE_DIR)/src/lib/base/thread.cc \
$(BASE_DIR)/src/lib/base/thread_myself.cc \
$(GEN_CORE_DIR)/capability_space.cc \
$(GEN_CORE_DIR)/core_log.cc \
$(GEN_CORE_DIR)/core_rpc_cap_alloc.cc \
@ -44,7 +35,6 @@ CXXFLAGS_$(GEN_CORE_DIR)/version.cc += -DGENODE_VERSION=\"`git describe`\"
: foreach $(SRC_CC) |> !cxx |> {obj}
LDFLAGS += \
$(LD_MARCH) \
-gc-sections \
-z max-page-size=0x1000 \
-nostdlib \
@ -52,14 +42,14 @@ LDFLAGS += \
-T$(BASE_DIR)/src/ld/genode.ld \
-T$(REP_DIR)/src/ld/stack_area.ld \
CORE_LIBS += \
$(REP_DIR)/src/lib/base/base-linux-common.lib.a \
$(REP_DIR)/src/lib/syscall/syscall-linux.lib.a \
LDFLAGS += -L$(LIB_DIR) `$(PKG_CONFIG) --libs cxx-baremetal startup`
CORE_PKGS += cxx startup
: {obj} | \
$(DEV_DIR)/<lib> \
$(GENODE_DIR)/<pkg-config> \
$(REP_DIR)/<base-common> \
$(REP_DIR)/<syscall> \
|> !ld %<base-common> %<syscall> \
|> core-linux $(REP_DIR)/<core> {bin}
STATIC_LIBS += -L$(LIB_DIR) `$(PKG_CONFIG) --libs cxx startup`
: {obj} $(CORE_LIBS) | $(DEV_DIR)/<lib> $(GENODE_DIR)/<pkg-config> |> !ld $(STATIC_LIBS) |> core-linux $(REP_DIR)/<core> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -0,0 +1,37 @@
include_rules
GENERIC_DIR = $(BASE_DIR)/src/lib/base-common
GENERIC_SRC_CC += \
$(GENERIC_DIR)/allocator_avl.cc \
$(GENERIC_DIR)/avl_tree.cc \
$(GENERIC_DIR)/capability.cc \
$(GENERIC_DIR)/child.cc \
$(GENERIC_DIR)/component.cc \
$(GENERIC_DIR)/console.cc \
$(GENERIC_DIR)/elf_binary.cc \
$(GENERIC_DIR)/entrypoint.cc \
$(GENERIC_DIR)/env_session_id_space.cc \
$(GENERIC_DIR)/heap.cc \
$(GENERIC_DIR)/lock.cc \
$(GENERIC_DIR)/log.cc \
$(GENERIC_DIR)/output.cc \
$(GENERIC_DIR)/raw_output.cc \
$(GENERIC_DIR)/registry.cc \
$(GENERIC_DIR)/root_proxy.cc \
$(GENERIC_DIR)/rpc_dispatch_loop.cc \
$(GENERIC_DIR)/rpc_entrypoint.cc \
$(GENERIC_DIR)/session_state.cc \
$(GENERIC_DIR)/signal_common.cc \
$(GENERIC_DIR)/slab.cc \
$(GENERIC_DIR)/sleep.cc \
$(GENERIC_DIR)/sliced_heap.cc \
$(GENERIC_DIR)/stack_allocator.cc \
$(GENERIC_DIR)/stack_protector.cc \
$(GENERIC_DIR)/thread.cc \
$(GENERIC_DIR)/thread_myself.cc \
$(GENERIC_DIR)/trace.cc \
#CXXFLAGS += -mllvm -opt-bisect-limit=1
: foreach $(GENERIC_SRC_CC) |> !cxx |> {obj}
: foreach *.cc |> !cxx |> {obj}
: {obj} |> !ar |> | $(REP_DIR)/<base-common>

View File

@ -1,14 +1,6 @@
# DANGER: any source or header here may be ovelayed by $(BASE_DIR)
include_rules
INCLUDES += -I$(REP_DIR)/src/include
INCLUDES += -I$(REP_DIR)/src/lib/syscall
INCLUDES += -I$(BASE_DIR)/src/include
export HOST_LIBC
# an environmental variable set by nix-shell
INCLUDES += -I$HOST_LIBC/include
BASE_LIB_DIR = $(BASE_DIR)/src/lib/base
@ -34,7 +26,6 @@ COMMON_SRC_CC += \
$(BASE_DIR)/src/lib/base/sliced_heap.cc \
$(BASE_DIR)/src/lib/base/stack_allocator.cc \
$(BASE_DIR)/src/lib/base/stack_protector.cc \
$(BASE_LIB_DIR)/capability.cc \
$(BASE_LIB_DIR)/rpc_dispatch_loop.cc \
$(BASE_LIB_DIR)/rpc_entrypoint.cc \
$(BASE_LIB_DIR)/sleep.cc \
@ -48,9 +39,9 @@ COMMON_SRC_CC += \
rm_session_client.cc \
thread_env.cc \
: foreach $(COMMON_SRC_CC) |> !cxx |> %B.o {base-common-obj}
#: foreach $(COMMON_SRC_CC) |> !cxx |> %B.o {base-common-obj}
: {base-common-obj} |> !ar |> base-linux-common.lib.a
#: {base-common-obj} |> !ar |> base-linux-common.lib.a
SRC_CC += \
$(BASE_LIB_DIR)/capability_space.cc \
@ -62,11 +53,7 @@ SRC_CC += \
$(BASE_LIB_DIR)/signal.cc \
$(BASE_LIB_DIR)/signal_transmitter.cc \
$(BASE_LIB_DIR)/stack_area.cc \
$(BASE_LIB_DIR)/thread.cc \
$(BASE_LIB_DIR)/thread_myself.cc \
attach_stack_area.cc \
capability_raw.cc \
env_reinit.cc \
platform_env.cc \
thread_linux.cc \

View File

@ -1,12 +1,9 @@
TARGET_NAME = base-linux
include_rules
ifeq (@(TUP_ARCH),x86_64)
INCLUDES += -I$(BASE_DIR)/src/lib/ldso/spec/x86_64
endif
INCLUDES += -I$(BASE_DIR)/src/include
LDSO_DIR = $(BASE_DIR)/src/lib/ldso
ifeq (@(TUP_ARCH),x86_64)
@ -14,7 +11,7 @@ LDSO_SPEC_DIR = $(LDSO_DIR)/spec/x86_64
endif
INCLUDES += -I$(LDSO_SPEC_DIR)
INCLUDES += -I$(LDSO_DIR)/include
INCLUDES = -I$(LDSO_DIR)/include $(INCLUDES)
DEFINES += -fPIC
@ -38,24 +35,21 @@ LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld
LDFLAGS += --entry=_start_initial_stack
BASE_LIBS += \
$(REP_DIR)/src/lib/base/base-linux-common.lib.a \
$(REP_DIR)/src/lib/base/base-linux.lib.a \
$(REP_DIR)/src/lib/syscall/syscall-linux.lib.a \
BASE_PKGS += alarm cxx ldso-startup startup timeout
LDFLAGS += `pkg-config --static --libs $(BASE_PKGS)`
LDFLAGS += -L$(LIB_DIR) `$(PKG_CONFIG) --static --libs $(BASE_PKGS)`
: $(BASE_LIBS) {obj} | symbol.map \
: $(BASE_LIBS) {obj} | \
symbol.map \
$(DEV_DIR)/<lib> \
$(GENODE_DIR)/<pkg-config> \
$(REP_DIR)/<base-common> \
$(REP_DIR)/<syscall> \
|> \
$(LD) -o %o \
$(LD_MARCH) $(LDFLAGS) \
--whole-archive --start-group \
%f \
--end-group --no-whole-archive \
$(LIBGCC) ;\
printf "\x02" | dd of=%o bs=1 seek=16 count=1 conv=notrunc ; \
$(LD) $(LDFLAGS) %<base-common> %<syscall> %f -o %o; \
printf "\x02" | dd of=%o bs=1 seek=16 count=1 conv=notrunc; \
|> ld-linux.lib.so $(REP_DIR)/<ld> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,11 +1,7 @@
include_rules
include $(REP_DIR)/src/lib/syscall/headers.tup
INCLUDES += -I$(REP_DIR)/src/include
INCLUDES += -I$(BASE_DIR)/src/include
STATIC_LIBS = ../base/base-linux-common.lib.a
INCLUDES += -I$(REP_DIR)/src/lib/syscall
: foreach *.cc $(BASE_DIR)/src/lib/cxx/new_delete.cc |> !cxx |> {obj}
: foreach *.c |> !cc |> {obj}
: {obj} $(STATIC_LIBS) |> !ar |> %d.lib.a
: {obj} |> !ar |> %d.lib.a

View File

@ -19,4 +19,4 @@ ifeq ($(SPEC_DIR),)
endif
: foreach $(SPEC_DIR)/*.S |> !asm |> {obj}
: {obj} |> !ar |> syscall-linux.lib.a
: {obj} |> !ar |> | $(REP_DIR)/<syscall>

View File

@ -1,5 +0,0 @@
INCLUDES += -I$(REP_DIR)/src/lib/syscall
export HOST_LIBC
# an environmental variable set by nix-shell
INCLUDES += -I$HOST_LIBC/include

View File

@ -1,4 +1,3 @@
TARGET_NAME = linux_timer_drv
LIBS += genode-base
include_rules
@ -6,17 +5,16 @@ BASE_TIMER_DIR = $(BASE_DIR)/src/timer
PERIODIC_DIR = $(BASE_TIMER_DIR)/periodic
INCLUDES += -I.
INCLUDES += -I$(BASE_TIMER_DIR)/include
INCLUDES += -I$(PERIODIC_DIR)
INCLUDES += -I$(REP_DIR)/src/lib/syscall
include $(REP_DIR)/src/lib/syscall/headers.tup
INCLUDES = -I. $(INCLUDES)
#TODO: ^ FAIL
: foreach $(BASE_TIMER_DIR)/*.cc |> !cxx |> %B.linux.o {obj}
: foreach $(PERIODIC_DIR)/*.cc |> !cxx |> %B.linux.o {obj}
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} $(REP_DIR)/src/lib/syscall/syscall-linux.lib.a |> !prg |> timer {bin}
: {obj} | $(REP_DIR)/<syscall> |> !prg %<syscall> |> linux_timer_drv {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -43,33 +43,15 @@ SRC_CC += \
CXXFLAGS_$(GEN_CORE_DIR)/version.cc += -DGENODE_VERSION=\"`git describe`\"
: foreach $(SRC_CC) |> !cxx |> {link-items}
: foreach $(SRC_CC) |> !cxx |> {obj}
: {link-items} |> !ar |> {archive}
LDFLAGS += -L$(LIB_DIR) `$(PKG_CONFIG) --libs cxx-baremetal startup`
STATIC_LIBS += -L$(LIB_DIR) `$(PKG_CONFIG) --libs cxx startup`
ifndef LIBUNWIND_BAREMETAL
error CONFIG_LIBUNWIND_BAREMETAL not defined
@(LIBUNWIND_BAREMETAL)
endif
EH_SYMBOLS = \
_Unwind_Resume \
_Unwind_Complete \
_Unwind_DeleteException \
REDEF_SYMBOLS = `echo $(EH_SYMBOLS) | awk -v RS=' ' '{ print "--redefine-sym "$1"=_cxx_"$1 }'`
export OBJCOPY
: |> $OBJCOPY $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) @(LIBUNWIND_BAREMETAL) %o |> libunwind.a {archive}
: {archive} | \
: {obj} | \
$(DEV_DIR)/<lib> \
$(GENODE_DIR)/<pkg-config> \
$(BASE_DIR)/<libunwind-baremetal> \
$(BASE_DIR)/<base-libs> \
$(REP_DIR)/<base-common> \
|> $(LD) -u _start --whole-archive -r \
%<libunwind-baremetal> %<base-libs> %<base-common> %f $(STATIC_LIBS) -o %o \
|> $(LD) $(LDFLAGS) -u _start -r \
%<base-libs> %<base-common> %f -o %o \
|> core.o $(REP_DIR)/<core>

View File

@ -1,6 +1,6 @@
include_rules
GENERIC_DIR = $(BASE_DIR)/src/lib/base
GENERIC_DIR = $(BASE_DIR)/src/lib/base-common
GENERIC_SRC_CC += \
$(GENERIC_DIR)/allocator_avl.cc \

View File

@ -1,4 +1,3 @@
TARGET_NAME = base-nova
include_rules
INCLUDES += -I$(BASE_DIR)/src/include
@ -55,4 +54,3 @@ LDFLAGS += `pkg-config --static --libs $(BASE_PKGS)`
|> ld.lib.so $(REP_DIR)/<ld> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,14 +1,12 @@
TARGET_NAME = nova_timer_drv
LIBS += genode-base
include_rules
BASE_TIMER_DIR = $(BASE_DIR)/src/timer
INCLUDES += -I.
INCLUDES += -I$(BASE_TIMER_DIR)/include
INCLUDES += -I.
#TODO: ^ FAIL
: foreach *.cc $(BASE_TIMER_DIR)/*.cc |> !cxx |> %B.nova.o {obj}
: {obj} |> !prg |> timer {bin}
: {obj} |> !prg |> nova_timer_drv {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,4 +1,4 @@
Name: genode-lib
Description: Flags for linking Genode libraries
Version: @VERSION@
Libs: -shared --eh-frame-hdr -gc-sections -z max-page-size=0x1000 -T@lddir@/genode_rel.ld --entry=0x0 -l:ldso-startup.lib.a @libgcc@
Libs: -shared --eh-frame-hdr -gc-sections -z max-page-size=0x1000 -T@lddir@/genode_rel.ld --entry=0x0 @libgcc@

View File

@ -1,19 +1,30 @@
ifndef LIBCXX
error LIBCXX not configured
endif
ifndef LIBCXXABI
error LIBCXXABI not configured
endif
ifndef LIBUNWIND_BAREMETAL
error LIBUNWIND_BAREMETAL not configured
endif
ifndef LIBUNWIND
error LIBUNWIND not configured
endif
include_rules
DEFINES = -ffunction-sections -fno-strict-aliasing -g -fPIC
# drop the standard defines to avoid -nostdinc
export LIBCXX
export LIBCXXABI
export LIBUNWIND_BAREMETAL
INCLUDES += -I@(LIBCXX)/include/c++/v1
INCLUDES += -I@(LIBCXXABI)/include
INCLUDES += -I$LIBCXX/include/c++/v1
INCLUDES += -I$LIBCXXABI/include
LLVM_LIBS += @(LIBCXXABI)/lib/libc++abi.a
LLVM_LIBS += $LIBCXXABI/lib/libc++abi.a
LLVM_LIBS += $LIBUNWIND_BAREMETAL/lib/libunwind.a
: foreach *.cc |> !cxx |> {supc++}
: foreach *.cc |> !cxx |> {obj}
#
# Prevent symbols of the gcc support libs from being discarded during 'ld -r'
@ -28,35 +39,41 @@ KEEP_SYMBOLS = \
-u _ZTVN10__cxxabiv119__pointer_type_infoE \
-u _ZTSN10__cxxabiv120__function_type_infoE \
: {supc++} |> $(LD) $(LD_MARCH) $(KEEP_SYMBOLS) -r %f $(LLVM_LIBS) -o %o |> supc++.tmp
#
# Here we define all symbols we want to hide in libsupc++ and libgcc_eh
#
LOCAL_SYMBOLS = \
--localize-symbol=__stderrp
--localize-symbol=abort \
--localize-symbol=calloc \
--localize-symbol=fflush \
--localize-symbol=fprintf \
--localize-symbol=fputc \
--localize-symbol=fputs \
--localize-symbol=free \
--localize-symbol=fwrite \
--localize-symbol=islower \
--localize-symbol=isxdigit \
--localize-symbol=malloc \
--localize-symbol=memcmp \
--localize-symbol=memcpy \
--localize-symbol=memmove \
--localize-symbol=memset \
--localize-symbol=posix_memalign \
--localize-symbol=realloc \
--localize-symbol=snprintf \
--localize-symbol=sprintf \
--localize-symbol=stderr \
--localize-symbol=__stderrp \
--localize-symbol=strcat \
--localize-symbol=strcmp \
--localize-symbol=strcpy \
--localize-symbol=strlen \
--localize-symbol=strncmp \
--localize-symbol=vfprintf \
#
# Symbols we wrap (see unwind.cc)
# Symbols we wrap (see unwind.c)
#
EH_SYMBOLS = \
_Unwind_Resume \
_Unwind_Complete \
_Unwind_DeleteException \
@ -69,11 +86,20 @@ EH_SYMBOLS += \
REDEF_SYMBOLS = `echo $(EH_SYMBOLS) | awk -v RS=' ' '{ print "--redefine-sym "$1"=_cxx_"$1 }'`
export OBJCOPY
: supc++.tmp |> $OBJCOPY $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) -weaken %f %o |> supc++.o {obj}
: {obj} |> \
$(LD) $(LD_MARCH) $(KEEP_SYMBOLS) -r %f $(LLVM_LIBS) @(LIBUNWIND)/lib/libunwind.a -o %o |> supc++.tmp
: {obj} |> \
$(LD) $(LD_MARCH) $(KEEP_SYMBOLS) -r %f $(LLVM_LIBS) @(LIBUNWIND_BAREMETAL)/lib/libunwind.a -o %o |> supc++-baremetal.tmp
: foreach *.c |> !cc |> {obj}
: {obj} |> !ar |> {bin}
export OBJCOPY
: supc++.tmp |> $OBJCOPY $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) %f %o |> supc++.o
: supc++-baremetal.tmp |> $OBJCOPY $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) %f %o |> supc++-baremetal.o
#
: supc++.o |> !ar |> cxx.a {bin}
: supc++-baremetal.o |> !ar |> cxx-baremetal.a {bin}
: foreach {bin} |> !collect_static |>
: |> !emit_lib_pkg_config |>

View File

@ -0,0 +1,2 @@
include_rules
: |> !emit_lib_pkg_config |>

View File

@ -2,4 +2,4 @@ Name: ld
Description: Genode dynamic loader
URL: https://genode.org/
Version: @VERSION@
Libs: -l:ld.lib.so -l:ldso-startup.lib.a
Libs: -l:ld.lib.so -l:ldso-startup.a

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-ds_ownership
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-log
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-mmio
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-new_delete
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-reconstructible
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-registry
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-rm_fault
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-rm_nested
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-segfault
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-smp
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-stack_smash
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-sub_rm
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-synced_interface
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-thread
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-timer
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-timer_accuracy
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,4 @@
TARGET_NAME = test-xml_node
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -15,3 +15,5 @@ INCLUDES += -I$(REP_DIR)/include/spec/arm
endif
INCLUDES += -I$(REP_DIR)/include
CXXFLAGS += -std=gnu++17

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>

View File

@ -1,7 +1,4 @@
TARGET_NAME = global_keys_handler
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = log_core
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = nit_focus
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,10 +1,5 @@
TARGET_NAME = ping
INCLUDES += -I.
include_rules
LIBS += net
: foreach *.cc |> !cxx |> %B.o {obj}
: foreach ../../lib/net/*.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = pointer
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = rom_logger
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = rom_reporter
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = rom_to_file
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = sequence
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>

View File

@ -1,7 +1,4 @@
TARGET_NAME = usb_report_filter
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,10 +1,8 @@
TARGET_NAME = ahci_drv
include_rules
ifneq ($(X86),)
: foreach $(SRC_CC) *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> $(TARGET_NAME) {bin}
: {obj} | |> !prg |> ahci_x86_drv {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)
endif

View File

@ -1,10 +1,6 @@
TARGET_NAME = ps2_drv
include_rules
ifneq ($(X86),)
: foreach $(SRC_CC) *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> $(TARGET_NAME) {bin}
: {obj} | |> !prg |> ps2_drv {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)
endif

View File

@ -1,8 +1,4 @@
TARGET_NAME = init
INCLUDES += -I./
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,6 +1,6 @@
include_rules
: foreach *.cc |> !cxx |> {obj}
: {obj} |> !ar |> %d.lib.a {bin}
: {obj} |> !ar |> {bin}
: {bin} |> !collect_static |>
: |> !emit_lib_pkg_config |>

View File

@ -1,17 +1,9 @@
TARGET_NAME = vfs
INCLUDES += -I./
include_rules
: $(REP_DIR)/lib/symbols/vfs |> !abi_stub |>
: vfs.pc.in |> !sed_pkgconfig_file |>
: foreach *.cc |> !cxx |> %B.o {lib-obj}
: {lib-obj} |> !lib |> %d.lib.so {lib}
: foreach ../../server/vfs/*.cc |> !cxx |> %B.o {server-obj}
: {server-obj} {lib} |> !prg |> server/vfs {server}
# Link the server to the immediate vfs.lib.so
: foreach {lib} {server} |> !collect_bin |>
include &(BIN_RULES)
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !lib |> {lib}
: foreach {lib} |> !collect_shared |>

View File

@ -1,8 +1,4 @@
TARGET_NAME = cached_fs_rom
INCLUDES += -I.
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = chroot
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = clipboard
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = dynamic_rom
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = fs_log
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,5 @@
TARGET_NAME = fs_report
include_rules
LIBS += vfs
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = fs_rom
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> %d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,8 +1,4 @@
TARGET_NAME = input_filter
INCLUDES += -I.
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = input_merger
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = iso9660
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = log_report
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = mixer
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,10 +1,5 @@
TARGET_NAME = nic_bridge
INCLUDES += -I.
include_rules
LIBS += net
: foreach *.cc |> !cxx |> %B.o {obj}
: foreach ../../lib/net/*.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,10 +1,5 @@
TARGET_NAME = nic_dump
INCLUDES += -I.
include_rules
LIBS += net
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = nic_loopback
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,9 +1,5 @@
TARGET_NAME = nic_router
INCLUDES += -I.
include_rules
LIBS += net
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = nit_fb
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,10 +1,6 @@
TARGET_NAME = nitpicker
include_rules
LIBS += blit
: foreach *.cc |> !cxx |> %B.o {obj}
: default.tff |> !incbin |> {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = ram_block
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = ram_fs
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = report_rom
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = rom_block
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = rom_filter
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = terminal_crosslink
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = terminal_log
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -0,0 +1,5 @@
include_rules
LIBS += vfs
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>

View File

@ -1,7 +1,4 @@
TARGET_NAME = test-audio_out
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> test-audio_out {bin}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = test-audio_out_click
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> test-%d {bin}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -1,7 +1,4 @@
TARGET_NAME = test-block
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> test-%d {bin}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>

View File

@ -1,7 +1,4 @@
TARGET_NAME = test-bomb
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} |> !prg |> test-%d {bin}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)

4
repos/os/src/test/cache/Tupfile vendored Normal file
View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>

View File

@ -0,0 +1,4 @@
include_rules
: foreach *.cc |> !cxx |> %B.o {obj}
: {obj} | |> !prg |> test-%d {bin}
: {bin} |> !collect_bin |>

Some files were not shown because too many files have changed in this diff Show More