System call sys_getchar () was improved; stdin is correspond with 0. fd and stdout...
[ZeXOS.git] / build.sh
blob7e3c621d28d967a82d9bcd1d674fbe354f179d82
1 #!/bin/bash
3 VERSION="0.6.4"
4 ARCHITECTURE="i386"
7 if [ -z $ARCH ]; then
8 ARCH=$ARCHITECTURE
9 fi
11 export ARCH
13 cd `dirname $0`
15 if [ "$1" = "clean" ] ; then
16 echo "Cleaning source from object files .."
17 make clean -C kernel &&
18 make clean -C libc &&
19 make clean -C libx &&
20 make clean -C libm &&
21 make clean -C libipc &&
22 make clean -C libpthread &&
23 rm -f tools/ips2ip/ips2ip ;
24 rm -f iso/boot/kernel.bin ;
25 rm -f iso/libc.a ;
26 rm -f zexos-$VERSION-*.iso ;
27 rm -f zexos-$VERSION-$ARCH.img ;
28 echo "OK"
29 exit 1
32 if [ "$1" = "qemu" ] ; then
33 make -C kernel
35 if [ "$ARCH" = "arm" ] ; then
36 qemu-system-arm -nographic -kernel kernel/kernel.bin
37 exit 1
40 if [ "$ARCH" = "ppc" ] ; then
41 qemu-system-powerpc -kernel kernel/kernel.bin
42 exit 1
43 else
44 qemu -cdrom zexos-$VERSION-$ARCH.iso
45 exit 1
48 exit 0
51 if [ -e kernel/.config ]
52 then
53 echo "Checking for .config: OK"
54 else
55 echo "Using default kernel config - defconfig .."
56 cp kernel/defconfig kernel/.config
58 if [ -e kernel/.config ] ; then
59 echo " :)"
60 else
61 echo "Please check your .config file in kernel directory and try it again !"
62 exit 0
66 make -C kernel
67 if [ "$ARCH" = "i386" ] ; then
68 make -C libc
69 make -C libx
70 make -C libm
71 make -C libipc
72 make -C libpthread
75 if [ -e kernel/kernel.bin ]
76 then
77 echo "Source was compiled succefully"
80 if [ "$1" = "iso" ] ; then
81 cp kernel/kernel.bin iso/boot/kernel.bin &&
82 cp libc/libc.a iso/libc.a &&
83 cp README iso/README &&
84 mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o zexos-$VERSION-$ARCH.iso iso &&
85 echo iso created OK && exit 0
88 if [ "$1" = "img" ] || [ "$1" = "floppy" ] ; then
89 wget -c http://zexos.sf.net/zexos.img && \
90 mkdir zexos ; \
91 mount -oloop zexos.img zexos && \
93 if [ -e zexos-$VERSION-$ARCH.iso ] ; then
94 echo " :)"
95 else
96 echo "I have to make .iso image first"
97 cp kernel/kernel.bin iso/boot/kernel.bin &&
98 cp libc/libc.a iso/libc.a &&
99 cp README iso/README &&
100 mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o zexos-$VERSION-$ARCH.iso iso
103 mkdir zexosiso ; \
104 mount -oloop zexos-$VERSION-$ARCH.iso zexosiso && \
105 cp zexosiso/boot/kernel.bin zexos/boot/ && \
106 umount zexosiso && \
107 umount zexos && \
108 rmdir zexosiso && \
109 rmdir zexos && \
110 mv zexos.img zexos-$VERSION-$ARCH.img && \
111 rm zexos-$VERSION-$ARCH.iso && \
112 echo "OK - Image 'zexos-$VERSION-$ARCH.img' was created succefully."
113 echo "Please wait until installer copy image to floppy ..."
114 if [ "$1" = "floppy" ] ; then
115 dd if=zexos-$VERSION-$ARCH.img of=/dev/fd0 bs=1440k && \
116 echo "Installation on floppy is done, enjoy !"