xref: /haiku/src/system/boot/platform/amiga_m68k/Jamfile (revision 857b0c2bef2de29d8f02f6daf7c8379bf782dccb)
1SubDir HAIKU_TOP src system boot platform amiga_m68k ;
2
3SubDirHdrs $(HAIKU_TOP) headers private kernel boot platform $(TARGET_BOOT_PLATFORM) ;
4
5UsePrivateHeaders [ FDirName kernel boot platform $(TARGET_BOOT_PLATFORM) ] ;
6UsePrivateHeaders [ FDirName kernel platform $(TARGET_BOOT_PLATFORM) ] ;
7UsePrivateHeaders [ FDirName kernel disk_device_manager ] ;
8UsePrivateHeaders [ FDirName graphics common ] ;
9#UsePrivateHeaders [ FDirName graphics vesa ] ;
10UsePrivateHeaders [ FDirName storage ] ;
11
12{
13	local defines = _BOOT_MODE ;
14
15	defines = [ FDefines $(defines) ] ;
16	SubDirCcFlags $(defines) -Wall -Wno-multichar ;
17	SubDirC++Flags $(defines) -Wall -Wno-multichar -fno-rtti ;
18}
19
20#SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons accelerants common ] ;
21
22KernelMergeObject boot_platform_amiga_m68k_shell.o :
23	shell.S
24	: -Wa,--pcrel
25;
26
27# cpu-specific stuff
28# should be moved to boot/arch/m68k/...
29# XXX: add 020+68851 support
30KernelMergeObject boot_arch_m68k_030.o :
31	mmu_030.cpp
32	: -fno-pic -Wno-unused -m68030
33;
34
35KernelMergeObject boot_arch_m68k_040.o :
36	mmu_040.cpp
37	: -fno-pic -Wno-unused -m68040
38;
39
40KernelMergeObject boot_arch_m68k_060.o :
41	mmu_060.cpp
42	: -fno-pic -Wno-unused -m68060
43;
44
45
46KernelMergeObject boot_platform_amiga_m68k_other.o :
47#	shell.S
48	start.c
49	toscalls.c
50	debug.c
51	#bios.S
52	console.cpp
53	#serial.cpp
54	Handle.cpp
55	devices.cpp
56	keyboard.cpp
57	menu.cpp
58	mmu.cpp
59	cpu.cpp
60	#smp.cpp
61	#smp_trampoline.S
62#	support.S
63	video.cpp
64	#apm.cpp
65
66	# generic
67	text_menu.cpp
68
69	# VESA/DDC EDID
70	#decode_edid.c
71	#dump_edid.c
72
73	: -fno-pic #-Wa,--pcrel
74;
75
76KernelMergeObject boot_platform_amiga_m68k.o :
77	: :
78	boot_platform_amiga_m68k_shell.o
79	boot_platform_amiga_m68k_other.o
80	boot_arch_m68k_030.o
81	boot_arch_m68k_040.o
82;
83
84# AUTO folder PRG target
85
86# based on KernelLd
87rule AtariBootPrgLd
88{
89	# AtariBootPrgLd <name> : <objs> : <linkerscript> : <args> ;
90
91	LINK on $(1) = $(TARGET_LD) ;
92
93	LINKFLAGS on $(1) = $(4) ;
94	if $(3) { LINKFLAGS on $(1) += --script=$(3) ; }
95
96	# Remove any preset LINKLIBS
97	LINKLIBS on $(1) = ;
98
99	# TODO: Do we really want to invoke SetupKernel here? The objects should
100	# have been compiled with KernelObjects anyway, so we're doing that twice.
101	SetupKernel $(2) ;
102
103	# Show that we depend on the libraries we need
104	LocalClean clean : $(1) ;
105	LocalDepends all : $(1) ;
106	Depends $(1) : $(2) ;
107
108	MakeLocateDebug $(1) ;
109
110}
111
112actions AtariBootPrgLd
113{
114	$(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" $(LINKLIBS) ;
115}
116
117AtariBootPrgLd haiku.prg :
118	boot_loader_$(TARGET_BOOT_PLATFORM)
119	: $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/boot_prg_$(TARGET_BOOT_PLATFORM).ld
120	: -Bstatic
121;
122
123
124SEARCH on [ FGristFiles text_menu.cpp ]
125	= [ FDirName $(HAIKU_TOP) src system boot platform generic ] ;
126
127# Tell the build system to where stage1.bin can be found, so it can be used
128# elsewhere.
129SEARCH on stage1.bin = $(SUBDIR) ;
130
131# cf pxe_ia32 Jamfile for stage1
132