mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-26 14:54:20 +08:00
42 lines
1.9 KiB
TOML
42 lines
1.9 KiB
TOML
#TODO compiles, works in a basic way, but needs figuring out why -ldl is ignored
|
|
#TODO also until new signal implementation gets to be the default, remove siginfo struct from relibc's include/bits/signal.h
|
|
# and modify relibc/src/header/signal/mod.rs sigtimedwait second parameter's type from siginfo_t to siginfo (cbindgen needs a reference)
|
|
#TODO needs further testing
|
|
[source]
|
|
tar = "https://www.cpan.org/src/5.0/perl-5.40.0.tar.gz"
|
|
[build]
|
|
template = "custom"
|
|
dependencies = [
|
|
"relibc"
|
|
]
|
|
script = """
|
|
rsync -av --delete "${COOKBOOK_SOURCE}/" ./ #move it to the top of the script after debugging - BP
|
|
curl -L -O --time-cond perl-cross-1.6.tar.gz https://github.com/arsv/perl-cross/releases/download/1.6/perl-cross-1.6.tar.gz
|
|
tar --strip-components=1 -xvf perl-cross-1.6.tar.gz
|
|
wget -O ./cnf/config.sub "https://gitlab.redox-os.org/redox-os/gnu-config/-/raw/master/config.sub?inline=false"
|
|
#Note: since perl-cross can run only inside the source-tree (out-of-tree is bugged) it's easier to do everything in the build directory
|
|
COOKBOOK_CONFIGURE=${COOKBOOK_BUILD}/configure
|
|
cp ${COOKBOOK_RECIPE}/configure_tool.sh ${COOKBOOK_BUILD}/cnf/configure_tool.sh
|
|
cp ${COOKBOOK_RECIPE}/redox ${COOKBOOK_BUILD}/cnf/hints/redox
|
|
mkdir ${COOKBOOK_SYSROOT}/usr
|
|
ln -s "${COOKBOOK_SYSROOT}/include" "${COOKBOOK_SYSROOT}/usr/include"
|
|
#Note: non-standard configure, familiar flags can have different meaning!
|
|
./configure --host-cc=gcc --host-cpp=g++ --target=x86_64-unknown-redox --sysroot=${COOKBOOK_SYSROOT} --disable-mod=Sys-Syslog
|
|
sed -i "s/^#define Netdb_name_t.*/#define Netdb_name_t const char*/" config.h
|
|
sed -i "s/^# HAS_NANOSLEEP.*/#define HAS_NANOSLEEP/" config.h
|
|
sed -i "s|^/.#define I_GRP.*|#define I_GRP|" config.h
|
|
echo "#define HAS_GROUP" >> config.h
|
|
make -j4
|
|
make install DESTDIR="${COOKBOOK_STAGE}"
|
|
pushd .
|
|
cd "${COOKBOOK_STAGE}/usr/share/man/man3"
|
|
for f in *; do
|
|
case "$f" in
|
|
*::*)
|
|
mv "$f" "${f//::/__}";
|
|
;;
|
|
esac
|
|
done
|
|
popd
|
|
"""
|