mirror of
git://git.2f30.org/morpheus.git
synced 2024-06-16 13:28:35 +00:00
Move to a mk based build system
This commit is contained in:
parent
6d1ab24ca7
commit
d71bb4e966
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
.state
|
||||||
|
pkgs.mk
|
8
README
8
README
@ -3,8 +3,8 @@ Morpheus is a statically linked musl based toy distro.
|
|||||||
The base system includes sbase[1], ubase[2], sdhcp[3], smdev[4], mksh
|
The base system includes sbase[1], ubase[2], sdhcp[3], smdev[4], mksh
|
||||||
as well as other tools.
|
as well as other tools.
|
||||||
|
|
||||||
To build the world use `./stage0'. You need an x86_64 host to build
|
To build the world use `mk world'. You need an x86_64 host to build
|
||||||
morpheus. Please review the `prepare-env' script and adjust anything
|
morpheus. Please review the `config.mk' file and adjust anything
|
||||||
needed.
|
needed.
|
||||||
|
|
||||||
Morpheus has been build-tested on CRUX, Debian, Archlinux, Slackware
|
Morpheus has been build-tested on CRUX, Debian, Archlinux, Slackware
|
||||||
@ -12,13 +12,13 @@ and Ubuntu 13.04.
|
|||||||
|
|
||||||
To build specific packages:
|
To build specific packages:
|
||||||
|
|
||||||
./pkgbuild pkg1 pkg2 ...
|
mk pkg1 pkg2 ...
|
||||||
|
|
||||||
After you've built stage0 you can create a bootable image:
|
After you've built stage0 you can create a bootable image:
|
||||||
|
|
||||||
sudo modprobe -r loop
|
sudo modprobe -r loop
|
||||||
sudo modprobe loop max_part=15 # to be done only once
|
sudo modprobe loop max_part=15 # to be done only once
|
||||||
sudo ./create-bootable
|
sudo mk bootable
|
||||||
|
|
||||||
This creates a 4GB image. You can dd this image to a USB stick if you
|
This creates a 4GB image. You can dd this image to a USB stick if you
|
||||||
want to. Make sure to change the kernel command line to point it to
|
want to. Make sure to change the kernel command line to point it to
|
||||||
|
49
build
49
build
@ -1,49 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Only meant to be executed from within the stage0 script
|
|
||||||
|
|
||||||
set -e -x
|
|
||||||
|
|
||||||
fetch() {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
patch() {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
build() {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
. $1
|
|
||||||
(
|
|
||||||
fetch || {
|
|
||||||
echo "Failed to fetch $1" >> "$top/morpheus.log"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
unpack || {
|
|
||||||
echo "Failed to unpack $1" >> "$top/morpheus.log"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
patch || {
|
|
||||||
echo "Failed to patch $1" >> "$top/morpheus.log"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
build || {
|
|
||||||
echo "Failed to build $1" >> "$top/morpheus.log"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
install || {
|
|
||||||
echo "Failed to install $1" >> "$top/morpheus.log"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
)
|
|
12
config.mk
Normal file
12
config.mk
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
top = `{pwd}
|
||||||
|
root = ${top}/root
|
||||||
|
#arch = i486
|
||||||
|
arch = x86_64
|
||||||
|
libcroot = ${root}/opt/cross/${arch}-linux-musl/${arch}-linux-musl
|
||||||
|
nprocs = 4
|
||||||
|
version = 0.0
|
||||||
|
mirror = http://dl.2f30.org/morpheus-pkgs/${arch}/${version}
|
||||||
|
CC = ${arch}-linux-musl-gcc
|
||||||
|
|
||||||
|
PATH = ${root}/opt/cross/${arch}-linux-musl/bin:${PATH}
|
||||||
|
|
24
mkfile
Normal file
24
mkfile
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<config.mk
|
||||||
|
|
||||||
|
allpkgs = `{ls pkgs/*}
|
||||||
|
pkgs = ${allpkgs:pkgs/%=%}
|
||||||
|
|
||||||
|
help:VQ:
|
||||||
|
echo 'Usage: mk <pkg>'
|
||||||
|
echo '\nTo build all the targets in pkgs/, run `mk world´'
|
||||||
|
|
||||||
|
all world:VQ: $pkgs
|
||||||
|
|
||||||
|
clean:V:
|
||||||
|
rm -f .state/*
|
||||||
|
|
||||||
|
# generate a pkgs.mk file with the tarkets for all packages in pkgs/
|
||||||
|
`{ mkdir -p .state }
|
||||||
|
`{ echo '# auto-generated file, do not edit' > pkgs.mk }
|
||||||
|
`{ cd pkgs && for pkg in *; do cat $pkg | sed -e "s,^build:,$pkg:QP./stuff/cmp-pkgs: pkgs/$pkg," >> ../pkgs.mk && echo '\tcd $top && cp pkgs/$target .state/$target\n' >> ../pkgs.mk; done }
|
||||||
|
|
||||||
|
<pkgs.mk
|
||||||
|
|
||||||
|
bootable:V:
|
||||||
|
stuff/create-bootable "$root" morpheus-$arch-$version.img
|
||||||
|
|
33
pkgbuild
33
pkgbuild
@ -1,33 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Simple package build script.
|
|
||||||
# For example to build the kernel do: ./pkgbuild kernel
|
|
||||||
#
|
|
||||||
# Please note that if the package has already been unpacked in src/
|
|
||||||
# then it will not be unpacked again. This is to make it easy
|
|
||||||
# to build new packages by first hacking src/<pkg> until it can be
|
|
||||||
# successfully compiled. If you want to force unpacking of the package
|
|
||||||
# simply rm the unpacked directory. Similarly if you want to force
|
|
||||||
# re-downloading of the package, simply rm the packed version as well.
|
|
||||||
|
|
||||||
umask 022
|
|
||||||
|
|
||||||
if test -z "$1"; then
|
|
||||||
echo usage: $0 pkg... 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
. ./prepare-env
|
|
||||||
|
|
||||||
if test "$(uname -m)" != "$arch"; then
|
|
||||||
echo You need an $arch host to build morpheus 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
. ./prepare-root
|
|
||||||
mkdir -p src
|
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
./build "pkgs/$1"
|
|
||||||
shift
|
|
||||||
done
|
|
22
pkgs/abduco
22
pkgs/abduco
@ -1,22 +1,12 @@
|
|||||||
url=git://repo.or.cz/abduco.git
|
build: crossmusl
|
||||||
|
url="git://repo.or.cz/abduco.git"
|
||||||
fetch() {
|
cd src
|
||||||
[ -d src/abduco ] || git clone $url src/abduco
|
[ -d abduco ] || git clone $url
|
||||||
}
|
cd abduco
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/abduco
|
|
||||||
make clean
|
make clean
|
||||||
sed -i "s@PREFIX = /usr/local@PREFIX = /@" config.mk
|
sed -i "s@PREFIX = /usr/local@PREFIX = /@" config.mk
|
||||||
sed -i "s@INCS = -I. -I/usr/include -I/usr/local/include@INCS = -I. -I$libcroot/include@" config.mk
|
sed -i "s@INCS = -I. -I/usr/include -I/usr/local/include@INCS = -I. -I$libcroot/include@" config.mk
|
||||||
sed -i "s@LDFLAGS += -L/usr/lib -L/usr/local/lib ${LIBS}@LDFLAGS += -L$libcroot/lib ${LIBS} -static @" config.mk
|
sed -i "s@LDFLAGS += -L/usr/lib -L/usr/local/lib ${LIBS}@LDFLAGS += -L$libcroot/lib ${LIBS} -static @" config.mk
|
||||||
sed -i 's@CC = cc@CC = x86_64-linux-musl-gcc@' config.mk
|
sed -i "s@CC = cc@CC = $CC@" config.mk
|
||||||
make || return 1
|
make || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/abduco
|
|
||||||
make DESTDIR="$root" install
|
make DESTDIR="$root" install
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
20
pkgs/busybox
20
pkgs/busybox
@ -1,16 +1,10 @@
|
|||||||
url=$mirror/busybox
|
build: crossmusl
|
||||||
|
url="$mirror/busybox"
|
||||||
fetch() {
|
cd src
|
||||||
wget -c $url -O src/busybox
|
wget -c ${url}
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
# Install package
|
|
||||||
cd src/
|
|
||||||
chmod +x busybox
|
chmod +x busybox
|
||||||
cp busybox "$root/bin"
|
cp busybox "${root}/bin"
|
||||||
cd -
|
cd "${root}/bin"
|
||||||
cd "$root/bin"
|
|
||||||
ln -sf busybox addgroup
|
ln -sf busybox addgroup
|
||||||
ln -sf busybox adduser
|
ln -sf busybox adduser
|
||||||
ln -sf busybox awk
|
ln -sf busybox awk
|
||||||
@ -47,5 +41,3 @@ install() {
|
|||||||
ln -sf busybox top
|
ln -sf busybox top
|
||||||
ln -sf busybox vi
|
ln -sf busybox vi
|
||||||
ln -sf busybox wget
|
ln -sf busybox wget
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
@ -1,17 +1,14 @@
|
|||||||
url=$mirror/crossx86-x86_64-linux-musl-0.9.15.tar.xz
|
build: prepare-root
|
||||||
|
v="0.9.15"
|
||||||
fetch() {
|
url="$mirror/crossx86-$arch-linux-musl-$v.tar.xz"
|
||||||
wget -c $url -O src/crossx86-x86_64-linux-musl-0.9.15.tar.xz
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
tar xJf src/crossx86-x86_64-linux-musl-0.9.15.tar.xz -C "$root/opt/cross"
|
|
||||||
mv "$root/opt/cross/x86_64-linux-musl/x86_64-linux-musl/lib64"/* "$root/opt/cross/x86_64-linux-musl/x86_64-linux-musl/lib"
|
|
||||||
cd "$root/bin"
|
|
||||||
targets="ar as c++ g++ gcc ld ld.bfd nm objcopy objdump ranlib strip"
|
targets="ar as c++ g++ gcc ld ld.bfd nm objcopy objdump ranlib strip"
|
||||||
for t in $targets; do
|
cd src
|
||||||
ln -sf ../opt/cross/x86_64-linux-musl/bin/x86_64-linux-musl-$t $t
|
wget -c $url
|
||||||
|
tar xJf crossx86-$arch-linux-musl-$v.tar.xz -C "$root/opt/cross"
|
||||||
|
if test "$arch" = "x86_64"; then
|
||||||
|
mv "$root/opt/cross/$arch-linux-musl/$arch-linux-musl/lib64"/* "$root/opt/cross/$arch-linux-musl/$arch-linux-musl/lib"
|
||||||
|
fi
|
||||||
|
for t in ${targets}; do
|
||||||
|
ln -sf ../opt/cross/$arch-linux-musl/bin/$arch-linux-musl-$t $root/bin/$t
|
||||||
done
|
done
|
||||||
ln -sf gcc cc
|
ln -sf gcc ${root}/bin/cc
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
29
pkgs/dvtm
29
pkgs/dvtm
@ -1,28 +1,13 @@
|
|||||||
url=http://www.brain-dump.org/projects/dvtm/dvtm-0.10.tar.gz
|
build: ncurses
|
||||||
|
v="0.10"
|
||||||
fetch() {
|
url="http://www.brain-dump.org/projects/dvtm/dvtm-$v.tar.gz"
|
||||||
wget -c $url -O src/dvtm-0.10.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d dvtm-0.10 ] || tar -xzf dvtm-0.10.tar.gz
|
wget -c $url
|
||||||
cd -
|
[ -d dvtm-$v ] || tar -xzf dvtm-$v.tar.gz
|
||||||
}
|
cd dvtm-$v
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/dvtm-0.10
|
|
||||||
sed -i "s@PREFIX = /usr/local@PREFIX = /@" config.mk
|
sed -i "s@PREFIX = /usr/local@PREFIX = /@" config.mk
|
||||||
sed -i "s@INCS = -I. -I/usr/include -I/usr/local/include@INCS = -I. -I$libcroot/include -I$libcroot/include/ncursesw@" config.mk
|
sed -i "s@INCS = -I. -I/usr/include -I/usr/local/include@INCS = -I. -I$libcroot/include -I$libcroot/include/ncursesw@" config.mk
|
||||||
sed -i "s@LDFLAGS += -L/usr/lib -L/usr/local/lib ${LIBS}@LDFLAGS += -L$libcroot/lib ${LIBS} -static @" config.mk
|
sed -i "s@LDFLAGS += -L/usr/lib -L/usr/local/lib ${LIBS}@LDFLAGS += -L$libcroot/lib ${LIBS} -static @" config.mk
|
||||||
sed -i 's@CC = cc@CC = x86_64-linux-musl-gcc@' config.mk
|
sed -i "s@CC = cc@CC = $CC@" config.mk
|
||||||
make || return 1
|
make || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/dvtm-0.10
|
|
||||||
make DESTDIR="$root" install
|
make DESTDIR="$root" install
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
|
35
pkgs/dwm
35
pkgs/dwm
@ -1,28 +1,11 @@
|
|||||||
url=$mirror/dwm-git.tar.gz
|
build: tinyxlib
|
||||||
|
url="$mirror/dwm-git.tar.gz"
|
||||||
fetch() {
|
|
||||||
wget -c $url -O src/dwm-git.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
|
wget -c $url
|
||||||
[ -d dwm ] || tar xzf dwm-git.tar.gz
|
[ -d dwm ] || tar xzf dwm-git.tar.gz
|
||||||
cd -
|
sed -i "s@X11INC = /usr/X11R6/include@X11INC = $libcroot/include @" dwm/config.mk
|
||||||
}
|
sed -i "s@X11LIB = /usr/X11R6/lib@X11LIB = $libcroot/lib @" dwm/config.mk
|
||||||
|
sed -i 's@LDFLAGS = -s ${LIBS}@LDFLAGS = -s ${LIBS} -static @' dwm/config.mk
|
||||||
build() {
|
sed -i "s@CC = cc@CC = $CC@" dwm/config.mk
|
||||||
cd src/dwm
|
make -C dwm
|
||||||
sed -i "s@X11INC = /usr/X11R6/include@X11INC = $libcroot/include@" config.mk
|
make -C dwm DESTDIR=${root} install
|
||||||
sed -i "s@X11LIB = /usr/X11R6/lib@X11LIB = $libcroot/lib@" config.mk
|
|
||||||
sed -i 's@LDFLAGS = -s ${LIBS}@LDFLAGS = -s ${LIBS} -static@' config.mk
|
|
||||||
sed -i 's@CC = cc@CC = x86_64-linux-musl-gcc@' config.mk
|
|
||||||
make || return 1
|
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/dwm
|
|
||||||
cp dwm "$root/bin"
|
|
||||||
cp dwm.1 "$root/share/man/man1"
|
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
17
pkgs/fs
17
pkgs/fs
@ -1,11 +1,6 @@
|
|||||||
url=git://git.2f30.org/fs
|
build: prepare-root
|
||||||
|
url="git://git.2f30.org/fs"
|
||||||
fetch() {
|
cd src
|
||||||
[ -d src/fs ] || git clone $url src/fs
|
[ -d fs ] || git clone ${url}
|
||||||
}
|
cd fs
|
||||||
|
cp -r * "${root}/"
|
||||||
install() {
|
|
||||||
cd src/fs
|
|
||||||
cp -r * "$root/"
|
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
33
pkgs/jupp
33
pkgs/jupp
@ -1,26 +1,13 @@
|
|||||||
url=$mirror/joe-3.1jupp26.tgz
|
build: crossmusl
|
||||||
|
v="3.1jupp26"
|
||||||
fetch() {
|
url="$mirror/joe-$v.tgz"
|
||||||
wget -c $url -O src/joe-3.1jupp26.tgz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d jupp ] || tar xzf joe-3.1jupp26.tgz
|
wget -c $url
|
||||||
cd -
|
[ -d jupp ] || tar xzf joe-$v.tgz
|
||||||
}
|
cd jupp
|
||||||
|
CC=$CC sh configure --prefix="/" CFLAGS="-I$libcroot/include" \
|
||||||
build() {
|
|
||||||
cd src/jupp
|
|
||||||
make clean
|
|
||||||
CC=x86_64-linux-musl-gcc sh configure --prefix="/" CFLAGS="-I$libcroot/include" \
|
|
||||||
LDFLAGS="-L$libcroot/lib -static" || return 1
|
LDFLAGS="-L$libcroot/lib -static" || return 1
|
||||||
make || return 1
|
make || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/jupp
|
|
||||||
cp joe termidx "$root/bin"
|
cp joe termidx "$root/bin"
|
||||||
mkdir -p "$root/share/man/man1"
|
mkdir -p "$root/share/man/man1"
|
||||||
cp joe.1 "$root/share/man/man1"
|
cp joe.1 "$root/share/man/man1"
|
||||||
@ -29,13 +16,7 @@ install() {
|
|||||||
cp joerc jmacsrc "$root/etc/joe"
|
cp joerc jmacsrc "$root/etc/joe"
|
||||||
mkdir -p "$root/etc/joe/syntax"
|
mkdir -p "$root/etc/joe/syntax"
|
||||||
cp syntax/* "$root/etc/joe/syntax"
|
cp syntax/* "$root/etc/joe/syntax"
|
||||||
cd -
|
|
||||||
|
|
||||||
cd "$root/bin"
|
cd "$root/bin"
|
||||||
ln -sf joe jmacs
|
ln -sf joe jmacs
|
||||||
cd -
|
|
||||||
|
|
||||||
cd "$root/share/man/man1"
|
cd "$root/share/man/man1"
|
||||||
ln -sf joe.1 jmacs.1
|
ln -sf joe.1 jmacs.1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
30
pkgs/kernel
30
pkgs/kernel
@ -1,28 +1,14 @@
|
|||||||
url=$mirror/kernel.tar.gz
|
build: crossmusl
|
||||||
version=3.10.32
|
v="3.10.32"
|
||||||
|
url="$mirror/kernel.tar.gz"
|
||||||
fetch() {
|
|
||||||
wget -c $url -O src/kernel.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d linux-$version ] || tar xzf kernel.tar.gz
|
wget -c $url
|
||||||
cd -
|
[ -d linux-$v ] || tar xzf kernel.tar.gz
|
||||||
}
|
cd linux-$v
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/linux-$version
|
|
||||||
cp $top/stuff/kernel-config .config
|
cp $top/stuff/kernel-config .config
|
||||||
make menuconfig
|
#make menuconfig
|
||||||
|
make oldconfig
|
||||||
make bzImage -j$nprocs || return 1
|
make bzImage -j$nprocs || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/linux-$version
|
|
||||||
cp arch/x86/boot/bzImage "$root/boot"
|
cp arch/x86/boot/bzImage "$root/boot"
|
||||||
cp .config "$root/boot/bzImage.config"
|
cp .config "$root/boot/bzImage.config"
|
||||||
cp System.map "$root/boot"
|
cp System.map "$root/boot"
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
@ -1,19 +1,13 @@
|
|||||||
url=$mirror/kernel.tar.gz
|
build:
|
||||||
version=3.10.12
|
v="3.10.32"
|
||||||
|
url="$mirror/kernel.tar.gz"
|
||||||
fetch() {
|
|
||||||
wget -c $url -O src/kernel.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d linux-$version ] || tar xzf kernel.tar.gz
|
wget -c $url
|
||||||
cd -
|
[ -d linux-$v ] || tar xzf kernel.tar.gz
|
||||||
}
|
cd linux-$v
|
||||||
|
if test "$arch" = x86_64; then
|
||||||
install() {
|
A=$arch
|
||||||
cd src/linux-$version
|
else
|
||||||
make ARCH="$arch" INSTALL_HDR_PATH="$root" headers_install
|
A=x86
|
||||||
unlink "$root/include/include" 2>/dev/null # I don't know why it creates this bogus link
|
fi
|
||||||
cd -
|
make ARCH="$A" INSTALL_HDR_PATH="$root" headers_install
|
||||||
}
|
|
||||||
|
@ -1,24 +1,10 @@
|
|||||||
url=$mirror/libevent-2.0.21-stable.tar.gz
|
build: crossmusl
|
||||||
|
v="2.0.21"
|
||||||
fetch() {
|
url="$mirror/libevent-$v-stable.tar.gz"
|
||||||
wget -c $url -O src/libevent-2.0.21-stable.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d libevent-2.0.21-stable ] || tar xzf libevent-2.0.21-stable.tar.gz
|
wget -c $url
|
||||||
cd -
|
[ -d libevent-$v-stable ] || tar xzf libevent-$v-stable.tar.gz
|
||||||
}
|
cd libevent-$v-stable
|
||||||
|
CC="$CC -static" ./configure --prefix="$libcroot" --disable-shared --enable-static || return 1
|
||||||
build() {
|
|
||||||
cd src/libevent-2.0.21-stable
|
|
||||||
CC="x86_64-linux-musl-gcc -static" ./configure --prefix="$libcroot" --disable-shared --enable-static || return 1
|
|
||||||
make -j$nprocs || return 1
|
make -j$nprocs || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/libevent-2.0.21-stable
|
|
||||||
make install || return 1
|
make install || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
28
pkgs/make
28
pkgs/make
@ -1,24 +1,10 @@
|
|||||||
url=$mirror/make-3.82.tar.bz2
|
build: crossmusl
|
||||||
|
v="3.82"
|
||||||
fetch() {
|
url="$mirror/make-$v.tar.bz2"
|
||||||
wget -c $url -O src/make-3.82.tar.bz2
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d make-3.82 ] || tar xjf make-3.82.tar.bz2
|
wget -c $url
|
||||||
cd -
|
[ -d make-$v ] || tar xjf make-$v.tar.bz2
|
||||||
}
|
cd make-$v
|
||||||
|
CC="$CC -static" ./configure --prefix="$root" --disable-nls || return 1
|
||||||
build() {
|
|
||||||
cd src/make-3.82
|
|
||||||
CC="x86_64-linux-musl-gcc -static" ./configure --prefix="$root" --disable-nls || return 1
|
|
||||||
make -j$nprocs || return 1
|
make -j$nprocs || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/make-3.82
|
|
||||||
make install || return 1
|
make install || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
25
pkgs/man
25
pkgs/man
@ -1,23 +1,8 @@
|
|||||||
url=$mirror/man.tar.gz
|
build: crossmusl
|
||||||
|
url="$mirror/man.tar.gz"
|
||||||
fetch() {
|
|
||||||
wget -c $url -O src/man.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
|
wget -c $url
|
||||||
[ -d man ] || tar xzf man.tar.gz
|
[ -d man ] || tar xzf man.tar.gz
|
||||||
cd -
|
cd man
|
||||||
}
|
$CC -std=gnu99 -o man man.c -static || return 1
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/man
|
|
||||||
x86_64-linux-musl-gcc -std=gnu99 -o man man.c -static || return 1
|
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/man
|
|
||||||
cp man "$root/bin"
|
cp man "$root/bin"
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
34
pkgs/mksh
34
pkgs/mksh
@ -1,24 +1,14 @@
|
|||||||
url=$mirror/mksh-R47.tar.gz
|
build: crossmusl
|
||||||
|
v="R47"
|
||||||
fetch() {
|
url="$mirror/mksh-$v.tar.gz"
|
||||||
wget -c $url -O src/mksh-R47.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d mksh ] || tar xzf mksh-R47.tar.gz
|
wget -c $url
|
||||||
cd -
|
[ -d mksh ] || tar xzf mksh-$v.tar.gz
|
||||||
}
|
cd mksh
|
||||||
|
CC=$CC LDFLAGS=-static sh Build.sh || return 1
|
||||||
build() {
|
mkdir -p "$root/share/man/man1" "$root/share/man/cat1"
|
||||||
cd src/mksh
|
cp mksh "$root/bin"
|
||||||
CC=x86_64-linux-musl-gcc LDFLAGS=-static sh Build.sh || return 1
|
cp mksh.1 "$root/share/man/man1/mksh.1"
|
||||||
cd -
|
cp mksh.cat1 "$root/share/man/cat1/mksh.0"
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cp src/mksh/mksh "$root/bin"
|
|
||||||
cd "$root/bin"
|
cd "$root/bin"
|
||||||
ln -sf /bin/mksh sh
|
ln -sf mksh sh
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
28
pkgs/mpg123
28
pkgs/mpg123
@ -1,25 +1,11 @@
|
|||||||
url=$mirror/mpg123-1.18.0.tar.bz2
|
build: tinyalsa
|
||||||
|
v="1.18.0"
|
||||||
fetch() {
|
url="$mirror/mpg123-$v.tar.bz2"
|
||||||
wget -c $url -O src/mpg123-1.18.0.tar.bz2
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d mpg123-1.18.0 ] || tar xjf mpg123-1.18.0.tar.bz2
|
wget -c $url
|
||||||
cd -
|
[ -d mpg123-$v ] || tar xjf mpg123-$v.tar.bz2
|
||||||
}
|
cd mpg123-$v
|
||||||
|
CC=$CC ./configure --prefix="$root" --with-default-audio=tinyalsa \
|
||||||
build() {
|
|
||||||
cd src/mpg123-1.18.0
|
|
||||||
CC=x86_64-linux-musl-gcc ./configure --prefix="$root" --with-default-audio=tinyalsa \
|
|
||||||
CFLAGS="-I$libcroot/include" LDFLAGS="-L$libcroot/lib -static" || return 1
|
CFLAGS="-I$libcroot/include" LDFLAGS="-L$libcroot/lib -static" || return 1
|
||||||
make || return 1
|
make || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/mpg123-1.18.0
|
|
||||||
make install || return 1
|
make install || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
35
pkgs/ncurses
35
pkgs/ncurses
@ -1,32 +1,19 @@
|
|||||||
url=$mirror/ncurses.tar.gz
|
build: crossmusl
|
||||||
|
v="5.9"
|
||||||
fetch() {
|
url="$mirror/ncurses.tar.gz"
|
||||||
wget -c $url -O src/ncurses.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d ncurses-5.9 ] || tar xzf ncurses.tar.gz
|
wget -c $url
|
||||||
cd -
|
[ -d ncurses-$v ] || tar xzf ncurses.tar.gz
|
||||||
}
|
cd ncurses-$v
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/ncurses-5.9
|
|
||||||
cp $top/stuff/ncurses-fallback.c ncurses/fallback.c
|
cp $top/stuff/ncurses-fallback.c ncurses/fallback.c
|
||||||
CC="x86_64-linux-musl-gcc -static" ./configure --prefix="$libcroot" --without-tests \
|
CC="$CC -static" ./configure --prefix="${libcroot}" --without-tests \
|
||||||
--with-normal --enable-sigwinch --disable-nls --without-dlsym \
|
--with-normal --enable-sigwinch --disable-nls --without-dlsym \
|
||||||
--without-cxx-binding --enable-widec \
|
--without-cxx-binding --enable-widec \
|
||||||
--with-fallbacks="linux vt100 xterm xterm256-color" </dev/ptmx || return 1
|
--with-fallbacks="linux vt100 xterm xterm256-color" </dev/ptmx || return 1
|
||||||
make -j$nprocs || return 1
|
make -j$nprocs || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/ncurses-5.9
|
|
||||||
make install || return 1
|
make install || return 1
|
||||||
cd -
|
|
||||||
cd $root/lib
|
cd $root/lib
|
||||||
ln -s libncursesw_g.a libncurses_g.a
|
for lib in ncurses form panel menu ; do
|
||||||
ln -s libncursesw.a libncurses.a
|
ln -sf lib${lib}w_g.a lib${lib}_g.a
|
||||||
cd -
|
ln -sf lib${lib}w.a lib${lib}.a
|
||||||
}
|
done
|
||||||
|
17
pkgs/prepare-root
Normal file
17
pkgs/prepare-root
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
build:
|
||||||
|
mkdir -p ${root}
|
||||||
|
cd ${root}
|
||||||
|
mkdir -p boot bin dev emul etc home mnt opt proc root share src sys tmp var
|
||||||
|
mkdir -p dev/pts dev/shm opt/cross share/doc share/fonts/encodings share/man share/terminfo var/empty var/log var/run
|
||||||
|
rm -f include
|
||||||
|
ln -s opt/cross/${arch}-linux-musl/${arch}-linux-musl/include include
|
||||||
|
rm -f lib
|
||||||
|
ln -s opt/cross/${arch}-linux-musl/${arch}-linux-musl/lib lib
|
||||||
|
rm -f usr
|
||||||
|
ln -s . usr
|
||||||
|
rm -f sbin
|
||||||
|
ln -s bin sbin
|
||||||
|
rm -f var/tmp
|
||||||
|
ln -s ../tmp var/tmp
|
||||||
|
chmod 1777 tmp
|
||||||
|
chmod 700 root
|
28
pkgs/rsync
28
pkgs/rsync
@ -1,24 +1,10 @@
|
|||||||
url=$mirror/rsync-3.0.9.tar.gz
|
build: crossmusl
|
||||||
|
v="3.0.9"
|
||||||
fetch() {
|
url="$mirror/rsync-$v.tar.gz"
|
||||||
wget -c $url -O src/rsync-3.0.9.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d rsync-3.0.9 ] || tar xzf rsync-3.0.9.tar.gz
|
wget -c $url
|
||||||
cd -
|
[ -d rsync-$v ] || tar xzf rsync-$v.tar.gz
|
||||||
}
|
cd rsync-$v
|
||||||
|
CC=$CC ./configure --prefix="$root" LDFLAGS="-static" || return 1
|
||||||
build() {
|
|
||||||
cd src/rsync-3.0.9
|
|
||||||
CC=x86_64-linux-musl-gcc ./configure --prefix="$root" LDFLAGS="-static" || return 1
|
|
||||||
make -j$nprocs || return 1
|
make -j$nprocs || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/rsync-3.0.9
|
|
||||||
make install || return 1
|
make install || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
22
pkgs/sbase
22
pkgs/sbase
@ -1,18 +1,8 @@
|
|||||||
url=git://git.2f30.org/sbase
|
build: crossmusl
|
||||||
|
url="git://git.2f30.org/sbase"
|
||||||
fetch() {
|
cd src
|
||||||
[ -d src/sbase ] || git clone $url src/sbase
|
[ -d sbase ] || git clone $url
|
||||||
}
|
cd sbase
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/sbase
|
|
||||||
make clean
|
make clean
|
||||||
make -j$nprocs CC=x86_64-linux-musl-gcc LDFLAGS=-static || return 1
|
make -j$nprocs CC=$CC LDFLAGS=-static || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/sbase
|
|
||||||
make PREFIX="$root" install
|
make PREFIX="$root" install
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
27
pkgs/sdhcp
27
pkgs/sdhcp
@ -1,22 +1,11 @@
|
|||||||
url=$mirror/sdhcp.tar.gz
|
build: crossmusl
|
||||||
|
url="$mirror/sdhcp.tar.gz"
|
||||||
fetch() {
|
|
||||||
wget -c $url -O src/sdhcp.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
|
wget -c $url
|
||||||
[ -d sdhcp ] || tar xzf sdhcp.tar.gz
|
[ -d sdhcp ] || tar xzf sdhcp.tar.gz
|
||||||
cd -
|
cd sdhcp
|
||||||
}
|
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/sdhcp
|
|
||||||
make clean
|
make clean
|
||||||
make CC=x86_64-linux-musl-gcc LDFLAGS=-static || return 1
|
make CC=$CC LDFLAGS=-static || return 1
|
||||||
cd -
|
cp sdhcp "$root/bin" || return 1
|
||||||
}
|
mkdir -p "$root/share/man/man8"
|
||||||
|
cp sdhcp.8 "$root/share/man/man8/sdhcp.8"
|
||||||
install() {
|
|
||||||
cp src/sdhcp/sdhcp "$root/bin" || return 1
|
|
||||||
}
|
|
||||||
|
25
pkgs/sic
25
pkgs/sic
@ -1,22 +1,9 @@
|
|||||||
url=$mirror/sic.tar.gz
|
build: crossmusl
|
||||||
|
url="$mirror/sic.tar.gz"
|
||||||
fetch() {
|
|
||||||
wget -c $url -O src/sic.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
|
wget -c $url
|
||||||
[ -d sic ] || tar xzf sic.tar.gz
|
[ -d sic ] || tar xzf sic.tar.gz
|
||||||
cd -
|
cd sic
|
||||||
}
|
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/sic
|
|
||||||
make clean
|
make clean
|
||||||
make CC=x86_64-linux-musl-gcc LDFLAGS=-static || return 1
|
make CC=$CC LDFLAGS=-static || return 1
|
||||||
cd -
|
cp sic "$root/bin"
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cp src/sic/sic "$root/bin"
|
|
||||||
}
|
|
||||||
|
23
pkgs/sinit
23
pkgs/sinit
@ -1,21 +1,10 @@
|
|||||||
url=git://git.2f30.org/sinit
|
build: crossmusl
|
||||||
|
url="git://git.2f30.org/sinit"
|
||||||
fetch() {
|
cd src
|
||||||
[ -d src/sinit ] || git clone $url src/sinit
|
[ -d sinit ] || git clone $url
|
||||||
}
|
cd sinit
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/sinit
|
|
||||||
make clean
|
make clean
|
||||||
make -j$nprocs CC=x86_64-linux-musl-gcc LDFLAGS=-static || return 1
|
make -j$nprocs CC=$CC LDFLAGS=-static || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/sinit
|
|
||||||
make PREFIX="$root" install
|
make PREFIX="$root" install
|
||||||
cd -
|
|
||||||
cd "$root"
|
cd "$root"
|
||||||
ln -sf /bin/sinit init
|
ln -sf /bin/sinit init
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
22
pkgs/smdev
22
pkgs/smdev
@ -1,18 +1,8 @@
|
|||||||
url=git://git.2f30.org/smdev
|
build: crossmusl
|
||||||
|
url="git://git.2f30.org/smdev"
|
||||||
fetch() {
|
cd src
|
||||||
[ -d src/smdev ] || git clone $url src/smdev
|
[ -d smdev ] || git clone $url
|
||||||
}
|
cd smdev
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/smdev
|
|
||||||
make clean
|
make clean
|
||||||
make CC=x86_64-linux-musl-gcc LDFLAGS=-static || return 1
|
make CC=$CC LDFLAGS=-static || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/smdev
|
|
||||||
make PREFIX="$root" install || return 1
|
make PREFIX="$root" install || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
@ -1,16 +1,6 @@
|
|||||||
url=$mirror/syslinux.tar.gz
|
build: prepare-root
|
||||||
|
url="$mirror/syslinux.tar.gz"
|
||||||
fetch() {
|
|
||||||
# Fetch package
|
|
||||||
wget -c $url -O src/syslinux.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
|
wget -c $url
|
||||||
[ -d syslinux ] || tar xzf syslinux.tar.gz
|
[ -d syslinux ] || tar xzf syslinux.tar.gz
|
||||||
cd -
|
cp -r syslinux/* $root/
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cp -r src/syslinux/* $root/
|
|
||||||
}
|
|
||||||
|
@ -1,33 +1,17 @@
|
|||||||
url=$mirror/terminus-font-4.38.tar.gz
|
build: crossmusl
|
||||||
|
v="4.38"
|
||||||
fetch() {
|
url="$mirror/terminus-font-$v.tar.gz"
|
||||||
wget -c $url -O src/terminus-font-4.38.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d terminus-font-4.38 ] || tar xzf terminus-font-4.38.tar.gz
|
wget -c $url
|
||||||
cd -
|
[ -d terminus-font-$v ] || tar xzf terminus-font-$v.tar.gz
|
||||||
}
|
cd terminus-font-$v
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/terminus-font-4.38
|
|
||||||
sh configure --psfdir="$root/share/fonts/console" \
|
sh configure --psfdir="$root/share/fonts/console" \
|
||||||
--x11dir="$root/share/fonts/misc" || return 1
|
--x11dir="$root/share/fonts/misc" || return 1
|
||||||
make || return 1
|
make || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/terminus-font-4.38
|
|
||||||
make DESTDIR=/ install || return 1
|
make DESTDIR=/ install || return 1
|
||||||
cd -
|
|
||||||
cd "$root/share/fonts/misc"
|
cd "$root/share/fonts/misc"
|
||||||
gzip -d *.gz
|
gzip -d *.gz
|
||||||
mkfontscale
|
mkfontscale
|
||||||
mkfontdir
|
mkfontdir
|
||||||
cd -
|
|
||||||
cd "$root/share/fonts/console"
|
cd "$root/share/fonts/console"
|
||||||
gzip -d *.gz
|
gzip -d *.gz
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
@ -1,26 +1,11 @@
|
|||||||
url=$mirror/tinyalsa.tar.gz
|
build: crossmusl
|
||||||
|
url="$mirror/tinyalsa.tar.gz"
|
||||||
fetch() {
|
|
||||||
wget -c $url -O src/tinyalsa.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
|
wget -c $url
|
||||||
[ -d tinyalsa ] || tar xzf tinyalsa.tar.gz
|
[ -d tinyalsa ] || tar xzf tinyalsa.tar.gz
|
||||||
cd -
|
cd tinyalsa
|
||||||
}
|
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/tinyalsa
|
|
||||||
make clean 2>/dev/null
|
make clean 2>/dev/null
|
||||||
make CC=x86_64-linux-musl-gcc LDFLAGS="-static" || return 1
|
make CC=$CC LDFLAGS="-static" || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/tinyalsa
|
|
||||||
cp tinycap tinymix tinypcminfo tinyplay "$root/bin"
|
cp tinycap tinymix tinypcminfo tinyplay "$root/bin"
|
||||||
cp libtinyalsa.a "$root/lib"
|
cp libtinyalsa.a "$root/lib"
|
||||||
cp -r include/tinyalsa "$root/include"
|
cp -r include/tinyalsa "$root/include"
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
11
pkgs/tinywm
11
pkgs/tinywm
@ -1,11 +1,4 @@
|
|||||||
build() {
|
build: tinyxlib
|
||||||
cd stuff
|
|
||||||
x86_64-musl-linux-gcc -I"$libcroot/include" -L"$libcroot/lib" tinywm.c -o tinywm -lX11 -static || return 1
|
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd stuff
|
cd stuff
|
||||||
|
$CC -I"$libcroot/include" -L"$libcroot/lib" tinywm.c -o tinywm -lX11 -static || return 1
|
||||||
cp tinywm "$root/bin"
|
cp tinywm "$root/bin"
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
@ -1,25 +1,10 @@
|
|||||||
url=$mirror/tinyxlib.tar.gz
|
build: crossmusl
|
||||||
|
url="$mirror/tinyxlib.tar.gz"
|
||||||
fetch() {
|
|
||||||
wget -c $url -O src/tinyxlib.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
|
wget -c $url
|
||||||
[ -d tinyxlib ] || tar xzf tinyxlib.tar.gz
|
[ -d tinyxlib ] || tar xzf tinyxlib.tar.gz
|
||||||
cd -
|
cd tinyxlib
|
||||||
}
|
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/tinyxlib
|
|
||||||
make clean
|
make clean
|
||||||
make CC=x86_64-linux-musl-gcc BINDIR="/bin" LIBDIR="/lib" STATIC=1 \
|
make CC=$CC BINDIR="/bin" LIBDIR="/lib" STATIC=1 \
|
||||||
FONT_ENCODINGS_DIRECTORY="/usr/share/fonts/encodings/encodings.dir" || return 1
|
FONT_ENCODINGS_DIRECTORY="/share/fonts/encodings/encodings.dir" || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/tinyxlib
|
|
||||||
make DESTDIR="$libcroot" BINDIR="/bin" LIBDIR="/lib" STATIC=1 install || return 1
|
make DESTDIR="$libcroot" BINDIR="/bin" LIBDIR="/lib" STATIC=1 install || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
@ -1,30 +1,14 @@
|
|||||||
url=$mirror/tinyxserver.tar.gz
|
build: tinyxlib zlib
|
||||||
|
url="$mirror/tinyxserver.tar.gz"
|
||||||
fetch() {
|
|
||||||
wget -c $url -O src/tinyxserver.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
|
wget -c $url
|
||||||
[ -d tinyxserver ] || tar xzf tinyxserver.tar.gz
|
[ -d tinyxserver ] || tar xzf tinyxserver.tar.gz
|
||||||
cd -
|
cd tinyxserver
|
||||||
}
|
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/tinyxserver
|
|
||||||
make clean
|
make clean
|
||||||
make CC=x86_64-linux-musl-gcc EXTRA_CFLAGS="-D_XSERVER64=1 -I$libcroot/include" \
|
make CC=$CC EXTRA_CFLAGS="-D_XSERVER64=1 -I$libcroot/include" \
|
||||||
LDFLAGS="-static -L$libcroot/lib" \
|
LDFLAGS="-static -L$libcroot/lib" \
|
||||||
FONTDIR="/usr/share/fonts" || return 1
|
FONTDIR="/usr/share/fonts" || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/tinyxserver
|
|
||||||
make DESTDIR="$root" BINDIR="/bin" install || return 1
|
make DESTDIR="$root" BINDIR="/bin" install || return 1
|
||||||
cd -
|
|
||||||
cd "$root/usr/share/fonts/misc"
|
cd "$root/usr/share/fonts/misc"
|
||||||
mkfontscale
|
mkfontscale
|
||||||
mkfontdir
|
mkfontdir
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
28
pkgs/tmux
28
pkgs/tmux
@ -1,25 +1,11 @@
|
|||||||
url=$mirror/tmux-1.8.tar.gz
|
build: ncurses
|
||||||
|
v="1.8"
|
||||||
fetch() {
|
url="$mirror/tmux-$v.tar.gz"
|
||||||
wget -c $url -O src/tmux-1.8.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d tmux-1.8 ] || tar xzf tmux-1.8.tar.gz
|
wget -c $url
|
||||||
cd -
|
[ -d tmux-$v ] || tar xzf tmux-$v.tar.gz
|
||||||
}
|
cd tmux-$v
|
||||||
|
CC=$CC ./configure --prefix="$root" LDFLAGS=-static \
|
||||||
build() {
|
|
||||||
cd src/tmux-1.8
|
|
||||||
CC=x86_64-linux-musl-gcc ./configure --prefix="$root" LDFLAGS=-static \
|
|
||||||
CFLAGS="-I$libcroot/include/ncursesw" || return 1
|
CFLAGS="-I$libcroot/include/ncursesw" || return 1
|
||||||
make -j$nprocs || return 1
|
make -j$nprocs || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/tmux-1.8
|
|
||||||
make install || return 1
|
make install || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
22
pkgs/ubase
22
pkgs/ubase
@ -1,19 +1,9 @@
|
|||||||
url=git://git.2f30.org/ubase
|
build: crossmusl
|
||||||
|
url="git://git.2f30.org/ubase"
|
||||||
fetch() {
|
cd src
|
||||||
[ -d src/ubase ] || git clone $url src/ubase
|
[ -d ubase ] || git clone $url
|
||||||
}
|
cd ubase
|
||||||
|
|
||||||
build() {
|
|
||||||
cd src/ubase
|
|
||||||
make clean
|
make clean
|
||||||
make -j$nprocs CC=x86_64-linux-musl-gcc LDFLAGS=-static || return 1
|
make -j$nprocs CC=$CC LDFLAGS=-static || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/ubase
|
|
||||||
make PREFIX="$root" install || return 1
|
make PREFIX="$root" install || return 1
|
||||||
chmod 4755 "$root/bin/su"
|
chmod 4755 "$root/bin/su"
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
25
pkgs/uuterm
25
pkgs/uuterm
@ -1,21 +1,8 @@
|
|||||||
url=$mirror/uuterm.tar.gz
|
build: tinyxlib
|
||||||
|
url="$mirror/uuterm.tar.gz"
|
||||||
fetch() {
|
|
||||||
wget -c $url -O src/uuterm.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
|
wget -c $url
|
||||||
[ -d uuterm ] || tar xzf uuterm.tar.gz
|
[ -d uuterm ] || tar xzf uuterm.tar.gz
|
||||||
cd -
|
cd uuterm
|
||||||
}
|
make CC=$CC LDFLAGS_X11="-L$libcroot/lib -static" uuterm-x11 || return 1
|
||||||
|
cp uuterm-x11 "$root/bin"
|
||||||
build() {
|
|
||||||
cd src/uuterm
|
|
||||||
make CC=x86_64-linux-musl-gcc LDFLAGS_X11="-L$libcroot/lib -static" uuterm-x11 || return 1
|
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cp src/uuterm/uuterm-x11 "$root/bin"
|
|
||||||
}
|
|
||||||
|
28
pkgs/vim
28
pkgs/vim
@ -1,26 +1,12 @@
|
|||||||
url=http://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2
|
build: ncurses
|
||||||
|
v="7.4"
|
||||||
fetch() {
|
url="http://ftp.vim.org/pub/vim/unix/vim-$v.tar.bz2"
|
||||||
wget -c $url -O src/vim-7.4.tar.bz2
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d vim-7.4 ] || tar xjf vim-7.4.tar.bz2
|
wget -c $url
|
||||||
cd -
|
[ -d vim74 ] || tar xjf vim-$v.tar.bz2
|
||||||
}
|
cd vim74
|
||||||
|
CC=$CC CFLAGS="-I$libcroot/include" LDFLAGS="-L$libcroot/lib -static" ./configure --prefix=/ \
|
||||||
build() {
|
|
||||||
cd src/vim74
|
|
||||||
CC=x86_64-linux-musl-gcc CFLAGS="-I$libcroot/include" LDFLAGS="-L$libcroot/lib -static" ./configure --prefix=/ \
|
|
||||||
--enable-multibyte --disable-gui --with-x=no \
|
--enable-multibyte --disable-gui --with-x=no \
|
||||||
--disable-nls --disable-netbeans || return 1
|
--disable-nls --disable-netbeans || return 1
|
||||||
make -j$nprocs || return 1
|
make -j$nprocs || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/vim74
|
|
||||||
make DESTDIR="$root" install || return 1
|
make DESTDIR="$root" install || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
@ -1,11 +1,4 @@
|
|||||||
build() {
|
build: tinyxlib
|
||||||
cd stuff
|
|
||||||
x86_64-musl-linux-gcc -I"$libcroot/include" -L"$libcroot/lib" xsetroot.c -o xsetroot -lX11 -static || return 1
|
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd stuff
|
cd stuff
|
||||||
|
$CC -I"$libcroot/include" -L"$libcroot/lib" xsetroot.c -o xsetroot -lX11 -static || return 1
|
||||||
cp xsetroot "$root/bin"
|
cp xsetroot "$root/bin"
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
28
pkgs/zlib
28
pkgs/zlib
@ -1,24 +1,10 @@
|
|||||||
url=$mirror/zlib-1.2.8.tar.gz
|
build: crossmusl
|
||||||
|
v="1.2.8"
|
||||||
fetch() {
|
url="$mirror/zlib-$v.tar.gz"
|
||||||
wget -c $url -O src/zlib-1.2.8.tar.gz
|
|
||||||
}
|
|
||||||
|
|
||||||
unpack() {
|
|
||||||
cd src
|
cd src
|
||||||
[ -d zlib-1.2.8 ] || tar xzf zlib-1.2.8.tar.gz
|
wget -c $url
|
||||||
cd -
|
[ -d zlib-$v ] || tar xzf zlib-$v.tar.gz
|
||||||
}
|
cd zlib-$v
|
||||||
|
CC=$CC ./configure --prefix="$libcroot" --static || return 1
|
||||||
build() {
|
|
||||||
cd src/zlib-1.2.8
|
|
||||||
CC=x86_64-linux-musl-gcc ./configure --prefix="$libcroot" --static || return 1
|
|
||||||
make -j$nprocs || return 1
|
make -j$nprocs || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
cd src/zlib-1.2.8
|
|
||||||
make install || return 1
|
make install || return 1
|
||||||
cd -
|
|
||||||
}
|
|
||||||
|
15
prepare-env
15
prepare-env
@ -1,15 +0,0 @@
|
|||||||
top=$(pwd)
|
|
||||||
root=$top/root
|
|
||||||
libcroot=$root/opt/cross/x86_64-linux-musl/x86_64-linux-musl
|
|
||||||
nprocs=4
|
|
||||||
arch=x86_64
|
|
||||||
version=0.0
|
|
||||||
mirror=http://dl.2f30.org/morpheus-pkgs/$arch/$version
|
|
||||||
export top root libcroot nprocs arch version mirror
|
|
||||||
|
|
||||||
optldflags="-s -Wl,--gc-sections -Wl,-z,relro,-z,now"
|
|
||||||
optcflags="-fdata-sections -ffunction-sections -Os -g0 -fno-unwind-tables -fno-asynchronous-unwind-tables -Wa,--noexecstack"
|
|
||||||
export optldflags optcflags
|
|
||||||
|
|
||||||
PATH=$root/opt/cross/x86_64-linux-musl/bin:$top/stuff/bin:$PATH
|
|
||||||
export PATH
|
|
17
prepare-root
17
prepare-root
@ -1,17 +0,0 @@
|
|||||||
mkdir -p $root
|
|
||||||
cd $root
|
|
||||||
mkdir -p boot bin dev emul etc home mnt opt proc root share src sys tmp var
|
|
||||||
mkdir -p dev/pts dev/shm opt/cross share/doc share/fonts/encodings share/man share/terminfo var/empty var/log var/run
|
|
||||||
rm -f include
|
|
||||||
ln -s opt/cross/x86_64-linux-musl/x86_64-linux-musl/include include
|
|
||||||
rm -f lib
|
|
||||||
ln -s opt/cross/x86_64-linux-musl/x86_64-linux-musl/lib lib
|
|
||||||
rm -f usr
|
|
||||||
ln -s . usr
|
|
||||||
rm -f sbin
|
|
||||||
ln -s bin sbin
|
|
||||||
rm -f var/tmp
|
|
||||||
ln -s ../tmp var/tmp
|
|
||||||
chmod 1777 tmp
|
|
||||||
chmod 700 root
|
|
||||||
cd -
|
|
42
stage0
42
stage0
@ -1,42 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This is the stage0 script, it prepares a basic usable system
|
|
||||||
# in $root.
|
|
||||||
|
|
||||||
rm -rf root morpheus.log
|
|
||||||
|
|
||||||
packages="crossmusl
|
|
||||||
ncurses
|
|
||||||
libevent
|
|
||||||
zlib
|
|
||||||
tinyxlib
|
|
||||||
tinyalsa
|
|
||||||
kernel
|
|
||||||
kernel-headers
|
|
||||||
busybox
|
|
||||||
fs
|
|
||||||
make
|
|
||||||
man
|
|
||||||
mksh
|
|
||||||
rsync
|
|
||||||
sbase
|
|
||||||
sdhcp
|
|
||||||
sic
|
|
||||||
sinit
|
|
||||||
smdev
|
|
||||||
syslinux
|
|
||||||
tinyxserver
|
|
||||||
tmux
|
|
||||||
ubase
|
|
||||||
uuterm
|
|
||||||
tinywm
|
|
||||||
xsetroot
|
|
||||||
terminus
|
|
||||||
dwm
|
|
||||||
mpg123
|
|
||||||
jupp
|
|
||||||
vim
|
|
||||||
dvtm
|
|
||||||
abduco"
|
|
||||||
|
|
||||||
./pkgbuild $packages
|
|
4
stuff/cmp-pkgs
Executable file
4
stuff/cmp-pkgs
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
val=`cmp -s .state/$1 pkgs/$1`
|
||||||
|
return $val
|
@ -2,12 +2,15 @@
|
|||||||
#
|
#
|
||||||
# Ensure you've loaded the loop module with max_part=15
|
# Ensure you've loaded the loop module with max_part=15
|
||||||
|
|
||||||
|
if test "$2" = ""; then
|
||||||
|
echo "Usage: $0 <rootdir> <imgfile>"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
root=$1
|
||||||
|
img=$2
|
||||||
|
|
||||||
set -e -x
|
set -e -x
|
||||||
|
|
||||||
. ./prepare-env
|
|
||||||
|
|
||||||
img=morpheus-$arch-$version.img
|
|
||||||
|
|
||||||
dd if=/dev/zero of=$img bs=512M count=8
|
dd if=/dev/zero of=$img bs=512M count=8
|
||||||
(
|
(
|
||||||
cat << EOF
|
cat << EOF
|
Loading…
Reference in New Issue
Block a user