A configure script has been created. Right now it simply selects the platform to target.

Use any one of these:

./configure x86_64
./configure x86

While in the build directory.

Signed-off-by: The XOmB Overlord <overlord@xomb.net>
This commit is contained in:
wilkie
2009-03-23 12:05:12 +08:00
committed by The XOmB Overlord
parent 54614b27f6
commit 36543aa80f
4 changed files with 94 additions and 0 deletions

1
.gitignore vendored
View File

@@ -4,4 +4,5 @@ build/dsss.last
build/xomb.dump build/xomb.dump
build/xomb.iso build/xomb.iso
build/iso/boot/xomb build/iso/boot/xomb
build/dsss.conf
*.swp *.swp

22
build/configure.sh Executable file
View File

@@ -0,0 +1,22 @@
#!/bin/sh
render_usage()
{
echo "USAGE: ./configure --target=[TARGET]"
echo ""
echo "TARGET - one of the following values: "
for item in confs/*.conf;
do
echo "$item" | sed -e 's/confs\/\(.*\)\.conf/\1/';
done
}
if [ $# -ne 1 ]
then
render_usage
else
FILE=confs/$1.conf
echo "Targetting $1"
cp $FILE dsss.conf
fi

71
build/confs/x86_64.conf Normal file
View File

@@ -0,0 +1,71 @@
name = xomb
CC = x86_64-pc-elf-gcc
CFLAGS = -nostdlib -nodefaultlibs -g -DUSE_ASSERT -mcmodel=kernel
[*]
buildflags=-dc=ldc-xomb
[../kernel/core/kmain.d]
buildflags=-dc=ldc-xomb -I..
# compile the assembly for the target
prebuild= \
\
\
echo ; \
echo Setting up Architecture Dependence: x86_64; \
echo '--> architecture.d';\
mkdir -p dsss_imports;\
cp ../kernel/arch/x86_64/imports/architecture.d dsss_imports/.;\
echo ; \
echo Compiling Assembly for target: x86_64 ;\
echo '--> boot.S';\
yasm -o dsss_objs/G/kernel.arch.x86_64.boot.boot.o ../kernel/arch/x86_64/boot/boot.s -felf64;\
echo '--> load.S';\
yasm -o dsss_objs/G/kernel.arch.x86_64.load.load.o ../kernel/arch/x86_64/boot/load.s -felf64;\
\
\
echo ; \
echo Compiling Kernel Runtime ; \
echo '--> kernel/runtime/object.d';\
ldc -nodefaultlib -I.. -I../kernel/runtime/. -code-model=kernel -c ../kernel/runtime/object.d -ofdsss_objs/G/kernel.runtime.object.o; \
echo '--> kernel/runtime/invariant.d';\
ldc -nodefaultlib -g -I.. -I../kernel/runtime/. -code-model=kernel -c ../kernel/runtime/invariant.d -ofdsss_objs/G/kernel.runtime.invariant.o; \
echo '--> kernel/runtime/std/typeinfo/*';\
ldc -nodefaultlib -g -I.. -I../kernel/runtime/. -code-model=kernel -c `ls ../kernel/runtime/std/typeinfo/*.d` -oddsss_objs/G/. ;\
echo '--> kernel/runtime/dstubs.d';\
ldc -nodefaultlib -g -I.. -I../kernel/runtime/. -code-model=kernel -c ../kernel/runtime/dstubs.d -ofdsss_objs/G/kernel.runtime.dstubs.o ;\
echo '--> kernel/runtime/util.d';\
ldc -nodefaultlib -g -I.. -I../kernel/runtime/. -code-model=kernel -c ../kernel/runtime/util.d -ofdsss_objs/G/kernel.runtime.util.o ;\
echo '--> kernel/runtime/std/moduleinit.d';\
ldc -nodefaultlib -g -I.. -I../kernel/runtime/. -code-model=kernel -c ../kernel/runtime/std/moduleinit.d -ofdsss_objs/G/kernel.runtime.std.moduleinit.o ;\
\
echo ; \
echo Compiling Kernel Proper ;
# what the target is
target = xomb.iso
# we will need some post build foo to link and create the iso
postbuild = \
\
echo ; \
echo Creating Kernel Executable; \
echo '--> xomb';\
#llvm-ld -native -Xlinker=-nostdlib -Xlinker=-Tlinker.ld -Xlinker="-b elf64-x86-64" `ls dsss_objs/G/*.o` -o iso/boot/xomb ; \
#llvm-ld -nodefaultlib -g -I.. -I../kernel/runtime/. `ls dsss_objs/G/*.o` ;\
ld -nostdlib -nodefaultlibs -b elf64-x86-64 -T ../kernel/arch/x86_64/linker.ld -o iso/boot/xomb `ls dsss_objs/G/*.o`;\
\
echo ;\
echo Creating Kernel Dump; \
echo '--> xomb.dump';\
rm -f xomb.dump && x86_64-pc-elf-objdump -d -S -r iso/boot/xomb > xomb.dump;\
\
echo ;\
echo Compiling ISO; \
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 16 -boot-info-table -input-charset UTF-8 -o xomb.iso ./iso