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
|
||||
|
||||
GENODE_DIR = $(TUP_CWD)/upstream
|
||||
STUB_DIR = $(TUP_CWD)/stub
|
||||
|
||||
export NIX_PATH
|
||||
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_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
|
||||
|
||||
|
@ -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 |>
|
||||
|
||||
!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