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