xref: /haiku/build/jam/packages/Haiku (revision 344ded80d400028c8f561b4b876257b94c12db4a)
1local architecture = $(HAIKU_PACKAGING_ARCHS[1]) ;
2
3
4local haikuPackage = haiku.hpkg ;
5HaikuPackage $(haikuPackage) ;
6
7
8# wifi firmware
9local driver ;
10for driver in $(SYSTEM_ADD_ONS_DRIVERS_NET) {
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) :  : $(archive) : $(extract) ;
15	}
16}
17
18# bootloaders
19local bootTarget ;
20for bootTarget in $(HAIKU_BOOT_TARGETS) {
21	AddFilesToPackage data platform_loaders : haiku_loader.$(bootTarget) ;
22}
23
24# modules
25AddFilesToPackage add-ons kernel bus_managers : $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;
26AddFilesToPackage add-ons kernel busses agp_gart :
27	<agp_gart>intel@x86,x86_64
28	;
29
30AddFilesToPackage add-ons kernel busses ata :
31	generic_ide_pci
32	it8211
33	legacy_sata
34	silicon_image_3112
35	highpoint_ide_pci
36	ide_isa@x86
37	;
38
39AddFilesToPackage add-ons kernel busses i2c :
40	pch_i2c@x86,x86_64
41	;
42AddFilesToPackage add-ons kernel busses mmc :
43	sdhci
44	;
45AddFilesToPackage add-ons kernel busses pci :
46	<pci>designware@riscv64
47	<pci>ecam@riscv64,arm,arm64
48	<pci>x86@x86,x86_64
49	;
50AddFilesToPackage add-ons kernel busses random :
51	ccp_rng@x86,x86_64
52	virtio_rng
53	;
54AddFilesToPackage add-ons kernel busses scsi :
55	ahci
56	virtio_scsi
57	;
58AddFilesToPackage add-ons kernel busses usb :
59	<usb>uhci
60	<usb>ohci
61	<usb>ehci
62	<usb>xhci
63	;
64AddFilesToPackage add-ons kernel busses virtio :
65	virtio_mmio@riscv64,arm,arm64
66	virtio_pci
67	;
68AddFilesToPackage add-ons kernel console :
69	vga_text
70	;
71AddFilesToPackage add-ons kernel debugger :
72	<kdebug>demangle
73	<kdebug>disasm@x86,x86_64
74	<kdebug>hangman
75	<kdebug>invalidate_on_exit
76	<kdebug>usb_keyboard
77	<kdebug>qrencode@libqrencode
78	<kdebug>run_on_exit
79	;
80AddFilesToPackage add-ons kernel file_systems
81	: $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
82AddFilesToPackage add-ons kernel generic :
83	ata_adapter
84	bios@x86,x86_64
85	dpc
86	mpu401
87	scsi_periph
88	smbios@x86,x86_64
89	<module>tty
90	;
91AddFilesToPackage add-ons kernel partitioning_systems :
92	amiga_rdb@m68k
93	apple@ppc
94	sun@sparc
95	efi_gpt
96	intel
97	session
98	;
99AddFilesToPackage add-ons kernel interrupt_controllers :
100	openpic@ppc
101	;
102AddFilesToPackage add-ons kernel power cpufreq :
103	amd_pstates@x86,x86_64
104	intel_pstates@x86,x86_64
105	;
106AddFilesToPackage add-ons kernel power cpuidle :
107	x86_cstates@x86,x86_64
108	;
109
110if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 {
111	AddFilesToPackage add-ons kernel cpu :
112		generic_x86
113		;
114}
115
116# drivers
117AddNewDriversToPackage :
118	wmi@x86,x86_64
119	;
120AddNewDriversToPackage disk :
121	nvme_disk
122	usb_disk
123	;
124AddNewDriversToPackage disk mmc :
125	mmc_disk
126	;
127AddNewDriversToPackage disk scsi :
128	scsi_cd
129	scsi_disk
130	;
131AddNewDriversToPackage disk virtual :
132	ram_disk
133	virtio_block
134	;
135AddNewDriversToPackage graphics :
136	virtio_gpu
137	;
138AddNewDriversToPackage power
139	: $(SYSTEM_ADD_ONS_DRIVERS_POWER) ;
140AddNewDriversToPackage sensor
141	: $(SYSTEM_ADD_ONS_DRIVERS_SENSOR) ;
142AddNewDriversToPackage network :
143	usb_ecm
144	virtio_net
145	;
146AddNewDriversToPackage input :
147	i2c_elan
148	virtio_input
149	;
150AddNewDriversToPackage display :
151#	display_adapter@x86
152	;
153AddNewDriversToPackage audio hmulti :
154#	virtio_sound
155	;
156
157# legacy drivers
158AddDriversToPackage :
159	console
160	dprintf
161	null
162	<driver>tty
163	usb_modeswitch
164	zero
165	;
166AddDriversToPackage audio hmulti :
167	$(SYSTEM_ADD_ONS_DRIVERS_AUDIO) ;
168AddDriversToPackage audio old :
169	$(SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD) ;
170AddDriversToPackage bluetooth h2 :
171	$(SYSTEM_ADD_ONS_DRIVERS_BT_H2) ;
172AddDriversToPackage midi :
173	$(SYSTEM_ADD_ONS_DRIVERS_MIDI) ;
174AddDriversToPackage bus :
175	usb_raw
176	;
177AddDriversToPackage disk virtual :
178	nbd
179	;
180AddDriversToPackage dvb :
181	cx23882
182	;
183AddDriversToPackage graphics
184	: $(SYSTEM_ADD_ONS_DRIVERS_GRAPHICS) ;
185AddDriversToPackage input :
186	ps2_hid
187	usb_hid
188	wacom
189	;
190AddDriversToPackage misc :
191	<driver>poke
192	<driver>mem
193	;
194AddDriversToPackage net
195	: $(SYSTEM_ADD_ONS_DRIVERS_NET) ;
196AddDriversToPackage ports :
197	pc_serial
198	usb_serial
199	;
200
201# kernel
202AddFilesToPackage : <revisioned>kernel_$(TARGET_ARCH) ;
203
204# libs
205AddLibrariesToPackage lib
206	: [ HaikuImageGetSystemLibs ] [ HaikuImageGetPrivateSystemLibs ] ;
207
208# libnetwork.so replaces quite a few libraries
209if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) = 1 {
210	local libNetworkAliases = libsocket.so libbind.so libnet.so ;
211	local lib ;
212	for lib in $(libNetworkAliases) {
213		AddSymlinkToPackage lib : libnetwork.so : $(lib) ;
214	}
215
216	AddSymlinkToPackage lib : libbnetapi.so : libnetapi.so ;
217}
218
219
220# trusted keys
221SEARCH on haiku-2019.pub = [ FDirName $(HAIKU_TOP) data trust_db ] ;
222AddFilesToPackage data trust_db : haiku-2019.pub ;
223
224# servers
225AddFilesToPackage servers : $(SYSTEM_SERVERS) ;
226
227# apps
228AddFilesToPackage :
229	runtime_loader
230	Deskbar
231	Tracker
232	;
233AddFilesToPackage bin :
234	$(SYSTEM_BIN)
235	consoled
236	;
237AddFilesToPackage apps
238	: $(SYSTEM_APPS) ;
239AddFilesToPackage preferences
240	: $(SYSTEM_PREFERENCES) ;
241AddFilesToPackage demos
242	: $(SYSTEM_DEMOS) ;
243
244SEARCH on install-wifi-firmwares.sh = [ FDirName $(HAIKU_TOP) data bin ] ;
245AddFilesToPackage bin : install-wifi-firmwares.sh ;
246
247AddSymlinkToPackage bin : trash : untrash ;
248AddSymlinkToPackage bin : less : more ;
249
250# scripts and data files
251local bootScripts = PostInstallScript SetupEnvironment ;
252SEARCH on $(bootScripts) = [ FDirName $(HAIKU_TOP) data system boot ] ;
253AddFilesToPackage boot : $(bootScripts) ;
254
255local launchScripts = <data!launch>system ;
256SEARCH on $(launchScripts) = [ FDirName $(HAIKU_TOP) data launch ] ;
257AddFilesToPackage data launch : $(launchScripts) ;
258
259local userLaunchScripts = <data!launch>user ;
260SEARCH on $(userLaunchScripts) = [ FDirName $(HAIKU_TOP) data launch ] ;
261AddFilesToPackage data user_launch : $(userLaunchScripts) ;
262
263# first login scripts
264local firstLoginFiles = default_deskbar_items.sh ;
265firstLoginFiles = $(firstLoginFiles:G=first-login) ;
266SEARCH on $(firstLoginFiles)
267	= [ FDirName $(HAIKU_TOP) data system boot first_login ] ;
268AddFilesToPackage boot first-login : $(firstLoginFiles) ;
269
270# artwork and sounds
271local logoArtwork =
272	$(HAIKU_INCLUDE_TRADEMARKS)"HAIKU logo - white on blue - big.png"
273	$(HAIKU_INCLUDE_TRADEMARKS)"HAIKU logo - white on blue - normal.png" ;
274SEARCH on $(logoArtwork) = [ FDirName $(HAIKU_TOP) data artwork ] ;
275AddFilesToPackage data artwork : $(logoArtwork) ;
276
277# Mail spell check dictionaries
278local spellFiles = words geekspeak ;
279spellFiles = $(spellFiles:G=spell) ;
280SEARCH on $(spellFiles) = [ FDirName $(HAIKU_TOP) src apps mail ] ;
281AddFilesToPackage data spell_check word_dictionary : $(spellFiles) ;
282
283local fortuneFiles = [ Glob $(HAIKU_TOP)/data/system/data/fortunes
284	: [a-zA-Z0-9]* ] ;
285fortuneFiles = $(fortuneFiles:G=data!fortunes) ;
286AddFilesToPackage data fortunes : $(fortuneFiles) ;
287
288local fontDir = [ FDirName $(HAIKU_TOP) data system data fonts ] ;
289local psFonts = [ Glob $(fontDir)/psfonts : *.afm *.pfb ] ;
290AddFilesToPackage data fonts psfonts : $(psFonts) ;
291
292# keymaps
293AddFilesToPackage data Keymaps : $(HAIKU_KEYMAP_FILES) ;
294local keymapAlias ;
295for keymapAlias in $(HAIKU_KEYMAP_ALIASES) {
296	local aliasedTo = [ on $(keymapAlias) return $(HAIKU_KEYMAP_FILE) ] ;
297	AddSymlinkToPackage data Keymaps : $(aliasedTo:BSM) : $(keymapAlias:BSM) ;
298}
299
300# keyboard layouts
301AddFilesToPackage data KeyboardLayouts
302	: $(HAIKU_KEYBOARD_LAYOUT_FILES) ;
303AddFilesToPackage data KeyboardLayouts Apple\ Aluminum
304	: $(HAIKU_APPLE_ALUMINUM_KEYBOARD_LAYOUT_FILES) ;
305AddFilesToPackage data KeyboardLayouts ThinkPad
306	: $(HAIKU_THINKPAD_KEYBOARD_LAYOUT_FILES) ;
307
308# terminal themes
309local terminalThemes = [ Glob $(HAIKU_TOP)/data/system/data/terminal_themes : "[a-zA-Z0-9 ]*" ] ;
310AddFilesToPackage data Terminal Themes : $(terminalThemes) ;
311
312# boot module links
313AddBootModuleSymlinksToPackage
314	acpi@x86,x86_64,arm64
315	ahci
316	ata
317	ata_adapter
318	bfs
319	dpc
320	efi_gpt
321	generic_ide_pci
322	ide_isa@x86
323	isa@x86,x86_64
324	intel
325	it8211
326	legacy_sata
327	mmc
328	mmc_disk
329	nvme_disk
330	openpic@ppc
331	packagefs
332	pci
333	<pci>designware@riscv64
334	<pci>ecam@riscv64,arm,arm64
335	<pci>x86@x86,x86_64
336	fdt@riscv64,arm,arm64
337	scsi
338	scsi_cd
339	scsi_disk
340	scsi_periph
341	silicon_image_3112
342	highpoint_ide_pci
343	sdhci
344	usb
345	usb_disk
346	<usb>ehci
347	<usb>ohci
348	<usb>uhci
349	<usb>xhci
350	virtio
351	virtio_block
352	virtio_mmio@riscv64,arm,arm64
353	virtio_pci
354	virtio_scsi
355;
356
357# add-ons
358AddFilesToPackage add-ons accelerants :
359	$(SYSTEM_ADD_ONS_ACCELERANTS) ;
360AddFilesToPackage add-ons locale catalogs :
361	$(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ;
362
363AddFilesToPackage add-ons mail_daemon inbound_protocols :
364	POP3
365	IMAP
366	;
367AddFilesToPackage add-ons mail_daemon outbound_protocols :
368	SMTP
369	;
370AddFilesToPackage add-ons mail_daemon inbound_filters :
371	MatchHeader
372	SpamFilter
373	NewMailNotification
374	;
375AddFilesToPackage add-ons mail_daemon outbound_filters :
376	Fortune
377	;
378
379AddFilesToPackage add-ons media : $(SYSTEM_ADD_ONS_MEDIA) ;
380
381AddFilesToPackage add-ons Network\ Settings :
382	IPv4Interface
383	IPv6Interface
384	DNSClientService
385	Hostname
386	FTPService
387	SSHService
388	TelnetService
389	;
390
391AddFilesToPackage add-ons Tracker :
392	FileType
393	Mark\ as…
394	Mark\ as\ Read
395	Open\ Target\ Folder
396	Open\ Terminal
397	ZipOMatic
398	;
399AddSymlinkToPackage add-ons Tracker
400	: /boot/system/preferences/Backgrounds : Background ;
401AddSymlinkToPackage add-ons Tracker
402	: /boot/system/apps/TextSearch : TextSearch ;
403AddSymlinkToPackage add-ons Tracker
404	: /boot/system/apps/DiskUsage : DiskUsage ;
405
406AddFilesToPackage add-ons input_server devices :
407	<input>keyboard
408	<input>mouse
409	<input>tablet
410	<input>virtio
411	<input>wacom
412	;
413AddFilesToPackage add-ons input_server filters :
414	padblocker
415	screen_saver
416	shortcut_catcher
417	switch_workspace
418	;
419AddDirectoryToPackage add-ons input_server methods ;
420
421AddFilesToPackage add-ons kernel network :
422	<net>notifications
423	stack
424	;
425AddFilesToPackage add-ons kernel network :
426	dns_resolver
427	;
428AddFilesToPackage add-ons kernel network devices
429	: $(SYSTEM_NETWORK_DEVICES) ;
430AddFilesToPackage add-ons kernel network datalink_protocols
431	: $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ;
432AddFilesToPackage add-ons kernel network ppp
433	: $(SYSTEM_NETWORK_PPP) ;
434AddFilesToPackage add-ons kernel network protocols
435	: $(SYSTEM_NETWORK_PROTOCOLS) ;
436
437AddFilesToPackage add-ons Screen\ Savers : $(SYSTEM_ADD_ONS_SCREENSAVERS) ;
438
439AddFilesToPackage add-ons disk_systems :
440	<disk_system>fat
441	<disk_system>intel
442	<disk_system>gpt
443	<disk_system>bfs
444	<disk_system>ntfs
445	;
446
447# Kernel bluetooth stack
448AddFilesToPackage add-ons kernel bluetooth : $(SYSTEM_BT_STACK) ;
449
450# the MIME DB
451CopyDirectoryToPackage data : <mimedb>mime_db : : : isTarget ;
452
453# directory attributes
454AddDirectoryToPackage apps : system-apps.rdef ;
455AddDirectoryToPackage preferences : system-preferences.rdef ;
456
457# Deskbar menu symlinks
458
459local linkTarget ;
460
461# "Applications" links
462AddDirectoryToPackage data deskbar menu Applications
463	: deskbar-applications.rdef ;
464for linkTarget in $(DESKBAR_APPLICATIONS) {
465	AddSymlinkToPackage data deskbar menu Applications
466		: ../../../../apps/$(linkTarget) : $(linkTarget) ;
467}
468
469# "Desktop applets" links
470AddDirectoryToPackage data deskbar menu Desktop\ applets
471	: deskbar-applets.rdef ;
472for linkTarget in $(DESKBAR_DESKTOP_APPLETS) {
473	AddSymlinkToPackage data deskbar menu Desktop\ applets
474		: ../../../../apps/$(linkTarget) : $(linkTarget) ;
475}
476
477# "Preferences" links
478AddDirectoryToPackage data deskbar menu Preferences
479	: deskbar-preferences.rdef ;
480DESKBAR_PREFERENCES = $(SYSTEM_PREFERENCES:B) ;
481for linkTarget in $(DESKBAR_PREFERENCES) {
482	AddSymlinkToPackage data deskbar menu Preferences
483		: ../../../../preferences/$(linkTarget)
484		: $(linkTarget) ;
485}
486
487# "Demo" links
488AddDirectoryToPackage data deskbar menu Demos
489	: deskbar-demos.rdef ;
490for linkTarget in $(SYSTEM_DEMOS) {
491	AddSymlinkToPackage data deskbar menu Demos
492		: ../../../../demos/$(linkTarget) : $(linkTarget) ;
493}
494
495# Deskbar menu entries file
496AddFilesToPackage data deskbar : <deskbar>menu_entries ;
497
498# licenses
499CopyDirectoryToPackage data
500	: [ FDirName $(HAIKU_TOP) data system data licenses ]
501	: licenses ;
502
503# netresolv support files
504CopyDirectoryToPackage data
505	: [ FDirName $(HAIKU_TOP) data system data network ]
506	: network ;
507
508# Copy documentation as per DiskUsage's license requirement.
509CopyDirectoryToPackage documentation
510	: [ FDirName $(HAIKU_TOP) docs apps diskusage ]
511	: diskusage ;
512
513
514# empty directory
515AddDirectoryToPackage data empty ;
516
517
518BuildHaikuPackage $(haikuPackage) : haiku ;
519