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