1local architecture = $(HAIKU_PACKAGING_ARCHS[1]) ; 2 3 4local haikuPackage = haiku.hpkg ; 5HaikuPackage $(haikuPackage) ; 6 7 8# wifi firmware 9for driver in $(SYSTEM_ADD_ONS_DRIVERS_NET) { 10 local package = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_PACKAGE) ] ; 11 local archive = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_ARCHIVE) ] ; 12 local extract = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_DO_EXTRACT) ] ; 13 if $(archive) { 14 AddWifiFirmwareToPackage $(driver) : $(package) : $(archive) 15 : $(extract) ; 16 } 17 local packages = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_PACKAGES) ] ; 18 local archives = [ on $(driver) return $(HAIKU_WIFI_FIRMWARE_ARCHIVES) ] ; 19 for archive in $(archives) { 20 AddWifiFirmwareToPackage $(driver) : $(packages[1]) : $(archive) 21 : $(extract) ; 22 packages = $(packages[2-]) ; 23 } 24} 25 26 27# modules 28AddFilesToPackage add-ons kernel bus_managers : $(SYSTEM_ADD_ONS_BUS_MANAGERS) ; 29AddFilesToPackage add-ons kernel busses agp_gart : <agp_gart>intel@x86,x86_64 ; 30 31if $(HAIKU_ATA_STACK) = 1 { 32 AddFilesToPackage add-ons kernel busses ata 33 : generic_ide_pci it8211 legacy_sata silicon_image_3112 ide_isa@x86 ; 34} else { 35 AddFilesToPackage add-ons kernel busses ide 36 : generic_ide_pci it8211 legacy_sata silicon_image_3112 ide_isa@x86 ; 37} 38 39AddFilesToPackage add-ons kernel busses random : virtio_rng ; 40AddFilesToPackage add-ons kernel busses scsi : ahci virtio_scsi ; 41AddFilesToPackage add-ons kernel busses usb : <usb>uhci <usb>ohci <usb>ehci ; 42AddFilesToPackage add-ons kernel busses virtio : virtio_pci ; 43AddFilesToPackage add-ons kernel console : vga_text ; 44AddFilesToPackage add-ons kernel debugger 45 : <kdebug>demangle <kdebug>disasm@x86 <kdebug>hangman 46 <kdebug>invalidate_on_exit <kdebug>usb_keyboard <kdebug>qrencode 47 <kdebug>run_on_exit ; 48AddFilesToPackage add-ons kernel file_systems : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ; 49AddFilesToPackage add-ons kernel generic 50 : ata_adapter@ata bios@x86,x86_64 dpc ide_adapter@ide 51 locked_pool mpu401 scsi_periph <module>tty ; 52AddFilesToPackage add-ons kernel partitioning_systems 53 : amiga_rdb apple efi_gpt intel session ; 54AddFilesToPackage add-ons kernel interrupt_controllers : openpic@ppc ; 55 56if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 { 57 AddFilesToPackage add-ons kernel cpu : generic_x86 ; 58} 59 60# drivers 61AddNewDriversToPackage disk scsi : scsi_cd scsi_disk ; 62AddNewDriversToPackage disk virtual : virtio_block ; 63AddNewDriversToPackage power : enhanced_speedstep@x86 ; 64AddNewDriversToPackage power : acpi_battery@x86 ; 65#AddNewDriversToPackage display : display_controls@x86 ; 66 67# legacy drivers 68AddDriversToPackage : console dprintf null <driver>tty zero ; 69AddDriversToPackage audio hmulti : $(SYSTEM_ADD_ONS_DRIVERS_AUDIO) ; 70AddDriversToPackage audio old : $(SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD) ; 71AddDriversToPackage midi : $(SYSTEM_ADD_ONS_DRIVERS_MIDI) ; 72AddDriversToPackage bus : usb_raw fw_raw@x86 ; 73AddDriversToPackage disk floppy : pc_floppy@x86 ; 74AddDriversToPackage disk usb : usb_disk ; 75AddDriversToPackage disk usb : usb_floppy ; 76AddDriversToPackage printer usb : usb_printer ; 77AddDriversToPackage disk virtual : nbd ; 78AddDriversToPackage dvb : cx23882 ; 79AddDriversToPackage graphics : $(SYSTEM_ADD_ONS_DRIVERS_GRAPHICS) ; 80AddDriversToPackage input : ps2_hid usb_hid wacom ; 81AddDriversToPackage misc : <driver>poke <driver>mem ; 82AddDriversToPackage net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ; 83AddDriversToPackage ports : usb_serial ; 84AddDriversToPackage power : $(SYSTEM_ADD_ONS_DRIVERS_POWER) ; 85 86# kernel 87AddFilesToPackage : <revisioned>kernel_$(TARGET_ARCH) ; 88 89# libs 90AddLibrariesToPackage lib 91 : [ HaikuImageGetSystemLibs ] [ HaikuImageGetPrivateSystemLibs ] ; 92 93# libnetwork.so replaces quite a few libraries 94if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { 95 local libNetworkAliases = libsocket.so libbind.so libnet.so ; 96 local lib ; 97 for lib in $(libNetworkAliases) { 98 AddSymlinkToPackage lib : libnetwork.so : $(lib) ; 99 } 100 101 AddSymlinkToPackage lib : libbnetapi.so : libnetapi.so ; 102} 103 104 105# TODO: Remove when the packages have been rebuilt! 106AddSymlinkToPackage lib : libbe.so : liblocale.so ; 107 108# servers 109AddFilesToPackage servers : $(SYSTEM_SERVERS) ; 110 111# apps 112AddFilesToPackage : runtime_loader Deskbar Tracker ; 113AddFilesToPackage bin : $(SYSTEM_BIN) consoled ; 114AddFilesToPackage apps : $(SYSTEM_APPS) ; 115AddFilesToPackage preferences : $(SYSTEM_PREFERENCES) ; 116AddFilesToPackage demos : $(SYSTEM_DEMOS) ; 117 118SEARCH on install-wifi-firmwares.sh = [ FDirName $(HAIKU_TOP) data bin ] ; 119AddFilesToPackage bin : install-wifi-firmwares.sh ; 120 121AddSymlinkToPackage bin : bash : sh ; 122AddSymlinkToPackage bin : trash : untrash ; 123AddSymlinkToPackage bin : less : more ; 124AddSymlinkToPackage bin : gzip : gunzip ; 125AddSymlinkToPackage bin : gzip : zcat ; 126AddSymlinkToPackage bin : zdiff : zcmp ; 127AddSymlinkToPackage bin : unzip : zipinfo ; 128AddSymlinkToPackage bin : gawk : awk ; 129 130# scripts and data files 131local bootScripts = Bootscript Bootscript.cd SetupEnvironment Netscript 132 InstallerInitScript InstallerFinishScript ; 133SEARCH on $(bootScripts) = [ FDirName $(HAIKU_TOP) data system boot ] ; 134AddFilesToPackage boot : $(bootScripts) ; 135 136# post install scripts 137local postInstallFiles = add_catalog_entry_attributes.sh 138 default_deskbar_items.sh ; 139postInstallFiles = $(postInstallFiles:G=post-install) ; 140SEARCH on $(postInstallFiles) 141 = [ FDirName $(HAIKU_TOP) data system boot post_install ] ; 142AddFilesToPackage boot post-install : $(postInstallFiles) ; 143 144# Gutenprint data files 145CopyDirectoryToPackage data 146 : [ FDirName $(HAIKU_TOP) src libs print libgutenprint src xml ] 147 : gutenprint : -x *.c -x Makefile.am -x Makefile.in ; 148 149# artwork and sounds 150local logoArtwork = 151 $(HAIKU_INCLUDE_TRADEMARKS)"HAIKU logo - white on blue - big.png" 152 $(HAIKU_INCLUDE_TRADEMARKS)"HAIKU logo - white on blue - normal.png" ; 153SEARCH on $(logoArtwork) = [ FDirName $(HAIKU_TOP) data artwork ] ; 154AddFilesToPackage data artwork : $(logoArtwork) ; 155 156# Mail spell check dictionaries 157local spellFiles = words geekspeak ; 158spellFiles = $(spellFiles:G=spell) ; 159SEARCH on $(spellFiles) = [ FDirName $(HAIKU_TOP) src apps mail ] ; 160AddFilesToPackage data spell_check word_dictionary : $(spellFiles) ; 161 162local fortuneFiles = [ Glob $(HAIKU_TOP)/data/system/data/fortunes 163 : [a-zA-Z0-9]* ] ; 164fortuneFiles = $(fortuneFiles:G=data!fortunes) ; 165AddFilesToPackage data fortunes : $(fortuneFiles) ; 166 167local fontDir = [ FDirName $(HAIKU_TOP) data system data fonts ] ; 168local psFonts = [ Glob $(fontDir)/psfonts : *.afm *.pfb ] ; 169local ttFonts = [ Glob $(fontDir)/ttfonts : *.ttf ] ; 170AddFilesToPackage data fonts psfonts : $(psFonts) ; 171AddFilesToPackage data fonts ttfonts : $(ttFonts) ; 172 173local cannaDir = [ FDirName $(HAIKU_TOP) data system data Canna ] ; 174local cannaDefault = [ Glob $(cannaDir)/default : *.canna *.gz ] ; 175local cannaDic = [ Glob $(cannaDir)/dic : *.cbp ] ; 176local cannaDicCanna = [ Glob $(cannaDir)/dic/canna 177 : *.cld *.ctd *.cbd *.dir ] ; 178AddFilesToPackage data Canna default : $(cannaDefault) ; 179AddFilesToPackage data Canna dic : $(cannaDic) ; 180AddFilesToPackage data Canna dic canna : $(cannaDicCanna) ; 181#AddDirectoryToPackage data Canna dic group ; 182#AddDirectoryToPackage data Canna dic user ; 183 # TODO: If those serve any purpose, they should probably live in a writable 184 # subtree. 185 186local keymapFiles = [ Glob [ FDirName $(HAIKU_TOP) src data keymaps ] 187 : *.keymap ] ; 188keymapFiles = $(keymapFiles:BG=keymap) ; 189AddFilesToPackage data Keymaps : $(keymapFiles) ; 190AddSymlinkToPackage data Keymaps : Swedish : Finnish ; 191AddSymlinkToPackage data Keymaps : Slovene : Croatian ; 192AddSymlinkToPackage data Keymaps : US-International : Brazilian ; 193 194# Copy keyboard layout files to the image one-by-one. 195local keyboardLayoutsDir 196 = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ] ; 197local keyboardLayoutFiles = 198 "Generic 104-key" 199 "Generic 105-key International" 200 "Kinesis Advantage" 201 "Kinesis Ergo Elan International" 202 "TypeMatrix 2030" ; 203keyboardLayoutFiles = $(keyboardLayoutFiles:G=keyboard-layout) ; 204SEARCH on $(keyboardLayoutFiles) = $(keyboardLayoutsDir) ; 205AddFilesToPackage data KeyboardLayouts 206 : $(keyboardLayoutFiles) ; 207 208# Add Apple Aluminum keyboard layout files to the image in an Apple Aluminum 209# subdirectory. The subdirectory is turned into a submenu in the Layout menu 210# of the Keymap preference app. 211local appleAluminumDir 212 = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts 213 Apple\ Aluminum ] ; 214local appleAluminumFiles = 215 "Apple Aluminium Extended International" 216 "Apple Aluminium International" 217 "Apple Aluminum (US)" 218 "Apple Aluminum Extended (US)" ; 219appleAluminumFiles = $(appleAluminumFiles:G=keyboard-layout) ; 220SEARCH on $(appleAluminumFiles) = $(appleAluminumDir) ; 221AddFilesToPackage data KeyboardLayouts Apple\ Aluminum 222 : $(appleAluminumFiles) ; 223 224# Add ThinkPad keyboard layout files to the image in a ThinkPad 225# subdirectory. The subdirectory is turned into a submenu in the Layout menu 226# of the Keymap preference app. 227local thinkpadDir 228 = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ThinkPad ] ; 229local thinkPadFiles = 230 "ThinkPad (US)" 231 "ThinkPad International" 232 "ThinkPad T400s (US)" 233 "ThinkPad T400s International" 234 "ThinkPad X1 (US)" 235 "ThinkPad X1 International" 236 "ThinkPad X100e (US)" 237 "ThinkPad X100e International" ; 238thinkPadFiles = $(thinkPadFiles:G=keyboard-layout) ; 239SEARCH on $(thinkPadFiles) = $(thinkpadDir) ; 240AddFilesToPackage data KeyboardLayouts ThinkPad 241 : $(thinkPadFiles) ; 242 243# boot module links 244AddBootModuleSymlinksToPackage 245 acpi@x86 ata@ata pci isa@x86 config_manager dpc 246 ide@ide scsi usb 247 openpic@ppc 248 ata_adapter@ata ide_adapter@ide locked_pool scsi_periph 249 ahci generic_ide_pci it8211 legacy_sata silicon_image_3112 250 ide_isa@x86 251 <usb>uhci <usb>ohci <usb>ehci 252 scsi_cd scsi_disk usb_disk 253 virtio virtio_pci virtio_block virtio_scsi 254 efi_gpt 255 intel 256 bfs packagefs 257; 258 259# add-ons 260AddFilesToPackage add-ons accelerants : $(SYSTEM_ADD_ONS_ACCELERANTS) ; 261AddFilesToPackage add-ons Translators : $(SYSTEM_ADD_ONS_TRANSLATORS) ; 262AddFilesToPackage add-ons locale catalogs : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ; 263 264AddFilesToPackage add-ons opengl : 265 x86 @{ 266 Legacy\ Software\ Rasterizer@gcc2 267 Software\ Rasterizer@!gcc2 268 }@ # x86 269; 270 271AddFilesToPackage add-ons mail_daemon inbound_protocols : POP3 IMAP ; 272AddFilesToPackage add-ons mail_daemon outbound_protocols : SMTP ; 273AddFilesToPackage add-ons mail_daemon inbound_filters 274 : MatchHeader SpamFilter NewMailNotification ; 275AddFilesToPackage add-ons mail_daemon outbound_filters : Fortune ; 276 277AddFilesToPackage add-ons media : $(SYSTEM_ADD_ONS_MEDIA) ; 278AddFilesToPackage add-ons media plugins : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ; 279 280AddFilesToPackage add-ons Tracker 281 : FileType Mark\ as… Mark\ as\ Read Open\ Target\ Folder 282 Open\ Terminal ZipOMatic ; 283AddSymlinkToPackage add-ons Tracker 284 : /boot/system/preferences/Backgrounds : Background ; 285AddSymlinkToPackage add-ons Tracker 286 : /boot/system/apps/TextSearch : TextSearch ; 287AddSymlinkToPackage add-ons Tracker 288 : /boot/system/apps/DiskUsage : DiskUsage ; 289 290AddFilesToPackage add-ons input_server devices 291 : <input>keyboard <input>mouse <input>tablet <input>wacom ; 292AddFilesToPackage add-ons input_server filters 293 : screen_saver shortcut_catcher ; 294 295AddFilesToPackage add-ons kernel network : <net>notifications stack ; 296AddFilesToPackage add-ons kernel network : dns_resolver ; 297AddFilesToPackage add-ons kernel network devices : $(SYSTEM_NETWORK_DEVICES) ; 298AddFilesToPackage add-ons kernel network datalink_protocols 299 : $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ; 300AddFilesToPackage add-ons kernel network ppp: $(SYSTEM_NETWORK_PPP) ; 301AddFilesToPackage add-ons kernel network protocols 302 : $(SYSTEM_NETWORK_PROTOCOLS) ; 303 304AddFilesToPackage add-ons Print : $(SYSTEM_ADD_ONS_PRINT) ; 305AddFilesToPackage add-ons Print transport 306 : $(SYSTEM_ADD_ONS_PRINT_TRANSPORT) ; 307AddFilesToPackage add-ons Screen\ Savers : $(SYSTEM_ADD_ONS_SCREENSAVERS) ; 308 309AddFilesToPackage add-ons disk_systems 310 : <disk_system>intel <disk_system>gpt <disk_system>bfs <disk_system>ntfs ; 311 312 313# the MIME DB 314CopyDirectoryToPackage data : <mimedb>mime_db : : : isTarget ; 315 316 317# Deskbar menu symlinks 318 319# "Applications" links 320DESKBAR_APPLICATIONS = ActivityMonitor CharacterMap CodyCam CDPlayer DeskCalc 321 Devices DiskProbe DriveSetup DiskUsage Expander HaikuDepot Icon-O-Matic 322 Installer Magnify Mail MediaConverter MediaPlayer MidiPlayer People PoorMan 323 Screenshot SoundRecorder StyledEdit Terminal TV 324; 325local linkTarget ; 326for linkTarget in $(DESKBAR_APPLICATIONS) { 327 AddSymlinkToPackage data deskbar menu Applications 328 : ../../../../apps/$(linkTarget) : $(linkTarget) ; 329} 330 331# "Desktop applets" links 332DESKBAR_DESKTOP_APPLETS = LaunchBox NetworkStatus PowerStatus ProcessController 333 Workspaces 334; 335for linkTarget in $(DESKBAR_DESKTOP_APPLETS) { 336 AddSymlinkToPackage data deskbar menu Desktop\ applets 337 : ../../../../apps/$(linkTarget) : $(linkTarget) ; 338} 339 340# "Preferences" links 341AddDirectoryToPackage data deskbar menu Preferences ; 342DESKBAR_PREFERENCES = $(SYSTEM_PREFERENCES:B) ; 343for linkTarget in $(DESKBAR_PREFERENCES) { 344 AddSymlinkToPackage data deskbar menu Preferences 345 : ../../../../preferences/$(linkTarget) 346 : $(linkTarget) ; 347} 348 349# "Demo" links 350AddDirectoryToPackage data deskbar menu Demos ; 351for linkTarget in $(SYSTEM_DEMOS) { 352 AddSymlinkToPackage data deskbar menu Demos 353 : ../../../../demos/$(linkTarget) : $(linkTarget) ; 354} 355 356# Deskbar menu entries file 357AddFilesToPackage data deskbar : <deskbar>menu_entries ; 358 359 360# optional 361# TODO: We should probably build another package (including the data files 362# above) that can be installed, if desired. 363AddFilesToPackage optional add-ons input_server methods : canna ; 364 365 366# PDF Writer enconding files 367CopyDirectoryToPackage data 368 : [ FDirName $(HAIKU_TOP) src add-ons print drivers pdf encoding ] 369 : "PDF Writer" : -x Jamfile ; 370 371# licenses 372CopyDirectoryToPackage data 373 : [ FDirName $(HAIKU_TOP) data system data licenses ] 374 : licenses ; 375 376# Copy documentation as per DiskUsage's license requirement. 377CopyDirectoryToPackage documentation 378 : [ FDirName $(HAIKU_TOP) docs apps diskusage ] 379 : diskusage ; 380 381# Copy documentation and sample programs as per PDFlib Lite's license 382# requirement. 383CopyDirectoryToPackage documentation 384 : [ FDirName $(HAIKU_TOP) src libs pdflib doc ] 385 : pdflib ; 386CopyDirectoryToPackage develop sample-code 387 : [ FDirName $(HAIKU_TOP) src libs pdflib bind pdflib ] 388 : pdflib ; 389 390 391# empty directory 392AddDirectoryToPackage data empty ; 393 394 395BuildHaikuPackage $(haikuPackage) : haiku ; 396