Move stub library generation to top-level Tuprules
This commit is contained in:
parent
cd81f893f2
commit
b754139ffc
29
Tuprules.tup
29
Tuprules.tup
|
@ -20,6 +20,7 @@ CC_MARCH = -march=armv8-a
|
||||||
endif
|
endif
|
||||||
|
|
||||||
GENODE_DIR = $(TUP_CWD)/upstream
|
GENODE_DIR = $(TUP_CWD)/upstream
|
||||||
|
STUB_DIR = $(TUP_CWD)/stub
|
||||||
|
|
||||||
export NIX_PATH
|
export NIX_PATH
|
||||||
NIX_BUILD = nix-build --option substitute false
|
NIX_BUILD = nix-build --option substitute false
|
||||||
|
@ -162,7 +163,7 @@ PKG_CONFIG = PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) pkg-config
|
||||||
|
|
||||||
!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 %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 %f -o %o |> %B.o
|
||||||
|
|
||||||
!cc_port = | $(GENODE_DIR)/<pkg-config> |> ^o CC %o^ @(CC_WRAPPER) $(CC) -c $(DEFINES) $(CFLAGS) $(CFLAGS_%f) $(INCLUDES) `$(PKG_CONFIG) --cflags $(LIBS) $(LIBS_CFLAGS)` -o %o |> %B.o
|
!cc_port = | $(GENODE_DIR)/<pkg-config> |> ^o CC %o^ @(CC_WRAPPER) $(CC) -c $(DEFINES) $(CFLAGS) $(CFLAGS_%o) $(INCLUDES) `$(PKG_CONFIG) --cflags $(LIBS) $(LIBS_CFLAGS)` -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 %f -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 %f -o %o |> %B.o
|
||||||
|
|
||||||
|
@ -171,3 +172,29 @@ PKG_CONFIG = PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) pkg-config
|
||||||
!ld = | $(GENODE_DIR)/<lib> $(GENODE_DIR)/<pkg-config> |> ^o LD %o^ $(LD) $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` %f -o %o |>
|
!ld = | $(GENODE_DIR)/<lib> $(GENODE_DIR)/<pkg-config> |> ^o LD %o^ $(LD) $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` %f -o %o |>
|
||||||
|
|
||||||
!strip = |> strip -o %o %f |>
|
!strip = |> strip -o %o %f |>
|
||||||
|
|
||||||
|
&LD_SCRIPT_SO = upstream/repos/base/src/ld/genode_rel.ld
|
||||||
|
|
||||||
|
ifeq (@(TUP_ARCH),x86_64)
|
||||||
|
ASM_SYM_DEPENDENCY = movq \1@GOTPCREL(%rip), %rax
|
||||||
|
else
|
||||||
|
ASM_SYM_DEPENDENCY = .long \1
|
||||||
|
endif
|
||||||
|
|
||||||
|
!abi_stub = |> ^ STUB %o^\
|
||||||
|
sed \
|
||||||
|
-e "s/^\(\w\+\) D \(\w\+\)\$/.data; .global \1; .type \1,%%object; .size \1,\2; \1:/p" \
|
||||||
|
-e "s/^\(\w\+\) V/.data; .weak \1; .type \1,%%object; \1:/p" \
|
||||||
|
-e "s/^\(\w\+\) T/.text; .global \1; .type \1,%%function; \1:/p" \
|
||||||
|
-e "s/^\(\w\+\) R \(\w\+\)\$/.section .rodata; .global \1; .type \1,%%object; .size \1,\2; \1:/p" \
|
||||||
|
-e "s/^\(\w\+\) W/.text; .weak \1; .type \1,%%function; \1:/p" \
|
||||||
|
-e "s/^\(\w\+\) B \(\w\+\)\$/.bss; .global \1; .type \1,%%object; .size \1,\2; \1:/p" \
|
||||||
|
-e "s/^\(\w\+\) U/.text; .global \1; $(ASM_SYM_DEPENDENCY)/p" \
|
||||||
|
%f \
|
||||||
|
| $(CC) -x assembler -c - -o tmp.o; \
|
||||||
|
$(LD) -o %o \
|
||||||
|
-shared \
|
||||||
|
-T &(LD_SCRIPT_SO) \
|
||||||
|
tmp.o; \
|
||||||
|
rm tmp.o; \
|
||||||
|
|> $(STUB_DIR)/%B.lib.so $(GENODE_DIR)/<stub>
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
include_rules
|
|
||||||
|
|
||||||
: |> $(NIX_BUILD) .. --out-link port \
|
|
||||||
--attr source --attr include |> port-source port-include {port}
|
|
||||||
|
|
||||||
: port-source |> cp %f/%d.pc %o \
|
|
||||||
|> $(PKG_CONFIG_DIR)/%d.pc $(GENODE_DIR)/<pkg-config>
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ preparePort, chuck }:
|
|
||||||
|
|
||||||
preparePort rec {
|
|
||||||
inherit (chuck) name version src;
|
|
||||||
outputs = [ "source" ];
|
|
||||||
|
|
||||||
sourceRoot = "${name}/src";
|
|
||||||
|
|
||||||
installPhase =
|
|
||||||
''
|
|
||||||
mkdir -p $source
|
|
||||||
cp -r core host scripts $source
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
include_rules
|
|
||||||
|
|
||||||
: |> $(NIX_BUILD) .. --out-link port \
|
|
||||||
--attr source --attr include |> port-source port-include {port}
|
|
||||||
|
|
||||||
: port-source |> cp %f/%d.pc %o \
|
|
||||||
|> $(PKG_CONFIG_DIR)/%d.pc $(GENODE_DIR)/<pkg-config>
|
|
|
@ -1,25 +0,0 @@
|
||||||
{ preparePort, rtaudio }:
|
|
||||||
|
|
||||||
preparePort rec {
|
|
||||||
inherit (rtaudio) name version src;
|
|
||||||
outputs = [ "source" "include" ];
|
|
||||||
buildPhase =
|
|
||||||
''
|
|
||||||
mkdir $source $include
|
|
||||||
sed \
|
|
||||||
-e "s|^includedir.*|include=$include|" \
|
|
||||||
-e 's/@PACKAGE_VERSION@/${version}/' \
|
|
||||||
-e 's/@req@/stdcxx/' \
|
|
||||||
-e 's/^Libs:.*/Libs: -l:rtaudio.lib.so/' \
|
|
||||||
-e '/pthread/d' \
|
|
||||||
-e 's/@api@/-D__GENODE_AUDIO__/' \
|
|
||||||
-e '/@/d' \
|
|
||||||
-e '/prefix/d' \
|
|
||||||
< rtaudio.pc.in > $source/rtaudio.pc
|
|
||||||
'';
|
|
||||||
installPhase =
|
|
||||||
''
|
|
||||||
cp -rv RtAudio.cpp rtaudio_c.cpp include $source
|
|
||||||
cp RtAudio.h rtaudio_c.h $include
|
|
||||||
'';
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user