/builders/cproc-2ef69c243bf05282071b9fd66e9ab2ffb8c25783/builder.sh (d2f8526c3276c949e849faee89c00612d59c5234) (2291 bytes) (mode 100644) (type blob)
#XXX not yet in a toolchain
src_name=cproc
git_commit=${pkg_name##*-}
slot=$git_commit
git_url0=https://git.sr.ht/~mcf/cproc
pkg_dir=/run/pkgs/$src_name
src_dir=$src_dir_root/$src_name
rm -Rf $pkg_dir
mkdir -p /run/pkgs
cp -r $src_dir $pkg_dir
PATH_SAVED=$PATH
export PATH="\
/nyan/toolchains/binutils-tinycc/bin:\
/nyan/make/current/bin:\
/nyan/git/current/bin:\
$PATH\
"
target_gnu_triple=$(basename "$(ls -d /nyan/toolchains/binutils-tinycc/bin/*-tcc)")
target_gnu_triple=${target_gnu_triple%-tcc}
cd $pkg_dir
if test x$git_commit != x; then
git checkout --force $git_commit
git reset --hard
fi
# XXX we don't run the configure script and genereate config.h and config.mk ourself
# XXX we are trying to make it work with tcc
defines=
cat >config.h <<EOF
static const char target[] = "$target_gnu_triple";
static const char *const startfiles[] = {"",""}; /* XXX: EMPTY FOR NOW */
static const char *const endfiles[] = {"",""}; /* XXX: EMPTY FOR NOW */
static const char *const preprocesscmd[] = {
"/nyan/cproc/$slot/bin/cpp",
/* clear preprocessor GNU C version */
"-U", "__TINYC__",
"-U", "__TCC_PP__",
/* we don't yet support these optional features */
"-D", "__STDC_NO_ATOMICS__",
"-D", "__STDC_NO_COMPLEX__",
"-D", "__STDC_NO_VLA__",
"-U", "__SIZEOF_INT128__",
/* we don't generate position-independent code */
"-U", "__PIC__",
/* ignore attributes and extension markers */
"-D", "__attribute__(x)=",
"-D", "__extension__=",
$defines};
static const char *const codegencmd[] = {"/nyan/qbe/current/bin/qbe"};
static const char *const assemblecmd[] = {"/nyan/toolchains/binutils-tinycc/bin/$target_gnu_triple-as"};
static const char *const linkcmd[] = {"/nyan/toolchains/binutils-tinycc/bin/$target_gnu_triple-ld", "-B/nyan/glibc/current/lib --dynamic-linker '/lib64/ld-linux-x86-64.so.2'"};
EOF
# makefile syntax (hence variable syntax)
cat >config.mk <<EOF
PREFIX=/nyan/cproc/$slot
BINDIR=\$(PREFIX)/bin
CC=$target_gnu_triple-tcc
CFLAGS=
LDFLAGS=
EOF
make -j $threads_n
make install
cat >/nyan/cproc/$slot/bin/cpp <<EOF
#!/bin/sh
exec /nyan/toolchains/binutils-tinycc/bin/$target_gnu_triple-tcc -E "\$@"
EOF
chmod +x /nyan/cproc/$slot/bin/cpp
export PATH=$PATH_SAVED
unset PATH_SAVED
unset target_gnu_triple
rm -Rf $pkg_dir
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
5 |
8eba6c8dd4dcaf6166bd22285ed34625f38a84ff |
.gitignore |
100755 |
blob |
1587 |
57fa4264b9ee0ae0a6f678f2527a05d3b22dda78 |
00-bootstrap-build.sh |
100755 |
blob |
848 |
a30f443bf405d56682efe3b4c5d3a19d5f7eb45d |
01-re-bootstrap-build.sh |
100644 |
blob |
2142 |
f19c2d6b293244bb11a3f74ee77c10675cadc7d6 |
INSTALL |
100644 |
blob |
30 |
c9b735fa1332286f4b3f5f81fa10527fd7506b6e |
LICENSE |
040000 |
tree |
- |
2d329a132a818271872c5dfca0ef3e4f68010c64 |
builders |
100644 |
blob |
1773 |
ef1551089a803bde37e36edc8d61bb819d06f793 |
conf.bootstrap.sh |
100644 |
blob |
479 |
8cc15efe46965ac7750fe304460f5a2b0aa4201c |
conf.sh |
040000 |
tree |
- |
c8df8a6aa81ebfdb98561f8f1896df85d250cbbd |
files |
100755 |
blob |
356 |
8fb8be28ac72f7214b59934b9f74a682665f2d32 |
pkg-build |
100644 |
blob |
22800641 |
e9e6291054c857401f6835c728f31541dae4311e |
steam.tar.bz2 |
100644 |
blob |
173 |
2047af328b22f9d146585cd9e759edbc18122250 |
utils.sh |
040000 |
tree |
- |
8e23f551092a35f82b37129dd08c35c4d313c17b |
x64 |
040000 |
tree |
- |
b7a22de7f5cbd97650dd45412ef7d4246e395eb8 |
x86 |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanlinux
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanlinux
Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanlinux
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main