annotate kernel/linux/linux.sh @ 1148:d7b018839eaa

kernel/linux: initial import, closes #1177
author David Demelier <markand@malikania.fr>
date Wed, 25 Sep 2019 21:05:00 +0200
parents
children 6710613b88b9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1148
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #!/bin/sh
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 #
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 # Copyright (c) 2019 David Demelier <markand@malikania.fr>
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 #
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 # Permission to use, copy, modify, and/or distribute this software for any
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # purpose with or without fee is hereby granted, provided that the above
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # copyright notice and this permission notice appear in all copies.
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 #
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 #
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
17
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 #
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 # User notes
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 # ----------
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 # The Linux kernel is built without modifications as if `make defconfig` was
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 # used.
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 #
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 # You can provide your own kernel configuration with the CONFIG option which
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 # should point to your custom file.
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 #
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 PKGNAME=linux
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 PKGVERSION=5.3.1
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 PKGREVISION=1
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 PKGLICENSE="GPLv20"
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 PKGSUMMARY="the Linux kernel"
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 PKGDOWNLOAD="https://cdn.kernel.org/pub/linux/kernel/v5.x/$PKGNAME-$PKGVERSION.tar.xz"
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 PKGDEPENDS="bison:build elfutils:build flex:build gcc:build"
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 PKGOPTIONS="CONFIG"
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 : ${CHOST:=$(uname -m)-linux-musl}
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 : ${CBUILD:=$(uname -m)-linux-musl}
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 : ${CC:=gcc}
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 : ${CFLAGS:=-O2}
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 : ${LDFLAGS:=}
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 : ${LIBS:=}
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 : ${CONFIG:=} # Note: path to kernel config file.
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 build()
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 {
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 rm -rf $PKGNAME-$PKGVERSION
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 tar xvf $PKGNAME-$PKGVERSION.tar.xz
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 cd $PKGNAME-$PKGVERSION
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 if [ -n "$CONFIG" ]; then
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 cp $CONFIG .config
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 else
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 # TODO: add architecture support.
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 cp ../config-amd64 .config
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 fi
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
58
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 mkdir -p $DESTDIR/boot
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 mkdir -p $DESTDIR/lib
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 make \
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 CC="$CC" \
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 HOSTCC="$CC" \
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 CFLAGS="$CFLAGS" \
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 INSTALL_PATH=$DESTDIR/boot \
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 INSTALL_MOD_PATH=$DESTDIR \
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 all install modules_install
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 cd ..
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 rm -rf $PKGNAME-$PKGVERSION
d7b018839eaa kernel/linux: initial import, closes #1177
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 }