slitaz-arm view sat @ rev 4

Add a small make file
author Christophe Lincoln <pankso@slitaz.org>
date Thu May 24 22:32:45 2012 +0200 (2012-05-24)
parents
children e885f2eb3b08
line source
1 #!/bin/sh
2 #
3 # Sat - SliTaz ARM Tool
4 #
5 # Copyright (C) 2012 SliTaz GNU/Linux - BSD License
6 # Author: Christophe Lincoln <pankso@slitaz.org>
7 #
8 . /lib/libtaz.sh
10 # Internal variables.
11 : ${work=$(pwd)}
12 packages=$work/packages
13 distro=$work/distro
15 # Help and usage
16 usage() {
17 cat << EOT
19 $(boldify "Usage:") $(basename $0) [command|--options]
21 $(boldify "Commands:")
22 gen Generate a disto cpio/gzip initramfs
23 clean Clean up the work directory
24 vdisk Create a virtual disk to be used by Qemu
25 emu Emulate the distro with qemu-system-arm
27 $(boldify "Options:")
28 --kmap Dump current keymap and include it in distro
29 --spk Include Spk package manager in the distro
30 --work= Path to work dir with packages and rootfs
31 --size= Specify optional vdisk size (default 20Mb)
33 EOT
34 }
36 #
37 # Commands
38 #
40 case "$1" in
41 gen)
42 time=$(date +%s)
43 check_root
44 rm -rf $distro distro-arm.gz
45 mkdir -p $distro
47 # Packages. Dep install it not well handled by tazpkg/spk actually
48 # so simply install all packages and dont resolv deps or use equiv.
49 cd $packages
50 for pkg in $packages/*.tazpkg
51 do
52 pkgdir=$(basename $pkg .tazpkg)
53 echo -n "Installing: $(basename $pkg)"
54 tazpkg extract $pkg >/dev/null
55 . $pkgdir/receipt
56 mkdir -p $distro/var/lib/tazpkg/installed/$PACKAGE
57 cp $pkgdir/receipt $pkgdir/files.list \
58 $distro/var/lib/tazpkg/installed/$PACKAGE
59 cp -a $pkgdir/fs/* $distro && rm -rf $pkgdir
60 status
61 done
63 # Install spk if requested. Spk multiarch support must be tested
64 if [ "$spk" ]; then
65 hg=http://hg.slitaz.org
66 echo -n "Installing: spk ($hg)"
67 cd $work
68 [ -d "spk" ] || hg clone $hg/spk >/dev/null
69 cd spk
70 [ "$noup" ] || hg pull -u >/dev/null
71 make DESTDIR=$distro install >/dev/null
72 status
73 fi
75 # Move kernel outside the distro
76 cd $work && mv -f $distro/boot/linux-* linux-arm
78 # Get a default kmap
79 if [ "$kmap" ]; then
80 echo -n "Dumping current keymap..."
81 mkdir $distro/usr/share/kmap
82 /bin/busybox dumpkmap > $distro/usr/share/kmap/default.kmap
83 status
84 fi
86 # Fixes: udev not yet cross-compiled
87 echo -n "Applying SliTaz ARM fixes..."
88 sed -i s"/UDEV=.*/UDEV=\"\"/" $distro/etc/rcS.conf
89 status
91 # SLITAZ_ARCH
92 echo -n "Setting SliTaz arch to: arm"
93 sed -i s"/SLITAZ_ARCH=.*/SLITAZ_ARCH=\"arm\"/" \
94 $distro/etc/slitaz/slitaz.conf
95 status
97 # Mirror --> http://mirror.slitaz.org/packages/cooking/arm/
98 echo 'http://cook.slitaz.org/cross/arm/packages/' \
99 > $distro/var/lib/tazpkg/mirror
100 #wget -q http://cook.slitaz.org/cross/arm/packages/packages.desc \
101 #-O $distro/var/lib/tazpkg/packages.desc
103 # /usr/cross/arm/lib: Must be FIXED when cross-compiling
104 # Only used by Busybox before LD_LIBRARY_PATH is set.
105 mkdir -p $distro/usr/cross/arm/lib
106 cd $distro/usr/cross/arm/lib
107 ln -s /lib/libc-2.13.so libc.so.6
108 ln -s /lib/ld-2.13.so ld-linux.so.3
109 cd $distro
111 # /init
112 rm init && ln -s /bin/busybox init
114 # Update modules.dep
115 depmod -b . 3.2.14-slitaz
117 # Custom rootfs
118 if [ -d "$work/rootfs" ]; then
119 echo -n "Copying custom ARM rootfs..."
120 cp -r $work/rootfs/* $distro
121 status
122 fi
124 # Rootfs cpio/gzip
125 echo -n "Compressing initramfs: cpio/gzip"
126 find . -print | cpio -o -H newc | gzip -9 > ../distro-arm.gz
127 status
128 time=$(($(date +%s) - $time))
129 echo "Build time : ${time}s"
130 echo -n "Distro size : "
131 cd $work && du -sh distro-arm.gz | awk '{print $1}';;
132 clean)
133 check_root
134 echo -n "Cleaning: $work"
135 rm -rf distro linux-arm distro-arm.gz spk
136 status ;;
137 vdisk)
138 # Let use and HD in Qemu to store files|packages|whatever
139 vdisk="vdisk.img"
140 : ${size=20}
141 cd $work
142 dd if=/dev/zero of=$vdisk bs=1M count=$size
143 mkfs.ext4 -q -T ext4 -L "SliTaz" -F $vdisk ;;
144 emu)
145 : ${mem=256}
146 cd $work
147 [ -f "vdisk.img" ] && opts="-hda vdisk.img"
148 qemu-system-arm -m $mem $opts \
149 -M versatilepb -cpu arm1176 \
150 -kernel linux-arm \
151 -initrd distro-arm.gz ;;
152 *) usage ;;
153 esac
154 exit 0