SubDir OBOS_TOP src tests kernel boot_floppy ;

KernelObjects
	exec_test.c
	false_main.c
	fibo_main.c
	fork_test.c
	init.c
	monitor_test.c
	pipe_test.c
	true_main.c
	sig_test.c
	select_test.c
	tls_test.c
	on_exit_thread.c
	;

UsePrivateHeaders kernel ;
UsePrivateHeaders [ FDirName kernel arch $(OBOS_ARCH) ] ;
UsePrivateHeaders [ FDirName kernel boot platform $(OBOS_BOOT_PLATFORM) ] ;

KernelLd init :
	libglue2.o
	<$(SOURCE_GRIST)>init.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/init
	;

KernelLd kernel_false :
	libglue2.o
	<$(SOURCE_GRIST)>false_main.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/false
	;

KernelLd kernel_true :
	libglue2.o
	<$(SOURCE_GRIST)>true_main.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/true
	;

KernelLd fibo :
	libglue2.o
	<$(SOURCE_GRIST)>fibo_main.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/fibo
	;

KernelLd sig_test :
	libglue2.o
	<$(SOURCE_GRIST)>sig_test.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/sig_test
	;

KernelLd monitor_test :
	libglue2.o
	<$(SOURCE_GRIST)>monitor_test.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/monitor_test
	;

KernelLd kernel_fortune :
	libglue2.o
	<$(SOURCE_GRIST)!fortune>main.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/fortune
	;

KernelConfigSection beos/etc/fortunes : data : $(SUBDIR)/fortune/fortunes ;

KernelLd kernel_ls :
	libglue2.o
	<$(SOURCE_GRIST)!ls>main.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/ls
	;

KernelLd kernel_ln :
	libglue2.o
	<$(SOURCE_GRIST)!symlink>main.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/symlink
	;

KernelLd boot_floppy_consoled :
	libglue2.o
	<src!tests!kernel!consoled>consoled.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/consoled
	;

# Note: shell is a built in target, thus we need the grist.
KernelLd obos_shell :
	libglue2.o
	<$(SOURCE_GRIST)!shell>main.o
	<$(SOURCE_GRIST)!shell>args.o
	<$(SOURCE_GRIST)!shell>commands.o
	<$(SOURCE_GRIST)!shell>file_utils.o
	<$(SOURCE_GRIST)!shell>parse.o
	<$(SOURCE_GRIST)!shell>script.o
	<$(SOURCE_GRIST)!shell>shell_vars.o
	<$(SOURCE_GRIST)!shell>statements.o
	<$(SOURCE_GRIST)!shell>shell_history.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/sh
	;

KernelLd kernel_testapp :
	libglue2.o
	<$(SOURCE_GRIST)!testapp>main.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/testapp
	;

KernelLd tls_test :
	libglue2.o
	<$(SOURCE_GRIST)>tls_test.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/tls_test
	;

KernelLd pipe_test :
	libglue2.o
	<$(SOURCE_GRIST)>pipe_test.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/pipe_test
	;

KernelLd fork_test :
	libglue2.o
	<$(SOURCE_GRIST)>fork_test.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/fork_test
	;

KernelConfigSection drivers/dev/tty
	: elf32
	: $(OBOS_TOP)/distro/$(OBOS_ARCH).R1/beos/system/add-ons/kernel/drivers/dev/tty
	;

KernelConfigSection drivers/dev/console
	: elf32
	: $(OBOS_TOP)/distro/$(OBOS_ARCH).R1/beos/system/add-ons/kernel/drivers/dev/console
	;

KernelConfigSection addons/kernel/console/vga_text
	: elf32
	: $(OBOS_TOP)/distro/$(OBOS_ARCH).R1/beos/system/add-ons/kernel/console/vga_text
	;

KernelLd kernel_ps :
	libglue2.o
	<$(SOURCE_GRIST)!ps>main.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/ps
	;

KernelLd kernel_echo :
	libglue2.o
	<$(SOURCE_GRIST)!echo>main.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/echo
	;

KernelLd kernel_uname :
	libglue2.o
	<$(SOURCE_GRIST)!uname>main.o
	libroot.so
	: $(OBOS_TOP)/src/kernel/ldscripts/$(OBOS_ARCH)/app.ld
	:
	:
	: beos/bin/uname
	;

KernelFloppyImage $(OBOS_FLOPPY) : $(OBOS_KERNEL) : $(OBOS_TOP)/src/kernel/boot/arch/$(OBOS_ARCH)/bootblock.bin ;

Depends $(OBOS_FLOPPY) : tty ;
Depends $(OBOS_FLOPPY) : console ;
Depends $(OBOS_FLOPPY) : vga_text ;

Depends boot_floppy : $(OBOS_FLOPPY) ;
NotFile boot_floppy ;
Depends bootfloppy : $(OBOS_FLOPPY) ;
NotFile bootfloppy ;


if $(OBOS_ARCH) = x86 {
	SubInclude OBOS_TOP src tests kernel boot_floppy cpuinfo ;
}

SubInclude OBOS_TOP src tests kernel boot_floppy echo ;
SubInclude OBOS_TOP src tests kernel boot_floppy filetest ;
SubInclude OBOS_TOP src tests kernel boot_floppy fortune ;
SubInclude OBOS_TOP src tests kernel boot_floppy hostname ;
SubInclude OBOS_TOP src tests kernel boot_floppy ls ;
SubInclude OBOS_TOP src tests kernel boot_floppy symlink ;
SubInclude OBOS_TOP src tests kernel boot_floppy ps ;
SubInclude OBOS_TOP src tests kernel boot_floppy shell ;
SubInclude OBOS_TOP src tests kernel boot_floppy envtest ;
#SubInclude OBOS_TOP src tests kernel boot_floppy sockettest ;
SubInclude OBOS_TOP src tests kernel boot_floppy testapp ;
SubInclude OBOS_TOP src tests kernel boot_floppy tests ;
SubInclude OBOS_TOP src tests kernel boot_floppy uname ;
