Files
haiku-beta6/src/kernel/Jamfile
T
Axel Dörfler 4f8cebc925 Fixes the build of rld.so, removed unneeded entries in librld.a.
libglue(2).so are now using the new startup code.
libroot.so now statically links against libgcc.a for now (to be able to load
BeOS executables).
Added some comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2449 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-13 11:25:52 +00:00

456 lines
8.4 KiB
Plaintext

SubDir OBOS_TOP src kernel ;
KernelLd stage2 :
<$(SOURCE_GRIST)!boot!arch!$(OBOS_ARCH)>stage2.o
<$(SOURCE_GRIST)!boot!arch!$(OBOS_ARCH)>stage2_asm.o
<$(SOURCE_GRIST)!boot!arch!$(OBOS_ARCH)>smp_boot.o
<$(SOURCE_GRIST)!boot!arch!$(OBOS_ARCH)>smp_trampoline.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)/boot/arch/$(OBOS_ARCH)/stage2.ld
:
-dN
:
:
bootstrap
;
KernelLd kernel :
kernel_core.o
kernel_fs.o
libbus.a
libvm.a
lib$(OBOS_ARCH).a
libdrivers.a
linkhack.so
kernel_os_arch_$(OBOS_ARCH).o
kernel_posix_locale.o
kernel_posix_main.o
kernel_posix_signal.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)/core/arch/$(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
linkhack.so
kernel_os_arch_$(OBOS_ARCH).o
kernel_posix_locale.o
kernel_posix_main.o
kernel_posix_signal.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)/core/arch/$(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_stdlib.o
posix_string.o
posix_sys.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 tls_test :
libglue2.o
<$(SOURCE_GRIST)!apps>tls_test.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/tls_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 cpuinfo :
libglue2.o
<$(SOURCE_GRIST)!apps!cpuinfo>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/cpuinfo
;
KernelLd testapp :
libglue2.o
<$(SOURCE_GRIST)!apps!testapp>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/testapp
;
KernelLd hostname :
libglue2.o
<$(SOURCE_GRIST)!apps!hostname>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/hostname
;
KernelLd filetest :
libglue2.o
<$(SOURCE_GRIST)!apps!filetest>main.o
libroot.so
:
$(SUBDIR)/ldscripts/$(OBOS_ARCH)/app.ld
:
:
:
bin/filetest
;
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 boot ;
SubInclude OBOS_TOP src kernel core ;
SubInclude OBOS_TOP src kernel drivers ;
SubInclude OBOS_TOP src kernel global ;
SubInclude OBOS_TOP src kernel glue ;
SubInclude OBOS_TOP src kernel apps ;
SubInclude OBOS_TOP src kernel libroot ;