haiku/src/kernel/Jamfile
Axel Dörfler 393d1e9163 Add some sources to the boot loader that are needed by the intel partition
module (even qsort()!).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 02:50:44 +00:00

469 lines
8.9 KiB
Plaintext

SubDir OBOS_TOP src kernel ;
KernelLd boot_loader :
boot_platform_$(OBOS_BOOT_PLATFORM).o
boot_loader.a
# libroot functions needed by the stage2 boot loader
<$(SOURCE_GRIST)!libroot!os!arch!$(OBOS_ARCH)>byteorder.o
<$(SOURCE_GRIST)!libroot!posix!locale>ctype.o
<$(SOURCE_GRIST)!libroot!posix!stdio>kvsprintf.o
<$(SOURCE_GRIST)!libroot!posix!string>memset.o
<$(SOURCE_GRIST)!libroot!posix!string>memcpy.o
<$(SOURCE_GRIST)!libroot!posix!string>memmove.o
<$(SOURCE_GRIST)!libroot!posix!string>strdup.o
<$(SOURCE_GRIST)!libroot!posix!string>strlen.o
<$(SOURCE_GRIST)!libroot!posix!string>strnlen.o
<$(SOURCE_GRIST)!libroot!posix!string>strcmp.o
<$(SOURCE_GRIST)!libroot!posix!string>strncmp.o
<$(SOURCE_GRIST)!libroot!posix!string>strcpy.o
<$(SOURCE_GRIST)!libroot!posix!stdlib>qsort.o
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/stage2.ld
:
-Bstatic
:
;
KernelLd stage2 :
boot_arch_stage2.o
# posix functions needed by the stage2 boot loader
<$(SOURCE_GRIST)!libroot!posix!locale>ctype.o
<$(SOURCE_GRIST)!libroot!posix!stdio>kvsprintf.o
<$(SOURCE_GRIST)!libroot!posix!string>memset.o
<$(SOURCE_GRIST)!libroot!posix!string>memcpy.o
<$(SOURCE_GRIST)!libroot!posix!string>strnlen.o
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/stage2.ld
:
-dN
:
:
bootstrap
;
KernelLd kernel :
kernel_core.o
kernel_fs.o
libbus.a
libvm.a
lib$(OBOS_ARCH).a
libdrivers.a
libkernel_util.a
linkhack.so
kernel_os_arch_$(OBOS_ARCH).o
kernel_posix_locale.o
kernel_posix_main.o
kernel_posix_stdio.o
kernel_posix_stdlib.o
kernel_posix_sys.o
kernel_posix_time.o
kernel_posix_unistd.o
posix_string.o
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/kernel.ld
:
-Bdynamic -export-dynamic -dynamic-linker /foo/bar
:
:
kernel
;
KernelLd kernel.so :
# ToDo: remove kernel.so completely and make the drivers/modules
# linkable against the kernel itself
kernel_core.o
kernel_fs.o
libbus.a
libvm.a
lib$(OBOS_ARCH).a
libdrivers.a
libkernel_util.a
linkhack.so
kernel_os_main.o
kernel_os_arch_$(OBOS_ARCH).o
kernel_posix_locale.o
kernel_posix_main.o
kernel_posix_stdio.o
kernel_posix_stdlib.o
kernel_posix_sys.o
kernel_posix_time.o
kernel_posix_unistd.o
posix_string.o
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/kernel.ld
:
-Bdynamic -shared -export-dynamic -dynamic-linker /foo/bar
;
KernelLd libglue.o : # libglue.o is used for dynamic libraries
<$(SOURCE_GRIST)!glue>crt0.o
<$(SOURCE_GRIST)!glue>init_term_dyn.o
:
:
-r
:
no_gcc
;
KernelLd libroot.so :
libglue.o
<$(SOURCE_GRIST)!libroot>libroot_init.o
os_main.o
os_arch_$(OBOS_ARCH).o
posix_locale.o
posix_main.o
posix_malloc.o
posix_math.o
posix_math_arch_$(OBOS_ARCH).o
posix_signal.o
posix_stdio.o
# posix_gnu_libio.o
posix_stdlib.o
posix_string.o
posix_sys.o
posix_termios.o
posix_time.o
posix_unistd.o
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/library.ld
:
-shared -soname libroot.so -Bdynamic -export-dynamic
:
# no_gcc
# for now link against libgcc.a to allow more BeOS executables to be run.
# Needs a definitive decision - most probably we will have to link it statically
# against libroot.so, too, like BeOS does it
:
lib/libroot.so
;
KernelLd libglue2.o : # libglue2.o is used for executables
<$(SOURCE_GRIST)!glue>crt0.o
<$(SOURCE_GRIST)!glue>init_term_dyn.o
<$(SOURCE_GRIST)!glue>start_dyn.o
:
:
-r
:
no_gcc
;
KernelLd init :
libglue2.o
<$(SOURCE_GRIST)!apps>init.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/init
;
KernelStaticLibraryObjects librld.a :
# needed for rld.so only
<$(SOURCE_GRIST)!libroot!os>syscalls.o
<$(SOURCE_GRIST)!libroot!os>sem.o
<$(SOURCE_GRIST)!libroot!os!arch!$(OBOS_ARCH)>atomic.o
<$(SOURCE_GRIST)!libroot!posix>errno.o
<$(SOURCE_GRIST)!libroot!posix!locale>ctype.o
<$(SOURCE_GRIST)!libroot!posix!stdio>kvsprintf.o
<$(SOURCE_GRIST)!libroot!posix!unistd>open.o
<$(SOURCE_GRIST)!libroot!posix!string>memchr.o
<$(SOURCE_GRIST)!libroot!posix!string>memcmp.o
<$(SOURCE_GRIST)!libroot!posix!string>memcpy.o
<$(SOURCE_GRIST)!libroot!posix!string>memmove.o
<$(SOURCE_GRIST)!libroot!posix!string>memset.o
<$(SOURCE_GRIST)!libroot!posix!string>strcasecmp.o
<$(SOURCE_GRIST)!libroot!posix!string>strcasestr.o
<$(SOURCE_GRIST)!libroot!posix!string>strcat.o
<$(SOURCE_GRIST)!libroot!posix!string>strchr.o
<$(SOURCE_GRIST)!libroot!posix!string>strcmp.o
<$(SOURCE_GRIST)!libroot!posix!string>strcpy.o
<$(SOURCE_GRIST)!libroot!posix!string>strcspn.o
<$(SOURCE_GRIST)!libroot!posix!string>strdup.o
<$(SOURCE_GRIST)!libroot!posix!string>strerror.o
<$(SOURCE_GRIST)!libroot!posix!string>strlcat.o
<$(SOURCE_GRIST)!libroot!posix!string>strlcpy.o
<$(SOURCE_GRIST)!libroot!posix!string>strlen.o
<$(SOURCE_GRIST)!libroot!posix!string>strncat.o
<$(SOURCE_GRIST)!libroot!posix!string>strncmp.o
<$(SOURCE_GRIST)!libroot!posix!string>strncpy.o
<$(SOURCE_GRIST)!libroot!posix!string>strnicmp.o
<$(SOURCE_GRIST)!libroot!posix!string>strnlen.o
<$(SOURCE_GRIST)!libroot!posix!string>strpbrk.o
<$(SOURCE_GRIST)!libroot!posix!string>strrchr.o
<$(SOURCE_GRIST)!libroot!posix!string>strspn.o
<$(SOURCE_GRIST)!libroot!posix!string>strstr.o
<$(SOURCE_GRIST)!libroot!posix!string>strtok.o
;
KernelLd rld.so :
<$(SOURCE_GRIST)!apps!rld>rld0.o
<$(SOURCE_GRIST)!apps!rld>rld.o
<$(SOURCE_GRIST)!apps!rld>rldelf.o
<$(SOURCE_GRIST)!apps!rld>rldexport.o
<$(SOURCE_GRIST)!apps!rld>rldheap.o
<$(SOURCE_GRIST)!apps!rld>rldaux.o
librld.a
:
$(SUBDIR)/apps/rld/arch/$(OBOS_ARCH)/rld.ld
:
:
:
libexec/rld.so
;
KernelLd false :
libglue2.o
<$(SOURCE_GRIST)!apps>false_main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/false
;
KernelLd true :
libglue2.o
<$(SOURCE_GRIST)!apps>true_main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/true
;
KernelLd fibo :
libglue2.o
<$(SOURCE_GRIST)!apps>fibo_main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/fibo
;
KernelLd sig_test :
libglue2.o
<$(SOURCE_GRIST)!apps>sig_test.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/sig_test
;
KernelLd monitor_test :
libglue2.o
<$(SOURCE_GRIST)!apps>monitor_test.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/monitor_test
;
KernelLd fortune :
libglue2.o
<$(SOURCE_GRIST)!apps!fortune>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/fortune
;
KernelConfigSection etc/fortunes : data : $(SUBDIR)/apps/fortune/fortunes ;
KernelLd ls :
libglue2.o
<$(SOURCE_GRIST)!apps!ls>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/ls
;
KernelLd symlink :
libglue2.o
<$(SOURCE_GRIST)!apps!symlink>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/symlink
;
# Note: shell is a built in target, thus we need the grist.
KernelLd obos_shell :
libglue2.o
<$(SOURCE_GRIST)!apps!shell>main.o
<$(SOURCE_GRIST)!apps!shell>args.o
<$(SOURCE_GRIST)!apps!shell>commands.o
<$(SOURCE_GRIST)!apps!shell>file_utils.o
<$(SOURCE_GRIST)!apps!shell>parse.o
<$(SOURCE_GRIST)!apps!shell>script.o
<$(SOURCE_GRIST)!apps!shell>shell_vars.o
<$(SOURCE_GRIST)!apps!shell>statements.o
<$(SOURCE_GRIST)!apps!shell>shell_history.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/shell
;
KernelLd testapp :
libglue2.o
<$(SOURCE_GRIST)!apps!testapp>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/testapp
;
KernelLd tls_test :
libglue2.o
<$(SOURCE_GRIST)!apps>tls_test.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/tls_test
;
KernelLd pipe_test :
libglue2.o
<$(SOURCE_GRIST)!apps>pipe_test.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/pipe_test
;
KernelLd envtest :
libglue2.o
<$(SOURCE_GRIST)!apps!envtest>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/envtest
;
#if $(OS) = "BEOS"
#{
# KernelConfigSection addons/drivers/dev/misc/pcspeaker
# :
# elf32
# :
# /boot/home/config/add-ons/kernel/drivers/bin/pcspeaker
# ;
# KernelConfigSection addons/drivers/dev/net/tulip
# :
# elf32
# :
# /boot/beos/system/add-ons/kernel/drivers/bin/tulip
# ;
#}
KernelLd ps :
libglue2.o
<$(SOURCE_GRIST)!apps!ps>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/ps
;
KernelLd echo :
libglue2.o
<$(SOURCE_GRIST)!apps!echo>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/echo
;
KernelLd uname :
libglue2.o
<$(SOURCE_GRIST)!apps!uname>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/uname
;
WriteKernelConfig $(OBOS_KERNEL_CONFIG) ;
BuildKernel $(OBOS_KERNEL) : $(OBOS_KERNEL_CONFIG) ;
KernelFloppyImage $(OBOS_FLOPPY) : $(OBOS_KERNEL) : $(SUBDIR)/boot/arch/$(OBOS_ARCH)/bootblock.bin ;
Depends floppy : $(OBOS_FLOPPY) ;
NotFile floppy ;
SubInclude OBOS_TOP src kernel apps ;
SubInclude OBOS_TOP src kernel boot ;
SubInclude OBOS_TOP src kernel core ;
SubInclude OBOS_TOP src kernel drivers ;
SubInclude OBOS_TOP src kernel glue ;
SubInclude OBOS_TOP src kernel libroot ;