1# This file defines what ends up on the Haiku image (respectively in the Haiku 2# installation directory) and it executes the rules building the image 3# (respectively installing the files in the installation directory). 4 5 6SYSTEM_BIN = [ FFilterByBuildFeatures 7 "[" 8 addattr alert arp 9 base64 basename bash bc beep bfsinfo 10 cal cat catattr checkfs checkitout chgrp chmod chop chown chroot cksum clear 11 clockconfig cmp collectcatkeys comm compress copyattr CortexAddOnHost cp 12 csplit cut date dc dd desklink df diff diff3 dircolors dirname 13 diskimage draggers driveinfo dstcheck du dumpcatalog 14 echo eject env error expand expr 15 factor false fdinfo ffm filepanel find finddir findpaths FirstBootPrompt fmt 16 fold fortune frcode fstrim ftp ftpd funzip fwcontrol@x86 17 gawk gdb@x86 getarch getlimits groupadd groupdel groupmod groups gzip gzexe 18 hd head hey hostname 19 id ident ifconfig <bin>install installsound iroster isvolume 20 ideinfo@ide idestatus@ide 21 join kernel_debugger keymap keystore kill 22 less lessecho lesskey link linkcatkeys listarea listattr listimage listdev 23 listport listres listsem listusb ln locale locate logger login logname ls 24 lsindex 25 mail2mbox makebootable mbox2mail md5sum merge message mimeset mkdos mkdir 26 mkfifo mkfs mkindex mktemp modifiers mount mount_nfs mountvolume mv 27 netcat netstat nl nohup notify nproc 28 od open 29 package package_repo passwd paste patch pathchk pc ping ping6 pkgman play 30 playfile playsound playwav pr prio printenv printf profile ps ptx pwd 31 query quit 32 rc readlink reindex release renice rlog rm rmattr rmindex rmdir roster 33 route 34 safemode screen_blanker screenmode screenshot sdiff setarch setdecor setmime 35 settype setversion setvolume seq sha1sum sha256sum shar shred shuf shutdown 36 sleep sort spamdbm split stat strace stty su sum sync sysinfo 37 tac tail tcpdump tcptester tee telnet telnetd test timeout top touch 38 tr traceroute translate trash true truncate tsort tty 39 uname unchop unexpand unmount uniq unlink unshar unzip unzipsfx 40 <bin>updatedb uptime urlwrapper useradd userdel uudecode uuencode 41 vdir version vmstat 42 waitfor watch wc wget whoami writembr@x86 xargs xres 43 yes 44 zdiff zforce zgrep zip zipcloak <bin>zipgrep zipnote zipsplit zmore znew 45] ; 46 47SYSTEM_APPS = [ FFilterByBuildFeatures 48 AboutSystem ActivityMonitor BootManager@x86 CDPlayer CharacterMap 49 CodyCam Debugger DeskCalc Devices DiskProbe DiskUsage DriveSetup 50 Expander GLInfo@x86 HaikuDepot Icon-O-Matic Installer LaunchBox Magnify Mail 51 MediaConverter MediaPlayer MidiPlayer NetworkStatus PackageInstaller People 52 PoorMan PowerStatus ProcessController Screenshot SerialConnect ShowImage 53 SoundRecorder StyledEdit Terminal TextSearch TV WebWatch Workspaces 54] ; 55SYSTEM_PREFERENCES = [ FFilterByBuildFeatures 56 Appearance Backgrounds DataTranslations 57 <preference>Deskbar E-mail FileTypes Keyboard Keymap Locale Media 58 Mouse Network Notifications Printers Screen ScreenSaver 59 Shortcuts Sounds Time Touchpad <preference>Tracker VirtualMemory 60] ; 61SYSTEM_DEMOS = [ FFilterByBuildFeatures 62 BSnow Chart Clock Cortex FontDemo GLTeapot@x86 63 $(HAIKU_INCLUDE_TRADEMARKS)Haiku3d@x86 Mandelbrot OverlayImage Pairs 64 PatchBay Playground Pulse Sudoku 65] ; 66 67 68rule HaikuImageGetSystemLibs 69{ 70 return 71 # libs with special grist 72 [ MultiArchDefaultGristFiles libroot.so : revisioned ] 73 $(HAIKU_SHARED_LIBSTDC++_$(TARGET_PACKAGING_ARCH)) 74 $(HAIKU_SHARED_LIBSUPC++_$(TARGET_PACKAGING_ARCH)) 75 # libs with standard grist 76 [ MultiArchDefaultGristFiles [ FFilterByBuildFeatures 77 libbe.so libbsd.so libbnetapi.so 78 libdebug.so libdevice.so 79 libgame.so libglut.so@x86 80 libgnu.so libmail.so libmedia.so libmidi.so libmidi2.so 81 libnetwork.so 82 libpackage.so 83 libscreensaver.so 84 libtextencoding.so libtiff.so libtracker.so libtranslation.so 85 ] ] 86 ; 87} 88 89 90rule HaikuImageGetPrivateSystemLibs 91{ 92 return [ MultiArchDefaultGristFiles [ FFilterByBuildFeatures 93 libalm.so 94 libfluidsynth.so 95 libilmimf.so 96 libpackage-add-on-libsolv.so 97 libroot-addon-icu.so 98 ] ] ; 99} 100 101 102SYSTEM_SERVERS = [ FFilterByBuildFeatures 103 app_server cddb_daemon debug_server dns_resolver_server input_server 104 keystore_server mail_daemon media_addon_server media_server midi_server 105 mount_server net_server nfs4_idmapper_server notification_server 106 package_daemon power_daemon print_server print_addon_server registrar 107 syslog_daemon 108] ; 109 110SYSTEM_NETWORK_DEVICES = ethernet loopback ; 111SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame 112 ipv6_datagram ; 113#SYSTEM_NETWORK_PPP = ipcp modem pap pppoe ; 114SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix icmp6 ipv6 ; 115 116SYSTEM_ADD_ONS_ACCELERANTS = [ FFilterByBuildFeatures 117 x86,x86_64 @{ 118 vesa.accelerant intel_extreme.accelerant 119 }@ # x86,x86_64 120 x86 @{ 121 3dfx.accelerant ati.accelerant matrox.accelerant neomagic.accelerant 122 nvidia.accelerant intel_810.accelerant 123 radeon.accelerant radeon_hd.accelerant s3.accelerant 124 #via.accelerant vmware.accelerant 125 }@ # x86 126] ; 127SYSTEM_ADD_ONS_TRANSLATORS = BMPTranslator EXRTranslator GIFTranslator 128 HVIFTranslator ICOTranslator ICNSTranslator JPEGTranslator 129 JPEG2000Translator PCXTranslator PNGTranslator PPMTranslator PSDTranslator 130 RAWTranslator RTFTranslator SGITranslator STXTTranslator TGATranslator 131 TIFFTranslator WebPTranslator WonderBrushTranslator 132; 133SYSTEM_ADD_ONS_LOCALE_CATALOGS = <catalog-addon>plaintext ; 134SYSTEM_ADD_ONS_MEDIA = [ FFilterByBuildFeatures 135 cortex_audioadapter.media_addon 136 cortex_flanger.media_addon 137 dvb.media_addon@x86 138 hmulti_audio.media_addon 139 mixer.media_addon 140 opensound.media_addon 141 tone_producer_demo.media_addon 142 usb_webcam.media_addon 143 video_producer_demo.media_addon 144 video_window_demo.media_addon 145 firewire_dv.media_addon@x86 146 #legacy.media_addon 147 equalizer.media_addon 148 vst_host.media_addon 149] ; 150SYSTEM_ADD_ONS_MEDIA_PLUGINS = [ FFilterByBuildFeatures 151 ffmpeg@ffmpeg raw_decoder 152] ; 153SYSTEM_ADD_ONS_PRINT = 154 Canon\ LIPS3\ Compatible 155 Canon\ LIPS4\ Compatible 156 Gutenprint 157 PCL5\ Compatible 158 PCL6\ Compatible 159 PDF\ Writer 160 PS\ Compatible 161 Preview 162; 163SYSTEM_ADD_ONS_PRINT_TRANSPORT = HP\ JetDirect IPP LPR 164 # Parallel\ Port 165 Print\ To\ File Serial\ Port USB\ Port 166; 167SYSTEM_ADD_ONS_SCREENSAVERS = [ FFilterByBuildFeatures 168 Butterfly DebugNow Flurry@x86 169 GLife@x86 $(HAIKU_INCLUDE_TRADEMARKS)Haiku Icons IFS Leaves 170 Message Spider Gravity@x86 171] ; 172SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ice1712 sis7018 ; 173SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ; #cmedia usb_audio ; 174SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = [ FFilterByBuildFeatures 175 x86,x86_64 @{ 176 vesa intel_extreme 177 }@ # x86,x86_64 178 x86 @{ 179 ati 3dfx intel_810 matrox neomagic nvidia radeon radeon_hd 180 s3 #via vmware 181 }@ # x86 182] ; 183SYSTEM_ADD_ONS_DRIVERS_MIDI = emuxki ice1712 usb_midi ; 184SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures 185 x86,x86_64 @{ 186 3com atheros813x ar81xx attansic_l1 attansic_l2 broadcom440x 187 broadcom570x dec21xxx ipro100 ipro1000 jmicron2x0 marvell_yukon nforce 188 pcnet rtl8139 rtl81xx sis19x syskonnect via_rhine vt612x 189 }@ # x86,x86_64 190 191 etherpci pegasus sis900 usb_davicom usb_asix usb_ecm wb840 192 193 # WLAN drivers 194 x86,x86_64 @{ 195 aironetwifi atheroswifi broadcom43xx 196 iprowifi2100 iprowifi2200 iprowifi3945 197 iprowifi4965 marvell88w8363 marvell88w8335 198 ralinkwifi wavelanwifi 199 }@ # x86,x86_64 200 201 # WWAN drivers 202 #usb_beceemwmx@gpl 203] ; 204SYSTEM_ADD_ONS_DRIVERS_POWER = [ FFilterByBuildFeatures 205 acpi_battery@x86,x86_64 acpi_button@x86,x86_64 206] ; 207SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures 208 ata@ata pci ps2@x86,x86_64 isa@x86,x86_64 209 ide@ide scsi config_manager agp_gart@x86,x86_64 usb firewire@x86 210 acpi@x86,x86_64 virtio random 211] ; 212SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs bindfs btrfs cdda exfat ext2 fat iso9660 nfs 213 nfs4 attribute_overlay write_overlay ntfs packagefs reiserfs@x86 udf 214 googlefs ; 215 216 217# build the haiku system packages and add them 218include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuPackages ] ; 219 220AddPackageFilesToHaikuImage system : 221 haiku_loader.hpkg 222 haiku.hpkg 223 haiku_$(TARGET_PACKAGING_ARCHS[2-]).hpkg 224 : 225 nameFromMetaInfo 226 ; 227 228 229AddSymlinkToHaikuImage home Desktop : /boot/home : Home ; 230 231# Mailbox folders and symlink 232AddDirectoryToHaikuImage home mail draft ; 233AddDirectoryToHaikuImage home mail in ; 234AddDirectoryToHaikuImage home mail out ; 235 236# global settings when a package is installed in ~/config 237AddDirectoryToHaikuImage home config settings global ; 238 239 240# scripts and data files 241local userBootScripts = UserBootscript UserSetupEnvironment.sample ; 242SEARCH on $(userBootScripts) = [ FDirName $(HAIKU_TOP) data config boot ] ; 243AddFilesToHaikuImage home config settings boot : $(userBootScripts) ; 244 245# Add boot launch directory 246AddDirectoryToHaikuImage home config settings boot launch ; 247 248# Add mail provider infos. 249AddFilesToHaikuImage home config settings Mail ProviderInfo : 250 $(HAIKU_PROVIDER_INFOS) ; 251 252# Add Tracker New Templates 253AddFilesToHaikuImage home config settings Tracker "Tracker New Templates" 254 : 255 "<tracker-new-templates>C++ header" 256 "<tracker-new-templates>C++ source" 257 "<tracker-new-templates>makefile" 258 "<tracker-new-templates>text file" 259; 260 261local etcDir = [ FDirName $(HAIKU_TOP) data etc ] ; 262local etcFiles = inputrc profile ; 263etcFiles = $(etcFiles:G=etc) ; 264SEARCH on $(etcFiles) = $(etcDir) ; 265etcFiles += <etc>termcap <etc>sysless <etc>sysless.in ; 266AddFilesToHaikuImage system settings etc : $(etcFiles) ; 267 268local profileFiles = [ Glob $(etcDir)/profile.d : *.sh ] ; 269profileFiles = $(profileFiles:G=profile-d) ; 270AddDirectoryToHaikuImage system settings etc profile.d ; 271AddFilesToHaikuImage system settings etc profile.d : $(profileFiles) ; 272 273#local bashCompletionFiles = [ Glob $(etcDir)/bash_completion.d : * ] ; 274#local bashCompletionHelperFiles 275# = [ Glob $(etcDir)/bash_completion.d/helpers : * ] ; 276#bashCompletionFiles = $(bashCompletionFiles:G=bash-completion) ; 277#bashCompletionHelperFiles = $(bashCompletionHelperFiles:G=bash-completion-hlp) ; 278#AddDirectoryToHaikuImage system etc bash_completion.d ; 279#AddDirectoryToHaikuImage system etc bash_completion.d helpers ; 280#AddFilesToHaikuImage system etc bash_completion.d : $(bashCompletionFiles) ; 281#AddFilesToHaikuImage system etc bash_completion.d helpers 282# : $(bashCompletionHelperFiles) ; 283 284local driverSettingsFiles = <driver-settings>kernel ; 285SEARCH on $(driverSettingsFiles) 286 = [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ; 287AddFilesToHaikuImage home config settings kernel drivers 288 : $(driverSettingsFiles) ; 289 290local networkSettingsFiles = <network-settings>services ; 291SEARCH on $(networkSettingsFiles) 292 = [ FDirName $(HAIKU_TOP) data settings network ] ; 293AddFilesToHaikuImage system settings network : $(networkSettingsFiles) ; 294 295# fresh install indicator file for the post install scripts 296SEARCH on <post-install>fresh_install 297 = [ FDirName $(HAIKU_TOP) data system settings ] ; 298AddFilesToHaikuImage system settings : <post-install>fresh_install ; 299 300# decorators 301AddDirectoryToHaikuImage home config non-packaged add-ons decorators ; 302#AddFilesToHaikuImage home config add-ons decorators : ; 303 304# printers 305AddDirectoryToHaikuImage home config settings printers Preview 306 : home-config-settings-printers-preview.rdef ; 307AddDirectoryToHaikuImage home config settings printers "Save as PDF" 308 : home-config-settings-printers-save-as-pdf.rdef ; 309 310# dvb channel settings 311CopyDirectoryToHaikuImage home config settings Media 312 : [ FDirName $(HAIKU_TOP) data settings media dvb ] 313 : dvb : -x Jamfile ; 314 315# repository config and cache files 316local repository ; 317for repository in $(HAIKU_REPOSITORIES) <repository>haiku { 318 local config = [ on $(repository) return $(HAIKU_REPOSITORY_CONFIG_FILE) ] ; 319 local cache = [ on $(repository) return $(HAIKU_REPOSITORY_CACHE_FILE) ] ; 320 if $(HAIKU_UPDATE_ALL_PACKAGES) { 321 HAIKU_INCLUDE_IN_IMAGE on $(config) $(cache) = 1 ; 322 } 323 AddFilesToHaikuImage system settings package-repositories 324 : $(config) : $(repository:G=) ; 325 AddFilesToHaikuImage system cache package-repositories 326 : $(cache) : $(repository:G=) ; 327} 328 329 330include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageCommon ] ; 331