xref: /haiku/build/jam/OptionalPackages (revision 1b6bc2675fe3691538c8764ab016593f3b06ca53)
1# This file defines the optional packages that can be added to the Haiku image.
2# It is directly included from HaikuImage -- all variables defined there can
3# be used
4
5# Detect a hybrid GCC2/GCC4 image and disable the checks for unavailable GCC4
6# packages. (It does not matter if a package was built with either compiler,
7# the system should have the respective other system libs.)
8local isHybridBuild ;
9if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) = 1
10		&& $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
11	isHybridBuild = 1 ;
12}
13
14
15# Available Optional Packages:
16#	ABI-compliance-checker	- tool for checking ABI compatibility between libs
17#	APR						- support libraries used for example by Subversion
18#	APR-util				- Apache portable runtime utility library
19#	ArmyKnife				- tool for editing audio file metadata and attributes
20#	Bazaar					- the distributed version control system
21#	BeAE					- open source Audio Editor
22#	Beam					- powerful native e-mail client
23#	BeBook					- the classic BeOS API documentation
24#	BeHappy					- special documentation (i.e. BeBook) browser
25#	BeOSCompatibility		- creates links within the system to support old apps
26#	BePDF					- native PDF reader
27#	BeZillaBrowser			- fork of Mozilla's 1.8 branch.
28#	Bluetooth				- experimental Haiku components for Bluetooth
29#	BurnItNow				- CD burning app
30#	Bzip					- file archiving utility
31#	CCache					- fast compiler cache
32#	CDRecord				- the command line CD writing tools
33#	Clockwerk				- native audio/video compositing
34#	CLucene					- indexed file search
35#	CMake					- cross platform make
36#	Ctags					- exuberant ctags (source files indexing)
37#	Curl					- a client that groks URLs
38#	CVS						- the version control system
39#	Development				- more complete dev environment (including autotools)
40#	DevelopmentBase			- basic development environment (gcc, headers, libs,...)
41#	DevelopmentJava			- JamVM, a Java Virtual machine, GNU Classpath, ECJ
42#	DevelopmentMin			- development headers, libs, tools, from sources only
43#	Doxygen					- Generate documentation from source code
44#	Expat					- XML parsing libraries
45#	Fastdep					- fast dependency generator for C/C++ files
46#	friss					- RSS/ATOM/... feeds reader
47#	GetText					- a framework to help produce multi-lingual messages.
48#	Git						- the distributed version control system
49#	GPerf					- the perfect hash function generator.
50#	Groff					- text formatter used for man pages
51#	ICU-devel				- the headers and lib-links for ICU (for development)
52#	KeymapSwitcher			- Easy to use keymap switcher
53#	LibEvent				- An event notification library
54#	LibIconv				- text encoding conversion library
55#	LibLayout				- GCC2 package needed by some BeOS apps to compile
56#	Libmng					- mng support library
57#	LibXML2					- the XML support library
58#	LibXSLT					- xslt library and utility
59#	Links					- the web browser
60#	Lua						- the scripting language
61#	Man						- standard commands to read man pages
62#	Mercurial				- the distributed version control system
63#	Nano					- the command line text editor
64#	Neon					- support libraries used for example by SVN
65#	NetFS					- the native networked file system components
66#	NetSurf					- the web browser
67#	OCaml					- the Objective Caml language
68#	OpenSound				- additional audio driver package
69#	OpenSSH					- the secure shell
70#	OpenSSL					- secure sockets library
71#	P7zip					- file archiving utility
72#	Paladin					- a Haiku IDE
73#	PCRE					- the (Perl-compatible) regex engine
74#	Pe						- the powerful native Programmer's Editor
75#	Perl					- the scripting language
76#	Python					- the scripting language
77#	Rsync					- remote directory synchronization
78#	Ruby					- the programming language
79#	Sed						- the ultimate stream editor
80#	SQLite					- the database implementation
81#	Subversion				- the version control system
82#	TagLib					- id3 tag library
83#	Tar						- archiving utility
84#	TimGMSoundFont			- a good quality General MIDI Sound Font
85#	TrackerNewTemplates		- template files for Tracker's New menu
86#	Transmission			- a fast, easy, and free BitTorrent Client
87#	UserlandFS				- aids native file system development (like FUSE)
88#	Vim						- Vi IMproved. Highly configurable text editor
89#	Vision					- powerful native IRC client
90#	WebPositive				- native, WebKit-based web browser
91#	Welcome					- introductory documentation to Haiku
92#	WifiFirmwareScriptData	- data files needed by install-wifi-firmwares.sh
93#	WonderBrush				- native graphics application
94#	wpa_supplicant			- a WPA Supplicant with support for WPA and WPA2
95#	WQY-MicroHei			- Chinese font
96#	XZ-Utils				- file archiving utility
97#	Yasm					- the assembler utility
98
99local baseURL = http://haiku-files.org/files/optional-packages ;
100local baseSourceURL = http://haiku-files.org/files/sources ;
101
102# ABI-compliance-checker
103if [ IsOptionalHaikuImagePackageAdded ABI-compliance-checker ] {
104	if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
105		Echo "No optional package ABI-compliance-checker for gcc2" ;
106	} else {
107		InstallOptionalHaikuImagePackage
108			ABI-compliance-checker-1.12-noarch-gcc4-2010-02-01.zip
109			: $(baseURL)/ABI-compliance-checker-1.12-noarch-gcc4-2010-02-01.zip ;
110	}
111}
112
113
114# APR
115if [ IsOptionalHaikuImagePackageAdded APR ] {
116	if $(TARGET_ARCH) != x86 {
117		Echo "No optional package APR available for $(TARGET_ARCH)" ;
118	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
119		InstallOptionalHaikuImagePackage
120			apr-1.4.5-x86-gcc4-2011-08-03.zip
121			: $(baseURL)/apr-1.4.5-x86-gcc4-2011-08-03.zip
122			: : true ;
123	} else {
124		InstallOptionalHaikuImagePackage
125			apr-1.4.5-x86-gcc2-2011-08-02.zip
126			: $(baseURL)/apr-1.4.5-x86-gcc2-2011-08-02.zip
127			: : true ;
128	}
129}
130
131
132# APR-util
133if [ IsOptionalHaikuImagePackageAdded APR-util ] {
134	if $(TARGET_ARCH) != x86 {
135		Echo "No optional package APR-util available for $(TARGET_ARCH)" ;
136	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
137		InstallOptionalHaikuImagePackage
138			apr-util-1.3.12-x86-gcc4-2011-08-03.zip
139			: $(baseURL)/apr-util-1.3.12-x86-gcc4-2011-08-03.zip
140			: : true ;
141	} else {
142		InstallOptionalHaikuImagePackage
143			apr-util-1.3.12-x86-gcc2-2011-08-02.zip
144			: $(baseURL)/apr-util-1.3.12-x86-gcc2-2011-08-02.zip
145			: : true ;
146	}
147}
148
149
150# ArmyKnife
151if [ IsOptionalHaikuImagePackageAdded ArmyKnife ] {
152	if $(TARGET_ARCH) != x86 {
153		Echo "No optional package ArmyKnife available for $(TARGET_ARCH)" ;
154	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
155		Echo "No optional package ArmyKnife for gcc4" ;
156	} else {
157		InstallOptionalHaikuImagePackage
158			armyknife-63-r1a3-x86-gcc2-2011-06-04.zip
159			: $(baseURL)/armyknife-63-r1a3-x86-gcc2-2011-06-04.zip ;
160		AddSymlinkToHaikuImage home config settings deskbar Applications
161			: /boot/apps/ArmyKnife/ArmyKnife ;
162	}
163}
164
165
166# Bazaar
167if [ IsOptionalHaikuImagePackageAdded Bazaar ] {
168	if $(TARGET_ARCH) != x86 {
169		Echo "No optional package Bazaar available for $(TARGET_ARCH)" ;
170	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
171		InstallOptionalHaikuImagePackage bzr-2.2.2-r1a3-x86-gcc4-2011-05-23.zip
172			: $(baseURL)/bzr-2.2.2-r1a3-x86-gcc4-2011-05-23.zip ;
173	} else {
174		InstallOptionalHaikuImagePackage bzr-2.2.2-r1a3-x86-gcc2-2011-05-17.zip
175			: $(baseURL)/bzr-2.2.2-r1a3-x86-gcc2-2011-05-17.zip ;
176	}
177}
178
179
180# BeAE
181if [ IsOptionalHaikuImagePackageAdded BeAE ] {
182	if $(TARGET_ARCH) != x86 {
183		Echo "No optional package BeAE available for $(TARGET_ARCH)" ;
184	} else {
185		if $(HAIKU_GCC_VERSION[1]) >= 4 {
186			InstallOptionalHaikuImagePackage
187				beae-22-r1a3-x86-gcc4-2011-05-24.zip
188				: $(baseURL)/beae-22-r1a3-x86-gcc4-2011-05-24.zip ;
189		} else {
190			InstallOptionalHaikuImagePackage
191				beae-22-r1a3-x86-gcc2-2011-05-18.zip
192				: $(baseURL)/beae-22-r1a3-x86-gcc2-2011-05-18.zip ;
193		}
194		AddSymlinkToHaikuImage home config settings deskbar Applications
195			: /boot/apps/BeAE/BeAE ;
196	}
197}
198
199
200# Beam
201if [ IsOptionalHaikuImagePackageAdded Beam ] {
202	if $(TARGET_ARCH) != x86 {
203		Echo "No optional package Beam available for $(TARGET_ARCH)" ;
204	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
205		Echo "No optional package Beam available for gcc4" ;
206	} else {
207		InstallOptionalHaikuImagePackage Beam-1.2alpha-x86-gcc2-2010-04-29.zip
208			: $(baseURL)/Beam-1.2alpha-x86-gcc2-2010-04-29.zip ;
209		AddSymlinkToHaikuImage home config settings deskbar Applications
210			: /boot/apps/Beam/Beam ;
211	}
212}
213
214
215# BeBook
216if [ IsOptionalHaikuImagePackageAdded BeBook ] {
217	InstallOptionalHaikuImagePackage bebook_20081026.zip
218		: $(baseURL)/bebook_20081026.zip
219		: system documentation ;
220	AddSymlinkToHaikuImage home Desktop
221		: /boot/system/documentation/bebook/index.html : BeBook ;
222}
223
224
225# BeHappy
226if [ IsOptionalHaikuImagePackageAdded BeHappy ] {
227	if $(TARGET_ARCH) != x86 {
228		Echo "No optional package BeHappy available for $(TARGET_ARCH)" ;
229	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
230		Echo "No optional package BeHappy available for gcc4" ;
231	} else {
232		Echo "No optional package BeHappy available for gcc2" ;
233	}
234}
235
236
237# BeOSCompatibility
238if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
239	if $(TARGET_ARCH) != x86 {
240		Echo "No optional package BeOSCompatibility available for $(TARGET_ARCH)" ;
241	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
242		Echo "No optional package BeOSCompatibility available for gcc4" ;
243	} else {
244		Echo "Warning: Adding BeOS compatibility symlinks. This will go away. Please fix your apps!" ;
245		AddSymlinkToHaikuImage beos : ../system/apps ;
246		AddSymlinkToHaikuImage beos : ../system/bin ;
247		AddSymlinkToHaikuImage beos : ../system/documentation ;
248		AddSymlinkToHaikuImage beos : ../common/etc ;
249		AddSymlinkToHaikuImage beos : ../system/preferences ;
250		AddSymlinkToHaikuImage beos : ../system ;
251		AddDirectoryToHaikuImage var ;
252		AddSymlinkToHaikuImage var : /boot/common/var/log ;
253		AddSymlinkToHaikuImage var : /boot/common/cache/tmp ;
254	}
255}
256
257
258# BePDF
259if [ IsOptionalHaikuImagePackageAdded BePDF ] {
260	if $(TARGET_ARCH) != x86 {
261		Echo "No optional package BePDF available for $(TARGET_ARCH)" ;
262	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
263		Echo "No optional package BePDF available for gcc4" ;
264	} else {
265		InstallOptionalHaikuImagePackage
266			bepdf-1.1.1b4-r1a3-x86-gcc2-2011-05-30.zip
267			: $(baseURL)/bepdf-1.1.1b4-r1a3-x86-gcc2-2011-05-30.zip ;
268		AddSymlinkToHaikuImage home config settings deskbar Applications
269			: /boot/apps/BePDF/BePDF ;
270	}
271}
272
273
274# BeZillaBrowser
275if [ IsOptionalHaikuImagePackageAdded BeZillaBrowser ] {
276	if $(TARGET_ARCH) != x86 {
277		Echo "No optional package BeZillaBrowser available for $(TARGET_ARCH)" ;
278	} else {
279		if $(HAIKU_GCC_VERSION[1]) >= 4 {
280			InstallOptionalHaikuImagePackage
281				BeZillaBrowser-2.0.0.22pre-x86-gcc4-2011-12-26.zip
282				: $(baseURL)/BeZillaBrowser-2.0.0.22pre-x86-gcc4-2011-12-26.zip ;
283 		} else {
284			InstallOptionalHaikuImagePackage
285				BeZillaBrowser-2.0.0.22pre-r1a2-x86-gcc2-2010-05-02.zip
286				: $(baseURL)/BeZillaBrowser-2.0.0.22pre-r1a2-x86-gcc2-2010-05-02.zip ;
287 		}
288 		AddSymlinkToHaikuImage home config settings deskbar Applications
289			: /boot/apps/BeZillaBrowser/BeZillaBrowser ;
290		InstallSourceArchive BeZillaBrowser-2.0.0.22pre-r1a2-sources.tar.xz
291			: $(baseSourceURL)/2010/BeZillaBrowser-2.0.0.22pre-r1a2-sources.tar.xz ;
292	}
293}
294
295
296# Bluetooth stack
297if [ IsOptionalHaikuImagePackageAdded Bluetooth ] {
298	local bluetoothDrivers = h2generic ;
299	AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ;
300	AddFilesToHaikuImage system servers : bluetooth_server ;
301	AddFilesToHaikuImage system lib : libbluetooth.so ;
302	AddFilesToHaikuImage system add-ons kernel network protocols : l2cap ;
303	AddFilesToHaikuImage system add-ons kernel bluetooth : btCoreData hci ;
304	AddFilesToHaikuImage system preferences : Bluetooth ;
305	AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ;
306	AddSymlinkToHaikuImage home config settings deskbar Preferences
307		: /boot/system/preferences/Bluetooth ;
308	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
309		&& $(HAIKU_GCC_VERSION[1]) in 2 4 {
310		local arch = $(TARGET_ARCH) ;
311		local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
312		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
313			: /system/lib libbluetooth.so : : true ;
314	}
315}
316
317
318# BurnItNow
319if [ IsOptionalHaikuImagePackageAdded BurnItNow ] {
320	if $(TARGET_ARCH) != x86 {
321		Echo "No optional package BurnItNow available for $(TARGET_ARCH)" ;
322	} else {
323		if $(HAIKU_GCC_VERSION[1]) >= 4 {
324			InstallOptionalHaikuImagePackage
325			burnitnow-39-r1a3-x86-gcc4-2011-05-24.zip
326				: $(baseURL)/burnitnow-39-r1a3-x86-gcc4-2011-05-24.zip ;
327		} else {
328		InstallOptionalHaikuImagePackage
329			burnitnow-39-r1a3-x86-gcc2-2011-05-18.zip
330			: $(baseURL)/burnitnow-39-r1a3-x86-gcc2-2011-05-18.zip ;
331		}
332		AddSymlinkToHaikuImage home config settings deskbar Applications
333			: /boot/apps/BurnItNow/BurnItNow ;
334	}
335}
336
337
338# Bzip
339if [ IsOptionalHaikuImagePackageAdded Bzip ] {
340	if $(TARGET_ARCH) != x86 {
341		Echo "No optional package Bzip available for $(TARGET_ARCH)" ;
342	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
343		InstallOptionalHaikuImagePackage
344			bzip2-1.0.6-r1a3-x86-gcc4-2011-05-24.zip
345			: $(baseURL)/bzip2-1.0.6-r1a3-x86-gcc4-2011-05-24.zip
346			: : true ;
347	} else {
348		InstallOptionalHaikuImagePackage
349			bzip2-1.0.6-r1a3-x86-gcc2-2011-05-17.zip
350			: $(baseURL)/bzip2-1.0.6-r1a3-x86-gcc2-2011-05-17.zip
351			: : true ;
352	}
353}
354
355
356# CCache
357if [ IsOptionalHaikuImagePackageAdded CCache ] {
358	if $(TARGET_ARCH) != x86 {
359		Echo "No optional package CCache available for $(TARGET_ARCH)" ;
360	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
361		InstallOptionalHaikuImagePackage
362			ccache-3.0.1-r1a3-x86-gcc4-2011-05-23.zip
363			: $(baseURL)/ccache-3.0.1-r1a3-x86-gcc4-2011-05-23.zip ;
364	} else {
365		InstallOptionalHaikuImagePackage
366			ccache-3.0.1-r1a3-x86-gcc2-2011-05-17.zip
367			: $(baseURL)/ccache-3.0.1-r1a3-x86-gcc2-2011-05-17.zip ;
368	}
369}
370
371
372# CDRecord
373if [ IsOptionalHaikuImagePackageAdded CDRecord ] {
374	if $(TARGET_ARCH) != x86 {
375		Echo "No optional package CDRecord available for $(TARGET_ARCH)" ;
376	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
377		InstallOptionalHaikuImagePackage
378			cdrtools-3.01a01-r1a3-x86-gcc4-2011-05-23.zip
379			: $(baseURL)/cdrtools-3.01a01-r1a3-x86-gcc4-2011-05-23.zip ;
380	} else {
381		InstallOptionalHaikuImagePackage
382			cdrtools-3.01a01-r1a3-x86-gcc2-2011-05-17.zip
383			: $(baseURL)/cdrtools-3.01a01-r1a3-x86-gcc2-2011-05-17.zip ;
384	}
385}
386
387
388# Clockwerk
389if [ IsOptionalHaikuImagePackageAdded Clockwerk ] {
390	if $(TARGET_ARCH) != x86 {
391		Echo "No optional package Clockwerk available for $(TARGET_ARCH)" ;
392	} else {
393		if $(HAIKU_GCC_VERSION[1]) >= 4 {
394			InstallOptionalHaikuImagePackage
395				Clockwerk-0.0.2-x86-gcc4-2010-10-13-1.zip
396				: $(baseURL)/Clockwerk-0.0.2-x86-gcc4-2010-10-13-1.zip ;
397		} else {
398			InstallOptionalHaikuImagePackage
399				Clockwerk-0.0.2-x86-gcc2-2010-10-13-1.zip
400				: $(baseURL)/Clockwerk-0.0.2-x86-gcc2-2010-10-13-1.zip ;
401		}
402		AddSymlinkToHaikuImage home config settings deskbar Applications
403			: /boot/apps/Clockwerk/Clockwerk ;
404	}
405}
406
407
408# CLucene
409if [ IsOptionalHaikuImagePackageAdded CLucene ] {
410	if $(TARGET_ARCH) != x86 {
411		Echo "No optional package CLucene available for $(TARGET_ARCH)" ;
412	} else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
413		Echo "No optional package CLucene available for GCC2" ;
414	} else {
415		InstallOptionalHaikuImagePackage
416			clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip
417			: $(baseURL)/clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip
418			: : true ;
419	}
420}
421
422
423# CMake
424if [ IsOptionalHaikuImagePackageAdded CMake ] {
425	if $(TARGET_ARCH) != x86 {
426		Echo "No optional package CMake available for $(TARGET_ARCH)" ;
427	} else {
428		if $(HAIKU_GCC_VERSION[1]) >= 4 {
429			InstallOptionalHaikuImagePackage
430				cmake-2.8.4-r1a3-x86-gcc4-2011-05-23.zip
431				: $(baseURL)/cmake-2.8.4-r1a3-x86-gcc4-2011-05-23.zip
432				: : true ;
433		} else {
434			InstallOptionalHaikuImagePackage
435				cmake-2.8.4-r1a3-x86-gcc2-2011-05-19.zip
436				: $(baseURL)/cmake-2.8.4-r1a3-x86-gcc2-2011-05-19.zip
437				: : true ;
438		}
439	}
440}
441
442
443# Ctags
444if [ IsOptionalHaikuImagePackageAdded Ctags ] {
445	if $(TARGET_ARCH) != x86 {
446		Echo "No optional package Ctags available for $(TARGET_ARCH)" ;
447	} else {
448		if $(HAIKU_GCC_VERSION[1]) >= 4 {
449			InstallOptionalHaikuImagePackage
450				ctags-5.8-x86-gcc4-2012-01-23.zip
451				: $(baseURL)/ctags-5.8-x86-gcc4-2012-01-23.zip
452				: : true ;
453		} else {
454			InstallOptionalHaikuImagePackage
455				ctags-5.8-x86-gcc2-2010-05-24.zip
456				: $(baseURL)/ctags-5.8-x86-gcc2-2010-05-24.zip
457				: : true ;
458		}
459	}
460}
461
462
463# Curl
464if [ IsOptionalHaikuImagePackageAdded Curl ] {
465	if $(TARGET_ARCH) != x86 {
466		Echo "No optional package Curl available for $(TARGET_ARCH)" ;
467	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
468		InstallOptionalHaikuImagePackage curl-7.21.7-x86-gcc4-2011-06-23.zip
469			: $(baseURL)/curl-7.21.7-x86-gcc4-2011-06-23.zip ;
470	} else {
471		InstallOptionalHaikuImagePackage curl-7.21.7-x86-gcc2-2011-06-23.zip
472			: $(baseURL)/curl-7.21.7-x86-gcc2-2011-06-23.zip ;
473	}
474}
475
476
477# CVS
478if [ IsOptionalHaikuImagePackageAdded CVS ] {
479	if $(TARGET_ARCH) != x86 {
480		Echo "No optional package CVS available for $(TARGET_ARCH)" ;
481	} else {
482		if $(HAIKU_GCC_VERSION[1]) >= 4 {
483			InstallOptionalHaikuImagePackage
484				cvs-1.12.13.1-r1a3-x86-gcc4-2011-05-24.zip
485				: $(baseURL)/cvs-1.12.13.1-r1a3-x86-gcc4-2011-05-24.zip
486				: : true ;
487		} else {
488			InstallOptionalHaikuImagePackage
489				cvs-1.12.13.1-r1a3-x86-gcc2-2011-05-18.zip
490				: $(baseURL)/cvs-1.12.13.1-r1a3-x86-gcc2-2011-05-18.zip
491				: : true ;
492		}
493	}
494}
495
496
497# Development
498if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 {
499	AddFilesToHaikuImage system apps : Debugger ;
500	AddSymlinkToHaikuImage home config settings deskbar Applications
501		: /boot/system/apps/Debugger : Debugger ;
502	# autotools
503	if $(HAIKU_GCC_VERSION[1]) >= 4 {
504		InstallOptionalHaikuImagePackage
505			autoconf-2.68-r1a3-x86-gcc4-2011-05-23.zip
506			: $(baseURL)/autoconf-2.68-r1a3-x86-gcc4-2011-05-23.zip
507			: : true ;
508		InstallOptionalHaikuImagePackage
509			automake-1.11.1-r1a3-x86-gcc4-2011-05-23.zip
510			: $(baseURL)/automake-1.11.1-r1a3-x86-gcc4-2011-05-23.zip
511			: : true ;
512		InstallOptionalHaikuImagePackage
513			libtool-2.4-r1a3-x86-gcc4-2011-05-23.zip
514			: $(baseURL)/libtool-2.4-r1a3-x86-gcc4-2011-05-23.zip
515			: : true ;
516		InstallOptionalHaikuImagePackage
517			texinfo-4.13a-r1a3-x86-gcc4-2011-05-24.zip
518			: $(baseURL)/texinfo-4.13a-r1a3-x86-gcc4-2011-05-24.zip
519			: : true ;
520	} else {
521		InstallOptionalHaikuImagePackage
522			autoconf-2.68-r1a3-x86-gcc2-2011-05-17.zip
523			: $(baseURL)/autoconf-2.68-r1a3-x86-gcc2-2011-05-17.zip
524			: : true ;
525		InstallOptionalHaikuImagePackage
526			automake-1.11.1-r1a3-x86-gcc2-2011-05-17.zip
527			: $(baseURL)/automake-1.11.1-r1a3-x86-gcc2-2011-05-17.zip
528			: : true ;
529		InstallOptionalHaikuImagePackage
530			libtool-2.4-r1a3-x86-gcc2-2011-05-17.zip
531			: $(baseURL)/libtool-2.4-r1a3-x86-gcc2-2011-05-17.zip
532			: : true ;
533		InstallOptionalHaikuImagePackage
534			texinfo-4.13a-r1a3-x86-gcc2-2011-05-18.zip
535			: $(baseURL)/texinfo-4.13a-r1a3-x86-gcc2-2011-05-18.zip
536			: : true ;
537	}
538}
539
540
541# DevelopmentBase
542if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ]
543		&& $(TARGET_ARCH) = x86 {
544	# gcc and binutils
545	if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) {
546		InstallOptionalHaikuImagePackage
547			gcc-2.95.3-x86-gcc2-2011-11-22.zip
548			: $(baseURL)/gcc-2.95.3-x86-gcc2-2011-11-22.zip ;
549	}
550
551	if $(HAIKU_GCC_VERSION[1]) = 2 {
552		# symlink to the appropriate system/lib[/gcc2] folder
553		AddSymlinkToHaikuHybridImage
554			develop abi x86 gcc2 tools gcc-2.95.3-haiku-111122 lib
555			: /system/lib libstdc++.r4.so : : true ;
556	}
557
558	if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) {
559		InstallOptionalHaikuImagePackage
560			gcc-4.6.2-x86-gcc4-2012-01-21.zip
561			: $(baseURL)/gcc-4.6.2-x86-gcc4-2012-01-21.zip ;
562	}
563
564	if $(HAIKU_GCC_VERSION[1]) = 4 {
565		# symlink cpp to g++'s headers
566		AddSymlinkToHaikuHybridImage develop abi x86 gcc4 headers
567			: ../tools/current/include/g++ : cpp ;
568
569		# symlink to the appropriate system/lib[/gcc4] folder
570		local libs = libstdc++.so libsupc++.so ;
571		for lib in $(libs) {
572			AddSymlinkToHaikuHybridImage
573				develop abi x86 gcc4 tools gcc-4.6.2-haiku-120121 lib
574				: /system/lib $(lib) : : true ;
575		}
576	}
577
578	# other commonly used tools
579	if $(HAIKU_GCC_VERSION[1]) >= 4 {
580		InstallOptionalHaikuImagePackage
581			bison-2.4.3-r1a3-x86-gcc4-2011-05-23.zip
582			: $(baseURL)/bison-2.4.3-r1a3-x86-gcc4-2011-05-23.zip ;
583		InstallOptionalHaikuImagePackage
584			m4-1.4.16-r1a3-x86-gcc4-2011-05-23.zip
585			: $(baseURL)/m4-1.4.16-r1a3-x86-gcc4-2011-05-23.zip ;
586		InstallOptionalHaikuImagePackage
587			flex-2.5.35-r1a3-x86-gcc4-2011-05-23.zip
588			: $(baseURL)/flex-2.5.35-r1a3-x86-gcc4-2011-05-23.zip ;
589		InstallOptionalHaikuImagePackage
590			jam-2.5-x86-gcc4-2011-12-26.zip
591			: $(baseURL)/jam-2.5-x86-gcc4-2011-12-26.zip ;
592		InstallOptionalHaikuImagePackage
593			mkdepend-1.7-r1a3-x86-gcc4-2011-05-23.zip
594			: $(baseURL)/mkdepend-1.7-r1a3-x86-gcc4-2011-05-23.zip ;
595		InstallOptionalHaikuImagePackage
596			make-3.82-r1a3-x86-gcc4-2011-05-23.zip
597			: $(baseURL)/make-3.82-r1a3-x86-gcc4-2011-05-23.zip ;
598	} else {
599		InstallOptionalHaikuImagePackage
600			bison-2.4.3-r1a3-x86-gcc2-2011-05-17.zip
601			: $(baseURL)/bison-2.4.3-r1a3-x86-gcc2-2011-05-17.zip ;
602		InstallOptionalHaikuImagePackage
603			m4-1.4.16-r1a3-x86-gcc2-2011-05-17.zip
604			: $(baseURL)/m4-1.4.16-r1a3-x86-gcc2-2011-05-17.zip ;
605		InstallOptionalHaikuImagePackage
606			flex-2.5.35-r1a3-x86-gcc2-2011-05-17.zip
607			: $(baseURL)/flex-2.5.35-r1a3-x86-gcc2-2011-05-17.zip ;
608		InstallOptionalHaikuImagePackage
609			jam-2.5-x86-gcc2-2011-12-26.zip
610			: $(baseURL)/jam-2.5-x86-gcc2-2011-12-26.zip ;
611		InstallOptionalHaikuImagePackage
612			mkdepend-1.7-r1a3-x86-gcc2-2011-05-17.zip
613			: $(baseURL)/mkdepend-1.7-r1a3-x86-gcc2-2011-05-17.zip ;
614		InstallOptionalHaikuImagePackage
615			make-3.82-r1a3-x86-gcc2-2011-05-17.zip
616			: $(baseURL)/make-3.82-r1a3-x86-gcc2-2011-05-17.zip ;
617	}
618}
619
620
621# DevelopmentJava
622if [ IsOptionalHaikuImagePackageAdded DevelopmentJava ] {
623	if $(TARGET_ARCH) != x86 {
624		Echo "No optional package DevelopmentJava available for $(TARGET_ARCH)" ;
625	} else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
626		Echo "No optional package DevelopmentJava available for gcc2" ;
627	} else {
628		InstallOptionalHaikuImagePackage
629			gnu-classpath-0.98-r1a3-x86-gcc4-2011-06-08.zip
630			: $(baseURL)/gnu-classpath-0.98-r1a3-x86-gcc4-2011-06-08.zip ;
631		InstallOptionalHaikuImagePackage
632			jamvm-1.5.4-r1a3-x86-gcc4-2011-06-08.zip
633			: $(baseURL)/jamvm-1.5.4-r1a3-x86-gcc4-2011-06-08.zip ;
634		AddSymlinkToHaikuImage common bin : /boot/common/bin/jamvm : java ;
635		InstallOptionalHaikuImagePackage
636			ecj-3.6.2-haiku-2011-06-08.zip
637			: $(baseURL)/ecj-3.6.2-haiku-2011-06-08.zip ;
638	}
639}
640
641
642# DevelopmentMin
643if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 {
644	if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
645		Exit "Optional package DevelopmentMin: Unsupported GCC version:"
646			$(HAIKU_GCC_VERSION[1]) ;
647	}
648
649	local arch = $(TARGET_ARCH) ;
650	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
651	local abiDirTokens = develop abi $(arch) $(abi) ;
652
653	# glue code
654	AddFilesToHaikuHybridImage $(abiDirTokens) lib :
655		<src!system!glue!arch!$(arch)>crti.o
656		<src!system!glue!arch!$(arch)>crtn.o
657		<src!system!glue>init_term_dyn.o
658		<src!system!glue>start_dyn.o
659		<src!system!glue>haiku_version_glue.o
660	;
661
662	# kernel
663	AddFilesToHaikuHybridImage $(abiDirTokens) lib : kernel.so : _KERNEL_ ;
664
665	# additional libraries
666	local developmentLibs = <revisioned>libroot_debug.so ;
667	AddFilesToHaikuHybridImage system lib : $(developmentLibs) : : true ;
668
669	# library symlinks
670	local lib ;
671	for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) $(developmentLibs) {
672		AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
673			: /system/lib $(lib:BS) : : true ;
674		local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ;
675		if $(abiVersion) {
676			local abiVersionedLib = $(lib:BS).$(abiVersion) ;
677			AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
678				: /system/lib $(abiVersionedLib) : : true ;
679		}
680	}
681
682	# static libraries
683	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libncurses.a ;
684	AddFilesToHaikuHybridImage $(abiDirTokens) lib : liblocalestub.a ;
685
686	# the POSIX error code mapper library
687	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libposix_error_mapper.a ;
688
689	# symlinks for ABI abstraction
690	AddSymlinkToHaikuImage develop abi : $(arch)/$(abi) : current ;
691	AddSymlinkToHaikuImage develop lib : /boot/develop/abi/current/lib
692		: $(arch) ;
693	AddSymlinkToHaikuImage develop tools
694		: /boot/develop/abi/current/tools/current : gnupro ;
695	AddSymlinkToHaikuImage develop headers
696		: /boot/develop/abi/current/headers/cpp ;
697	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
698		: /boot/common/lib : common : true ;
699	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
700		: /boot/home/config/lib : home : true ;
701
702	# ABI independent stuff
703
704	# scripts: cc and c++ wrapper, freetype-config, setgcc
705	local scripts = cc c++ freetype-config setgcc ;
706	SEARCH on $(scripts) = [ FDirName $(HAIKU_TOP) data bin ] ;
707	AddFilesToHaikuImage system bin : $(scripts) ;
708
709	# skeleton makefile and makefile-engine
710	local makefileEngineFiles =
711		<makefile-engine>makefile
712		<makefile-engine>makefile-engine
713	;
714	SEARCH on $(makefileEngineFiles)
715		= [ FDirName $(HAIKU_TOP) data develop ] ;
716	AddFilesToHaikuImage develop etc : $(makefileEngineFiles) ;
717
718	# headers
719	AddHeaderDirectoryToHaikuImage config ;
720	AddHeaderDirectoryToHaikuImage glibc ;
721	AddHeaderDirectoryToHaikuImage os ;
722	AddHeaderDirectoryToHaikuImage posix ;
723
724	# create be -> os symlink for now
725	AddSymlinkToHaikuImage develop headers : os : be ;
726
727	# BSD and GNU compatibility headers
728	AddHeaderDirectoryToHaikuImage compatibility bsd : bsd ;
729	AddHeaderDirectoryToHaikuImage compatibility gnu : gnu ;
730
731	# third party libs headers
732	AddHeaderDirectoryToHaikuImage libs freetype2 : 3rdparty ;
733	AddHeaderDirectoryToHaikuImage libs jpeg : 3rdparty ;
734	AddHeaderDirectoryToHaikuImage libs ncurses : 3rdparty ;
735	AddHeaderDirectoryToHaikuImage libs png : 3rdparty ;
736	AddHeaderDirectoryToHaikuImage libs termcap : 3rdparty ;
737	AddHeaderDirectoryToHaikuImage libs tiff : 3rdparty ;
738	AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ;
739
740	# cpp headers
741	if $(HAIKU_GCC_VERSION[1]) = 2 {
742		# GCC 2 only -- for GCC 4 they come with the DevelopmentBase package
743		CopyDirectoryToHaikuImage $(abiDirTokens) headers
744			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
745		CopyDirectoryToAlternativeGCCArchive $(abiDirTokens) headers
746			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
747	}
748}
749
750
751# DMIDecode
752if [ IsOptionalHaikuImagePackageAdded DMIDecode ] {
753	if $(TARGET_ARCH) != x86 {
754		Echo "No optional package DMIDecode available for $(TARGET_ARCH)" ;
755	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
756		InstallOptionalHaikuImagePackage
757			dmidecode-2.11-x86-gcc4-2011-11-02.zip
758			: http://revolf.free.fr/beos/dmidecode-2.11-x86-gcc4-2011-11-02.zip ;
759	} else {
760		InstallOptionalHaikuImagePackage
761			dmidecode-2.11-x86-gcc2-2011-11-02.zip
762			: http://revolf.free.fr/beos/dmidecode-2.11-x86-gcc2-2011-11-02.zip ;
763	}
764}
765
766
767# Doxygen
768if [ IsOptionalHaikuImagePackageAdded Doxygen ] {
769	if $(TARGET_ARCH) != x86 {
770		Echo "No optional package Doxygen available for $(TARGET_ARCH)" ;
771	} else {
772		if $(HAIKU_GCC_VERSION[1]) >= 4 {
773			InstallOptionalHaikuImagePackage
774				doxygen-1.6.3-x86-gcc4-2010-05-17.zip
775				: $(baseURL)/doxygen-1.6.3-x86-gcc4-2010-05-17.zip
776				: : true ;
777		} else {
778			InstallOptionalHaikuImagePackage
779				doxygen-1.6.3-x86-gcc2-2010-05-17.zip
780				: $(baseURL)/doxygen-1.6.3-x86-gcc2-2010-05-17.zip
781				: : true ;
782		}
783	}
784}
785
786
787# Expat
788if [ IsOptionalHaikuImagePackageAdded Expat ] {
789	if $(TARGET_ARCH) != x86 {
790		Echo "No optional package Expat available for $(TARGET_ARCH)" ;
791	} else {
792		if $(HAIKU_GCC_VERSION[1]) >= 4 {
793			InstallOptionalHaikuImagePackage
794				expat-2.0.1-r1a3-x86-gcc4-2011-05-24.zip
795				: $(baseURL)/expat-2.0.1-r1a3-x86-gcc4-2011-05-24.zip
796				: : true ;
797		} else {
798			InstallOptionalHaikuImagePackage
799				expat-2.0.1-r1a3-x86-gcc2-2011-05-20.zip
800				: $(baseURL)/expat-2.0.1-r1a3-x86-gcc2-2011-05-20.zip
801				: : true ;
802		}
803	}
804}
805
806
807# Fastdep
808if [ IsOptionalHaikuImagePackageAdded Fastdep ] {
809	if $(TARGET_ARCH) != x86 {
810		Echo "No optional package Fastdep available for $(TARGET_ARCH)" ;
811	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
812		InstallOptionalHaikuImagePackage
813			fastdep-0.16-r1a3-x86-gcc4-2011-05-24.zip
814			: $(baseURL)/fastdep-0.16-r1a3-x86-gcc4-2011-05-24.zip ;
815	} else {
816		InstallOptionalHaikuImagePackage
817			fastdep-0.16-r1a3-x86-gcc2-2011-05-18.zip
818			: $(baseURL)/fastdep-0.16-r1a3-x86-gcc2-2011-05-18.zip ;
819	}
820}
821
822
823# friss
824if [ IsOptionalHaikuImagePackageAdded friss ] {
825	if $(TARGET_ARCH) != x86 {
826		Echo "No optional package friss available for $(TARGET_ARCH)" ;
827	} else {
828		if $(HAIKU_GCC_VERSION[1]) >= 4 {
829			InstallOptionalHaikuImagePackage
830				friss-24-r1a3-x86-gcc4-2011-05-31.zip
831				: $(baseURL)/friss-24-r1a3-x86-gcc4-2011-05-31.zip ;
832		} else {
833			InstallOptionalHaikuImagePackage
834				friss-24-r1a3-x86-gcc2-2011-05-31.zip
835				: $(baseURL)/friss-24-r1a3-x86-gcc2-2011-05-31.zip ;
836		}
837#		AddSymlinkToHaikuImage home config settings deskbar Desktop\ applets
838#			: /boot/apps/FRiSS/FRiSS ;
839	}
840}
841
842
843# GetText
844if [ IsOptionalHaikuImagePackageAdded GetText ] {
845	if $(TARGET_ARCH) != x86 {
846		Echo "No optional package GetText available for $(TARGET_ARCH)" ;
847	} else {
848		if $(HAIKU_GCC_VERSION[1]) >= 4 {
849			InstallOptionalHaikuImagePackage
850				gettext-0.18.1.1-r1a3-x86-gcc4-2011-05-24.zip
851				: $(baseURL)/gettext-0.18.1.1-r1a3-x86-gcc4-2011-05-24.zip
852				: : true ;
853		} else {
854			InstallOptionalHaikuImagePackage
855				gettext-0.18.1.1-x86-gcc2-2011-02-07.zip
856				: $(baseURL)/gettext-0.18.1.1-x86-gcc2-2011-02-07.zip
857				: : true ;
858		}
859	}
860}
861
862
863# Git
864if [ IsOptionalHaikuImagePackageAdded Git ] {
865	if $(TARGET_ARCH) != x86 {
866		Echo "No optional package Git available for $(TARGET_ARCH)" ;
867	} else {
868		if $(HAIKU_GCC_VERSION[1]) >= 4 {
869			InstallOptionalHaikuImagePackage
870				git-1.7.7.2-x86-gcc4-2011-11-04.zip
871				: $(baseURL)/git-1.7.7.2-x86-gcc4-2011-11-04.zip
872				: : true ;
873		} else {
874			InstallOptionalHaikuImagePackage
875				git-1.7.7.2-x86-gcc2-2011-11-04.zip
876				: $(baseURL)/git-1.7.7.2-x86-gcc2-2011-11-04.zip
877				: : true ;
878		}
879	}
880}
881
882
883# GPerf
884if [ IsOptionalHaikuImagePackageAdded GPerf ] {
885	if $(TARGET_ARCH) != x86 {
886		Echo "No optional package GPerf available for $(TARGET_ARCH)" ;
887	} else {
888		if $(HAIKU_GCC_VERSION[1]) >= 4 {
889			InstallOptionalHaikuImagePackage
890				gperf-3.0.4-r1a3-x86-gcc4-2011-05-24.zip
891				: $(baseURL)/gperf-3.0.4-r1a3-x86-gcc4-2011-05-24.zip
892				: : true ;
893		} else {
894			InstallOptionalHaikuImagePackage
895				gperf-3.0.4-r1a3-x86-gcc2-2011-05-18.zip
896				: $(baseURL)/gperf-3.0.4-r1a3-x86-gcc2-2011-05-18.zip
897				: : true ;
898		}
899	}
900}
901
902
903# Groff
904if [ IsOptionalHaikuImagePackageAdded Groff ] {
905	if $(TARGET_ARCH) != x86 {
906		Echo "No optional package Groff available for $(TARGET_ARCH)" ;
907	} else {
908		if $(HAIKU_GCC_VERSION[1]) >= 4 {
909			InstallOptionalHaikuImagePackage
910				groff-1.20.1-r1a3-x86-gcc4-2011-05-24.zip
911				: $(baseURL)/groff-1.20.1-r1a3-x86-gcc4-2011-05-24.zip
912				: : true ;
913		} else {
914			InstallOptionalHaikuImagePackage
915				 groff-1.20.1-r1a3-x86-gcc2-2011-05-18.zip
916				: $(baseURL)/groff-1.20.1-r1a3-x86-gcc2-2011-05-18.zip
917				: : true ;
918		}
919	}
920}
921
922
923# ICU
924if [ IsOptionalHaikuImagePackageAdded ICU ] {
925	if $(TARGET_ARCH) != x86 {
926		Echo "No optional package ICU available for $(TARGET_ARCH)" ;
927	} else {
928		if $(HAIKU_GCC_VERSION[1]) = 2 {
929			# unzip gcc2
930			InstallOptionalHaikuImagePackage $(HAIKU_ICU_GCC_2_PACKAGE)
931				: $(baseURL)/$(HAIKU_ICU_GCC_2_PACKAGE)
932				: system lib ;
933			if $(isHybridBuild) {
934				# unzip gcc4 to gcc4 subdir
935				InstallOptionalHaikuImagePackage $(HAIKU_ICU_GCC_4_PACKAGE)
936					: $(baseURL)/$(HAIKU_ICU_GCC_4_PACKAGE)
937					: system lib gcc4 ;
938			}
939		} else {
940			# unzip gcc4
941			InstallOptionalHaikuImagePackage $(HAIKU_ICU_GCC_4_PACKAGE)
942				: $(baseURL)/$(HAIKU_ICU_GCC_4_PACKAGE)
943				: system lib ;
944			if $(isHybridBuild) {
945				# unzip gcc2 to gcc2 subdir
946				InstallOptionalHaikuImagePackage $(HAIKU_ICU_GCC_2_PACKAGE)
947					: $(baseURL)/$(HAIKU_ICU_GCC_2_PACKAGE)
948					: system lib gcc2 ;
949			}
950		}
951	}
952}
953
954
955# ICU-devel
956if [ IsOptionalHaikuImagePackageAdded ICU-devel ] {
957	InstallOptionalHaikuImagePackage $(HAIKU_ICU_DEVEL_PACKAGE)
958		: $(baseURL)/$(HAIKU_ICU_DEVEL_PACKAGE) ;
959
960	local arch = $(TARGET_ARCH) ;
961	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
962	local lib ;
963	for abiVersionedLib in $(HAIKU_ICU_LIBS) {
964		abiVersionedLib = $(abiVersionedLib:B:G=) ;
965		lib = $(abiVersionedLib:B) ;
966		while $(lib:S) != ".so" {
967			abiVersionedLib = $(abiVersionedLib:B) ;
968			lib = $(abiVersionedLib:B) ;
969		}
970		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
971			: /system/lib $(abiVersionedLib) : : true ;
972		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
973			: $(abiVersionedLib) : $(lib) ;
974	}
975}
976
977
978# KeymapSwitcher
979if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] {
980	if $(TARGET_ARCH) != x86 {
981		Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ;
982	} else {
983		if $(HAIKU_GCC_VERSION[1]) >= 4 {
984			InstallOptionalHaikuImagePackage
985				KeymapSwitcher-1.2.6-x86-gcc4-2011-12-23.zip
986				: $(baseURL)/KeymapSwitcher-1.2.6-x86-gcc4-2011-12-23.zip ;
987		} else {
988			InstallOptionalHaikuImagePackage
989				KeymapSwitcher-1.2.6-x86-gcc2-2011-12-23.zip
990				: $(baseURL)/KeymapSwitcher-1.2.6-x86-gcc2-2011-12-23.zip ;
991		}
992		AddSymlinkToHaikuImage home config settings deskbar Preferences
993			: /boot/common/bin/KeymapSwitcher ;
994	}
995}
996
997
998# LibEvent
999if [ IsOptionalHaikuImagePackageAdded LibEvent ] {
1000	if $(TARGET_ARCH) != x86 {
1001		Echo "No optional package LibEvent available for $(TARGET_ARCH)" ;
1002	} else {
1003		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1004			InstallOptionalHaikuImagePackage
1005				libevent-2.0.10-r1a3-x86-gcc4-2011-05-24.zip
1006				: $(baseURL)/lib/libevent-2.0.10-r1a3-x86-gcc4-2011-05-24.zip
1007				: : true ;
1008		} else {
1009			InstallOptionalHaikuImagePackage
1010				libevent-2.0.10-r1a3-x86-gcc2-2011-05-18.zip
1011				: $(baseURL)/lib/libevent-2.0.10-r1a3-x86-gcc2-2011-05-18.zip
1012				: : true ;
1013		}
1014	}
1015}
1016
1017
1018# LibIconv
1019if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
1020	if $(TARGET_ARCH) != x86 {
1021		Echo "No optional package LibIconv available for $(TARGET_ARCH)" ;
1022	} else {
1023		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1024			InstallOptionalHaikuImagePackage
1025				libiconv-1.13.1-r1a3-x86-gcc4-2011-05-24.zip
1026				: $(baseURL)/libiconv-1.13.1-r1a3-x86-gcc4-2011-05-24.zip ;
1027		} else {
1028			InstallOptionalHaikuImagePackage
1029				libiconv-1.13.1-r1a3-x86-gcc2-2011-05-18.zip
1030				: $(baseURL)/libiconv-1.13.1-r1a3-x86-gcc2-2011-05-18.zip ;
1031		}
1032	}
1033}
1034
1035
1036# LibLayout library
1037if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
1038	if $(TARGET_ARCH) != x86 {
1039		Echo "No optional package LibLayout available for $(TARGET_ARCH)" ;
1040	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1041		Echo "No optional package LibLayout available for gcc4" ;
1042	} else {
1043		InstallOptionalHaikuImagePackage liblayout-1.4.0-gcc2-2009-03-08.zip
1044			: $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip ;
1045	}
1046}
1047
1048
1049# Libmng library
1050if [ IsOptionalHaikuImagePackageAdded Libmng ] {
1051	if $(TARGET_ARCH) != x86 {
1052		Echo "No optional package Libmng available for $(TARGET_ARCH)" ;
1053	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1054		InstallOptionalHaikuImagePackage
1055			libmng-1.0.10-r1a3-x86-gcc4-2011-05-24.zip
1056			: $(baseURL)/lib/libmng-1.0.10-r1a3-x86-gcc4-2011-05-24.zip ;
1057	} else {
1058		InstallOptionalHaikuImagePackage
1059			libmng-1.0.10-r1a3-x86-gcc2-2011-05-18.zip
1060			: $(baseURL)/lib/libmng-1.0.10-r1a3-x86-gcc2-2011-05-18.zip ;
1061	}
1062}
1063
1064
1065# LibXML2
1066if [ IsOptionalHaikuImagePackageAdded LibXML2 ] {
1067	if $(TARGET_ARCH) != x86 {
1068		Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ;
1069	} else {
1070		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1071			InstallOptionalHaikuImagePackage
1072				libxml2-2.7.8-r1a3-x86-gcc4-2011-05-24.zip
1073				: $(baseURL)/libxml2-2.7.8-r1a3-x86-gcc4-2011-05-24.zip ;
1074		} else {
1075			InstallOptionalHaikuImagePackage
1076				libxml2-2.7.8-r1a3-x86-gcc2-2011-05-18.zip
1077				: $(baseURL)/libxml2-2.7.8-r1a3-x86-gcc2-2011-05-18.zip ;
1078		}
1079	}
1080}
1081
1082
1083# LibXSLT
1084if [ IsOptionalHaikuImagePackageAdded LibXSLT ] {
1085	if $(TARGET_ARCH) != x86 {
1086		Echo "No optional package LibXSLT available for $(TARGET_ARCH)" ;
1087	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1088		InstallOptionalHaikuImagePackage
1089			libxslt-1.1.26-r1a3-x86-gcc4-2011-05-24.zip
1090			: $(baseURL)/libxslt-1.1.26-r1a3-x86-gcc4-2011-05-24.zip ;
1091	} else {
1092		InstallOptionalHaikuImagePackage
1093			libxslt-1.1.26-r1a3-x86-gcc2-2011-05-18.zip
1094			: $(baseURL)/libxslt-1.1.26-r1a3-x86-gcc2-2011-05-18.zip
1095			: : true ;
1096	}
1097}
1098
1099
1100# Links web browser
1101if [ IsOptionalHaikuImagePackageAdded Links ] {
1102	if $(TARGET_ARCH) != x86 {
1103		Echo "No optional package Links available for $(TARGET_ARCH)" ;
1104	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1105		Echo "No optional package Links available for gcc4" ;
1106	} else {
1107		InstallOptionalHaikuImagePackage Links.zip
1108			: $(baseURL)/links-x86-gcc2-2008-05-03.zip ;
1109		AddSymlinkToHaikuImage home config settings deskbar Applications
1110			: /boot/home/config/bin/links ;
1111	}
1112}
1113
1114
1115# Lua
1116if [ IsOptionalHaikuImagePackageAdded Lua ] {
1117	if $(TARGET_ARCH) != x86 {
1118		Echo "No optional package Lua available for $(TARGET_ARCH)" ;
1119	} else {
1120		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1121			InstallOptionalHaikuImagePackage
1122				lua-5.1.4-x86-gcc4-2010-10-30.zip
1123				: $(baseURL)/lua-5.1.4-x86-gcc4-2010-10-30.zip
1124				: : true ;
1125		} else {
1126			InstallOptionalHaikuImagePackage
1127				lua-5.1.4-3-r1a3-x86-gcc2-2011-05-18.zip
1128				: $(baseURL)/lua-5.1.4-3-r1a3-x86-gcc2-2011-05-18.zip
1129				: : true ;
1130		}
1131	}
1132}
1133
1134
1135# Man
1136if [ IsOptionalHaikuImagePackageAdded Man ] {
1137	if $(TARGET_ARCH) != x86 {
1138		Echo "No optional package Man available for $(TARGET_ARCH)" ;
1139	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1140		InstallOptionalHaikuImagePackage
1141			 man-1.6f-r1a3-x86-gcc4-2011-05-24.zip
1142			: $(baseURL)/man-1.6f-r1a3-x86-gcc4-2011-05-24.zip ;
1143	} else {
1144		InstallOptionalHaikuImagePackage
1145			 man-1.6f-r1a3-x86-gcc2-2011-05-18.zip
1146			: $(baseURL)/man-1.6f-r1a3-x86-gcc2-2011-05-18.zip ;
1147	}
1148}
1149
1150
1151# MandatoryPackages
1152if [ IsOptionalHaikuImagePackageAdded MandatoryPackages ] {
1153	# Pseudo package for grouping packages, which are added to all images.
1154}
1155
1156
1157# Mercurial
1158if [ IsOptionalHaikuImagePackageAdded Mercurial ] {
1159	if $(TARGET_ARCH) != x86 {
1160		Echo "No optional package Mercurial available for $(TARGET_ARCH)" ;
1161	} else {
1162		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1163			InstallOptionalHaikuImagePackage
1164				mercurial-1.8.3-r1a3-x86-gcc4-2011-05-24.zip
1165				: $(baseURL)/mercurial-1.8.3-r1a3-x86-gcc4-2011-05-24.zip
1166				: : true ;
1167		} else {
1168			InstallOptionalHaikuImagePackage
1169				mercurial-1.8.3-r1a3-x86-gcc2-2011-05-17.zip
1170				: $(baseURL)/mercurial-1.8.3-r1a3-x86-gcc2-2011-05-17.zip
1171				: : true ;
1172		}
1173	}
1174}
1175
1176
1177# Nano
1178if [ IsOptionalHaikuImagePackageAdded Nano ] {
1179	if $(TARGET_ARCH) != x86 {
1180		Echo "No optional package Nano available for $(TARGET_ARCH)" ;
1181	} else {
1182		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1183			InstallOptionalHaikuImagePackage
1184				nano-2.2.6-r1a3-x86-gcc4-2011-05-24.zip
1185				: $(baseURL)/nano-2.2.6-r1a3-x86-gcc4-2011-05-24.zip ;
1186		} else {
1187			InstallOptionalHaikuImagePackage
1188				nano-2.2.6-r1a3-x86-gcc2-2011-05-18.zip
1189				: $(baseURL)/nano-2.2.6-r1a3-x86-gcc2-2011-05-18.zip ;
1190		}
1191	}
1192}
1193
1194
1195# Neon
1196if [ IsOptionalHaikuImagePackageAdded Neon ] {
1197	if $(TARGET_ARCH) != x86 {
1198		Echo "No optional package Neon available for $(TARGET_ARCH)" ;
1199	} else {
1200		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1201			InstallOptionalHaikuImagePackage
1202				neon-0.29.6-r1a3-x86-gcc4-2011-05-24.zip
1203				: $(baseURL)/neon-0.29.6-r1a3-x86-gcc4-2011-05-24.zip ;
1204		} else {
1205			InstallOptionalHaikuImagePackage
1206				neon-0.29.6-r1a3-x86-gcc2-2011-05-18.zip
1207				: $(baseURL)/neon-0.29.6-r1a3-x86-gcc2-2011-05-18.zip ;
1208		}
1209	}
1210}
1211
1212
1213# NetFS network file system
1214if [ IsOptionalHaikuImagePackageAdded NetFS ] {
1215	# userlandfs module
1216	AddFilesToHaikuImage home config add-ons userlandfs : netfs ;
1217
1218	# servers
1219	AddFilesToHaikuImage system servers : netfs_server ;
1220	AddFilesToHaikuImage system servers : authentication_server ;
1221
1222	# tools
1223	AddFilesToHaikuImage system bin : netfs_config ;
1224	AddFilesToHaikuImage system bin : netfs_server_prefs ;
1225
1226	#example settings for netfs_server
1227	local netfsServerSettingsFiles = <driver-settings>netfs-server ;
1228	SEARCH on $(netfsServerSettingsFiles)
1229		= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems netfs ] ;
1230	AddFilesToHaikuImage home config settings kernel drivers
1231	: $(netfsServerSettingsFiles) ;
1232
1233	#userlandfs settings are needed for netfs_config to work (ioctls)
1234	local userlandfsServerSettingsFiles = <driver-settings>userlandfs ;
1235	SEARCH on $(userlandfsServerSettingsFiles)
1236		= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems userlandfs ] ;
1237	AddFilesToHaikuImage home config settings kernel drivers
1238	: $(userlandfsServerSettingsFiles) ;
1239}
1240
1241
1242# NetSurf web browser
1243if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
1244	if $(TARGET_ARCH) != x86 {
1245		Echo "No optional package NetSurf available for $(TARGET_ARCH)" ;
1246	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1247		Echo "No optional package NetSurf available for gcc4" ;
1248	} else {
1249		InstallOptionalHaikuImagePackage
1250			netsurf-2.7-r1a3-x86-gcc2-2011-06-04.zip
1251			: $(baseURL)/netsurf-2.7-r1a3-x86-gcc2-2011-06-04.zip ;
1252		AddSymlinkToHaikuImage home config settings deskbar Applications
1253			: /boot/apps/NetSurf/NetSurf ;
1254	}
1255}
1256
1257
1258# OCaml
1259if [ IsOptionalHaikuImagePackageAdded OCaml ] {
1260	if $(TARGET_ARCH) != x86 {
1261		Echo "No optional package OCaml available for $(TARGET_ARCH)" ;
1262	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1263		Echo "No optional package OCaml available for gcc4" ;
1264	} else {
1265		InstallOptionalHaikuImagePackage
1266			ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip
1267			: $(baseURL)/ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip ;
1268		InstallOptionalHaikuImagePackage
1269			camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip
1270			: $(baseURL)/camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip ;
1271	}
1272}
1273
1274
1275# OpenSound drivers
1276if [ IsOptionalHaikuImagePackageAdded OpenSound ] {
1277	if $(TARGET_ARCH) != x86 {
1278		Echo "No optional package OpenSound available for $(TARGET_ARCH)" ;
1279	} else {
1280		InstallOptionalHaikuImagePackage
1281			opensound-4.2-r1a2-x86-gcc2-2010-05-01.zip
1282			: $(baseURL)/opensound-4.2-r1a2-x86-gcc2-2010-05-01.zip ;
1283	}
1284}
1285
1286
1287# OpenSSH
1288if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
1289	if $(TARGET_ARCH) != x86 {
1290		Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ;
1291	} else {
1292		if ! $(HAIKU_IMAGE_HOST_NAME) && ! $(HAIKU_IGNORE_USER_BUILD_CONFIG) {
1293			Exit "Optional package OpenSSH requires the HAIKU_IMAGE_HOST_NAME"
1294				"variable to be set!" ;
1295		}
1296
1297		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1298			InstallOptionalHaikuImagePackage
1299				openssh-5.9p1-x86-gcc4-2011-11-30.zip
1300				: $(baseURL)/openssh-5.9p1-x86-gcc4-2011-11-30.zip ;
1301		} else {
1302			InstallOptionalHaikuImagePackage
1303				openssh-5.9p1-x86-gcc2-2011-11-30.zip
1304				: $(baseURL)/openssh-5.9p1-x86-gcc2-2011-11-30.zip ;
1305		}
1306
1307		AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true
1308			: "sshd user" ;
1309	}
1310}
1311
1312
1313# OpenSSL
1314if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
1315	if $(TARGET_ARCH) != x86 {
1316		Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
1317	} else {
1318		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1319			InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
1320				: $(HAIKU_OPENSSL_URL) ;
1321		} else {
1322			InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
1323				: $(HAIKU_OPENSSL_URL) ;
1324		}
1325	}
1326}
1327
1328
1329# P7zip
1330if [ IsOptionalHaikuImagePackageAdded P7zip ] {
1331	if $(TARGET_ARCH) != x86 {
1332		Echo "No optional package P7zip available for $(TARGET_ARCH)" ;
1333	} else {
1334		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1335			InstallOptionalHaikuImagePackage
1336				p7zip-9.13-r1a3-x86-gcc4-2011-05-24.zip
1337				: $(baseURL)/p7zip-9.13-r1a3-x86-gcc4-2011-05-24.zip ;
1338		} else {
1339			InstallOptionalHaikuImagePackage
1340				p7zip-9.13-r1a3-x86-gcc2-2011-05-18.zip
1341				: $(baseURL)/p7zip-9.13-r1a3-x86-gcc2-2011-05-18.zip ;
1342		}
1343		AddExpanderRuleToHaikuImage "application/x-7z-compressed" : .7z
1344			: "7za l \\0045s"
1345			: "7za x -y \\0045s"
1346		;
1347
1348	}
1349}
1350
1351
1352# Paladin
1353if [ IsOptionalHaikuImagePackageAdded Paladin ] {
1354	if $(TARGET_ARCH) != x86 {
1355		Echo "No optional package Paladin available for $(TARGET_ARCH)" ;
1356	} else {
1357		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1358			InstallOptionalHaikuImagePackage
1359				paladin-1.3-r1a3-x86-gcc4-2011-05-24.zip
1360				: $(baseURL)/paladin-1.3-r1a3-x86-gcc4-2011-05-24.zip ;
1361		} else {
1362			InstallOptionalHaikuImagePackage
1363				paladin-1.3-r1a3-x86-gcc2-2011-05-18.zip
1364				: $(baseURL)/paladin-1.3-r1a3-x86-gcc2-2011-05-18.zip ;
1365		}
1366
1367		AddSymlinkToHaikuImage home config settings deskbar Applications
1368			: /boot/apps/Paladin/Paladin ;
1369		AddSymlinkToHaikuImage common bin
1370			: /boot/apps/Paladin/Paladin ;
1371	}
1372}
1373
1374
1375# PCRE regex engine
1376if [ IsOptionalHaikuImagePackageAdded PCRE ] {
1377	if $(TARGET_ARCH) != x86 {
1378		Echo "No optional package PCRE available for $(TARGET_ARCH)" ;
1379	} else {
1380		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1381			InstallOptionalHaikuImagePackage
1382				libpcre-8.12-r1a3-x86-gcc4-2011-05-24.zip
1383				: $(baseURL)/libpcre-8.12-r1a3-x86-gcc4-2011-05-24.zip ;
1384		} else {
1385			InstallOptionalHaikuImagePackage
1386				libpcre-8.12-r1a3-x86-gcc2-2011-05-17.zip
1387				: $(baseURL)/libpcre-8.12-r1a3-x86-gcc2-2011-05-17.zip ;
1388		}
1389	}
1390}
1391
1392
1393# Pe text editor
1394if [ IsOptionalHaikuImagePackageAdded Pe ] {
1395	if $(TARGET_ARCH) != x86 {
1396		Echo "No optional package Pe available for $(TARGET_ARCH)" ;
1397	} else {
1398		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1399			InstallOptionalHaikuImagePackage
1400				pe-2.4.3-600-x86-gcc4-2011-12-18.zip
1401				: $(baseURL)/pe-2.4.3-600-x86-gcc4-2011-12-18.zip ;
1402		} else {
1403			InstallOptionalHaikuImagePackage
1404				pe-2.4.3-600-r1a3-x86-gcc2-2011-05-18.zip
1405				: $(baseURL)/pe-2.4.3-600-r1a3-x86-gcc2-2011-05-18.zip ;
1406		}
1407		AddSymlinkToHaikuImage home config settings deskbar Applications
1408			: /boot/apps/Pe/Pe ;
1409		AddSymlinkToHaikuImage common bin
1410			: /boot/apps/Pe/lpe ;
1411	}
1412}
1413
1414
1415# Perl
1416if [ IsOptionalHaikuImagePackageAdded Perl ] {
1417	if $(TARGET_ARCH) != x86 {
1418		Echo "No optional package Perl available for $(TARGET_ARCH)" ;
1419	} else {
1420		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1421			InstallOptionalHaikuImagePackage
1422				perl-5.10.1-r1a3-x86-gcc4-2011-05-24.zip
1423				: $(baseURL)/perl-5.10.1-r1a3-x86-gcc4-2011-05-24.zip
1424				: : true ;
1425		} else {
1426			InstallOptionalHaikuImagePackage
1427				perl-5.10.1-r1a3-x86-gcc2-2011-05-17.zip
1428				: $(baseURL)/perl-5.10.1-r1a3-x86-gcc2-2011-05-17.zip
1429				: : true ;
1430		}
1431	}
1432}
1433
1434
1435# Python
1436if [ IsOptionalHaikuImagePackageAdded Python ] {
1437	if $(TARGET_ARCH) != x86 {
1438		Echo "No optional package Python available for $(TARGET_ARCH)" ;
1439	} else {
1440		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1441			InstallOptionalHaikuImagePackage
1442				python-2.6.7-x86-gcc4-2011-06-24.zip
1443				: $(baseURL)/python-2.6.7-x86-gcc4-2011-06-24.zip
1444				: : true ;
1445		} else {
1446			InstallOptionalHaikuImagePackage
1447				python-2.6.7-x86-gcc2-2011-06-24.zip
1448				: $(baseURL)/python-2.6.7-x86-gcc2-2011-06-24.zip
1449				: : true ;
1450		}
1451	}
1452}
1453
1454
1455# Rsync
1456if [ IsOptionalHaikuImagePackageAdded Rsync ] {
1457	if $(TARGET_ARCH) != x86 {
1458		Echo "No optional package Rsync available for $(TARGET_ARCH)" ;
1459	} else {
1460		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1461			InstallOptionalHaikuImagePackage
1462				rsync-3.0.7-r1a3-x86-gcc4-2011-05-24.zip
1463				: $(baseURL)/rsync-3.0.7-r1a3-x86-gcc4-2011-05-24.zip
1464				: : true ;
1465		} else {
1466			InstallOptionalHaikuImagePackage
1467				rsync-3.0.7-r1a3-x86-gcc2-2011-05-18.zip
1468				: $(baseURL)/rsync-3.0.7-r1a3-x86-gcc2-2011-05-18.zip
1469				: : true ;
1470		}
1471	}
1472}
1473
1474
1475# Ruby
1476if [ IsOptionalHaikuImagePackageAdded Ruby ] {
1477	if $(TARGET_ARCH) != x86 {
1478		Echo "No optional package Ruby available for $(TARGET_ARCH)" ;
1479	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1480		InstallOptionalHaikuImagePackage
1481			ruby-1.9.1-r1a3-x86-gcc4-2011-05-24.zip
1482			: $(baseURL)/ruby-1.9.1-r1a3-x86-gcc4-2011-05-24.zip ;
1483	} else {
1484		InstallOptionalHaikuImagePackage
1485			ruby-1.9.1-r1a3-x86-gcc2-2011-05-31.zip
1486			: $(baseURL)/ruby-1.9.1-r1a3-x86-gcc2-2011-06-01.zip ;
1487	}
1488}
1489
1490
1491# Sed
1492if [ IsOptionalHaikuImagePackageAdded Sed ] {
1493	if $(TARGET_ARCH) != x86 {
1494		Echo "No optional package Sed available for $(TARGET_ARCH)" ;
1495	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1496		InstallOptionalHaikuImagePackage
1497			sed-4.2.1-r1a3-x86-gcc4-2011-05-24.zip
1498			: $(baseURL)/sed-4.2.1-r1a3-x86-gcc4-2011-05-24.zip ;
1499	} else {
1500		InstallOptionalHaikuImagePackage
1501			sed-4.2.1-r1a3-x86-gcc2-2011-05-17.zip
1502			: $(baseURL)/sed-4.2.1-r1a3-x86-gcc2-2011-05-17.zip ;
1503	}
1504}
1505
1506
1507# SQLite
1508if [ IsOptionalHaikuImagePackageAdded SQLite ] {
1509	if $(TARGET_ARCH) != x86 {
1510		Echo "No optional package SQLite available for $(TARGET_ARCH)" ;
1511	} else {
1512		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1513			InstallOptionalHaikuImagePackage
1514				sqlite-3.7.5-r1a3-x86-gcc4-2011-05-24.zip
1515				: $(baseURL)/sqlite-3.7.5-r1a3-x86-gcc4-2011-05-24.zip ;
1516		} else {
1517			InstallOptionalHaikuImagePackage
1518				sqlite-3.7.5-r1a3-x86-gcc2-2011-05-17.zip
1519				: $(baseURL)/sqlite-3.7.5-r1a3-x86-gcc2-2011-05-17.zip ;
1520		}
1521	}
1522}
1523
1524
1525# Subversion
1526if [ IsOptionalHaikuImagePackageAdded Subversion ] {
1527	if $(TARGET_ARCH) != x86 {
1528		Echo "No optional package Subversion available for $(TARGET_ARCH)" ;
1529	} else {
1530		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1531			InstallOptionalHaikuImagePackage
1532				subversion-1.6.17-x86-gcc4-2011-08-03.zip
1533				: $(baseURL)/subversion-1.6.17-x86-gcc4-2011-08-03.zip
1534				: : true ;
1535		} else {
1536			InstallOptionalHaikuImagePackage
1537				subversion-1.6.17-x86-gcc2-2011-08-02.zip
1538				: $(baseURL)/subversion-1.6.17-x86-gcc2-2011-08-02.zip
1539				: : true ;
1540		}
1541	}
1542}
1543
1544
1545# TagLib
1546if [ IsOptionalHaikuImagePackageAdded TagLib ] {
1547	if $(TARGET_ARCH) != x86 {
1548		Echo "No optional package TagLib available for $(TARGET_ARCH)" ;
1549	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1550		InstallOptionalHaikuImagePackage
1551			taglib-1.6.3-r1r3-x86-gcc4-2011-05-24.zip
1552			: $(baseURL)/taglib-1.6.3-r1r3-x86-gcc4-2011-05-24.zip ;
1553	} else {
1554		InstallOptionalHaikuImagePackage
1555			taglib-1.6.3-r1a3-x86-gcc2-2011-05-20.zip
1556			: $(baseURL)/taglib-1.6.3-r1a3-x86-gcc2-2011-05-20.zip ;
1557	}
1558}
1559
1560
1561# Tar
1562if [ IsOptionalHaikuImagePackageAdded Tar ] {
1563	if $(TARGET_ARCH) != x86 {
1564		Echo "No optional package Tar available for $(TARGET_ARCH)" ;
1565	} else {
1566		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1567			InstallOptionalHaikuImagePackage
1568				tar-1.25-r1a3-x86-gcc4-2011-05-24.zip
1569				: $(baseURL)/tar-1.25-r1a3-x86-gcc4-2011-05-24.zip ;
1570		} else {
1571			InstallOptionalHaikuImagePackage
1572				tar-1.25-r1a3-x86-gcc2-2011-05-20.zip
1573				: $(baseURL)/tar-1.25-r1a3-x86-gcc2-2011-05-20.zip ;
1574		}
1575	}
1576}
1577
1578
1579# TimGMSoundFont
1580if [ IsOptionalHaikuImagePackageAdded TimGMSoundFont ] {
1581	InstallOptionalHaikuImagePackage TimGMSoundFont-2010-06-16.zip
1582		: $(baseURL)/TimGMSoundFont-2010-06-16.zip ;
1583}
1584
1585
1586# TrackerNewTemplates
1587if [ IsOptionalHaikuImagePackageAdded TrackerNewTemplates ] {
1588	InstallOptionalHaikuImagePackage TrackerNewTemplates-2010-04-26.zip
1589		: $(baseURL)/TrackerNewTemplates-2010-04-26.zip
1590		: home config settings Tracker "Tracker New Templates"
1591	;
1592}
1593
1594
1595# Transmission
1596if [ IsOptionalHaikuImagePackageAdded Transmission ] {
1597	if $(TARGET_ARCH) != x86 {
1598		Echo "No optional package Transmission available for $(TARGET_ARCH)" ;
1599	} else {
1600		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1601			InstallOptionalHaikuImagePackage
1602				transmission-2.21-r1a3-x86-gcc4-2011-05-27.zip
1603				: $(baseURL)/transmission-2.21-r1a3-x86-gcc4-2011-05-27.zip
1604				: : true ;
1605		} else {
1606			InstallOptionalHaikuImagePackage
1607				transmission-2.21-r1a3-x86-gcc2-2011-05-27.zip
1608				: $(baseURL)/transmission-2.21-r1a3-x86-gcc2-2011-05-27.zip
1609				: : true ;
1610		}
1611	}
1612}
1613
1614
1615# UserlandFS
1616if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
1617	local arch = $(TARGET_ARCH) ;
1618	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
1619
1620	# kernel module
1621	AddFilesToHaikuImage system add-ons kernel file_systems : userlandfs ;
1622
1623	# server
1624	AddFilesToHaikuImage system servers : userlandfs_server ;
1625
1626	# libs
1627	local userlandfsLibs =
1628		libuserlandfs_beos_kernel.so
1629		libuserlandfs_haiku_kernel.so
1630		libuserlandfs_fuse.so
1631	;
1632	AddFilesToHaikuHybridImage system lib : $(userlandfsLibs) : : true ;
1633
1634	# development goodies
1635	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
1636		if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
1637			Exit "Optional package UserlandFS: Unsupported GCC version:"
1638				$(HAIKU_GCC_VERSION[1]) ;
1639		}
1640
1641		# library symlinks
1642		local lib ;
1643		for lib in $(userlandfsLibs) {
1644			AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
1645				: /system/lib/$(lib:BS) ;
1646			AddSymlinkToAlternativeGCCArchive develop abi $(arch) $(abi) lib
1647				: /system/lib/$(arch)/$(lib:BS) ;
1648		}
1649
1650		# FUSE headers
1651		local fuseHeaders =
1652			fuse_common_compat.h
1653			fuse_common.h
1654			fuse_compat.h
1655			fuse.h
1656			fuse_lowlevel_compat.h
1657			fuse_lowlevel.h
1658			fuse_opt.h
1659		;
1660		fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
1661		SEARCH on $(fuseHeaders)
1662			= [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
1663		AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ;
1664	}
1665}
1666
1667
1668# Vim
1669if [ IsOptionalHaikuImagePackageAdded Vim ] {
1670	if $(TARGET_ARCH) != x86 {
1671		Echo "No optional package Vim available for $(TARGET_ARCH)" ;
1672	} else {
1673		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1674			InstallOptionalHaikuImagePackage vim-7.3-x86-gcc4-2011-12-23.zip
1675				:  $(baseURL)/vim-7.3-x86-gcc4-2011-12-23.zip
1676				: : true ;
1677		} else {
1678			InstallOptionalHaikuImagePackage vim-7.3-x86-gcc2-2011-12-23.zip
1679				:  $(baseURL)/vim-7.3-x86-gcc2-2011-12-23.zip
1680				: : true ;
1681		}
1682		AddSymlinkToHaikuImage home config settings deskbar Applications
1683			: /boot/common/bin/gvim ;
1684		# TODO: move this symlink to the archive
1685		AddSymlinkToHaikuImage common bin : vim : vi ;
1686	}
1687}
1688
1689
1690# Vision
1691if [ IsOptionalHaikuImagePackageAdded Vision ] {
1692	if $(TARGET_ARCH) != x86 {
1693		Echo "No optional package Vision available for $(TARGET_ARCH)" ;
1694	} else {
1695		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1696			InstallOptionalHaikuImagePackage vision-908-x86-gcc4-2011-12-17.zip
1697				: $(baseURL)/vision-908-x86-gcc4-2011-12-17.zip ;
1698		} else {
1699			InstallOptionalHaikuImagePackage
1700				vision-908-x86-gcc2-2011-12-17.zip
1701				: $(baseURL)/vision-908-x86-gcc2-2011-12-17.zip ;
1702		}
1703		AddSymlinkToHaikuImage home config settings deskbar Applications
1704			: /boot/apps/Vision/Vision ;
1705	}
1706}
1707
1708
1709# WebPositive
1710if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
1711	if $(TARGET_ARCH) != x86 {
1712		Echo "No optional package WebPositive available for $(TARGET_ARCH)" ;
1713	} else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
1714		Echo "No optional package WebPositive available for gcc2" ;
1715	} else {
1716		InstallOptionalHaikuImagePackage
1717			WebPositive-gcc4-x86-r583-2012-01-23a.zip
1718			: $(baseURL)/WebPositive-gcc4-x86-r583-2012-01-23a.zip ;
1719		AddSymlinkToHaikuImage home config settings deskbar Applications
1720			: /boot/apps/WebPositive/WebPositive ;
1721	}
1722}
1723
1724
1725# Welcome
1726if [ IsOptionalHaikuImagePackageAdded Welcome ] {
1727	CopyDirectoryToHaikuImage system documentation
1728		: [ FDirName $(HAIKU_TOP) docs welcome ]
1729		: welcome : -x .svn ;
1730	CopyDirectoryToHaikuImage system documentation
1731		: [ FDirName $(HAIKU_TOP) docs userguide ]
1732		: userguide : -x .svn ;
1733}
1734
1735
1736# WifiFirmwareScriptData
1737# This optional package is for people who build their own images & have wifi
1738# hardware that requires install-wifi-firmwares.sh & have no active network
1739# connection. This is not to be added to default images.
1740if [ IsOptionalHaikuImagePackageAdded WifiFirmwareScriptData ] {
1741	if $(TARGET_ARCH) != x86 {
1742		Echo "No optional package WifiFirmwareScriptData available for"
1743			$(TARGET_ARCH) ;
1744	} else {
1745		# broadcom43xx
1746		# firmware cutter
1747		local broadcomFWCutterArchive = b43-fwcutter-012.tar.bz2 ;
1748		local broadcomFWCutterURL =
1749			http://bu3sch.de/b43/fwcutter/$(broadcomFWCutterArchive) ;
1750		local broadcomFWCutterFile = [ DownloadFile $(broadcomFWCutterArchive)
1751			: $(broadcomFWCutterURL) ] ;
1752		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter
1753			: $(broadcomFWCutterFile) ;
1754
1755		# headers needed to compile firmware cutter
1756		local glibcDir = [ FDirName
1757			$(HAIKU_TOP) src system libroot posix glibc ] ;
1758		local byteswapHeader = [ FDirName $(glibcDir) string byteswap.h ] ;
1759		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter
1760			: $(byteswapHeader) ;
1761		local bitByteswapHeader = [ FDirName
1762			$(glibcDir) include arch x86 bits byteswap.h ] ;
1763		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter bits
1764			: $(bitByteswapHeader) ;
1765
1766		# file containing firmware
1767		local broadcom43xxFile ;
1768		broadcom43xxFile = [ DownloadFile wl_apsta-3.130.20.0.o
1769			: http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o ] ;
1770		AddFilesToHaikuImage system data firmware broadcom43xx
1771			: $(broadcom43xxFile) ;
1772
1773		# marvell88w8335
1774		local marvelArchive = malo-firmware-1.4.tgz ;
1775		local marvelURL = http://www.nazgul.ch/malo/$(marvelArchive) ;
1776		local marvelFile = [ DownloadFile $(marvelArchive) : $(marvelURL) ] ;
1777		AddFilesToHaikuImage system data firmware marvell88w8335
1778			: $(marvelFile) ;
1779	}
1780}
1781
1782
1783# WonderBrush
1784if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
1785	if $(TARGET_ARCH) != x86 {
1786		Echo "No optional package WonderBrush available for $(TARGET_ARCH)" ;
1787	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1788		Echo "No optional package WonderBrush available for gcc4" ;
1789	} else {
1790		InstallOptionalHaikuImagePackage WonderBrush-2.1.2.zip
1791			: $(baseURL)/WonderBrush-2.1.2-x86-gcc2-2008-11-08.zip
1792			: apps ;
1793		AddSymlinkToHaikuImage home config settings deskbar Applications
1794			: /boot/apps/WonderBrush/WonderBrush ;
1795	}
1796}
1797
1798
1799# wpa_supplicant
1800if [ IsOptionalHaikuImagePackageAdded wpa_supplicant ] {
1801	if $(TARGET_ARCH) != x86 {
1802		Echo "No optional package wpa_supplicant available for $(TARGET_ARCH)" ;
1803	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1804		InstallOptionalHaikuImagePackage
1805			wpa_supplicant-0.7.3-x86-gcc4-2011-10-05.zip
1806			: $(baseURL)/wpa_supplicant-0.7.3-x86-gcc4-2011-10-05.zip ;
1807	} else {
1808		InstallOptionalHaikuImagePackage
1809			wpa_supplicant-0.7.3-x86-gcc2-2012-02-02.zip
1810			: $(baseURL)/wpa_supplicant-0.7.3-x86-gcc2-2012-02-02.zip ;
1811	}
1812}
1813
1814
1815# WQY-MicroHei
1816if [ IsOptionalHaikuImagePackageAdded WQY-MicroHei ] {
1817	InstallOptionalHaikuImagePackage
1818		wqy-microhei-0.2.0-beta-r1a3-x86-gcc2-2011-05-18.zip
1819		: $(baseURL)/wqy-microhei-0.2.0-beta-r1a3-x86-gcc2-2011-05-18.zip ;
1820}
1821
1822
1823# XZ-Utils
1824if [ IsOptionalHaikuImagePackageAdded XZ-Utils ] {
1825	if $(TARGET_ARCH) != x86 {
1826		Echo "No optional package XZ-Utils available for $(TARGET_ARCH)" ;
1827	} else {
1828		InstallOptionalHaikuImagePackage
1829			xz-utils-5.0.1-r1a3-x86-gcc4-2011-05-24.zip
1830			: $(baseURL)/xz-utils-5.0.1-r1a3-x86-gcc4-2011-05-24.zip ;
1831		AddExpanderRuleToHaikuImage "application/x-xz" : .tar.xz
1832			: "tar -Jtvf \\0045s"
1833			: "tar -Jxvf \\0045s"
1834		;
1835		AddExpanderRuleToHaikuImage "application/x-xz" : .txz
1836			: "tar -Jtvf \\0045s"
1837			: "tar -Jxvf \\0045s"
1838		;
1839		AddExpanderRuleToHaikuImage "application/x-xz" : .xz
1840			: "echo \\0045s | sed 's/.xz\\\$//g'"
1841			: "xz -df \\0045s"
1842		;
1843	}
1844}
1845
1846
1847# Yasm
1848if [ IsOptionalHaikuImagePackageAdded Yasm ] {
1849	if $(TARGET_ARCH) != x86 {
1850		Echo "No optional package Yasm available for $(TARGET_ARCH)" ;
1851	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1852		InstallOptionalHaikuImagePackage
1853			yasm-1.1.0-r1a3-x86-gcc4-2011-05-24.zip
1854			: $(baseURL)/yasm-1.1.0-r1a3-x86-gcc4-2011-05-24.zip ;
1855	} else {
1856		InstallOptionalHaikuImagePackage
1857			yasm-1.1.0-r1a3-x86-gcc2-2011-05-17.zip
1858			: $(baseURL)/yasm-1.1.0-r1a3-x86-gcc2-2011-05-17.zip ;
1859	}
1860}
1861