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 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 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 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 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 119 }@ # x86,x86_64 120 x86 @{ 121 3dfx.accelerant ati.accelerant matrox.accelerant neomagic.accelerant 122 nvidia.accelerant intel_810.accelerant intel_extreme.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 177 }@ # x86,x86_64 178 x86 @{ 179 ati 3dfx intel_810 intel_extreme 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 usb firewire@x86 acpi@x86 208 virtio 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 : haiku.hpkg ; 219AddPackageFilesToHaikuImage system : haiku_loader.hpkg ; 220 221 222AddSymlinkToHaikuImage home Desktop : /boot/home : Home ; 223 224# Mailbox folders and symlink 225AddDirectoryToHaikuImage home mail draft ; 226AddDirectoryToHaikuImage home mail in ; 227AddDirectoryToHaikuImage home mail out ; 228 229# global settings when a package is installed in ~/config 230AddDirectoryToHaikuImage home config settings global ; 231 232 233# scripts and data files 234local userBootScripts = UserBootscript UserSetupEnvironment.sample ; 235SEARCH on $(userBootScripts) = [ FDirName $(HAIKU_TOP) data config boot ] ; 236AddFilesToHaikuImage home config settings boot : $(userBootScripts) ; 237 238# Add boot launch directory 239AddDirectoryToHaikuImage home config settings boot launch ; 240 241# Add mail provider infos. 242AddFilesToHaikuImage home config settings Mail ProviderInfo : 243 $(HAIKU_PROVIDER_INFOS) ; 244 245# Add Tracker New Templates 246AddFilesToHaikuImage home config settings Tracker "Tracker New Templates" 247 : 248 "<tracker-new-templates>C++ header" 249 "<tracker-new-templates>C++ source" 250 "<tracker-new-templates>makefile" 251 "<tracker-new-templates>text file" 252; 253 254local etcDir = [ FDirName $(HAIKU_TOP) data etc ] ; 255local etcFiles = inputrc profile ; 256etcFiles = $(etcFiles:G=etc) ; 257SEARCH on $(etcFiles) = $(etcDir) ; 258etcFiles += <etc>termcap <etc>sysless <etc>sysless.in ; 259AddFilesToHaikuImage common settings etc : $(etcFiles) ; 260 261local profileFiles = [ Glob $(etcDir)/profile.d : *.sh ] ; 262profileFiles = $(profileFiles:G=profile-d) ; 263AddDirectoryToHaikuImage common settings etc profile.d ; 264AddFilesToHaikuImage common settings etc profile.d : $(profileFiles) ; 265 266#local bashCompletionFiles = [ Glob $(etcDir)/bash_completion.d : * ] ; 267#local bashCompletionHelperFiles 268# = [ Glob $(etcDir)/bash_completion.d/helpers : * ] ; 269#bashCompletionFiles = $(bashCompletionFiles:G=bash-completion) ; 270#bashCompletionHelperFiles = $(bashCompletionHelperFiles:G=bash-completion-hlp) ; 271#AddDirectoryToHaikuImage common etc bash_completion.d ; 272#AddDirectoryToHaikuImage common etc bash_completion.d helpers ; 273#AddFilesToHaikuImage common etc bash_completion.d : $(bashCompletionFiles) ; 274#AddFilesToHaikuImage common etc bash_completion.d helpers 275# : $(bashCompletionHelperFiles) ; 276 277local driverSettingsFiles = <driver-settings>kernel ; 278SEARCH on $(driverSettingsFiles) 279 = [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ; 280AddFilesToHaikuImage home config settings kernel drivers 281 : $(driverSettingsFiles) ; 282 283local networkSettingsFiles = <network-settings>services ; 284SEARCH on $(networkSettingsFiles) 285 = [ FDirName $(HAIKU_TOP) data settings network ] ; 286AddFilesToHaikuImage common settings network : $(networkSettingsFiles) ; 287 288# fresh install indicator file for the post install scripts 289SEARCH on <post-install>fresh_install 290 = [ FDirName $(HAIKU_TOP) data common settings ] ; 291AddFilesToHaikuImage common settings : <post-install>fresh_install ; 292 293# decorators 294AddDirectoryToHaikuImage home config non-packaged add-ons decorators ; 295#AddFilesToHaikuImage home config add-ons decorators : ; 296 297# create directories that will remain empty 298AddDirectoryToHaikuImage common cache tmp ; 299AddDirectoryToHaikuImage common non-packaged ; 300AddDirectoryToHaikuImage common var empty ; 301AddDirectoryToHaikuImage common var log ; 302AddDirectoryToHaikuImage home Desktop ; 303AddDirectoryToHaikuImage home mail ; 304 305AddDirectoryToHaikuImage home config non-packaged bin ; 306AddDirectoryToHaikuImage home config non-packaged lib ; 307AddDirectoryToHaikuImage home config non-packaged add-ons kernel drivers bin ; 308AddDirectoryToHaikuImage home config non-packaged add-ons kernel drivers dev ; 309AddDirectoryToHaikuImage home config non-packaged add-ons input_server devices ; 310AddDirectoryToHaikuImage home config non-packaged add-ons input_server filters ; 311AddDirectoryToHaikuImage home config non-packaged add-ons input_server methods ; 312AddDirectoryToHaikuImage home config non-packaged add-ons media plugins ; 313AddDirectoryToHaikuImage home config non-packaged add-ons Tracker ; 314AddDirectoryToHaikuImage home config non-packaged add-ons Print ; 315AddDirectoryToHaikuImage home config non-packaged add-ons Screen\ Savers ; 316AddDirectoryToHaikuImage home config non-packaged add-ons Translators ; 317 318# printers 319AddDirectoryToHaikuImage home config settings printers Preview 320 : home-config-settings-printers-preview.rdef ; 321AddDirectoryToHaikuImage home config settings printers "Save as PDF" 322 : home-config-settings-printers-save-as-pdf.rdef ; 323 324# dvb channel settings 325CopyDirectoryToHaikuImage home config settings Media 326 : [ FDirName $(HAIKU_TOP) data settings media dvb ] 327 : dvb : -x Jamfile ; 328 329# repository config files 330local repository ; 331for repository in $(HAIKU_REPOSITORIES) { 332 AddFilesToHaikuImage common settings package-repositories 333 : [ on $(repository) return $(HAIKU_REPOSITORY_CONFIG_FILE) ] 334 : $(repository:G=) ; 335} 336 337 338include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageCommon ] ; 339