⛏️ index : haiku.git

# This file defines the content of the regular Haiku image.

# import everything from the minimum image
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images definitions minimum ] ;

SEARCH on [ FGristFiles userguide quicktour welcome ]
	= [ FDirName $(HAIKU_TOP) data bin ] ;
SYSTEM_BIN += userguide quicktour welcome ;

SYSTEM_BIN += [ FFilterByBuildFeatures
	cddb_lookup
	clipboard
	CortexAddOnHost
	dpms
	FirstBootPrompt
	<bin>i2c@x86,x86_64
	installsound
	mail
	mail2mbox
	mbox2mail
	media_client
	mount_nfs
	pidof
	recover
	screenshot
	setcontrollook
	setdecor
	spamdbm
	translate
	WindowShade
] ;

SYSTEM_APPS += [ FFilterByBuildFeatures
	ActivityMonitor
	AutoRaise
	CodyCam
	GLInfo@mesa
	HaikuDepot
	Icon-O-Matic@expat
	LaunchBox
	LegacyPackageInstaller
	Magnify
	Mail
	MediaConverter
	MediaPlayer
	MidiPlayer
	People
	PoorMan
	PowerStatus
	RemoteDesktop
	Screenshot
	SerialConnect
	SoftwareUpdater
	SoundRecorder
] ;

DESKBAR_APPLICATIONS +=
	ActivityMonitor
	CodyCam
	HaikuDepot
	Icon-O-Matic
	Magnify
	Mail
	MediaConverter
	MediaPlayer
	MidiPlayer
	People
	PoorMan
	SerialConnect
	SoftwareUpdater
	SoundRecorder
;

DESKBAR_DESKTOP_APPLETS +=
	AutoRaise
	LaunchBox
	PowerStatus
;

SYSTEM_PREFERENCES += [ FFilterByBuildFeatures
	Bluetooth
	DataTranslations
	E-mail
	Media
	Printers
	Repositories
	ScreenSaver
	Sounds
] ;

SYSTEM_DEMOS += [ FFilterByBuildFeatures
	Chart
	Clock
	Cortex@expat
	FontDemo
	GLTeapot@mesa
	$(HAIKU_INCLUDE_TRADEMARKS)Haiku3d@mesa
	Mandelbrot
	OverlayImage
	Pairs
	PatchBay
	Playground
	Pulse
	Sudoku
] ;


rule HaikuImageGetSystemLibs
{
	return
		# libs with special grist
		[ MultiArchDefaultGristFiles libroot.so : revisioned ]
		[ Libstdc++ForImage ]
		# libs with standard grist
		[ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
			libalm.so
			libbe.so
			libbsd.so
			libbnetapi.so
			libbluetooth.so
			libdebug.so
			libdebugger.so@primary
			libdevice.so
			libgame.so
			libglut.so@mesa
			libgnu.so
			libmail.so
			libmedia.so
			libmidi.so
			libmidi2.so
			libnetwork.so
			libpackage.so
			libscreensaver.so
			libtextencoding.so
			libtracker.so
			libtranslation.so
		] ]
		;
}


rule HaikuImageGetPrivateSystemLibs
{
	return [ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
		libalm.so
		libpackage-add-on-libsolv.so
		libroot-addon-icu.so
	] ] ;
}


SYSTEM_SERVERS += [ FFilterByBuildFeatures
	mail_daemon
	media_addon_server
	media_server
	midi_server
	nfs4_idmapper_server
	bluetooth_server
	print_server
	print_addon_server
] ;

# Bluetooth stack + drivers
SYSTEM_NETWORK_PROTOCOLS +=
#	l2cap
;
SYSTEM_BT_STACK =
	hci
	btCoreData
;
SYSTEM_ADD_ONS_DRIVERS_BT_H2 +=
	h2generic
;

SYSTEM_ADD_ONS_ACCELERANTS += [ FFilterByBuildFeatures
	x86,x86_64 @{
		ati.accelerant
		intel_810.accelerant
		intel_extreme.accelerant
		matrox.accelerant
		nvidia.accelerant
		radeon.accelerant
		radeon_hd.accelerant
		via.accelerant
	}@ # x86,x86_64
	x86 @{
		3dfx.accelerant
		neomagic.accelerant
		s3.accelerant
	}@ # x86
	virtio_gpu.accelerant
] ;

SYSTEM_ADD_ONS_TRANSLATORS += [ FFilterByBuildFeatures
	AVIFTranslator@libavif
	BMPTranslator
	GIFTranslator
	HVIFTranslator
	ICOTranslator
	ICNSTranslator@libicns
	JPEGTranslator@jpeg	JPEG2000Translator@jasper
	PCXTranslator
	PNGTranslator@libpng
	PPMTranslator
	PSDTranslator
	RAWTranslator
	RTFTranslator
	SGITranslator
	TGATranslator
	TIFFTranslator@tiff
	WebPTranslator@libwebp
	WonderBrushTranslator
] ;

SYSTEM_ADD_ONS_MEDIA += [ FFilterByBuildFeatures
	cortex_audioadapter.media_addon
	cortex_flanger.media_addon
	cortex_logging_consumer.media_addon
	dvb.media_addon@x86
	equalizer.media_addon
	hmulti_audio.media_addon
	#legacy.media_addon
	mixer.media_addon
	opensound.media_addon
	tone_producer_demo.media_addon
	usb_webcam.media_addon
	video_producer_demo.media_addon
	video_window_demo.media_addon
	vst_host.media_addon
] ;

SYSTEM_ADD_ONS_MEDIA_PLUGINS += [ FFilterByBuildFeatures
	ape_reader@x86
	ffmpeg@ffmpeg
	http_streamer
	raw_decoder
] ;

SYSTEM_ADD_ONS_PRINT += [ FFilterByBuildFeatures
	Canon\ LIPS3\ Compatible
	Canon\ LIPS4\ Compatible
	Gutenprint@gutenprint
	PCL5\ Compatible
	PCL6\ Compatible
	PS\ Compatible
	Preview
] ;

SYSTEM_ADD_ONS_PRINT_TRANSPORT +=
	HP\ JetDirect
	IPP
	LPR
	# Parallel\ Port
	Print\ To\ File
	Serial\ Port
	USB\ Port
;

SYSTEM_ADD_ONS_SCREENSAVERS += [ FFilterByBuildFeatures
	Butterfly
	DebugNow
	Flurry@mesa
	GLife@mesa
	Gravity@mesa
	Icons
	IFS
	Leaves
	Message
	Nebula
	Shelf
	Spider
] ;

SYSTEM_ADD_ONS_DRIVERS_AUDIO +=
	auich
	auvia
	echo3g
	emuxki
	es1370
	hda
	ice1712
	usb_audio
	sis7018
;

SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD +=
	#cmedia
;

SYSTEM_ADD_ONS_DRIVERS_GRAPHICS += [ FFilterByBuildFeatures
	x86,x86_64 @{
		ati
		intel_810
		intel_extreme
		matrox
		nvidia
		radeon
		radeon_hd
		via
	}@ # x86,x86_64
	x86 @{
		3dfx
		neomagic
		s3
	}@ # x86
] ;

SYSTEM_ADD_ONS_DRIVERS_MIDI +=
	emuxki
	ice1712
	usb_midi
;

SYSTEM_ADD_ONS_DRIVERS_NET += [ FFilterByBuildFeatures
	# WLAN drivers
	x86,x86_64,riscv64 @{
		aironetwifi
		atheroswifi
		broadcom43xx
		iaxwifi200
		idualwifi7260
		iprowifi2100
		iprowifi2200
		iprowifi3945
		iprowifi4965
		marvell88w8363
		marvell88w8335
		ralinkwifi
		realtekwifi
	}@ # x86,x86_64,riscv64
] ;

SYSTEM_ADD_ONS_DRIVERS_POWER += [ FFilterByBuildFeatures
	acpi_battery@x86,x86_64
] ;

SYSTEM_ADD_ONS_FILE_SYSTEMS +=
	cdda
	#googlefs
	nfs
	nfs4
	ufs2
;

# Mailbox folders and symlink
AddDirectoryToHaikuImage home mail : home-mail.rdef ;
AddDirectoryToHaikuImage home mail draft : home-mail-draft.rdef ;
AddDirectoryToHaikuImage home mail in : home-mail-in.rdef ;
AddDirectoryToHaikuImage home mail out : home-mail-out.rdef ;
AddDirectoryToHaikuImage home mail queries : home-mail-queries.rdef ;
AddDirectoryToHaikuImage home mail sent : home-mail-sent.rdef ;
AddDirectoryToHaikuImage home mail spam : home-mail-spam.rdef ;

# Add boot launch directory
AddDirectoryToHaikuImage home config settings boot launch ;

# Add mail provider infos.
AddFilesToHaikuImage home config settings Mail ProviderInfo :
	$(HAIKU_PROVIDER_INFOS) ;

# Add Tracker New Templates
AddDirectoryToHaikuImage home config settings Tracker "Tracker New Templates"
	:  tracker-new-templates.rdef ;
AddFilesToHaikuImage home config settings Tracker "Tracker New Templates"
	:
	"<tracker-new-templates>C++ header"
	"<tracker-new-templates>C++ source"
	"<tracker-new-templates>Makefile"
	"<tracker-new-templates>Person"
	"<tracker-new-templates>text file"
;

# printers
AddDirectoryToHaikuImage home config settings printers Preview
	: home-config-settings-printers-preview.rdef ;
AddDirectoryToHaikuImage home config settings printers "Save as PDF"
	: home-config-settings-printers-save-as-pdf.rdef ;

# padblocker
AddDirectoryToHaikuImage home config settings touchpad ;

# shortcuts defaults
local shortcutsSettingsFile = <settings>shortcuts_settings ;
SEARCH on $(shortcutsSettingsFile) = [ FDirName $(HAIKU_TOP) data settings ] ;
AddFilesToHaikuImage home config settings : $(shortcutsSettingsFile) ;