Small improvements in dhcp.c code + cleanup
[ZeXOS.git] / build.sh
blob0d1cb36e70dfbb18fdd6dd109f64b48e2928d344
1 #!/bin/bash
3 VERSION="0.6.7"
4 ARCHITECTURE="i386"
6 APPPREFIX="/usr/bin"
8 if [ -z $ARCH ]; then
9 ARCH=$ARCHITECTURE
12 export ARCH
14 cd `dirname $0`
16 if ! [ -e $APPPREFIX/make ] ; then
17 echo "Please install package: make"
19 if ! [ -e $APPPREFIX/gcc ] ; then
20 echo "Please install package: gcc"
22 if ! [ -e $APPPREFIX/nasm ] ; then
23 echo "Please install package: nasm"
25 if ! [ -e $APPPREFIX/mkisofs ] ; then
26 echo "Please install package: cdrtools (mkisofs)"
29 if [ "$1" = "clean" ] ; then
30 echo "Cleaning source from object files .."
31 make clean -C libc &&
32 make clean -C libx &&
33 make clean -C libm &&
34 make clean -C libipc &&
35 make clean -C libpthread &&
36 make clean -C libsnd && \
37 rm -f tools/ips2ip/ips2ip ; \
38 rm -f iso/boot/kernel.bin ; \
39 rm -f iso/README ; \
40 rm -f zexos-$VERSION-*.iso ; \
41 rm -f zexos-$VERSION-$ARCH.img ; \
42 make clean -C kernel ; \
43 echo "OK"
44 exit 1
47 if [ "$1" = "qemu" ] ; then
48 make -C kernel
50 if [ "$ARCH" = "arm" ] ; then
51 qemu-system-arm -kernel kernel/kernel.bin -serial stdio
52 exit 1
55 if [ "$ARCH" = "ppc" ] ; then
56 qemu-system-powerpc -kernel kernel/kernel.bin
57 exit 1
58 else
59 qemu -cdrom zexos-$VERSION-$ARCH.iso
60 exit 1
63 exit 0
66 if [ -e kernel/.config ]
67 then
68 echo "Checking for .config: OK"
69 else
70 echo "Using default kernel config - defconfig .."
71 cp kernel/defconfig kernel/.config
73 if [ -e kernel/.config ] ; then
74 echo " :)"
75 else
76 echo "Please check your .config file in kernel directory and try it again !"
77 exit 0
81 make -C kernel
82 if [ "$ARCH" = "i386" ] ; then
83 make -C libc
84 make -C libx
85 make -C libm
86 make -C libipc
87 make -C libpthread
88 make -C libsnd
91 if [ -e kernel/kernel.bin ] ; then
92 echo "Source was compiled succefully"
95 if [ "$1" = "iso" ] ; then
96 if [ -n "$2" ] ; then
97 make -C apps/$2 iso
100 cp kernel/kernel.bin iso/boot/kernel.bin &&
101 cp README iso/README &&
102 mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 50 -boot-info-table -o zexos-$VERSION-$ARCH.iso iso &&
103 echo iso created OK && exit 0
106 if [ "$1" = "img" ] || [ "$1" = "floppy" ] ; then
107 wget -c http://zexos.sf.net/zexos.img && \
108 mkdir zexos ; \
109 mount -oloop zexos.img zexos && \
111 if [ -e zexos-$VERSION-$ARCH.iso ] ; then
112 echo " :)"
113 else
114 echo "I have to make .iso image first"
115 cp kernel/kernel.bin iso/boot/kernel.bin &&
116 cp libc/libc.a iso/libc.a &&
117 cp README iso/README &&
118 mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o zexos-$VERSION-$ARCH.iso iso
121 mkdir zexosiso ; \
122 mount -oloop zexos-$VERSION-$ARCH.iso zexosiso && \
123 cp zexosiso/boot/kernel.bin zexos/boot/ && \
124 umount zexosiso && \
125 umount zexos && \
126 rmdir zexosiso && \
127 rmdir zexos && \
128 mv zexos.img zexos-$VERSION-$ARCH.img && \
129 rm zexos-$VERSION-$ARCH.iso && \
130 echo "OK - Image 'zexos-$VERSION-$ARCH.img' was created succefully."
131 echo "Please wait until installer copy image to floppy ..."
132 if [ "$1" = "floppy" ] ; then
133 dd if=zexos-$VERSION-$ARCH.img of=/dev/fd0 bs=1440k && \
134 echo "Installation on floppy is done, enjoy !"