xref: /haiku/build/jam/packages/HaikuBootstrap (revision 372a66634410cf0450e426716c14ad42d40c0da4)
1local architecture = $(HAIKU_PACKAGING_ARCHS[1]) ;
2
3
4local haikuPackage = haiku.hpkg ;
5HaikuPackage $(haikuPackage) ;
6
7
8# wifi firmware
9for driver in $(SYSTEM_ADD_ONS_DRIVERS_NET) {
10	local package = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_PACKAGE) ] ;
11	local archive = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_ARCHIVE) ] ;
12	local extract = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_DO_EXTRACT) ] ;
13	if $(archive) {
14		AddWifiFirmwareToPackage $(driver) : $(package) : $(archive)
15			: $(extract) ;
16	}
17	local packages = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_PACKAGES) ] ;
18	local archives = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_ARCHIVES) ] ;
19	for archive in $(archives) {
20		AddWifiFirmwareToPackage $(driver) : $(packages[1]) : $(archive)
21			: $(extract) ;
22		packages = $(packages[2-]) ;
23	}
24}
25
26
27# modules
28AddFilesToPackage add-ons kernel bus_managers : $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;
29AddFilesToPackage add-ons kernel busses agp_gart : <agp_gart>intel@x86 ;
30
31if $(HAIKU_ATA_STACK) = 1 {
32	AddFilesToPackage add-ons kernel busses ata
33		: generic_ide_pci it8211 legacy_sata silicon_image_3112 ide_isa@x86 ;
34} else {
35	AddFilesToPackage add-ons kernel busses ide
36		: generic_ide_pci it8211 legacy_sata silicon_image_3112 ide_isa@x86 ;
37}
38
39AddFilesToPackage add-ons kernel busses scsi : ahci virtio_scsi ;
40AddFilesToPackage add-ons kernel busses usb : <usb>uhci <usb>ohci <usb>ehci ;
41AddFilesToPackage add-ons kernel busses virtio : virtio_pci ;
42AddFilesToPackage add-ons kernel console : vga_text ;
43AddFilesToPackage add-ons kernel debugger
44	: <kdebug>demangle <kdebug>disasm@x86 <kdebug>hangman
45	  <kdebug>invalidate_on_exit <kdebug>usb_keyboard <kdebug>qrencode
46	  <kdebug>run_on_exit ;
47AddFilesToPackage add-ons kernel file_systems : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
48AddFilesToPackage add-ons kernel generic
49	: ata_adapter@ata bios@x86,x86_64 dpc ide_adapter@ide
50		locked_pool mpu401 scsi_periph <module>tty ;
51AddFilesToPackage add-ons kernel partitioning_systems
52	: amiga_rdb apple efi_gpt intel session ;
53AddFilesToPackage add-ons kernel interrupt_controllers : openpic@ppc ;
54
55if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 {
56	AddFilesToPackage add-ons kernel cpu : generic_x86 ;
57}
58
59# drivers
60AddNewDriversToPackage disk scsi	: scsi_cd scsi_disk ;
61AddNewDriversToPackage disk virtual : virtio_block ;
62AddNewDriversToPackage power		: enhanced_speedstep@x86 ;
63AddNewDriversToPackage power		: acpi_battery@x86 ;
64#AddNewDriversToPackage display		: display_controls@x86 ;
65
66# legacy drivers
67AddDriversToPackage					: console dprintf null random <driver>tty
68										zero ;
69AddDriversToPackage audio hmulti	: $(SYSTEM_ADD_ONS_DRIVERS_AUDIO) ;
70AddDriversToPackage audio old		: $(SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD) ;
71AddDriversToPackage midi			: $(SYSTEM_ADD_ONS_DRIVERS_MIDI) ;
72AddDriversToPackage bus				: usb_raw fw_raw@x86 ;
73AddDriversToPackage disk floppy		: pc_floppy@x86 ;
74AddDriversToPackage disk usb		: usb_disk ;
75AddDriversToPackage disk usb		: usb_floppy ;
76AddDriversToPackage printer usb		: usb_printer ;
77AddDriversToPackage disk virtual	: nbd ;
78AddDriversToPackage graphics		: $(SYSTEM_ADD_ONS_DRIVERS_GRAPHICS) ;
79AddDriversToPackage input			: ps2_hid usb_hid wacom ;
80AddDriversToPackage misc			: <driver>poke <driver>mem ;
81AddDriversToPackage net				: $(SYSTEM_ADD_ONS_DRIVERS_NET) ;
82AddDriversToPackage ports			: usb_serial ;
83AddDriversToPackage power			: $(SYSTEM_ADD_ONS_DRIVERS_POWER) ;
84
85# kernel
86AddFilesToPackage : <revisioned>kernel_$(TARGET_ARCH) ;
87
88# libs
89AddLibrariesToPackage lib
90	: [ HaikuImageGetSystemLibs ] [ HaikuImageGetPrivateSystemLibs ] ;
91
92# libnetwork.so replaces quite a few libraries
93if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 {
94	local libNetworkAliases = libsocket.so libbind.so libnet.so ;
95	local lib ;
96	for lib in $(libNetworkAliases) {
97		AddSymlinkToPackage lib : libnetwork.so : $(lib) ;
98	}
99
100	AddSymlinkToPackage lib : libbnetapi.so : libnetapi.so ;
101}
102
103
104# servers
105AddFilesToPackage servers : $(SYSTEM_SERVERS) ;
106
107# apps
108AddFilesToPackage  				: runtime_loader Deskbar Tracker ;
109AddFilesToPackage bin			: $(SYSTEM_BIN) consoled ;
110AddFilesToPackage apps			: $(SYSTEM_APPS) ;
111AddFilesToPackage preferences	: $(SYSTEM_PREFERENCES) ;
112AddFilesToPackage demos			: $(SYSTEM_DEMOS) ;
113
114SEARCH on which = [ FDirName $(HAIKU_TOP) data bin ] ;
115AddFilesToPackage bin : which ;
116SEARCH on install-wifi-firmwares.sh = [ FDirName $(HAIKU_TOP) data bin ] ;
117AddFilesToPackage bin : install-wifi-firmwares.sh ;
118
119AddSymlinkToPackage bin : bash : sh ;
120AddSymlinkToPackage bin : trash : untrash ;
121AddSymlinkToPackage bin : less : more ;
122AddSymlinkToPackage bin : gzip : gunzip ;
123AddSymlinkToPackage bin : gzip : zcat ;
124AddSymlinkToPackage bin : zdiff : zcmp ;
125AddSymlinkToPackage bin : unzip : zipinfo ;
126AddSymlinkToPackage bin : gawk : awk ;
127
128# scripts and data files
129local bootScripts = Bootscript Bootscript.cd SetupEnvironment Netscript
130	InstallerInitScript InstallerFinishScript ;
131SEARCH on $(bootScripts) = [ FDirName $(HAIKU_TOP) data system boot ] ;
132AddFilesToPackage boot : $(bootScripts) ;
133
134# post install scripts
135local postInstallFiles = default_deskbar_items.sh ;
136postInstallFiles = $(postInstallFiles:G=post-install) ;
137SEARCH on $(postInstallFiles)
138	= [ FDirName $(HAIKU_TOP) data common boot post_install ] ;
139AddFilesToPackage boot post-install : $(postInstallFiles) ;
140
141local fortuneFiles = [ Glob $(HAIKU_TOP)/data/system/data/fortunes
142	: [a-zA-Z0-9]* ] ;
143fortuneFiles = $(fortuneFiles:G=data!fortunes) ;
144AddFilesToPackage data fortunes : $(fortuneFiles) ;
145
146local fontDir = [ FDirName $(HAIKU_TOP) data system data fonts ] ;
147local psFonts = [ Glob $(fontDir)/psfonts : *.afm *.pfb ] ;
148local ttFonts = [ Glob $(fontDir)/ttfonts : *.ttf ] ;
149AddFilesToPackage data fonts psfonts : $(psFonts) ;
150AddFilesToPackage data fonts ttfonts : $(ttFonts) ;
151
152local keymapFiles = [ Glob [ FDirName $(HAIKU_TOP) src data keymaps ]
153	: *.keymap ] ;
154keymapFiles = $(keymapFiles:BG=keymap) ;
155AddFilesToPackage data Keymaps : $(keymapFiles) ;
156AddSymlinkToPackage data Keymaps : Swedish : Finnish ;
157AddSymlinkToPackage data Keymaps : Slovene : Croatian ;
158AddSymlinkToPackage data Keymaps : US-International : Brazilian ;
159
160# Copy keyboard layout files to the image one-by-one.
161local keyboardLayoutsDir
162	= [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ] ;
163local keyboardLayoutFiles =
164	"Generic 104-key"
165	"Generic 105-key International"
166	"Kinesis Advantage"
167	"Kinesis Ergo Elan International"
168	"TypeMatrix 2030" ;
169keyboardLayoutFiles = $(keyboardLayoutFiles:G=keyboard-layout) ;
170SEARCH on $(keyboardLayoutFiles) = $(keyboardLayoutsDir) ;
171AddFilesToPackage data KeyboardLayouts
172	: $(keyboardLayoutFiles) ;
173
174# Add Apple Aluminum keyboard layout files to the image in an Apple Aluminum
175# subdirectory. The subdirectory is turned into a submenu in the Layout menu
176# of the Keymap preference app.
177local appleAluminumDir
178	= [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts
179		Apple\ Aluminum ] ;
180local appleAluminumFiles =
181	"Apple Aluminium Extended International"
182	"Apple Aluminium International"
183	"Apple Aluminum (US)"
184	"Apple Aluminum Extended (US)" ;
185appleAluminumFiles = $(appleAluminumFiles:G=keyboard-layout) ;
186SEARCH on $(appleAluminumFiles) = $(appleAluminumDir) ;
187AddFilesToPackage data KeyboardLayouts Apple\ Aluminum
188	: $(appleAluminumFiles) ;
189
190# Add ThinkPad keyboard layout files to the image in a ThinkPad
191# subdirectory. The subdirectory is turned into a submenu in the Layout menu
192# of the Keymap preference app.
193local thinkpadDir
194	= [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ThinkPad ] ;
195local thinkPadFiles =
196	"ThinkPad (US)"
197	"ThinkPad International"
198	"ThinkPad T400s (US)"
199	"ThinkPad T400s International"
200	"ThinkPad X1 (US)"
201	"ThinkPad X1 International"
202	"ThinkPad X100e (US)"
203	"ThinkPad X100e International" ;
204thinkPadFiles = $(thinkPadFiles:G=keyboard-layout) ;
205SEARCH on $(thinkPadFiles) = $(thinkpadDir) ;
206AddFilesToPackage data KeyboardLayouts ThinkPad
207	: $(thinkPadFiles) ;
208
209# boot module links
210AddBootModuleSymlinksToPackage
211	acpi@x86 ata@ata pci isa@x86 config_manager dpc
212	ide@ide scsi usb
213	openpic@ppc
214	ata_adapter@ata ide_adapter@ide locked_pool scsi_periph
215	ahci generic_ide_pci it8211 legacy_sata silicon_image_3112
216	ide_isa@x86
217	<usb>uhci <usb>ohci <usb>ehci
218	scsi_cd scsi_disk usb_disk
219	virtio virtio_pci virtio_block virtio_scsi
220	efi_gpt
221	intel
222	bfs packagefs
223;
224
225# add-ons
226AddFilesToPackage add-ons accelerants	: $(SYSTEM_ADD_ONS_ACCELERANTS) ;
227AddFilesToPackage add-ons Translators	: $(SYSTEM_ADD_ONS_TRANSLATORS) ;
228AddFilesToPackage add-ons locale catalogs : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ;
229
230AddFilesToPackage add-ons Tracker
231	: FileType-F Mark\ as… Mark\ as\ Read-R Open\ Target\ Folder-O
232		Open\ Terminal-T ZipOMatic-Z ;
233AddSymlinkToPackage add-ons Tracker
234	: /boot/system/preferences/Backgrounds : Background-B ;
235AddSymlinkToPackage add-ons Tracker
236	: /boot/system/apps/TextSearch : TextSearch-G ;
237AddSymlinkToPackage add-ons Tracker
238	: /boot/system/apps/DiskUsage : DiskUsage-I ;
239
240AddFilesToPackage add-ons input_server devices
241	: <input>keyboard <input>mouse <input>tablet <input>wacom ;
242AddFilesToPackage add-ons input_server filters
243	: screen_saver shortcut_catcher ;
244
245AddFilesToPackage add-ons kernel network : <net>notifications stack ;
246AddFilesToPackage add-ons kernel network : dns_resolver ;
247AddFilesToPackage add-ons kernel network devices : $(SYSTEM_NETWORK_DEVICES) ;
248AddFilesToPackage add-ons kernel network datalink_protocols
249	: $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ;
250AddFilesToPackage add-ons kernel network ppp: $(SYSTEM_NETWORK_PPP) ;
251AddFilesToPackage add-ons kernel network protocols
252	: $(SYSTEM_NETWORK_PROTOCOLS) ;
253
254AddFilesToPackage add-ons disk_systems
255	: <disk_system>intel <disk_system>gpt <disk_system>bfs <disk_system>ntfs ;
256
257
258# the MIME DB
259CopyDirectoryToPackage data : <mimedb>mime_db : : : isTarget ;
260
261
262# Deskbar menu symlinks
263
264# "Applications" links
265DESKBAR_APPLICATIONS = ActivityMonitor CharacterMap DeskCalc
266	Devices DiskProbe DriveSetup DiskUsage Expander Installer
267	StyledEdit Terminal
268;
269local linkTarget ;
270for linkTarget in $(DESKBAR_APPLICATIONS) {
271	AddSymlinkToPackage data deskbar menu Applications
272		: ../../../../apps/$(linkTarget) : $(linkTarget) ;
273}
274
275# "Desktop applets" links
276DESKBAR_DESKTOP_APPLETS = LaunchBox NetworkStatus PowerStatus ProcessController
277	Workspaces
278;
279for linkTarget in $(DESKBAR_DESKTOP_APPLETS) {
280	AddSymlinkToPackage data deskbar menu Desktop\ applets
281		: ../../../../apps/$(linkTarget) : $(linkTarget) ;
282}
283
284# "Preferences" links
285AddDirectoryToPackage data deskbar menu Preferences ;
286DESKBAR_PREFERENCES = $(SYSTEM_PREFERENCES:B) ;
287for linkTarget in $(DESKBAR_PREFERENCES) {
288	AddSymlinkToPackage data deskbar menu Preferences
289		: ../../../../preferences/$(linkTarget)
290		: $(linkTarget) ;
291}
292
293# Deskbar menu entries file
294AddFilesToPackage data deskbar : <deskbar>menu_entries ;
295
296
297# licenses
298CopyDirectoryToPackage data
299	: [ FDirName $(HAIKU_TOP) data system data licenses ]
300	: licenses ;
301
302# Copy documentation as per DiskUsage's license requirement.
303CopyDirectoryToPackage documentation
304	: [ FDirName $(HAIKU_TOP) docs apps diskusage ]
305	: diskusage ;
306
307
308BuildHaikuPackage $(haikuPackage) : haiku ;
309