Tup: build static libraries into the dev output
This commit is contained in:
parent
7d7659635c
commit
5587f0992b
26
Tuprules.tup
26
Tuprules.tup
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
OUTPUTS_OUT=$(TUP_CWD)/out
|
OUTPUTS_OUT=$(TUP_CWD)/out
|
||||||
OUTPUTS_DEV=$(TUP_CWD)/dev
|
OUTPUTS_DEV=$(TUP_CWD)/dev
|
||||||
|
DEV_DIR = $(TUP_CWD)/dev
|
||||||
|
|
||||||
ifeq (@(TUP_ARCH),i386)
|
ifeq (@(TUP_ARCH),i386)
|
||||||
CC_MARCH = -march=i686 -m32
|
CC_MARCH = -march=i686 -m32
|
||||||
|
@ -25,7 +26,7 @@ GENODE_DIR = $(TUP_CWD)
|
||||||
|
|
||||||
LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name`
|
LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name`
|
||||||
|
|
||||||
!prg = | $(GENODE_DIR)/<lib> $(GENODE_DIR)/<pkg-config> \
|
!prg = | $(GENODE_DIR)/<lib> $(DEV_DIR)/<lib> $(GENODE_DIR)/<pkg-config> \
|
||||||
|> ^o LD %o^ \
|
|> ^o LD %o^ \
|
||||||
$(LD) $(LD_MARCH) $(LDFLAGS) \
|
$(LD) $(LD_MARCH) $(LDFLAGS) \
|
||||||
-L$(LIB_DIR) \
|
-L$(LIB_DIR) \
|
||||||
|
@ -35,7 +36,7 @@ LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name`
|
||||||
-o %o \
|
-o %o \
|
||||||
|> %d
|
|> %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 |>
|
!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),)
|
ifeq ($(BIN_NAME),)
|
||||||
BIN_NAME = $(TARGET_NAME)
|
BIN_NAME = $(TARGET_NAME)
|
||||||
|
@ -62,6 +63,11 @@ BIN_DIR = $(OUT_BIN_DIR)/$(BIN_NAME)/$(DEPOT_VERSION)
|
||||||
$STRIP -o %o %f \
|
$STRIP -o %o %f \
|
||||||
|> $(OUT_BIN_DIR)/$(BIN_NAME)/%b $(OUTPUTS_OUT)/<bin>
|
|> $(OUT_BIN_DIR)/$(BIN_NAME)/%b $(OUTPUTS_OUT)/<bin>
|
||||||
|
|
||||||
|
!collect_static = |> ^ COLLECT %b^ \
|
||||||
|
cp %f %o \
|
||||||
|
|> $(DEV_DIR)/lib/%b \
|
||||||
|
$(DEV_DIR)/<lib> \
|
||||||
|
|
||||||
export CC
|
export CC
|
||||||
export CXX
|
export CXX
|
||||||
export LD
|
export LD
|
||||||
|
@ -145,10 +151,14 @@ BASE_DIR = $(GENODE_DIR)/repos/base
|
||||||
|> binary_%b.o
|
|> binary_%b.o
|
||||||
|
|
||||||
export AR
|
export AR
|
||||||
!ar = |> ^ MERGE %o^ $AR -rcs %o %f |>
|
!ar = |> ^ MERGE %o^ $AR -rcs %o %f |> %d.lib.a
|
||||||
|
|
||||||
|
export version
|
||||||
|
GIT_VERSION = `git describe || echo $version`
|
||||||
|
|
||||||
export TOOLCHAIN_DIR
|
export TOOLCHAIN_DIR
|
||||||
SED_FLAGS += -e "s|@DEPOT_VERSION@|$(DEPOT_VERSION)|"
|
SED_PKGCONFIG_FLAGS += -e "s|@DEPOT_VERSION@|$(GIT_VERSION)|"
|
||||||
|
SED_PKGCONFIG_FLAGS += -e "s|@VERSION@|$(GIT_VERSION)|"
|
||||||
|
|
||||||
!sed_pkgconfig_file = |> ^o SED %B^ \
|
!sed_pkgconfig_file = |> ^o SED %B^ \
|
||||||
sed $(SED_PKGCONFIG_FLAGS) $(SED_FLAGS) < %f > %o; \
|
sed $(SED_PKGCONFIG_FLAGS) $(SED_FLAGS) < %f > %o; \
|
||||||
|
@ -159,3 +169,11 @@ SED_FLAGS += -e "s|@DEPOT_VERSION@|$(DEPOT_VERSION)|"
|
||||||
sed $(SED_PKGCONFIG_FLAGS) $(SED_FLAGS) > %o; \
|
sed $(SED_PKGCONFIG_FLAGS) $(SED_FLAGS) > %o; \
|
||||||
pkg-config --validate %o; \
|
pkg-config --validate %o; \
|
||||||
|> $(PKG_CONFIG_DIR)/%d.pc $(GENODE_DIR)/<pkg-config>
|
|> $(PKG_CONFIG_DIR)/%d.pc $(GENODE_DIR)/<pkg-config>
|
||||||
|
|
||||||
|
!emit_lib_pkg_config = |> \
|
||||||
|
echo Name: %d >> %o; \
|
||||||
|
echo Description: Genode %d library >> %o; \
|
||||||
|
echo Version: $(GIT_VERSION) >> %o; \
|
||||||
|
echo Libs: -l:%d.lib.a >> %o; \
|
||||||
|
pkg-config --validate %o; \
|
||||||
|
|> $(PKG_CONFIG_DIR)/%d.pc $(GENODE_DIR)/<pkg-config>
|
||||||
|
|
|
@ -53,11 +53,13 @@ LDFLAGS += \
|
||||||
-T$(REP_DIR)/src/ld/stack_area.ld \
|
-T$(REP_DIR)/src/ld/stack_area.ld \
|
||||||
|
|
||||||
CORE_LIBS += \
|
CORE_LIBS += \
|
||||||
$(BASE_DIR)/src/lib/cxx/cxx.lib.a \
|
|
||||||
$(BASE_DIR)/src/lib/startup/startup.lib.a \
|
|
||||||
$(REP_DIR)/src/lib/base/base-linux-common.lib.a \
|
$(REP_DIR)/src/lib/base/base-linux-common.lib.a \
|
||||||
$(REP_DIR)/src/lib/syscall/syscall-linux.lib.a \
|
$(REP_DIR)/src/lib/syscall/syscall-linux.lib.a \
|
||||||
|
|
||||||
: {obj} $(CORE_LIBS) |> !ld |> core-linux $(REP_DIR)/<core> {bin}
|
CORE_PKGS += cxx startup
|
||||||
|
|
||||||
|
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 |>
|
: {bin} |> !collect_bin |>
|
||||||
include &(BIN_RULES)
|
include &(BIN_RULES)
|
||||||
|
|
|
@ -38,14 +38,13 @@ LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld
|
||||||
LDFLAGS += --entry=_start_initial_stack
|
LDFLAGS += --entry=_start_initial_stack
|
||||||
|
|
||||||
BASE_LIBS += \
|
BASE_LIBS += \
|
||||||
$(BASE_DIR)/src/lib/alarm/alarm.lib.a \
|
|
||||||
$(REP_DIR)/src/lib/base/base-linux-common.lib.a \
|
$(REP_DIR)/src/lib/base/base-linux-common.lib.a \
|
||||||
$(REP_DIR)/src/lib/base/base-linux.lib.a \
|
$(REP_DIR)/src/lib/base/base-linux.lib.a \
|
||||||
$(BASE_DIR)/src/lib/cxx/cxx.lib.a \
|
|
||||||
$(BASE_DIR)/src/lib/ldso/startup/ldso-startup.lib.a \
|
|
||||||
$(BASE_DIR)/src/lib/startup/startup.lib.a \
|
|
||||||
$(REP_DIR)/src/lib/syscall/syscall-linux.lib.a \
|
$(REP_DIR)/src/lib/syscall/syscall-linux.lib.a \
|
||||||
$(BASE_DIR)/src/lib/timeout/timeout.lib.a \
|
|
||||||
|
BASE_PKGS += alarm cxx ldso-startup startup timeout
|
||||||
|
|
||||||
|
LDFLAGS += `pkg-config --static --libs $(BASE_PKGS)`
|
||||||
|
|
||||||
: $(BASE_LIBS) {obj} | symbol.map \
|
: $(BASE_LIBS) {obj} | symbol.map \
|
||||||
|> \
|
|> \
|
||||||
|
|
|
@ -4,9 +4,7 @@ include $(REP_DIR)/src/lib/syscall/headers.tup
|
||||||
INCLUDES += -I$(REP_DIR)/src/include
|
INCLUDES += -I$(REP_DIR)/src/include
|
||||||
INCLUDES += -I$(BASE_DIR)/src/include
|
INCLUDES += -I$(BASE_DIR)/src/include
|
||||||
|
|
||||||
STATIC_LIBS = \
|
STATIC_LIBS = ../base/base-linux-common.lib.a
|
||||||
../base/base-linux-common.lib.a \
|
|
||||||
$(BASE_DIR)/src/lib/timeout/timeout.lib.a \
|
|
||||||
|
|
||||||
: foreach *.cc $(BASE_DIR)/src/lib/cxx/new_delete.cc |> !cxx |> {obj}
|
: foreach *.cc $(BASE_DIR)/src/lib/cxx/new_delete.cc |> !cxx |> {obj}
|
||||||
: foreach *.c |> !cc |> {obj}
|
: foreach *.c |> !cc |> {obj}
|
||||||
|
|
|
@ -40,13 +40,12 @@ LDFLAGS += -gc-sections -z max-page-size=0x1000
|
||||||
LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld \
|
LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld \
|
||||||
|
|
||||||
BASE_LIBS += \
|
BASE_LIBS += \
|
||||||
$(BASE_DIR)/src/lib/alarm/alarm.lib.a \
|
|
||||||
$(REP_DIR)/src/lib/base/base-nova-common.lib.a \
|
$(REP_DIR)/src/lib/base/base-nova-common.lib.a \
|
||||||
$(REP_DIR)/src/lib/base/base-nova.lib.a \
|
$(REP_DIR)/src/lib/base/base-nova.lib.a \
|
||||||
$(BASE_DIR)/src/lib/cxx/cxx.lib.a \
|
|
||||||
$(BASE_DIR)/src/lib/ldso/startup/ldso-startup.lib.a \
|
BASE_PKGS += alarm cxx ldso-startup startup timeout
|
||||||
$(BASE_DIR)/src/lib/startup/startup.lib.a \
|
|
||||||
$(BASE_DIR)/src/lib/timeout/timeout.lib.a \
|
LDFLAGS += `pkg-config --static --libs $(BASE_PKGS)`
|
||||||
|
|
||||||
: $(BASE_LIBS) {obj} | symbol.map \
|
: $(BASE_LIBS) {obj} | symbol.map \
|
||||||
|> \
|
|> \
|
||||||
|
@ -61,4 +60,4 @@ BASE_LIBS += \
|
||||||
: {bin} |> !collect_bin |>
|
: {bin} |> !collect_bin |>
|
||||||
include &(BIN_RULES)
|
include &(BIN_RULES)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
include_rules
|
include_rules
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
: foreach *.cc |> !cxx |> {obj}
|
||||||
: {obj} |> !ar |> alarm.lib.a
|
: {obj} |> !ar |> {bin}
|
||||||
|
: foreach {bin} |> !collect_static |>
|
||||||
|
: |> !emit_lib_pkg_config |>
|
||||||
|
|
|
@ -74,4 +74,6 @@ export OBJCOPY
|
||||||
|
|
||||||
: foreach *.c |> !cc |> {obj}
|
: foreach *.c |> !cc |> {obj}
|
||||||
|
|
||||||
: {obj} |> !ar |> cxx.lib.a $(BASE_DIR)/<base-libs>
|
: {obj} |> !ar |> {bin}
|
||||||
|
: foreach {bin} |> !collect_static |>
|
||||||
|
: |> !emit_lib_pkg_config |>
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
LIBS += base
|
||||||
|
include_rules
|
||||||
|
|
||||||
|
: foreach startup.cc |> !cxx |> %B.o {obj}
|
||||||
|
: {obj} | |> !ar |> {bin}
|
||||||
|
: foreach {bin} |> !collect_static |>
|
||||||
|
: |> !emit_lib_pkg_config |>
|
|
@ -1,6 +0,0 @@
|
||||||
LIBS += base
|
|
||||||
include_rules
|
|
||||||
|
|
||||||
: foreach startup.cc |> !cxx |> %B.o {obj}
|
|
||||||
: {obj} | |> !ar |> ldso-startup.lib.a
|
|
||||||
: {obj} | |> !ar |> $(LIB_DIR)/ldso-startup.lib.a $(GENODE_DIR)/<lib>
|
|
|
@ -12,4 +12,6 @@ ifeq (@(TUP_ARCH),arm64)
|
||||||
: foreach spec/arm_64/*.s |> !asm |> {obj}
|
: foreach spec/arm_64/*.s |> !asm |> {obj}
|
||||||
endif
|
endif
|
||||||
|
|
||||||
: {obj} |> !ar |> startup.lib.a $(BASE_DIR)/<base-libs>
|
: {obj} |> !ar |> {bin}
|
||||||
|
: foreach {bin} |> !collect_static |>
|
||||||
|
: |> !emit_lib_pkg_config |>
|
||||||
|
|
|
@ -14,4 +14,6 @@ else
|
||||||
endif
|
endif
|
||||||
|
|
||||||
: foreach $(SRC_CC) |> !cxx |> {obj}
|
: foreach $(SRC_CC) |> !cxx |> {obj}
|
||||||
: {obj} |> !ar |> %d.lib.a
|
: {obj} |> !ar |> {bin}
|
||||||
|
: foreach {bin} |> !collect_static |>
|
||||||
|
: |> !emit_lib_pkg_config |>
|
||||||
|
|
|
@ -3,9 +3,9 @@ LIBS += libpng libc
|
||||||
|
|
||||||
include_rules
|
include_rules
|
||||||
|
|
||||||
BLIT = $(GENODE_DIR)/repos/os/src/lib/blit/blit.lib.a
|
LIBS += blit
|
||||||
|
|
||||||
: foreach *.cc $(REP_DIR)/src/lib/file/*.cc |> !cxx |> %B.o {obj}
|
: foreach *.cc $(REP_DIR)/src/lib/file/*.cc |> !cxx |> %B.o {obj}
|
||||||
: {obj} $(BLIT) |> !prg |> {bin}
|
: {obj} |> !prg |> {bin}
|
||||||
: {bin} |> !collect_bin |>
|
: {bin} |> !collect_bin |>
|
||||||
include &(BIN_RULES)
|
include &(BIN_RULES)
|
||||||
|
|
|
@ -3,10 +3,9 @@ include_rules
|
||||||
|
|
||||||
INCLUDES += -I.
|
INCLUDES += -I.
|
||||||
INCLUDES += -I$(REP_DIR)/../demo/include
|
INCLUDES += -I$(REP_DIR)/../demo/include
|
||||||
|
LIBS += blit
|
||||||
BLIT = $(GENODE_DIR)/repos/os/src/lib/blit/blit.lib.a
|
|
||||||
|
|
||||||
: foreach *.cc |> !cxx |> %B.o {obj}
|
: foreach *.cc |> !cxx |> %B.o {obj}
|
||||||
: {obj} $(BLIT) |> !prg |> {bin}
|
: {obj} |> !prg |> {bin}
|
||||||
: {bin} |> !collect_bin |>
|
: {bin} |> !collect_bin |>
|
||||||
include &(BIN_RULES)
|
include &(BIN_RULES)
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
|
|
||||||
include_rules
|
include_rules
|
||||||
|
|
||||||
BLIT_DIR = $(GENODE_DIR)/repos/os/src/lib/blit
|
|
||||||
|
|
||||||
ifeq (@(TUP_ARCH),i386)
|
ifeq (@(TUP_ARCH),i386)
|
||||||
BLIT_INCLUDES += -Ispec/x86_32
|
BLIT_INCLUDES += -Ispec/x86_32
|
||||||
BLIT_INCLUDES += -Ispec/x86
|
BLIT_INCLUDES += -Ispec/x86
|
||||||
|
@ -24,4 +21,6 @@ endif
|
||||||
INCLUDES += $(BLIT_INCLUDES)
|
INCLUDES += $(BLIT_INCLUDES)
|
||||||
|
|
||||||
: foreach *.cc |> !cxx |> {obj}
|
: foreach *.cc |> !cxx |> {obj}
|
||||||
: {obj} |> !ar |> %d.lib.a
|
: {obj} |> !ar |> {bin}
|
||||||
|
: {bin} |> !collect_static |>
|
||||||
|
: |> !emit_lib_pkg_config |>
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
include_rules
|
||||||
|
|
||||||
|
: foreach *.cc |> !cxx |> {obj}
|
||||||
|
: {obj} |> !ar |> %d.lib.a {bin}
|
||||||
|
: {bin} |> !collect_static |>
|
||||||
|
: |> !emit_lib_pkg_config |>
|
|
@ -1,9 +1,9 @@
|
||||||
TARGET_NAME = nic_dump
|
TARGET_NAME = nic_dump
|
||||||
INCLUDES += -I.
|
INCLUDES += -I.
|
||||||
include_rules
|
include_rules
|
||||||
|
LIBS += net
|
||||||
|
|
||||||
: foreach *.cc |> !cxx |> %B.o {obj}
|
: foreach *.cc |> !cxx |> %B.o {obj}
|
||||||
: foreach ../../lib/net/*.cc |> !cxx |> %B.o {obj}
|
|
||||||
|
|
||||||
: {obj} |> !prg |> {bin}
|
: {obj} |> !prg |> {bin}
|
||||||
: {bin} |> !collect_bin |>
|
: {bin} |> !collect_bin |>
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
TARGET_NAME = nic_router
|
TARGET_NAME = nic_router
|
||||||
INCLUDES += -I.
|
INCLUDES += -I.
|
||||||
include_rules
|
include_rules
|
||||||
|
LIBS += net
|
||||||
|
|
||||||
: foreach *.cc |> !cxx |> %B.o {obj}
|
: foreach *.cc |> !cxx |> %B.o {obj}
|
||||||
: foreach ../../lib/net/*.cc |> !cxx |> %B.o {obj}
|
|
||||||
|
|
||||||
: {obj} |> !prg |> {bin}
|
: {obj} |> !prg |> {bin}
|
||||||
: {bin} |> !collect_bin |>
|
: {bin} |> !collect_bin |>
|
||||||
include &(BIN_RULES)
|
include &(BIN_RULES)
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
TARGET_NAME = nitpicker
|
TARGET_NAME = nitpicker
|
||||||
|
|
||||||
include_rules
|
include_rules
|
||||||
|
|
||||||
BLIT_LIB = $(REP_DIR)/src/lib/blit/blit.lib.a
|
LIBS += blit
|
||||||
|
|
||||||
: foreach *.cc |> !cxx |> %B.o {obj}
|
: foreach *.cc |> !cxx |> %B.o {obj}
|
||||||
: default.tff |> !incbin |> {obj}
|
: default.tff |> !incbin |> {obj}
|
||||||
: {obj} $(BLIT_LIB) |> !prg |> {bin}
|
: {obj} |> !prg |> {bin}
|
||||||
: {bin} |> !collect_bin |>
|
: {bin} |> !collect_bin |>
|
||||||
include &(BIN_RULES)
|
include &(BIN_RULES)
|
||||||
|
|
Loading…
Reference in New Issue