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 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 passwd paste patch pathchk pc ping ping6 play playfile playsound playwav 30 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 shar shred shuf shutdown sleep sort 36 spamdbm split stat strace stty su sum sync sysinfo 37 tac tail tcpdump tcptester tee telnet telnetd test timeout top touch 38 tput 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 CharacterMap 49 CodyCam DeskCalc Devices DiskProbe DiskUsage DriveSetup CDPlayer Debugger 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] ; 66SYSTEM_LIBS = [ FFilterByBuildFeatures 67 libbe.so libbsd.so libbnetapi.so 68 libdebug.so libdevice.so 69 libgame.so libGL.so@x86 libglut.so@x86 70 libgnu.so libmail.so libmedia.so libmidi.so libmidi2.so 71 libnetwork.so 72 <revisioned>libroot.so libroot-addon-icu.so 73 libscreensaver.so 74 libtextencoding.so libtiff.so libtracker.so libtranslation.so 75 $(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) 76] ; 77PRIVATE_SYSTEM_LIBS = [ FFilterByBuildFeatures 78 $(HAIKU_JPEG_CURRENT_LIB) 79 $(HAIKU_LIBPNG_CURRENT_LIB) 80 $(HAIKU_ZLIB_CURRENT_LIB) 81 $(HAIKU_FREETYPE_CURRENT_LIB) 82 libalm.so 83 libfluidsynth.so 84 libilmimf.so 85] ; 86SYSTEM_SERVERS = [ FFilterByBuildFeatures 87 app_server cddb_daemon debug_server input_server mail_daemon 88 media_addon_server media_server midi_server mount_server net_server 89 notification_server power_daemon print_server print_addon_server registrar 90 syslog_daemon 91] ; 92 93SYSTEM_NETWORK_DEVICES = ethernet loopback ; 94SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame 95 ipv6_datagram ; 96#SYSTEM_NETWORK_PPP = ipcp modem pap pppoe ; 97SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix icmp6 ipv6 ; 98 99SYSTEM_ADD_ONS_ACCELERANTS = [ FFilterByBuildFeatures 100 x86 @{ 101 3dfx.accelerant ati.accelerant matrox.accelerant neomagic.accelerant 102 nvidia.accelerant intel_810.accelerant intel_extreme.accelerant 103 radeon.accelerant radeon_hd.accelerant s3.accelerant vesa.accelerant 104 #via.accelerant vmware.accelerant 105 }@ # x86 106] ; 107SYSTEM_ADD_ONS_TRANSLATORS = BMPTranslator EXRTranslator GIFTranslator 108 HVIFTranslator ICOTranslator JPEGTranslator JPEG2000Translator 109 PCXTranslator PNGTranslator PPMTranslator 110 RAWTranslator RTFTranslator SGITranslator STXTTranslator TGATranslator 111 TIFFTranslator WebPTranslator WonderBrushTranslator ICNSTranslator 112; 113SYSTEM_ADD_ONS_LOCALE_CATALOGS = <catalog-addon>plaintext ; 114SYSTEM_ADD_ONS_MEDIA = [ FFilterByBuildFeatures 115 cortex_audioadapter.media_addon 116 cortex_flanger.media_addon 117 dvb.media_addon@x86 118 hmulti_audio.media_addon 119 mixer.media_addon 120 opensound.media_addon 121 tone_producer_demo.media_addon 122 usb_webcam.media_addon 123 video_producer_demo.media_addon 124 video_window_demo.media_addon 125 firewire_dv.media_addon 126 #legacy.media_addon 127 equalizer.media_addon 128 vst_host.media_addon 129] ; 130SYSTEM_ADD_ONS_MEDIA_PLUGINS = [ FFilterByBuildFeatures 131 ffmpeg@ffmpeg raw_decoder 132] ; 133SYSTEM_ADD_ONS_PRINT = 134 Canon\ LIPS3\ Compatible 135 Canon\ LIPS4\ Compatible 136 Gutenprint 137 PCL5\ Compatible 138 PCL6\ Compatible 139 PDF\ Writer 140 PS\ Compatible 141 Preview 142; 143SYSTEM_ADD_ONS_PRINT_TRANSPORT = HP\ JetDirect IPP LPR 144 # Parallel\ Port 145 Print\ To\ File Serial\ Port USB\ Port 146; 147SYSTEM_ADD_ONS_SCREENSAVERS = [ FFilterByBuildFeatures 148 Butterfly DebugNow Flurry@x86 149 GLife@x86 $(HAIKU_INCLUDE_TRADEMARKS)Haiku Icons IFS Leaves 150 Message Spider Gravity@x86 151] ; 152SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ice1712 sis7018 ; 153SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ; #cmedia usb_audio ; 154SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = [ FFilterByBuildFeatures 155 x86 @{ 156 ati 3dfx intel_810 intel_extreme matrox neomagic nvidia radeon radeon_hd 157 s3 vesa #via vmware 158 }@ # x86 159] ; 160SYSTEM_ADD_ONS_DRIVERS_MIDI = emuxki ice1712 usb_midi ; 161SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures 162 x86 @{ 163 3com atheros813x ar81xx attansic_l1 attansic_l2 broadcom440x 164 broadcom570x dec21xxx ipro100 ipro1000 jmicron2x0 marvell_yukon nforce 165 pcnet rtl8139 rtl81xx sis19x syskonnect via_rhine vt612x 166 }@ # x86 167 168 etherpci pegasus sis900 usb_davicom usb_asix usb_ecm wb840 169 170 # WLAN drivers 171 x86 @{ 172 aironetwifi atheroswifi broadcom43xx 173 iprowifi2100 iprowifi2200 iprowifi3945 174 iprowifi4965 marvell88w8363 marvell88w8335 175 ralinkwifi wavelanwifi 176 }@ # x86 177 178 # WWAN drivers 179 #usb_beceemwmx@gpl 180] ; 181SYSTEM_ADD_ONS_DRIVERS_POWER = [ FFilterByBuildFeatures acpi_button@x86 ] ; 182SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures 183 ata@ata pci ps2@x86 isa@x86 184 ide@ide scsi config_manager agp_gart usb firewire acpi@x86 185] ; 186SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs btrfs cdda exfat ext2 fat iso9660 nfs 187 attribute_overlay write_overlay ntfs reiserfs udf googlefs ; 188 189# wifi firmware 190for driver in $(SYSTEM_ADD_ONS_DRIVERS_NET) { 191 local package = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_PACKAGE) ] ; 192 local archive = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_ARCHIVE) ] ; 193 local extract = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_DO_EXTRACT) ] ; 194 if $(archive) { 195 AddWifiFirmwareToHaikuImage $(driver) : $(package) : $(archive) 196 : $(extract) ; 197 } 198 local packages = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_PACKAGES) ] ; 199 local archives = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_ARCHIVES) ] ; 200 for archive in $(archives) { 201 AddWifiFirmwareToHaikuImage $(driver) : $(packages[1]) : $(archive) 202 : $(extract) ; 203 packages = $(packages[2-]) ; 204 } 205} 206 207 208# modules 209AddFilesToHaikuImage system add-ons kernel bus_managers 210 : $(SYSTEM_ADD_ONS_BUS_MANAGERS) ; 211AddFilesToHaikuImage system add-ons kernel busses agp_gart 212 : <agp_gart>intel@x86 ; 213 214if $(HAIKU_ATA_STACK) = 1 { 215 AddFilesToHaikuImage system add-ons kernel busses ata 216 : generic_ide_pci it8211 legacy_sata silicon_image_3112 ide_isa@x86 ; 217} else { 218 AddFilesToHaikuImage system add-ons kernel busses ide 219 : generic_ide_pci it8211 legacy_sata silicon_image_3112 ide_isa@x86 ; 220} 221 222AddFilesToHaikuImage system add-ons kernel busses scsi 223 : ahci ; 224AddFilesToHaikuImage system add-ons kernel busses usb 225 : <usb>uhci <usb>ohci <usb>ehci ; 226AddFilesToHaikuImage system add-ons kernel console : vga_text ; 227AddFilesToHaikuImage system add-ons kernel debugger 228 : <kdebug>demangle <kdebug>disasm@x86 <kdebug>hangman 229 <kdebug>invalidate_on_exit <kdebug>usb_keyboard <kdebug>qrencode 230 <kdebug>run_on_exit ; 231AddFilesToHaikuImage system add-ons kernel file_systems 232 : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ; 233AddFilesToHaikuImage system add-ons kernel generic 234 : ata_adapter@ata bios@x86 dpc ide_adapter@ide 235 locked_pool mpu401 scsi_periph <module>tty ; #cpuidle@x86 ; 236AddFilesToHaikuImage system add-ons kernel partitioning_systems 237 : amiga_rdb apple efi_gpt intel session ; 238AddFilesToHaikuImage system add-ons kernel interrupt_controllers 239 : openpic@ppc ; 240 241if $(TARGET_ARCH) = x86 { 242 AddFilesToHaikuImage system add-ons kernel cpu : generic_x86 ; 243} 244 245# drivers 246AddNewDriversToHaikuImage disk scsi : scsi_cd scsi_disk ; 247AddNewDriversToHaikuImage power : enhanced_speedstep@x86 ; 248AddNewDriversToHaikuImage power : acpi_battery@x86 ; 249#AddNewDriversToHaikuImage power : x86_cpuidle@x86 ; 250#AddNewDriversToHaikuImage display : display_controls@x86 ; 251 252# legacy drivers 253AddDriversToHaikuImage : console dprintf null 254 random <driver>tty zero ; 255AddDriversToHaikuImage audio hmulti : $(SYSTEM_ADD_ONS_DRIVERS_AUDIO) ; 256AddDriversToHaikuImage audio old : $(SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD) ; 257AddDriversToHaikuImage midi : $(SYSTEM_ADD_ONS_DRIVERS_MIDI) ; 258AddDriversToHaikuImage bus : usb_raw fw_raw ; 259AddDriversToHaikuImage disk floppy : pc_floppy@x86 ; 260AddDriversToHaikuImage disk usb : usb_disk ; 261AddDriversToHaikuImage disk usb : usb_floppy ; 262AddDriversToHaikuImage printer usb : usb_printer ; 263AddDriversToHaikuImage disk virtual : nbd ; 264AddDriversToHaikuImage dvb : cx23882 ; 265AddDriversToHaikuImage graphics : $(SYSTEM_ADD_ONS_DRIVERS_GRAPHICS) ; 266AddDriversToHaikuImage input : ps2_hid usb_hid wacom ; 267AddDriversToHaikuImage misc : <driver>poke <driver>mem ; 268AddDriversToHaikuImage net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ; 269AddDriversToHaikuImage ports : usb_serial ; 270AddDriversToHaikuImage power : $(SYSTEM_ADD_ONS_DRIVERS_POWER) ; 271 272# kernel 273AddFilesToHaikuImage system : <revisioned>kernel_$(TARGET_ARCH) ; 274 275# libs 276AddLibrariesToHaikuHybridImage system lib 277 : $(SYSTEM_LIBS) $(PRIVATE_SYSTEM_LIBS) ; 278 279# libnetwork.so replaces quite a few libraries 280SYSTEM_LIBS_LIBNETWORK_ALIASES 281 = libsocket.so libbind.so libnet.so ; 282 283if $(HAIKU_GCC_VERSION[1]) = 2 { 284 local lib ; 285 for lib in $(SYSTEM_LIBS_LIBNETWORK_ALIASES) { 286 AddSymlinkToHaikuHybridImage system lib : libnetwork.so : $(lib) 287 : : true ; 288 } 289 290 AddSymlinkToHaikuHybridImage system lib : libbnetapi.so : libnetapi.so 291 : : true ; 292} 293 294 295# libGL.so has GLU (like BeOS) built-in 296SYSTEM_LIBS_LIBGL_ALIASES = libGLU.so ; 297 298if $(TARGET_ARCH) = x86 { 299 local lib ; 300 for lib in $(SYSTEM_LIBS_LIBGL_ALIASES) { 301 AddSymlinkToHaikuHybridImage system lib : libGL.so : $(lib) : : true ; 302 } 303} 304 305# libbe.so now includes what used to be in liblocale.so 306# TODO: Remove this once all optional packages have been rebuilt (i.e. after 307# next release)! 308SYSTEM_LIBS_LIBBE_ALIASES = liblocale.so ; 309if $(TARGET_ARCH) = x86 { 310 local lib ; 311 for lib in $(SYSTEM_LIBS_LIBBE_ALIASES) { 312 AddSymlinkToHaikuHybridImage system lib : libbe.so : $(lib) : : true ; 313 } 314} 315 316SYSTEM_LIBS_ALIASES = 317 $(SYSTEM_LIBS_LIBNETWORK_ALIASES) 318 libnetapi.so 319 $(SYSTEM_LIBS_LIBGL_ALIASES) 320 $(SYSTEM_LIBS_LIBBE_ALIASES) 321; 322 323OPTIONAL_LIBS_ALIASES = 324 libfreetype.so 325 libjpeg.so 326 libpng.so 327 libz.so 328; 329 330# libfreetype.so links to the current freetype lib 331AddSymlinkToHaikuHybridImage system lib : $(HAIKU_FREETYPE_CURRENT_LIB:BS) 332 : $(HAIKU_FREETYPE_CURRENT_LINK) : : true ; 333AddSymlinkToHaikuHybridImage system lib : $(HAIKU_FREETYPE_CURRENT_LINK) 334 : libfreetype.so : : true ; 335 336# libpng.so links to the current libpng 337AddSymlinkToHaikuHybridImage system lib : $(HAIKU_LIBPNG_CURRENT_LIB:BS) 338 : $(HAIKU_LIBPNG_CURRENT_LINK) : : true ; 339AddSymlinkToHaikuHybridImage system lib : $(HAIKU_LIBPNG_CURRENT_LINK) 340 : libpng.so : : true ; 341 342# libjpeg.so links to the current libjpeg 343AddSymlinkToHaikuHybridImage system lib : $(HAIKU_JPEG_CURRENT_LIB:BS) 344 : $(HAIKU_JPEG_CURRENT_LINK) : : true ; 345AddSymlinkToHaikuHybridImage system lib : $(HAIKU_JPEG_CURRENT_LINK) 346 : libjpeg.so : : true ; 347 348# zlib.so links to the current zlib 349AddSymlinkToHaikuHybridImage system lib : $(HAIKU_ZLIB_CURRENT_LIB:BS) 350 : $(HAIKU_ZLIB_CURRENT_LINK) : : true ; 351AddSymlinkToHaikuHybridImage system lib : $(HAIKU_ZLIB_CURRENT_LINK) 352 : libz.so : : true ; 353 354# servers 355AddFilesToHaikuImage system servers : $(SYSTEM_SERVERS) ; 356 357# apps 358AddFilesToHaikuImage system : runtime_loader Deskbar Tracker ; 359AddFilesToHaikuImage system bin : $(SYSTEM_BIN) consoled ; 360AddFilesToHaikuImage system apps : $(SYSTEM_APPS) ; 361AddFilesToHaikuImage system preferences : $(SYSTEM_PREFERENCES) ; 362AddFilesToHaikuImage system demos : $(SYSTEM_DEMOS) ; 363 364SEARCH on which = [ FDirName $(HAIKU_TOP) data bin ] ; 365AddFilesToHaikuImage system bin : which ; 366SEARCH on installoptionalpackage = [ FDirName $(HAIKU_TOP) data bin ] ; 367AddFilesToHaikuImage system bin : installoptionalpackage ; 368SEARCH on install-wifi-firmwares.sh = [ FDirName $(HAIKU_TOP) data bin ] ; 369AddFilesToHaikuImage system bin : install-wifi-firmwares.sh ; 370SEARCH on welcome = [ FDirName $(HAIKU_TOP) data bin ] ; 371AddFilesToHaikuImage system bin : welcome ; 372AddSymlinkToHaikuImage home Desktop 373 : /boot/system/bin/welcome : Welcome ; 374SEARCH on userguide = [ FDirName $(HAIKU_TOP) data bin ] ; 375AddFilesToHaikuImage system bin : userguide ; 376AddSymlinkToHaikuImage home Desktop 377 : /boot/system/bin/userguide : User\ Guide ; 378 379# Add the files to be used by installoptionalpackage. 380AddDirectoryToHaikuImage common data optional-packages ; 381local optional-pkg-files = BuildFeatures OptionalPackageDependencies 382 OptionalPackages OptionalLibPackages ; 383for name in $(optional-pkg-files) { 384 local file = [ FDirName $(HAIKU_TOP) build jam $(name) ] ; 385 AddFilesToHaikuImage common data optional-packages : $(file) ; 386} 387AddInstalledPackagesFileToHaikuImage ; 388 389AddSymlinkToHaikuImage system bin : bash : sh ; 390AddSymlinkToHaikuImage system bin : trash : untrash ; 391 392AddSymlinkToHaikuImage home Desktop : /boot/home : Home ; 393 394# Mailbox folders and symlink 395AddDirectoryToHaikuImage home mail draft ; 396AddDirectoryToHaikuImage home mail in ; 397AddDirectoryToHaikuImage home mail out ; 398 399AddSymlinkToHaikuImage home config : settings/deskbar : be ; 400# Deskbar Application links 401AddDirectoryToHaikuImage home config settings deskbar Applications ; 402DESKBAR_APPLICATIONS = ActivityMonitor CharacterMap CodyCam CDPlayer DeskCalc 403 Devices DiskProbe DriveSetup DiskUsage Expander Icon-O-Matic Installer 404 Magnify Mail MediaConverter MediaPlayer MidiPlayer People PoorMan 405 Screenshot SoundRecorder StyledEdit Terminal TV 406; 407local linkTarget ; 408for linkTarget in $(DESKBAR_APPLICATIONS) { 409 AddSymlinkToHaikuImage home config settings deskbar Applications 410 : /boot/system/apps/$(linkTarget) : $(linkTarget) ; 411} 412 413# Deskbar Desktop applets links 414AddDirectoryToHaikuImage home config settings deskbar Desktop\ applets ; 415DESKBAR_DESKTOP_APPLETS = LaunchBox NetworkStatus PowerStatus ProcessController 416 Workspaces 417; 418for linkTarget in $(DESKBAR_DESKTOP_APPLETS) { 419 AddSymlinkToHaikuImage home config settings deskbar Desktop\ applets 420 : /boot/system/apps/$(linkTarget) : $(linkTarget) ; 421} 422 423# Deskbar Preferences links 424AddDirectoryToHaikuImage home config settings deskbar Preferences ; 425DESKBAR_PREFERENCES = $(SYSTEM_PREFERENCES:B) ; 426for linkTarget in $(DESKBAR_PREFERENCES) { 427 AddSymlinkToHaikuImage home config settings deskbar Preferences 428 : /boot/system/preferences/$(linkTarget) 429 : $(linkTarget) ; 430} 431 432# Deskbar Demo links 433AddDirectoryToHaikuImage home config settings deskbar Demos ; 434for linkTarget in $(SYSTEM_DEMOS) { 435 AddSymlinkToHaikuImage home config settings deskbar Demos 436 : /boot/system/demos/$(linkTarget) : $(linkTarget) ; 437} 438 439AddSymlinkToHaikuImage system bin : less : more ; 440AddSymlinkToHaikuImage system bin : gzip : gunzip ; 441AddSymlinkToHaikuImage system bin : gzip : zcat ; 442AddSymlinkToHaikuImage system bin : zdiff : zcmp ; 443AddSymlinkToHaikuImage system bin : unzip : zipinfo ; 444AddSymlinkToHaikuImage system bin : gawk : awk ; 445 446 447# scripts and data files 448local bootScripts = Bootscript Bootscript.cd SetupEnvironment Netscript 449 InstallerInitScript InstallerFinishScript ; 450SEARCH on $(bootScripts) = [ FDirName $(HAIKU_TOP) data system boot ] ; 451AddFilesToHaikuImage system boot : $(bootScripts) ; 452 453local userBootScripts = UserBootscript UserSetupEnvironment.sample ; 454SEARCH on $(userBootScripts) = [ FDirName $(HAIKU_TOP) data config boot ] ; 455AddFilesToHaikuImage home config boot : $(userBootScripts) ; 456 457# Add boot launch directory 458AddDirectoryToHaikuImage home config boot launch ; 459 460local logoArtwork = 461 $(HAIKU_INCLUDE_TRADEMARKS)"HAIKU logo - white on blue - big.png" 462 $(HAIKU_INCLUDE_TRADEMARKS)"HAIKU logo - white on blue - normal.png" ; 463SEARCH on $(logoArtwork) = [ FDirName $(HAIKU_TOP) data artwork ] ; 464AddFilesToHaikuImage system data artwork : $(logoArtwork) ; 465 466AddDirectoryToHaikuImage system data sounds ; 467 468# Add mail provider infos. 469AddFilesToHaikuImage home config settings Mail ProviderInfo : 470 $(HAIKU_PROVIDER_INFOS) ; 471 472# Mail spell check dictionaries 473local spellFiles = words geekspeak ; 474spellFiles = $(spellFiles:G=spell) ; 475SEARCH on $(spellFiles) 476 = [ FDirName $(HAIKU_TOP) src apps mail ] ; 477AddFilesToHaikuImage system data spell_check word_dictionary : $(spellFiles) ; 478 479local etcDir = [ FDirName $(HAIKU_TOP) data etc ] ; 480local etcFiles = inputrc profile ; 481etcFiles = $(etcFiles:G=etc) ; 482SEARCH on $(etcFiles) = [ FDirName $(etcDir) ] ; 483etcFiles += <etc>termcap <etc>sysless <etc>sysless.in ; 484AddFilesToHaikuImage common etc : $(etcFiles) ; 485 486local profileFiles = [ Glob $(etcDir)/profile.d : *.sh ] ; 487profileFiles = $(profileFiles:G=profile-d) ; 488AddDirectoryToHaikuImage common etc profile.d ; 489AddFilesToHaikuImage common etc profile.d : $(profileFiles) ; 490 491#local bashCompletionFiles = [ Glob $(etcDir)/bash_completion.d : * ] ; 492#local bashCompletionHelperFiles 493# = [ Glob $(etcDir)/bash_completion.d/helpers : * ] ; 494#bashCompletionFiles = $(bashCompletionFiles:G=bash-completion) ; 495#bashCompletionHelperFiles = $(bashCompletionHelperFiles:G=bash-completion-hlp) ; 496#AddDirectoryToHaikuImage common etc bash_completion.d ; 497#AddDirectoryToHaikuImage common etc bash_completion.d helpers ; 498#AddFilesToHaikuImage common etc bash_completion.d : $(bashCompletionFiles) ; 499#AddFilesToHaikuImage common etc bash_completion.d helpers 500# : $(bashCompletionHelperFiles) ; 501 502local fortuneFiles = [ Glob $(HAIKU_TOP)/data/system/data/fortunes 503 : [a-zA-Z0-9]* ] ; 504fortuneFiles = $(fortuneFiles:G=data!fortunes) ; 505AddFilesToHaikuImage system data fortunes : $(fortuneFiles) ; 506 507local fontDir = [ FDirName $(HAIKU_TOP) data system data fonts ] ; 508local psFonts = [ Glob $(fontDir)/psfonts : *.afm *.pfb ] ; 509local ttFonts = [ Glob $(fontDir)/ttfonts : *.ttf ] ; 510AddFilesToHaikuImage system data fonts psfonts : $(psFonts) ; 511AddFilesToHaikuImage system data fonts ttfonts : $(ttFonts) ; 512 513local cannaDir = [ FDirName $(HAIKU_TOP) data system data Canna ] ; 514local cannaDefault = [ Glob $(cannaDir)/default : *.canna *.gz ] ; 515local cannaDic = [ Glob $(cannaDir)/dic : *.cbp ] ; 516local cannaDicCanna = [ Glob $(cannaDir)/dic/canna 517 : *.cld *.ctd *.cbd *.dir ] ; 518AddFilesToHaikuImage system data Canna default : $(cannaDefault) ; 519AddFilesToHaikuImage system data Canna dic : $(cannaDic) ; 520AddFilesToHaikuImage system data Canna dic canna : $(cannaDicCanna) ; 521AddDirectoryToHaikuImage system data Canna dic group ; 522AddDirectoryToHaikuImage system data Canna dic user ; 523 524local keymapFiles = [ Glob [ FDirName $(HAIKU_TOP) src data keymaps ] 525 : *.keymap ] ; 526keymapFiles = $(keymapFiles:BG=keymap) ; 527AddFilesToHaikuImage system data Keymaps : $(keymapFiles) ; 528AddSymlinkToHaikuImage system data Keymaps : Swedish : Finnish ; 529AddSymlinkToHaikuImage system data Keymaps : Slovene : Croatian ; 530AddSymlinkToHaikuImage system data Keymaps : US-International : Brazilian ; 531 532# Copy keyboard layout files to the image one-by-one. 533local keyboardLayoutsDir 534 = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ] ; 535local keyboardLayoutFiles = 536 "Generic 104-key" 537 "Generic 105-key International" 538 "Kinesis Advantage" 539 "Kinesis Ergo Elan International" 540 "TypeMatrix 2030" ; 541keyboardLayoutFiles = $(keyboardLayoutFiles:G=keyboard-layout) ; 542SEARCH on $(keyboardLayoutFiles) = $(keyboardLayoutsDir) ; 543AddFilesToHaikuImage system data KeyboardLayouts 544 : $(keyboardLayoutFiles) ; 545 546# Add Apple Aluminum keyboard layout files to the image in an Apple Aluminum 547# subdirectory. The subdirectory is turned into a submenu in the Layout menu 548# of the Keymap preference app. 549local appleAluminumDir 550 = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts 551 Apple\ Aluminum ] ; 552local appleAluminumFiles = 553 "Apple Aluminium Extended International" 554 "Apple Aluminium International" 555 "Apple Aluminum (US)" 556 "Apple Aluminum Extended (US)" ; 557appleAluminumFiles = $(appleAluminumFiles:G=keyboard-layout) ; 558SEARCH on $(appleAluminumFiles) = $(appleAluminumDir) ; 559AddFilesToHaikuImage system data KeyboardLayouts Apple\ Aluminum 560 : $(appleAluminumFiles) ; 561 562# Add ThinkPad keyboard layout files to the image in a ThinkPad 563# subdirectory. The subdirectory is turned into a submenu in the Layout menu 564# of the Keymap preference app. 565local thinkpadDir 566 = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ThinkPad ] ; 567local thinkPadFiles = 568 "ThinkPad (US)" 569 "ThinkPad International" 570 "ThinkPad T400s (US)" 571 "ThinkPad T400s International" 572 "ThinkPad X1 (US)" 573 "ThinkPad X1 International" 574 "ThinkPad X100e (US)" 575 "ThinkPad X100e International" ; 576thinkPadFiles = $(thinkPadFiles:G=keyboard-layout) ; 577SEARCH on $(thinkPadFiles) = $(thinkpadDir) ; 578AddFilesToHaikuImage system data KeyboardLayouts ThinkPad 579 : $(thinkPadFiles) ; 580 581local driverSettingsFiles = <driver-settings>kernel ; 582SEARCH on $(driverSettingsFiles) 583 = [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ; 584AddFilesToHaikuImage home config settings kernel drivers 585 : $(driverSettingsFiles) ; 586 587local networkSettingsFiles = <network-settings>services ; 588SEARCH on $(networkSettingsFiles) 589 = [ FDirName $(HAIKU_TOP) data settings network ] ; 590AddFilesToHaikuImage common settings network : $(networkSettingsFiles) ; 591 592# post install scripts and fresh install indicator file 593local postInstallFiles = add_catalog_entry_attributes.sh 594 default_deskbar_items.sh mime_update.sh ; 595postInstallFiles = $(postInstallFiles:G=post-install) ; 596SEARCH on $(postInstallFiles) 597 = [ FDirName $(HAIKU_TOP) data common boot post_install ] ; 598SEARCH on <post-install>fresh_install 599 = [ FDirName $(HAIKU_TOP) data common settings ] ; 600AddFilesToHaikuImage common boot post_install : $(postInstallFiles) ; 601AddFilesToHaikuImage common settings : <post-install>fresh_install ; 602 603# boot loader 604AddFilesToHaikuImage system : haiku_loader ; 605 606# boot module links 607AddBootModuleSymlinksToHaikuImage 608 acpi@x86 ata@ata pci isa@x86 config_manager dpc 609 ide@ide scsi usb 610 openpic@ppc 611 ata_adapter@ata ide_adapter@ide locked_pool scsi_periph 612 ahci generic_ide_pci it8211 legacy_sata silicon_image_3112 613 ide_isa@x86 614 <usb>uhci <usb>ohci <usb>ehci 615 scsi_cd scsi_disk usb_disk 616 efi_gpt 617 intel 618 bfs 619; 620 621# add-ons 622AddFilesToHaikuImage system add-ons accelerants 623 : $(SYSTEM_ADD_ONS_ACCELERANTS) ; 624 625# OpenGL renderers 626if $(TARGET_ARCH) = x86 { 627 if $(HAIKU_GCC_VERSION[1]) = 2 { 628 AddFilesToHaikuHybridImage system add-ons opengl 629 : Legacy\ Software\ Rasterizer : : true ; 630 } else { 631 AddFilesToHaikuHybridImage system add-ons opengl 632 : Software\ Rasterizer : : true ; 633 # Future Gallium3d 634 } 635} 636 637AddFilesToHaikuHybridImage system add-ons Translators 638 : $(SYSTEM_ADD_ONS_TRANSLATORS) : : true ; 639AddFilesToHaikuImage system add-ons locale catalogs 640 : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ; 641AddFilesToHaikuHybridImage system add-ons locale catalogs 642 : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) : : true ; 643AddFilesToHaikuImage system add-ons mail_daemon inbound_protocols : POP3 IMAP ; 644AddFilesToHaikuImage system add-ons mail_daemon outbound_protocols : SMTP ; 645AddFilesToHaikuImage system add-ons mail_daemon inbound_filters 646 : MatchHeader SpamFilter NewMailNotification ; 647AddFilesToHaikuImage system add-ons mail_daemon outbound_filters : Fortune ; 648AddFilesToHaikuImage system add-ons media : $(SYSTEM_ADD_ONS_MEDIA) ; 649AddFilesToHaikuImage system add-ons media plugins 650 : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ; 651AddFilesToHaikuImage system add-ons Tracker 652 : FileType-F Mark\ as��� Mark\ as\ Read-R Open\ Target\ Folder-O 653 Open\ Terminal-T ZipOMatic-Z ; 654AddSymlinkToHaikuImage system add-ons Tracker 655 : /boot/system/preferences/Backgrounds : Background-B ; 656AddSymlinkToHaikuImage system add-ons Tracker 657 : /boot/system/apps/TextSearch : TextSearch-G ; 658AddSymlinkToHaikuImage system add-ons Tracker 659 : /boot/system/apps/DiskUsage : DiskUsage-I ; 660AddFilesToHaikuImage system add-ons input_server devices 661 : <input>keyboard <input>mouse <input>tablet <input>wacom ; 662AddFilesToHaikuImage system add-ons input_server filters 663 : screen_saver shortcut_catcher ; 664AddFilesToHaikuImage system add-ons kernel network 665 : <net>notifications stack ; 666AddFilesToHaikuImage system add-ons kernel network devices 667 : $(SYSTEM_NETWORK_DEVICES) ; 668AddFilesToHaikuImage system add-ons kernel network datalink_protocols 669 : $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ; 670AddFilesToHaikuImage system add-ons kernel network ppp 671 : $(SYSTEM_NETWORK_PPP) ; 672AddFilesToHaikuImage system add-ons kernel network protocols 673 : $(SYSTEM_NETWORK_PROTOCOLS) ; 674AddFilesToHaikuImage system add-ons Print : $(SYSTEM_ADD_ONS_PRINT) ; 675AddFilesToHaikuImage system add-ons Print transport 676 : $(SYSTEM_ADD_ONS_PRINT_TRANSPORT) ; 677AddFilesToHaikuImage system add-ons Screen\ Savers 678 : $(SYSTEM_ADD_ONS_SCREENSAVERS) ; 679 680AddFilesToHaikuImage system add-ons disk_systems 681 : <disk_system>intel <disk_system>gpt <disk_system>bfs <disk_system>ntfs ; 682 683# decorators 684AddDirectoryToHaikuImage home config add-ons decorators ; 685#AddFilesToHaikuImage home config add-ons decorators : ; 686 687# create directories that will remain empty 688AddDirectoryToHaikuImage common bin ; 689AddDirectoryToHaikuImage common include ; 690AddDirectoryToHaikuImage common lib ; 691AddDirectoryToHaikuImage home Desktop ; 692AddDirectoryToHaikuImage home config bin ; 693AddDirectoryToHaikuImage home config lib ; 694AddDirectoryToHaikuImage home mail ; 695AddDirectoryToHaikuImage common var empty ; 696AddDirectoryToHaikuImage common var log ; 697AddDirectoryToHaikuImage common cache tmp ; 698 699AddDirectoryToHaikuImage home config add-ons kernel drivers bin ; 700AddDirectoryToHaikuImage home config add-ons kernel drivers dev ; 701AddDirectoryToHaikuImage home config add-ons input_server devices ; 702AddDirectoryToHaikuImage home config add-ons input_server filters ; 703AddDirectoryToHaikuImage home config add-ons input_server methods ; 704AddDirectoryToHaikuImage home config add-ons media plugins ; 705AddDirectoryToHaikuImage home config add-ons Tracker ; 706AddDirectoryToHaikuImage home config add-ons Print ; 707AddDirectoryToHaikuImage home config add-ons Screen\ Savers ; 708AddDirectoryToHaikuImage home config add-ons Translators ; 709AddDirectoryToHaikuImage system data synth ; 710AddDirectoryToHaikuImage system add-ons input_server methods ; 711 712# optional 713AddFilesToHaikuImage optional system add-ons input_server methods : canna ; 714 715# printers 716AddDirectoryToHaikuImage home config settings printers Preview 717 : home-config-settings-printers-preview.rdef ; 718AddDirectoryToHaikuImage home config settings printers "Save as PDF" 719 : home-config-settings-printers-save-as-pdf.rdef ; 720 721# PDF Writer enconding files 722CopyDirectoryToHaikuImage system data 723 : [ FDirName $(HAIKU_TOP) src add-ons print drivers pdf encoding ] 724 : "PDF Writer" : -x Jamfile ; 725 726# Gutenprint data files 727CopyDirectoryToHaikuImage system data 728 : [ FDirName $(HAIKU_TOP) src libs print libgutenprint src xml ] 729 : gutenprint : -x *.c -x Makefile.am -x Makefile.in ; 730 731# dvb channel settings 732CopyDirectoryToHaikuImage home config settings Media 733 : [ FDirName $(HAIKU_TOP) data settings media dvb ] 734 : dvb : -x Jamfile ; 735 736# licenses 737CopyDirectoryToHaikuImage system data 738 : [ FDirName $(HAIKU_TOP) data system data licenses ] 739 : licenses ; 740 741# Copy documentation as per DiskUsage's license requirement. 742CopyDirectoryToHaikuImage system documentation 743 : [ FDirName $(HAIKU_TOP) docs apps diskusage ] 744 : diskusage ; 745 746# Copy documentation as per PDFlib Lite's license requirement. 747CopyDirectoryToHaikuImage system documentation 748 : [ FDirName $(HAIKU_TOP) src libs pdflib doc ] 749 : pdflib ; 750 751# Copy sample programs as per PDFlib Lite's license requirement. 752CopyDirectoryToHaikuImage develop sample-code 753 : [ FDirName $(HAIKU_TOP) src libs pdflib bind pdflib ] 754 : pdflib ; 755 756# Copy OpenGL kit headers into image 757if $(TARGET_ARCH) = x86 { 758 CopyDirectoryToHaikuImage develop headers os opengl 759 : [ FDirName $(HAIKU_MESA_HEADERS) GL ] ; 760 CopyDirectoryToHaikuImage develop headers os opengl 761 : [ FDirName $(HAIKU_GLU_HEADERS) GL ] ; 762} 763 764#pragma mark - Optional Packages 765 766 767HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS = ; 768 769include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackages ] ; 770include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalTestPackages ] ; 771include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalLibPackages ] ; 772 773local optionalPackageDescriptions ; 774if $(HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS) { 775 optionalPackageDescriptions = <haiku-image>optional_package_descriptions ; 776 MakeLocate $(optionalPackageDescriptions) 777 : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ; 778 779 Depends $(optionalPackageDescriptions) 780 : $(HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS) ; 781 782 actions together BuildOptionalPackageDescriptions 783 { 784 cat $(2) > $(1) 785 } 786 787 BuildOptionalPackageDescriptions $(optionalPackageDescriptions) 788 : $(HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS) ; 789} 790 791 792#pragma mark - Alternative GCC Libraries 793 794 795# We build a zip archive containing the libraries built with the alternative 796# GCC and unzip onto our image. Building the archive is done by a sub-jam. 797include [ FDirName $(HAIKU_BUILD_RULES_DIR) AlternativeGCCArchive ] ; 798 799if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) = 1 800 && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) { 801 # let another jam build a zip with the system libraries 802 rule InvokeSubJam target : directory : jamLine 803 { 804 DIRECTORY on $(target) = $(directory) ; 805 COMMAND_LINE on $(target) = $(jamLine) ; 806 local optionalPackages = $(HAIKU_ADDED_OPTIONAL_PACKAGES:J=/) ; 807 OPTIONAL_PACKAGES on $(target) = $(optionalPackages:E="") ; 808 Always $(target) ; 809 InvokeSubJam1 $(target) ; 810 } 811 812 actions InvokeSubJam1 813 { 814 cd $(DIRECTORY) 815 export HAIKU_IGNORE_USER_BUILD_CONFIG=1 816 export HAIKU_ADD_OPTIONAL_PACKAGES=$(OPTIONAL_PACKAGES) 817 export HAIKU_PRIMARY_GCC=$(HAIKU_GCC_VERSION[1]) 818 # NOTE: depending on when InvokeSubJam is called, you may end up with 819 # 2 * n - 1 jobs in total. 820 $(JAM:E=jam) -q -j$(JAMJOBS) $(COMMAND_LINE) ; 821 } 822 823 local otherAlternativeSystemLibsZip 824 = <other-image>alternative_system_libs.zip ; 825 MakeLocate $(otherAlternativeSystemLibsZip) 826 : $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) ; 827 828 InvokeSubJam $(otherAlternativeSystemLibsZip) 829 : $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) 830 : "haiku-alternative-gcc-archive" ; 831 832 # install the alternative libs in the right directory 833 ExtractArchiveToHaikuImage : $(otherAlternativeSystemLibsZip) ; 834} 835 836 837#pragma mark - User/Group Setup 838 839 840# add the root user and the root and users groups 841AddUserToHaikuImage $(HAIKU_ROOT_USER_NAME:E=baron) : 0 : 0 : /boot/home 842 : /bin/bash : $(HAIKU_ROOT_USER_REAL_NAME:E="Root User") ; 843AddGroupToHaikuImage root : 0 : ; 844AddGroupToHaikuImage users : 100 : ; 845 846 847#pragma mark - Host Name 848 849 850if $(HAIKU_IMAGE_HOST_NAME) { 851 actions BuildHaikuImageHostnameFile 852 { 853 echo "$(HAIKU_IMAGE_HOST_NAME)" > $(1) 854 } 855 856 local file = <haiku-image>hostname ; 857 Always $(file) ; 858 MakeLocate $(file) : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ; 859 BuildHaikuImageHostnameFile $(file) ; 860 AddFilesToHaikuImage common settings network : $(file) ; 861} 862 863 864#pragma mark - Build The Image 865 866 867# Execute pre-image user config rules. 868UserBuildConfigRulePreImage ; 869 870# Set image name and directory defaults and locate the image. 871HAIKU_IMAGE_NAME ?= $(HAIKU_DEFAULT_IMAGE_NAME) ; 872HAIKU_IMAGE_DIR ?= $(HAIKU_DEFAULT_IMAGE_DIR) ; 873HAIKU_IMAGE = $(HAIKU_IMAGE_NAME) ; 874HAIKU_IMAGE_SIZE ?= $(HAIKU_DEFAULT_IMAGE_SIZE) ; # 300 MB 875HAIKU_IMAGE_LABEL ?= $(HAIKU_DEFAULT_IMAGE_LABEL) ; 876MakeLocate $(HAIKU_IMAGE) : $(HAIKU_IMAGE_DIR) ; 877 878# Set the default installation directory. 879HAIKU_INSTALL_DIR ?= $(HAIKU_DEFAULT_INSTALL_DIR) ; 880 881# the pseudo target all image contents is attached to 882NotFile $(HAIKU_IMAGE_CONTAINER_NAME) ; 883 884# Detect a hybrid GCC2/GCC4 image. 885local isHybridBuild ; 886if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) = 1 887 && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) { 888 isHybridBuild = 1 ; 889} 890 891# prepare the script that initializes the shell variables 892HAIKU_IMAGE_INIT_VARIABLES_SCRIPT = <HaikuImage>haiku.image-init-vars ; 893local script = $(HAIKU_IMAGE_INIT_VARIABLES_SCRIPT) ; 894MakeLocate $(script) : $(HAIKU_OUTPUT_DIR) ; 895Always $(script) ; 896 897AddVariableToScript $(script) : sourceDir : $(HAIKU_TOP) ; 898AddVariableToScript $(script) : outputDir : $(HAIKU_OUTPUT_DIR) ; 899AddVariableToScript $(script) : tmpDir : $(HAIKU_TMP_DIR) ; 900AddVariableToScript $(script) : installDir : $(HAIKU_INSTALL_DIR) ; 901#AddVariableToScript $(script) : isImage : 1 ; 902AddVariableToScript $(script) : imageSize : $(HAIKU_IMAGE_SIZE) ; 903AddVariableToScript $(script) : imageLabel : $(HAIKU_IMAGE_LABEL) ; 904AddVariableToScript $(script) : addBuildCompatibilityLibDir 905 : $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ; 906AddVariableToScript $(script) : dontClearImage : $(HAIKU_DONT_CLEAR_IMAGE) ; 907AddVariableToScript $(script) : updateOnly : [ IsUpdateHaikuImageOnly ] ; 908AddTargetVariableToScript $(script) : <build>addattr ; 909AddTargetVariableToScript $(script) : <build>bfs_shell : bfsShell ; 910AddTargetVariableToScript $(script) : <build>fs_shell_command : fsShellCommand ; 911AddTargetVariableToScript $(script) : <build>copyattr ; 912AddTargetVariableToScript $(script) : <build>create_image : createImage ; 913AddTargetVariableToScript $(script) : <build>makebootable ; 914AddTargetVariableToScript $(script) : <build>rc ; 915AddTargetVariableToScript $(script) : <build>resattr ; 916AddTargetVariableToScript $(script) : <build>unzip ; 917AddTargetVariableToScript $(script) : <build>vmdkimage ; 918AddVariableToScript $(script) : stripCommand : $(HAIKU_STRIP) ; 919if $(HOST_RM_ATTRS_TARGET) { 920 AddTargetVariableToScript $(script) : $(HOST_RM_ATTRS_TARGET) : rmAttrs ; 921} else { 922 AddVariableToScript $(script) : rmAttrs : rm ; 923} 924if $(optionalPackageDescriptions) { 925 AddTargetVariableToScript $(script) : $(optionalPackageDescriptions) 926 : optionalPackageDescriptions ; 927} 928 929 930# create the other scripts 931HAIKU_IMAGE_MAKE_DIRS_SCRIPT = <HaikuImage>haiku.image-make-dirs ; 932HAIKU_IMAGE_COPY_FILES_SCRIPT = <HaikuImage>haiku.image-copy-files ; 933HAIKU_IMAGE_EXTRACT_FILES_SCRIPT = <HaikuImage>haiku.image-extract-files ; 934MakeLocate $(HAIKU_IMAGE_MAKE_DIRS_SCRIPT) $(HAIKU_IMAGE_COPY_FILES_SCRIPT) 935 $(HAIKU_IMAGE_EXTRACT_FILES_SCRIPT) : $(HAIKU_OUTPUT_DIR) ; 936 937CreateHaikuImageMakeDirectoriesScript $(HAIKU_IMAGE_MAKE_DIRS_SCRIPT) ; 938CreateHaikuImageCopyFilesScript $(HAIKU_IMAGE_COPY_FILES_SCRIPT) ; 939CreateHaikuImageExtractFilesScript $(HAIKU_IMAGE_EXTRACT_FILES_SCRIPT) ; 940 941# Convenience wrapper rule around BuildHaikuImage. 942rule _BuildHaikuImage image : isImage : isVMwareImage 943{ 944 # _BuildHaikuImage <image target> : <isImage> : <isVMwareImage> ; 945 # 946 947 # build the image 948 # HAIKU_IMAGE_EARLY_USER_SCRIPTS, HAIKU_IMAGE_LATE_USER_SCRIPTS can be 949 # specified by the user. 950 BuildHaikuImage $(image) : 951 $(HAIKU_IMAGE_INIT_VARIABLES_SCRIPT) 952 $(HAIKU_IMAGE_EARLY_USER_SCRIPTS) 953 $(HAIKU_IMAGE_MAKE_DIRS_SCRIPT) 954 $(HAIKU_IMAGE_COPY_FILES_SCRIPT) 955 $(HAIKU_IMAGE_EXTRACT_FILES_SCRIPT) 956 $(HAIKU_IMAGE_LATE_USER_SCRIPTS) 957 : $(isImage) 958 : $(isVMwareImage) 959 ; 960 961 # remove the scripts we have generated 962 RmTemps $(image) : 963 $(HAIKU_IMAGE_INIT_VARIABLES_SCRIPT) 964 $(HAIKU_IMAGE_MAKE_DIRS_SCRIPT) 965 $(HAIKU_IMAGE_COPY_FILES_SCRIPT) 966 $(HAIKU_IMAGE_EXTRACT_FILES_SCRIPT) 967 ; 968} 969 970# build the image 971_BuildHaikuImage $(HAIKU_IMAGE) : true ; 972NotFile haiku-image ; 973Depends haiku-image : $(HAIKU_IMAGE) ; 974 975 976# install Haiku into a directory 977NotFile install-haiku ; 978_BuildHaikuImage install-haiku : 0 ; 979 980 981# build the VMware image 982HAIKU_VMWARE_IMAGE_NAME ?= $(HAIKU_DEFAULT_VMWARE_IMAGE_NAME) ; 983HAIKU_VMWARE_IMAGE = $(HAIKU_VMWARE_IMAGE_NAME) ; 984MakeLocate $(HAIKU_VMWARE_IMAGE) : $(HAIKU_IMAGE_DIR) ; 985 986_BuildHaikuImage $(HAIKU_VMWARE_IMAGE) : true : true ; 987NotFile haiku-vmware-image ; 988Depends haiku-vmware-image : $(HAIKU_VMWARE_IMAGE) ; 989 990# Execute post-image user config rules. 991UserBuildConfigRulePostImage ; 992