#! /bin/sh

##  Kernel-mode libcaca compilation script -- Sam Hocevar <sam@zoy.org>
##  $Id$

set -x
set -e

CFLAGS="-fno-builtin -O2 -I. -I.. -Wall"
CPPFLAGS="-D__KERNEL__ -nostdinc -include kernel/kernel.h"
LDFLAGS="-nostdlib -Wl,-N -Wl,-Ttext -Wl,100000"

./configure --disable-slang --disable-ncurses --disable-win32 \
            --disable-conio --disable-x11 --disable-gl --disable-network \
            --enable-vga --disable-imlib2 --disable-doc \
            --host i386

# We need this.
make clean

cd cucul && make && cd ..
cd caca && make && cd ..

cd src && make cacademo.o && cd ..

cd kernel &&
    gcc $CFLAGS -c multiboot.S -o multiboot.o &&
    gcc $CFLAGS $CPPFLAGS -c kernel.c -o kernel.o &&
cd ..

gcc $LDFLAGS -o src/cacademo kernel/multiboot.o kernel/kernel.o src/cacademo.o caca/.libs/libcaca.a cucul/.libs/libcucul.a

objcopy -O binary src/cacademo cacademo.boot

# For further development: create floppy images using the kernel
gcc -traditional -c -o bootsect.o /usr/src/linux/arch/i386/boot/bootsect.S
ld -Ttext 0x0 -s --oformat binary bootsect.o -o cacademo.img