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 FirstBootPrompt fmt fold 16 fortune frcode ftp ftpd funzip fwcontrol 17 gawk gdb@x86 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 setdecor setmime settype 35 setversion setvolume seq sha1sum sha256sum shar shred shuf shutdown sleep 36 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 ShowImage SoundRecorder 53 StyledEdit Terminal TextSearch TV WebWatch Workspaces 54] ; 55SYSTEM_PREFERENCES = [ FFilterByBuildFeatures 56 Appearance Backgrounds CPUFrequency 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 libGL.so@x86 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 JPEGTranslator JPEG2000Translator 129 PCXTranslator PNGTranslator PPMTranslator 130 RAWTranslator RTFTranslator SGITranslator STXTTranslator TGATranslator 131 TIFFTranslator WebPTranslator WonderBrushTranslator ICNSTranslator 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_64 190 191 etherpci pegasus sis900 usb_davicom usb_asix usb_ecm wb840 192 193 # WLAN drivers 194 x86 @{ 195 aironetwifi atheroswifi broadcom43xx 196 iprowifi2100 iprowifi2200 iprowifi3945 197 iprowifi4965 marvell88w8363 marvell88w8335 198 ralinkwifi wavelanwifi 199 }@ # x86 200 201 # WWAN drivers 202 #usb_beceemwmx@gpl 203] ; 204SYSTEM_ADD_ONS_DRIVERS_POWER = [ FFilterByBuildFeatures acpi_button@x86 ] ; 205SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures 206 ata@ata pci ps2@x86,x86_64 isa@x86,x86_64 207 ide@ide scsi config_manager agp_gart@x86,x86_64 usb firewire@x86 acpi@x86 208 virtio random 209] ; 210SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs bindfs btrfs cdda exfat ext2 fat iso9660 nfs 211 nfs4 attribute_overlay write_overlay ntfs packagefs reiserfs@x86 udf 212 googlefs ; 213 214 215# build the haiku system packages and add them 216include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuPackages ] ; 217 218AddPackageFilesToHaikuImage system : 219 haiku.hpkg 220 haiku_$(TARGET_PACKAGING_ARCHS[2-]).hpkg 221 ; 222AddPackageFilesToHaikuImage system : haiku_loader.hpkg ; 223 224 225AddSymlinkToHaikuImage home Desktop : /boot/home : Home ; 226 227# Mailbox folders and symlink 228AddDirectoryToHaikuImage home mail draft ; 229AddDirectoryToHaikuImage home mail in ; 230AddDirectoryToHaikuImage home mail out ; 231 232# global settings when a package is installed in ~/config 233AddDirectoryToHaikuImage home config settings global ; 234 235 236# scripts and data files 237local userBootScripts = UserBootscript UserSetupEnvironment.sample ; 238SEARCH on $(userBootScripts) = [ FDirName $(HAIKU_TOP) data config boot ] ; 239AddFilesToHaikuImage home config settings boot : $(userBootScripts) ; 240 241# Add boot launch directory 242AddDirectoryToHaikuImage home config settings boot launch ; 243 244# Add mail provider infos. 245AddFilesToHaikuImage home config settings Mail ProviderInfo : 246 $(HAIKU_PROVIDER_INFOS) ; 247 248# Add Tracker New Templates 249AddFilesToHaikuImage home config settings Tracker "Tracker New Templates" 250 : 251 "<tracker-new-templates>C++ header" 252 "<tracker-new-templates>C++ source" 253 "<tracker-new-templates>makefile" 254 "<tracker-new-templates>text file" 255; 256 257local etcDir = [ FDirName $(HAIKU_TOP) data etc ] ; 258local etcFiles = inputrc profile ; 259etcFiles = $(etcFiles:G=etc) ; 260SEARCH on $(etcFiles) = $(etcDir) ; 261etcFiles += <etc>termcap <etc>sysless <etc>sysless.in ; 262AddFilesToHaikuImage common settings etc : $(etcFiles) ; 263 264local profileFiles = [ Glob $(etcDir)/profile.d : *.sh ] ; 265profileFiles = $(profileFiles:G=profile-d) ; 266AddDirectoryToHaikuImage common settings etc profile.d ; 267AddFilesToHaikuImage common settings etc profile.d : $(profileFiles) ; 268 269#local bashCompletionFiles = [ Glob $(etcDir)/bash_completion.d : * ] ; 270#local bashCompletionHelperFiles 271# = [ Glob $(etcDir)/bash_completion.d/helpers : * ] ; 272#bashCompletionFiles = $(bashCompletionFiles:G=bash-completion) ; 273#bashCompletionHelperFiles = $(bashCompletionHelperFiles:G=bash-completion-hlp) ; 274#AddDirectoryToHaikuImage common etc bash_completion.d ; 275#AddDirectoryToHaikuImage common etc bash_completion.d helpers ; 276#AddFilesToHaikuImage common etc bash_completion.d : $(bashCompletionFiles) ; 277#AddFilesToHaikuImage common etc bash_completion.d helpers 278# : $(bashCompletionHelperFiles) ; 279 280local driverSettingsFiles = <driver-settings>kernel ; 281SEARCH on $(driverSettingsFiles) 282 = [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ; 283AddFilesToHaikuImage home config settings kernel drivers 284 : $(driverSettingsFiles) ; 285 286local networkSettingsFiles = <network-settings>services ; 287SEARCH on $(networkSettingsFiles) 288 = [ FDirName $(HAIKU_TOP) data settings network ] ; 289AddFilesToHaikuImage common settings network : $(networkSettingsFiles) ; 290 291# fresh install indicator file for the post install scripts 292SEARCH on <post-install>fresh_install 293 = [ FDirName $(HAIKU_TOP) data common settings ] ; 294AddFilesToHaikuImage common settings : <post-install>fresh_install ; 295 296# decorators 297AddDirectoryToHaikuImage home config non-packaged add-ons decorators ; 298#AddFilesToHaikuImage home config add-ons decorators : ; 299 300# create directories that will remain empty 301AddDirectoryToHaikuImage common cache tmp ; 302AddDirectoryToHaikuImage common non-packaged ; 303AddDirectoryToHaikuImage common var empty ; 304AddDirectoryToHaikuImage common var log ; 305AddDirectoryToHaikuImage home Desktop ; 306AddDirectoryToHaikuImage home mail ; 307AddDirectoryToHaikuImage home config packages ; 308AddDirectoryToHaikuImage home config non-packaged bin ; 309AddDirectoryToHaikuImage home config non-packaged lib ; 310AddDirectoryToHaikuImage home config non-packaged add-ons kernel drivers bin ; 311AddDirectoryToHaikuImage home config non-packaged add-ons kernel drivers dev ; 312AddDirectoryToHaikuImage home config non-packaged add-ons input_server devices ; 313AddDirectoryToHaikuImage home config non-packaged add-ons input_server filters ; 314AddDirectoryToHaikuImage home config non-packaged add-ons input_server methods ; 315AddDirectoryToHaikuImage home config non-packaged add-ons media plugins ; 316AddDirectoryToHaikuImage home config non-packaged add-ons Tracker ; 317AddDirectoryToHaikuImage home config non-packaged add-ons Print ; 318AddDirectoryToHaikuImage home config non-packaged add-ons Screen\ Savers ; 319AddDirectoryToHaikuImage home config non-packaged add-ons Translators ; 320 321# printers 322AddDirectoryToHaikuImage home config settings printers Preview 323 : home-config-settings-printers-preview.rdef ; 324AddDirectoryToHaikuImage home config settings printers "Save as PDF" 325 : home-config-settings-printers-save-as-pdf.rdef ; 326 327# dvb channel settings 328CopyDirectoryToHaikuImage home config settings Media 329 : [ FDirName $(HAIKU_TOP) data settings media dvb ] 330 : dvb : -x Jamfile ; 331 332# repository config files 333local repository ; 334for repository in $(HAIKU_REPOSITORIES) { 335 AddFilesToHaikuImage common settings package-repositories 336 : [ on $(repository) return $(HAIKU_REPOSITORY_CONFIG_FILE) ] 337 : $(repository:G=) ; 338} 339 340 341include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageCommon ] ; 342