diff --git a/mkfile b/mkfile index b465d49..66010c5 100644 --- a/mkfile +++ b/mkfile @@ -12,13 +12,29 @@ all world:VQ: $pkgs clean:V: rm -f .state/* pkgs.mk +fetchpkgs = ${pkgs:%=%-fetch} + +fetch-all fetch-world:VQ: ${fetchpkgs} + # generate a pkgs.mk file with the tarkets for all packages in pkgs/ `{ mkdir -p src } `{ 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 -e '\tcd $top && cp pkgs/$target .state/$target\n' >> ../pkgs.mk; done } +`{ cd pkgs && for pkg in *; do cat $pkg ../stuff/fetch-pkg.mk |\ + sed -e "s,^build:,$pkg:QP./stuff/cmp-pkgs: $pkg-fetch pkgs/$pkg," |\ + sed -e "s,^fetch-target:,$pkg-fetch:," |\ + sed -e "s,^v=,${pkg}_v=," |\ + sed -e "s,\$v,\${${pkg}_v}," |\ + sed -e "s,\$url,\${${pkg}_url}," |\ + sed -e "s, url=, ${pkg}_url=," |\ + sed -e "s,\$git,\${${pkg}_git}," |\ + sed -e "s,^git=,${pkg}_git=," |\ + sed -e "s,^url=,${pkg}_url=," >> ../pkgs.mk; done } /dev/null make CC=$CC || return 1 cp tinycap tinymix tinypcminfo tinyplay "$root/bin" diff --git a/pkgs/tinyxlib b/pkgs/tinyxlib index 0862302..7102653 100644 --- a/pkgs/tinyxlib +++ b/pkgs/tinyxlib @@ -1,9 +1,7 @@ +url="$mirror/tinyxlib.tar.gz" + build: crossmusl - url="$mirror/tinyxlib.tar.gz" - cd src - wget -c $url - [ -d tinyxlib ] || tar xzf tinyxlib.tar.gz - cd tinyxlib + cd src/tinyxlib make clean make CC=$CC BINDIR="/bin" LIBDIR="/lib" STATIC=1 \ FONT_ENCODINGS_DIRECTORY="/share/fonts/encodings/encodings.dir" || return 1 diff --git a/pkgs/tinyxserver b/pkgs/tinyxserver index 1f08a98..1459fa8 100644 --- a/pkgs/tinyxserver +++ b/pkgs/tinyxserver @@ -1,9 +1,7 @@ +url="$mirror/tinyxserver.tar.gz" + build: tinyxlib zlib - url="$mirror/tinyxserver.tar.gz" - cd src - wget -c $url - [ -d tinyxserver ] || tar xzf tinyxserver.tar.gz - cd tinyxserver + cd src/tinyxserver make clean make CC=$CC EXTRA_CFLAGS="-D_XSERVER64=1 $CFLAGS" \ FONTDIR="/usr/share/fonts" || return 1 diff --git a/pkgs/tmux b/pkgs/tmux index b08e8c5..57fd6cb 100644 --- a/pkgs/tmux +++ b/pkgs/tmux @@ -1,10 +1,8 @@ +v="1.8" +url="$mirror/tmux-$v.tar.gz" + build: ncurses libevent - v="1.8" - url="$mirror/tmux-$v.tar.gz" - cd src - wget -c $url - [ -d tmux-$v ] || tar xzf tmux-$v.tar.gz - cd tmux-$v + cd src/tmux-$v CC=$CC ./configure --prefix="$root" \ CFLAGS="-I$libcroot/include/ncursesw $CFLAGS" || return 1 make -j$nprocs || return 1 diff --git a/pkgs/ubase b/pkgs/ubase index d7f764f..f4c5a35 100644 --- a/pkgs/ubase +++ b/pkgs/ubase @@ -1,8 +1,7 @@ +git="git://git.2f30.org/ubase" + build: crossmusl - url="git://git.2f30.org/ubase" - cd src - [ -d ubase ] || git clone $url - cd ubase + cd src/ubase make clean make -j$nprocs CC=$CC LDFLAGS="$LDFLAGS" || return 1 make PREFIX="$root" install || return 1 diff --git a/pkgs/uuterm b/pkgs/uuterm index 699230b..f4ffd7d 100644 --- a/pkgs/uuterm +++ b/pkgs/uuterm @@ -1,9 +1,7 @@ +url="$mirror/uuterm.tar.gz" + build: tinyxlib - url="$mirror/uuterm.tar.gz" - cd src - wget -c $url - [ -d uuterm ] || tar xzf uuterm.tar.gz - cd uuterm + cd src/uuterm make clean make CC=$CC LDFLAGS_X11="$LDFLAGS" uuterm-x11 || return 1 cp uuterm-x11 "$root/bin" diff --git a/pkgs/vim b/pkgs/vim index e1467d1..68603d3 100644 --- a/pkgs/vim +++ b/pkgs/vim @@ -1,10 +1,8 @@ +v="7.4" +url="http://ftp.vim.org/pub/vim/unix/vim-$v.tar.bz2" + build: ncurses - v="7.4" - url="http://ftp.vim.org/pub/vim/unix/vim-$v.tar.bz2" - cd src - wget -c $url - [ -d vim74 ] || tar xjf vim-$v.tar.bz2 - cd vim74 + cd src/vim74 make clean CC=$CC ./configure --prefix=/ \ --enable-multibyte --disable-gui --with-x=no \ diff --git a/pkgs/zlib b/pkgs/zlib index 49df617..68e3dd8 100644 --- a/pkgs/zlib +++ b/pkgs/zlib @@ -1,10 +1,8 @@ +v="1.2.8" +url="$mirror/zlib-$v.tar.gz" + build: crossmusl - v="1.2.8" - url="$mirror/zlib-$v.tar.gz" - cd src - wget -c $url - [ -d zlib-$v ] || tar xzf zlib-$v.tar.gz - cd zlib-$v + cd src/zlib-$v CC=$CC ./configure --prefix="$libcroot" --static || return 1 make -j$nprocs || return 1 make install || return 1 diff --git a/stuff/cmp-fetch b/stuff/cmp-fetch new file mode 100755 index 0000000..b87d905 --- /dev/null +++ b/stuff/cmp-fetch @@ -0,0 +1,4 @@ +#!/bin/sh + +pkg=`echo $1 | sed -e 's,-fetch$,,'` +cmp -s .state/$1 pkgs/$pkg diff --git a/stuff/fetch-pkg.mk b/stuff/fetch-pkg.mk new file mode 100644 index 0000000..eb6df6b --- /dev/null +++ b/stuff/fetch-pkg.mk @@ -0,0 +1,26 @@ + cp $top/pkgs/$target $top/.state/$target + +fetch-target:QP./stuff/cmp-fetch: . + cd src + pkg=`echo $target | sed -e 's,-fetch$,,'` + eval url=$url + if test "$url" = ""; then + if test "$git" = ""; then + echo $target: nothing to download + else + [ -d $pkg ] || git clone $git $pkg + fi + else + wget -c $url + file=`basename $url` + type=`file -b $file | cut -d ' ' -f 1` + if test "$type" = "gzip"; then + tar -xzf $file + elif test "$type" = "bzip2"; then + tar -xjf $file + elif test "$type" = "XZ"; then + tar -xJf $file + fi + fi + cp $top/pkgs/$pkg $top/.state/$target +