xref: /haiku/src/system/boot/platform/atari_m68k/Jamfile (revision 040a81419dda83d1014e9dc94936a4cb3f027303)
1SubDir HAIKU_TOP src system boot platform atari_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) ;
17	SubDirC++Flags $(defines) -fno-rtti ;
18}
19
20#SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons accelerants common ] ;
21
22BootMergeObject boot_platform_atari_m68k_shell.o :
23	shell.S
24	: -Wa,--pcrel
25;
26
27
28# cpu-specific stuff
29# should be moved to boot/arch/m68k/...
30# TODO: add 020+68851 support
31
32
33BootMergeObject boot_platform_atari_m68k_other.o :
34#	shell.S
35	start.cpp
36	toscalls.cpp
37	debug.cpp
38	#bios.S
39	console.cpp
40	#serial.cpp
41	Handle.cpp
42	devices.cpp
43	keyboard.cpp
44	menu.cpp
45	mmu.cpp
46	cpu.cpp
47	#smp.cpp
48	#smp_trampoline.S
49#	support.S
50	video.cpp
51	#apm.cpp
52
53	# VESA/DDC EDID
54	#decode_edid.c
55	#dump_edid.c
56
57	: -fno-pic #-Wa,--pcrel
58	: boot_platform_generic.a
59;
60
61
62BootMergeObject boot_platform_atari_m68k.o :
63	: :
64	boot_platform_atari_m68k_shell.o
65	boot_platform_atari_m68k_other.o
66	boot_arch_m68k_030.o
67	boot_arch_m68k_040.o
68;
69
70
71# the bootsector in haiku_loader must be checksummed
72
73
74rule ChecksumAtariLoader
75{
76	local haikuLoader = $(1) ;
77	local checksummer = <build>fixup_tos_boot_checksum ;
78
79	Depends $(haikuLoader) : $(checksummer) ;
80
81	TARGET_CHECKSUM on $(haikuLoader) = $(checksummer) ;
82
83}
84
85
86actions ChecksumAtariLoader bind TARGET_CHECKSUM {
87	$(TARGET_CHECKSUM) $(1)
88}
89
90
91ChecksumAtariLoader haiku_loader ;
92
93
94# AUTO folder PRG target
95
96
97# based on KernelLd
98rule AtariBootPrgLd
99{
100	# AtariBootPrgLd <name> : <objs> : <linkerscript> : <args> ;
101
102	LINK on $(1) = $(TARGET_LD_$(TARGET_PACKAGING_ARCH)) ;
103
104	LINKFLAGS on $(1) = $(4) ;
105	if $(3) { LINKFLAGS on $(1) += --script=$(3) ; }
106
107	# Remove any preset LINKLIBS
108	LINKLIBS on $(1) = ;
109
110	# TODO: Do we really want to invoke SetupKernel here? The objects should
111	# have been compiled with KernelObjects anyway, so we're doing that twice.
112	SetupKernel $(2) ;
113
114	# Show that we depend on the libraries we need
115	LocalClean clean : $(1) ;
116	LocalDepends all : $(1) ;
117	Depends $(1) : $(2) ;
118
119	MakeLocateDebug $(1) ;
120
121}
122
123
124actions AtariBootPrgLd
125{
126	$(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" $(LINKLIBS) ;
127}
128
129
130AtariBootPrgLd haiku.prg :
131	boot_loader_$(TARGET_BOOT_PLATFORM)
132	: $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/boot_prg_$(TARGET_BOOT_PLATFORM).ld
133	: -Bstatic
134;
135
136
137SEARCH on [ FGristFiles $(genericPlatformSources) ]
138	= [ FDirName $(HAIKU_TOP) src system boot platform generic ] ;
139
140# Tell the build system to where stage1.bin can be found, so it can be used
141# elsewhere.
142SEARCH on stage1.bin = $(SUBDIR) ;
143
144# cf pxe_ia32 Jamfile for stage1
145