xref: /haiku/build/jam/OptionalPackages (revision 62f5ba006a08b0df30631375878effaf67ae5dbc)
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) && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
10	isHybridBuild = 1 ;
11}
12
13
14# Available Optional Packages:
15#	ABI-compliance-checker	- tool for checking ABI compatibility between libs
16#	APR						- support libraries used for example by Subversion
17#	APR-util				- Apache portable runtime utility library
18#	BeAE					- open source Audio Editor
19#	Beam					- powerful native e-mail client
20#	BeBook					- the classic BeOS API documentation
21#	BeHappy					- special documentation (i.e. BeBook) browser
22#	BeOSCompatibility		- creates links within the system to support old apps
23#	BePDF					- native PDF reader
24#	BeZillaBrowser			- fork of Mozilla's 1.8 branch.
25#	Bluetooth				- experimental Haiku components for Bluetooth
26#	CDRecord				- the command line CD writing tools
27#	Clockwerk				- native audio/video compositing
28#	CLucene					- indexed file search
29#	Curl					- a client that groks URLs
30#	CMake					- cross platform make
31#	CVS						- the version control system
32#	Development				- more complete dev environment (including autotools)
33#	DevelopmentBase			- basic development environment (gcc, headers, libs,...)
34#	DevelopmentMin			- development headers, libs, tools, from sources only
35#	Expat					- XML parsing libraries
36#	Git						- the distributed version control system
37#	ICU-devel				- the headers for ICU (for development)
38#	KeymapSwitcher			- Desktop utility
39#	LibIconv				- text encoding conversion library
40#	LibLayout				- GCC2 package needed by some BeOS apps to compile
41#	LibXML2					- the XML support libary
42#	Links					- the web browser
43#	Mercurial				- the distributed version control system
44#	Nano					- the command line text editor
45#	Neon					- support libraries used for example by SVN
46#	NetFS					- the native networked file system components
47#	NetSurf					- the web browser
48#	OCaml					- the Objective Caml language
49#	OpenSound				- additional audio driver package
50#	OpenSSH					- the secure shell
51#	OpenSSL					- secure sockets library
52#	P7zip					- file archiving utility
53#	PCRE					- the (Perl-compatible) regex engine
54#	Pe						- the powerful native Programmer's Editor
55#	Perl					- the scripting language
56#	Python					- the scripting language
57#	Rsync					- remote directory synchronization
58#	Sed						- the ultimate stream editor
59#	SQLite					- the database implementation
60#	Subversion				- the version control system
61#	Tar						- archiving utility
62#	UserlandFS				- aids native file system development (like FUSE)
63#	Vim						- the command line text editor
64#	Vision					- powerful native IRC client
65#	VLC						- the multi media player with native interface
66#	Welcome					- introductory documentation to Haiku
67#	WifiFirmwareScriptData	- data files needed by install-wifi-firmwares.sh
68#	WonderBrush				- native graphics application
69#	Yasm					- the assembler utility
70
71local baseURL = http://haiku-files.org/files/optional-packages ;
72
73# ABI-compliance-checker
74if [ IsOptionalHaikuImagePackageAdded ABI-compliance-checker ] {
75	if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
76		Echo "No optional package ABI-compliance-checker for gcc2" ;
77	} else {
78		InstallOptionalHaikuImagePackage
79			ABI-compliance-checker-1.12-noarch-gcc4-2010-02-01.zip
80			: $(baseURL)/ABI-compliance-checker-1.12-noarch-gcc4-2010-02-01.zip
81		;
82	}
83}
84
85
86# APR
87if [ IsOptionalHaikuImagePackageAdded APR ] {
88	if $(TARGET_ARCH) != x86 {
89		Echo "No optional package APR available for $(TARGET_ARCH)" ;
90	} else {
91		InstallOptionalHaikuImagePackage apr-1.3.9-x86-gcc2-2009-10-18.zip
92			: $(baseURL)/apr-1.3.9-x86-gcc2-2009-10-18.zip
93			:
94			: true
95		;
96	}
97}
98
99
100# APR-util
101if [ IsOptionalHaikuImagePackageAdded APR-util ] {
102	if $(TARGET_ARCH) != x86 {
103		Echo "No optional package APR-util available for $(TARGET_ARCH)" ;
104	} else {
105		InstallOptionalHaikuImagePackage apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29.zip
106			: $(baseURL)/apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29.zip
107			:
108			: true
109		;
110	}
111}
112
113
114# BeAE
115if [ IsOptionalHaikuImagePackageAdded BeAE ] {
116	if $(TARGET_ARCH) != x86 {
117		Echo "No optional package BeAE available for $(TARGET_ARCH)" ;
118	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
119		Echo "No optional package BeAE available for gcc4" ;
120	} else {
121		InstallOptionalHaikuImagePackage beae-20-x86-gcc2-2010-03-14.zip
122			: $(baseURL)/beae-20-x86-gcc2-2010-03-14.zip
123			:
124		;
125		AddSymlinkToHaikuImage home config be Applications
126			: /boot/apps/BeAE/BeAE ;
127	}
128}
129
130
131# Beam
132if [ IsOptionalHaikuImagePackageAdded Beam ] {
133	if $(TARGET_ARCH) != x86 {
134		Echo "No optional package Beam available for $(TARGET_ARCH)" ;
135	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
136		Echo "No optional package Beam available for gcc4" ;
137	} else {
138		InstallOptionalHaikuImagePackage Beam-1.2alpha.zip
139			: $(baseURL)/Beam-1.2alpha-x86-gcc2-2009-09-29.zip
140			: apps
141		;
142		AddSymlinkToHaikuImage home config be Applications
143			: /boot/apps/beam-1.2alpha-haiku/Beam ;
144	}
145}
146
147
148# BeBook
149if [ IsOptionalHaikuImagePackageAdded BeBook ] {
150	InstallOptionalHaikuImagePackage bebook_20081026.zip
151		: $(baseURL)/bebook_20081026.zip
152		: system documentation
153	;
154	AddSymlinkToHaikuImage home Desktop
155		: /boot/system/documentation/bebook/index.html : BeBook ;
156}
157
158
159# BeHappy
160if [ IsOptionalHaikuImagePackageAdded BeHappy ] {
161	if $(TARGET_ARCH) != x86 {
162		Echo "No optional package BeHappy available for $(TARGET_ARCH)" ;
163	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
164		Echo "No optional package BeHappy available for gcc4" ;
165	} else {
166		InstallOptionalHaikuImagePackage BeHappy-1.0.6-x86-gcc2-2008-10-16.zip
167			: $(baseURL)/BeHappy-1.0.6-x86-gcc2-2008-10-16.zip
168			:
169		;
170		AddSymlinkToHaikuImage home config be Applications
171			: /boot/apps/BeHappy/BeHappy ;
172	}
173}
174
175
176# BeOSCompatibility
177if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
178	if $(TARGET_ARCH) != x86 {
179		Echo "No optional package BeOSCompatibility available for $(TARGET_ARCH)" ;
180	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
181		Echo "No optional package BeOSCompatibility available for gcc4" ;
182	} else {
183		Echo "Warning: Adding BeOS compatibility symlinks. This will go away. Please fix your apps!" ;
184		AddSymlinkToHaikuImage beos : ../system/apps ;
185		AddSymlinkToHaikuImage beos : ../system/bin ;
186		AddSymlinkToHaikuImage beos : ../system/documentation ;
187		AddSymlinkToHaikuImage beos : ../common/etc ;
188		AddSymlinkToHaikuImage beos : ../system/preferences ;
189		AddSymlinkToHaikuImage beos : ../system ;
190		AddDirectoryToHaikuImage var ;
191		AddSymlinkToHaikuImage var : /boot/common/var/log ;
192		AddSymlinkToHaikuImage var : /boot/common/cache/tmp ;
193	}
194}
195
196
197# BePDF
198if [ IsOptionalHaikuImagePackageAdded BePDF ] {
199	if $(TARGET_ARCH) != x86 {
200		Echo "No optional package BePDF available for $(TARGET_ARCH)" ;
201	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
202		Echo "No optional package BePDF available for gcc4" ;
203	} else {
204		InstallOptionalHaikuImagePackage BePDF-1.1.1b2-r1a1-x86-gcc2-2009-09-03.zip
205			: $(baseURL)/BePDF-1.1.1b2-r1a1-x86-gcc2-2009-09-03.zip
206			: apps
207		;
208		AddSymlinkToHaikuImage home config be Applications
209			: /boot/apps/BePDF/BePDF ;
210	}
211}
212
213
214# BeZillaBrowser
215if [ IsOptionalHaikuImagePackageAdded BeZillaBrowser ] {
216	if $(TARGET_ARCH) != x86 {
217		Echo "No optional package BeZillaBrowser available for $(TARGET_ARCH)" ;
218	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
219		InstallOptionalHaikuImagePackage
220			BeZillaBrowser-2.0.0.22pre-x86-gcc4-2010-03-14.zip
221			: $(baseURL)/BeZillaBrowser-2.0.0.22pre-x86-gcc4-2010-03-14.zip
222 			:
223 		;
224 		AddSymlinkToHaikuImage home config be Applications
225			: /boot/apps/BeZillaBrowser/BeZillaBrowser
226		;
227		if $(HAIKU_INCLUDE_SOURCES) = 1 {
228			InstallSourceArchive BeZillaBrowser-2010-01-21-src.7z
229				: http://www.haiku-files.org/files/sources/2010/BeZillaBrowser-2010-01-21-src.7z
230			;
231		}
232	} else {
233		InstallOptionalHaikuImagePackage
234			BeZillaBrowser-2.0.0.22pre-x86-gcc2-2010-03-14.zip
235			: $(baseURL)/BeZillaBrowser-2.0.0.22pre-x86-gcc2-2010-03-14.zip
236 			:
237 		;
238 		AddSymlinkToHaikuImage home config be Applications
239			: /boot/apps/BeZillaBrowser/BeZillaBrowser
240		;
241		if $(HAIKU_INCLUDE_SOURCES) = 1 {
242			InstallSourceArchive BeZillaBrowser-2010-01-21-src.7z
243				: http://www.haiku-files.org/files/sources/2010/BeZillaBrowser-2010-01-21-src.7z
244			;
245		}
246	}
247}
248
249
250# Bluetooth stack
251if [ IsOptionalHaikuImagePackageAdded Bluetooth ] {
252	local bluetoothDrivers = h2generic ;
253	AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ;
254	AddFilesToHaikuImage system servers : bluetooth_server ;
255	AddFilesToHaikuImage system lib : libbluetooth.so ;
256	AddFilesToHaikuImage system add-ons kernel network protocols : l2cap ;
257	AddFilesToHaikuImage system add-ons kernel bluetooth : btCoreData hci ;
258	AddFilesToHaikuImage system preferences : Bluetooth ;
259	AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ;
260	AddSymlinkToHaikuImage home config be Preferences
261		: /boot/system/preferences/Bluetooth ;
262	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
263		&& $(HAIKU_GCC_VERSION[1]) in 2 4 {
264		local arch = $(TARGET_ARCH) ;
265		local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
266		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
267			: /system/lib libbluetooth.so : : true ;
268	}
269}
270
271
272# Bzip
273if [ IsOptionalHaikuImagePackageAdded Bzip ] {
274	if $(TARGET_ARCH) != x86 {
275		Echo "No optional package Bzip available for $(TARGET_ARCH)" ;
276	} else {
277		InstallOptionalHaikuImagePackage bzip2-1.0.5-x86-gcc2-2009-12-27.zip
278			: $(baseURL)/bzip2-1.0.5-x86-gcc2-2009-12-27.zip
279			:
280			: true
281		;
282	}
283}
284
285
286# CDRecord
287if [ IsOptionalHaikuImagePackageAdded CDRecord ] {
288	if $(TARGET_ARCH) != x86 {
289		Echo "No optional package CDRecord available for $(TARGET_ARCH)" ;
290	} else {
291		InstallOptionalHaikuImagePackage cdrecord-2.01.01a63-r1a1-x86-gcc2-2009-08-28.zip
292			: $(baseURL)/cdrecord-2.01.01a63-r1a1-x86-gcc2-2009-08-28.zip
293			:
294		;
295	}
296}
297
298
299# Clockwerk
300if [ IsOptionalHaikuImagePackageAdded Clockwerk ] {
301	if $(TARGET_ARCH) != x86 {
302		Echo "No optional package Clockwerk available for $(TARGET_ARCH)" ;
303	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
304		InstallOptionalHaikuImagePackage Clockwerk-0.0.1-x86-gcc4-2009-08-06.zip
305			: $(baseURL)/Clockwerk-0.0.1-x86-gcc4-2009-08-06.zip
306			:
307		;
308		AddSymlinkToHaikuImage home config be Applications
309			: /boot/apps/Clockwerk/Clockwerk ;
310	} else {
311		InstallOptionalHaikuImagePackage Clockwerk-0.0.1-x86-gcc2-2009-08-06.zip
312			: $(baseURL)/Clockwerk-0.0.1-x86-gcc2-2009-08-06.zip
313			:
314		;
315		AddSymlinkToHaikuImage home config be Applications
316			: /boot/apps/Clockwerk/Clockwerk ;
317	}
318}
319
320
321# CLucene
322if [ IsOptionalHaikuImagePackageAdded CLucene ] {
323	if $(TARGET_ARCH) != x86 {
324		Echo "No optional package CLucene available for $(TARGET_ARCH)" ;
325	} else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
326		Echo "No optional package CLucene available for GCC2" ;
327	} else {
328		InstallOptionalHaikuImagePackage
329			clucene-0.9.21svn-x86-gcc4-haiku-2009-08-11.zip
330			: $(baseURL)/clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip
331			:
332			: true
333		;
334	}
335}
336
337
338# CMake
339if [ IsOptionalHaikuImagePackageAdded CMake ] {
340	if $(TARGET_ARCH) != x86 {
341		Echo "No optional package CMake available for $(TARGET_ARCH)" ;
342	} else {
343		InstallOptionalHaikuImagePackage cmake-2.8.0-x86-gcc2-2009-11-15.zip
344			: $(baseURL)/cmake-2.8.0-x86-gcc2-2009-11-15.zip
345			:
346			: true
347		;
348	}
349}
350
351
352# Curl
353if [ IsOptionalHaikuImagePackageAdded Curl ] {
354	if $(TARGET_ARCH) != x86 {
355		Echo "No optional package Curl available for $(TARGET_ARCH)" ;
356	} else {
357		InstallOptionalHaikuImagePackage curl-7.20.0-x86-gcc2-2010-03-03.zip
358			: $(baseURL)/curl-7.20.0-x86-gcc2-2010-03-03.zip
359			:
360			: true
361		;
362	}
363}
364
365
366# CVS
367if [ IsOptionalHaikuImagePackageAdded CVS ] {
368	if $(TARGET_ARCH) != x86 {
369		Echo "No optional package CVS available for $(TARGET_ARCH)" ;
370	} else {
371		InstallOptionalHaikuImagePackage cvs-1.12.13-r1a1-x86-gcc2-2009-08-30.zip
372			: $(baseURL)/cvs-1.12.13-r1a1-x86-gcc2-2009-08-30.zip
373			:
374			: true
375		;
376	}
377}
378
379
380# Development
381if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 {
382	# autotools
383	InstallOptionalHaikuImagePackage autoconf-2.65-x86-gcc2-2009-11-28.zip
384		: $(baseURL)/autoconf-2.65-x86-gcc2-2009-11-28.zip
385		:
386		: true ;
387	InstallOptionalHaikuImagePackage automake-1.11.1-x86-gcc2-2009-12-23.zip
388		: $(baseURL)/automake-1.11.1-x86-gcc2-2009-12-23.zip
389		:
390		: true ;
391	InstallOptionalHaikuImagePackage libtool-2.2.6b-x86-gcc2-2009-11-18.zip
392		: $(baseURL)/libtool-2.2.6b-x86-gcc2-2009-11-18.zip
393		:
394		: true ;
395	InstallOptionalHaikuImagePackage texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip
396		: $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip
397		:
398		: true ;
399}
400
401
402# DevelopmentBase
403if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ]
404		&& $(TARGET_ARCH) = x86 {
405	# gcc and binutils
406	if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) {
407		InstallOptionalHaikuImagePackage gcc-2.95.3-r1a1-x86-gcc2-2010-03-23.zip
408			: $(baseURL)/gcc-2.95.3-r1a1-x86-gcc2-2010-03-23.zip ;
409	}
410
411	if $(HAIKU_GCC_VERSION[1]) = 2 {
412		# symlink to the appropriate system/lib[/gcc2] folder
413		AddSymlinkToHaikuHybridImage
414			develop abi x86 gcc2 tools gcc-2.95.3-haiku-090629 lib
415			: /system/lib libstdc++.r4.so : : true ;
416	}
417
418	if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) {
419		InstallOptionalHaikuImagePackage gcc-4.3.3-r1a1-x86-gcc4-2009-06-29.zip
420			: $(baseURL)/gcc-4.3.3-r1a1-x86-gcc4-2009-06-29.zip ;
421	}
422
423	if $(HAIKU_GCC_VERSION[1]) = 4 {
424		# symlink cpp to g++'s headers
425		AddSymlinkToHaikuImage develop abi x86 gcc4 headers
426			: ../tools/current/include/g++ : cpp ;
427
428		# symlink to the appropriate system/lib[/gcc4] folder
429		local libs = libstdc++.so libsupc++.so ;
430		for lib in $(libs) {
431			AddSymlinkToHaikuHybridImage
432				develop abi x86 gcc4 tools gcc-4.3.3-haiku-090629 lib
433				: /system/lib $(lib) : : true ;
434		}
435	}
436
437	# other commonly used tools
438	InstallOptionalHaikuImagePackage bison-2.4.1-r1a1-x86-gcc2-2009-08-31.zip
439		: $(baseURL)/bison-2.4.1-r1a1-x86-gcc2-2009-08-31.zip ;
440	InstallOptionalHaikuImagePackage m4-1.4.14-x86-gcc2-2010-02-27.zip
441		: $(baseURL)/m4-1.4.14-x86-gcc2-2010-02-27.zip ;
442	InstallOptionalHaikuImagePackage flex-2.5.35-r1a1-x86-gcc2-2009-08-31.zip
443		: $(baseURL)/flex-2.5.35-r1a1-x86-gcc2-2009-08-31.zip ;
444	InstallOptionalHaikuImagePackage jam-2.5-r1a1-x86-gcc2-2009-08-31.zip
445		: $(baseURL)/jam-2.5-r1a1-x86-gcc2-2009-08-31.zip ;
446
447}
448
449
450# DevelopmentMin
451if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 {
452	if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
453		Exit "Optional package DevelopmentMin: Unsupported GCC version:"
454			$(HAIKU_GCC_VERSION[1]) ;
455	}
456
457	local arch = $(TARGET_ARCH) ;
458	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
459	local abiDirTokens = develop abi $(arch) $(abi) ;
460
461	# glue code
462	AddFilesToHaikuHybridImage $(abiDirTokens) lib :
463		<src!system!glue!arch!$(arch)>crti.o
464		<src!system!glue!arch!$(arch)>crtn.o
465		<src!system!glue>init_term_dyn.o
466		<src!system!glue>start_dyn.o
467		<src!system!glue>haiku_version_glue.o
468	;
469
470	# kernel
471	AddFilesToHaikuHybridImage $(abiDirTokens) lib : kernel.so : _KERNEL_ ;
472
473	# additional libraries
474	local developmentLibs = <revisioned>libroot_debug.so ;
475	AddFilesToHaikuHybridImage system lib : $(developmentLibs) : : true ;
476
477	# library symlinks
478	local lib ;
479	for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) $(developmentLibs) {
480		AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
481			: /system/lib $(lib:BS) : : true ;
482		local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ;
483		if $(abiVersion) {
484			local abiVersionedLib = $(lib:BS).$(abiVersion) ;
485			AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
486				: /system/lib $(abiVersionedLib) : : true ;
487		}
488	}
489
490	# static libraries
491	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libncurses.a ;
492
493	# the POSIX error code mapper library
494	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libposix_error_mapper.a ;
495
496	# symlinks for ABI abstraction
497	AddSymlinkToHaikuImage develop abi : $(arch)/$(abi) : current ;
498	AddSymlinkToHaikuImage develop lib : /boot/develop/abi/current/lib
499		: $(arch) ;
500	AddSymlinkToHaikuImage develop tools
501		: /boot/develop/abi/current/tools/current : gnupro ;
502	AddSymlinkToHaikuImage develop headers
503		: /boot/develop/abi/current/headers/cpp ;
504	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
505		: /boot/common/lib : common : true ;
506	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
507		: /boot/home/config/lib : home : true ;
508
509	# ABI independent stuff
510
511	# scripts: cc and c++ wrapper, freetype-config, setgcc
512	local scripts = cc c++ freetype-config setgcc ;
513	SEARCH on $(scripts) = [ FDirName $(HAIKU_TOP) data bin ] ;
514	AddFilesToHaikuImage system bin : $(scripts) ;
515
516	# make and mkdepend build tool, which are part of the Haiku source tree
517	# TODO: Both should be removed from the tree, made download packages
518	# and moved to the DevelopmentBase package.
519	AddFilesToHaikuImage system bin : make mkdepend ;
520
521	# skeleton makefile and makefile-engine
522	local makefileEngineFiles =
523		<makefile-engine>makefile
524		<makefile-engine>makefile-engine
525	;
526	SEARCH on $(makefileEngineFiles)
527		= [ FDirName $(HAIKU_TOP) data develop ] ;
528	AddFilesToHaikuImage develop etc : $(makefileEngineFiles) ;
529
530	# headers
531	AddHeaderDirectoryToHaikuImage config ;
532	AddHeaderDirectoryToHaikuImage glibc ;
533	AddHeaderDirectoryToHaikuImage os ;
534	AddHeaderDirectoryToHaikuImage posix ;
535
536	# create be -> os symlink for now
537	AddSymlinkToHaikuImage develop headers : os : be ;
538
539	# BSD and GNU compatibility headers
540	AddHeaderDirectoryToHaikuImage compatibility bsd : bsd ;
541	AddHeaderDirectoryToHaikuImage compatibility gnu : gnu ;
542
543	# third party libs headers
544	AddHeaderDirectoryToHaikuImage libs freetype2 : 3rdparty ;
545	AddHeaderDirectoryToHaikuImage libs jpeg : 3rdparty ;
546	AddHeaderDirectoryToHaikuImage libs ncurses : 3rdparty ;
547	AddHeaderDirectoryToHaikuImage libs png : 3rdparty ;
548	AddHeaderDirectoryToHaikuImage libs termcap : 3rdparty ;
549	AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ;
550
551	# cpp headers
552	if $(HAIKU_GCC_VERSION[1]) = 2 {
553		# GCC 2 only -- for GCC 4 they come with the DevelopmentBase package
554		CopyDirectoryToHaikuImage $(abiDirTokens) headers
555			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
556		CopyDirectoryToAlternativeGCCArchive $(abiDirTokens) headers
557			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
558	}
559}
560
561
562# Expat
563if [ IsOptionalHaikuImagePackageAdded Expat ] {
564	if $(TARGET_ARCH) != x86 {
565		Echo "No optional package Expat available for $(TARGET_ARCH)" ;
566	} else {
567		InstallOptionalHaikuImagePackage expat-2.0.1-x86-gcc2-2010-03-08.zip
568			: $(baseURL)/expat-2.0.1-x86-gcc2-2010-03-08.zip
569			:
570			: true
571		;
572	}
573}
574
575
576# Git
577if [ IsOptionalHaikuImagePackageAdded Git ] {
578	if $(TARGET_ARCH) != x86 {
579		Echo "No optional package Git available for $(TARGET_ARCH)" ;
580	} else {
581		InstallOptionalHaikuImagePackage git-1.6.4.2-r1a1-x86-gcc2-2009-08-30.zip
582			: $(baseURL)/git-1.6.4.2-r1a1-x86-gcc2-2009-08-30.zip
583			:
584			: true
585		;
586	}
587}
588
589
590# ICU-devel
591if [ IsOptionalHaikuImagePackageAdded ICU-devel ] {
592	InstallOptionalHaikuImagePackage icu-devel-4.2-2010-01-26.zip
593		: $(baseURL)/icu-devel-4.2-2010-01-26.zip
594	;
595	local arch = $(TARGET_ARCH) ;
596	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
597	local libs = common data i18n ;
598	for lib in $(libs) {
599		lib = libicu-$(lib).so ;
600		local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ;
601		if $(abiVersion) {
602			local abiVersionedLib = $(lib).$(abiVersion) ;
603			AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
604				: /system/lib $(abiVersionedLib) : : true ;
605		}
606		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
607			: /system/lib $(lib) : : true ;
608	}
609}
610
611
612# KeymapSwitcher
613if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] {
614	if $(TARGET_ARCH) != x86 {
615		Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ;
616	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
617		InstallOptionalHaikuImagePackage
618			KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip
619			: $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip
620			:
621		;
622		AddSymlinkToHaikuImage home config be Desktop\ applets
623			: /boot/common/bin/KeymapSwitcher ;
624	} else {
625		InstallOptionalHaikuImagePackage
626			KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06.zip
627			: $(baseURL)/KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06.zip
628			:
629		;
630		AddSymlinkToHaikuImage home config be Desktop\ applets
631			: /boot/common/bin/KeymapSwitcher ;
632	}
633}
634
635
636# LibIconv
637if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
638	if $(TARGET_ARCH) != x86 {
639		Echo "No optional package LibIconv available for $(TARGET_ARCH)" ;
640	} else {
641		InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-08.zip
642			: $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-08.zip
643			:
644		;
645	}
646}
647
648
649# LibLayout library
650if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
651	if $(TARGET_ARCH) != x86 {
652		Echo "No optional package LibLayout available for $(TARGET_ARCH)" ;
653	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
654		Echo "No optional package LibLayout available for gcc4" ;
655	} else {
656		InstallOptionalHaikuImagePackage liblayout-1.4.0-gcc2-2009-03-08.zip
657			: $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip
658			:
659		;
660	}
661}
662
663
664# LibXML2
665if [ IsOptionalHaikuImagePackageAdded LibXML2 ] {
666	if $(TARGET_ARCH) != x86 {
667		Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ;
668	} else {
669		InstallOptionalHaikuImagePackage libxml2-2.7.6-x86-gcc2-2009-10-19.zip
670			: $(baseURL)/libxml2-2.7.6-x86-gcc2-2009-10-19.zip
671			:
672			: true
673		;
674	}
675}
676
677
678# Links web browser
679if [ IsOptionalHaikuImagePackageAdded Links ] {
680	if $(TARGET_ARCH) != x86 {
681		Echo "No optional package Links available for $(TARGET_ARCH)" ;
682	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
683		Echo "No optional package Links available for gcc4" ;
684	} else {
685		InstallOptionalHaikuImagePackage Links.zip
686			: $(baseURL)/links-x86-gcc2-2008-05-03.zip
687			:
688		;
689		AddSymlinkToHaikuImage home config be Applications
690			: /boot/home/config/bin/links ;
691	}
692}
693
694
695# MandatoryPackages
696if [ IsOptionalHaikuImagePackageAdded MandatoryPackages ] {
697	# Pseudo package for grouping packages, which are added to all images.
698}
699
700
701# Mercurial
702if [ IsOptionalHaikuImagePackageAdded Mercurial ] {
703	if $(TARGET_ARCH) != x86 {
704		Echo "No optional package Mercurial available for $(TARGET_ARCH)" ;
705	} else {
706		InstallOptionalHaikuImagePackage mercurial-1.5-x86-gcc2-2010-03-12.zip
707			: $(baseURL)/mercurial-1.5-x86-gcc2-2010-03-12.zip
708			:
709			: true
710		;
711	}
712}
713
714
715# Nano
716if [ IsOptionalHaikuImagePackageAdded Nano ] {
717	if $(TARGET_ARCH) != x86 {
718		Echo "No optional package Nano available for $(TARGET_ARCH)" ;
719	} else {
720		InstallOptionalHaikuImagePackage nano-2.2.3-x86-gcc2-2010-03-11.zip
721			: $(baseURL)/nano-2.2.3-x86-gcc2-2010-03-11.zip
722			:
723		;
724	}
725}
726
727
728# Neon
729if [ IsOptionalHaikuImagePackageAdded Neon ] {
730	if $(TARGET_ARCH) != x86 {
731		Echo "No optional package Neon available for $(TARGET_ARCH)" ;
732	} else {
733		InstallOptionalHaikuImagePackage neon-0.29.3-x86-gcc2-2010-02-28.zip
734			: $(baseURL)/neon-0.29.3-x86-gcc2-2010-02-28.zip
735			:
736			: true
737		;
738	}
739}
740
741
742# NetFS network file system
743if [ IsOptionalHaikuImagePackageAdded NetFS ] {
744	# userlandfs module
745	AddFilesToHaikuImage home config add-ons userlandfs : netfs ;
746
747	# servers
748	AddFilesToHaikuImage system servers : netfs_server ;
749	AddFilesToHaikuImage system servers : authentication_server ;
750
751	# tools
752	AddFilesToHaikuImage system bin : netfs_config ;
753	AddFilesToHaikuImage system bin : netfs_server_prefs ;
754
755	#example settings for netfs_server
756	local netfsServerSettingsFiles = <driver-settings>netfs-server ;
757	SEARCH on $(netfsServerSettingsFiles)
758		= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems netfs ] ;
759	AddFilesToHaikuImage home config settings kernel drivers
760	: $(netfsServerSettingsFiles) ;
761
762	#userlandfs settings are needed for netfs_config to work (ioctls)
763	local userlandfsServerSettingsFiles = <driver-settings>userlandfs ;
764	SEARCH on $(userlandfsServerSettingsFiles)
765		= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems userlandfs ] ;
766	AddFilesToHaikuImage home config settings kernel drivers
767	: $(userlandfsServerSettingsFiles) ;
768}
769
770
771# NetSurf web browser
772if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
773	if $(TARGET_ARCH) != x86 {
774		Echo "No optional package NetSurf available for $(TARGET_ARCH)" ;
775	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
776		Echo "No optional package NetSurf available for gcc4" ;
777	} else {
778		InstallOptionalHaikuImagePackage NetSurf-r9862b.zip
779			: $(baseURL)/NetSurf-r9862-x86-gcc2-2010-01-27.zip
780			:
781		;
782		AddSymlinkToHaikuImage home config be Applications
783			: /boot/apps/netsurf/NetSurf ;
784		if $(HAIKU_INCLUDE_SOURCES) = 1 {
785			InstallSourceArchive netsurf-r9862.7z
786				: http://www.haiku-files.org/files/sources/2010/netsurf-r9862.7z
787			;
788		}
789	}
790}
791
792
793# OCaml
794if [ IsOptionalHaikuImagePackageAdded OCaml ] {
795	if $(TARGET_ARCH) != x86 {
796		Echo "No optional package OCaml available for $(TARGET_ARCH)" ;
797	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
798		Echo "No optional package OCaml available for gcc4" ;
799	} else {
800		InstallOptionalHaikuImagePackage ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip
801			: http://jerome.duval.free.fr/obos/ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip
802			:
803		;
804		InstallOptionalHaikuImagePackage camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip
805			: http://jerome.duval.free.fr/obos/camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip
806			:
807		;
808	}
809}
810
811
812# OpenSound drivers
813if [ IsOptionalHaikuImagePackageAdded OpenSound ] {
814	if $(TARGET_ARCH) != x86 {
815		Echo "No optional package OpenSound available for $(TARGET_ARCH)" ;
816	} else {
817		InstallOptionalHaikuImagePackage OpenSound.zip
818			: $(baseURL)/OpenSound-x86-gcc2-2008-06-21.zip
819			:
820		;
821	}
822	#ExtractArchiveToHaikuImage home : data/vv.mp3.zip : 0 ;
823}
824
825
826# OpenSSH
827if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
828	if $(TARGET_ARCH) != x86 {
829		Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ;
830	} else {
831		if ! $(HAIKU_IMAGE_HOST_NAME) && ! $(HAIKU_IGNORE_USER_BUILD_CONFIG) {
832			Exit "Optional package OpenSSH requires the HAIKU_IMAGE_HOST_NAME"
833				"variable to be set!" ;
834		}
835
836		InstallOptionalHaikuImagePackage openssh-5.3p1-r1a1-x86-gcc2-2009-10-11.zip
837			: $(baseURL)/openssh-5.3p1-r1a1-x86-gcc2-2009-10-11.zip
838			:
839		;
840
841		AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true
842			: "sshd user" ;
843	}
844}
845
846
847# OpenSSL
848if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
849	if $(TARGET_ARCH) != x86 {
850		Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
851	} else {
852		InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
853			: $(HAIKU_OPENSSL_URL)
854			:
855		;
856	}
857}
858
859
860# P7zip
861if [ IsOptionalHaikuImagePackageAdded P7zip ] {
862	if $(TARGET_ARCH) != x86 {
863		Echo "No optional package P7zip available for $(TARGET_ARCH)" ;
864	} else {
865		if $(HAIKU_GCC_VERSION[1]) >= 4 {
866			InstallOptionalHaikuImagePackage p7zip-9.04-x86-gcc4-2009-10-25.zip
867				: $(baseURL)/p7zip-9.04-x86-gcc4-2009-10-25.zip
868				:
869			;
870		} else {
871			InstallOptionalHaikuImagePackage p7zip-9.04-x86-gcc2-2009-10-25.zip
872				: $(baseURL)/p7zip-9.04-x86-gcc2-2009-10-25.zip
873				:
874			;
875		}
876		AddExpanderRuleToHaikuImage "application/x-7z-compressed" : .7z
877			: "7za l \\0045s"
878			: "7za x -y \\0045s"
879		;
880
881	}
882}
883
884
885# PCRE regex engine
886if [ IsOptionalHaikuImagePackageAdded PCRE ] {
887	if $(TARGET_ARCH) != x86 {
888		Echo "No optional package PCRE available for $(TARGET_ARCH)" ;
889	} else {
890		if $(HAIKU_GCC_VERSION[1]) >= 4 {
891			InstallOptionalHaikuImagePackage pcre-7.9-x86-gcc4-2009-09-30.zip
892				: $(baseURL)/pcre-7.9-x86-gcc4-2009-09-30.zip
893			;
894		} else {
895			InstallOptionalHaikuImagePackage pcre-7.9-x86-gcc2-2009-09-30.zip
896				: $(baseURL)/pcre-7.9-x86-gcc2-2009-09-30.zip
897			;
898		}
899	}
900}
901
902
903# Pe text editor
904if [ IsOptionalHaikuImagePackageAdded Pe ] {
905	if $(TARGET_ARCH) != x86 {
906		Echo "No optional package Pe available for $(TARGET_ARCH)" ;
907	} else {
908		if $(HAIKU_GCC_VERSION[1]) >= 4 {
909			InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc4-2009-08-04.zip
910				: $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip
911			;
912		} else {
913			InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-08.zip
914				: $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-08.zip
915			;
916		}
917
918		AddSymlinkToHaikuImage home config be Applications
919			: /boot/apps/Pe/Pe ;
920		AddSymlinkToHaikuImage common bin
921			: /boot/apps/Pe/lpe ;
922	}
923}
924
925
926# Perl
927if [ IsOptionalHaikuImagePackageAdded Perl ] {
928	if $(TARGET_ARCH) != x86 {
929		Echo "No optional package Perl available for $(TARGET_ARCH)" ;
930	} else {
931		InstallOptionalHaikuImagePackage perl-5.10.1-r1a1-x86-gcc2-2009-09-08.zip
932			: $(baseURL)/perl-5.10.1-r1a1-x86-gcc2-2009-09-08.zip
933			:
934			: true
935		;
936	}
937}
938
939
940# Python
941if [ IsOptionalHaikuImagePackageAdded Python ] {
942	if $(TARGET_ARCH) != x86 {
943		Echo "No optional package Python available for $(TARGET_ARCH)" ;
944	} else {
945		InstallOptionalHaikuImagePackage python-2.6.5-x86-gcc2-2010-03-20.zip
946			: $(baseURL)/python-2.6.5-x86-gcc2-2010-03-20.zip
947			:
948			: true
949		;
950	}
951}
952
953
954# Rsync
955if [ IsOptionalHaikuImagePackageAdded Rsync ] {
956	if $(TARGET_ARCH) != x86 {
957		Echo "No optional package Rsync available for $(TARGET_ARCH)" ;
958	} else {
959		InstallOptionalHaikuImagePackage rsync-3.0.7-x86-gcc2-2010-01-05.zip
960			: $(baseURL)/rsync-3.0.7-x86-gcc2-2010-01-05.zip
961			:
962		;
963	}
964}
965
966
967# Sed
968if [ IsOptionalHaikuImagePackageAdded Sed ] {
969	if $(TARGET_ARCH) != x86 {
970		Echo "No optional package Sed available for $(TARGET_ARCH)" ;
971	} else {
972		InstallOptionalHaikuImagePackage sed-4.2.1-r1a1-x86-gcc2-2009-08-30.zip
973			: $(baseURL)/sed-4.2.1-r1a1-x86-gcc2-2009-08-30.zip
974			:
975			:
976		;
977	}
978}
979
980
981# SQLite
982if [ IsOptionalHaikuImagePackageAdded SQLite ] {
983	if $(TARGET_ARCH) != x86 {
984		Echo "No optional package SQLite available for $(TARGET_ARCH)" ;
985	} else {
986		InstallOptionalHaikuImagePackage sqlite-3.6.22-x86-gcc2-2010-03-09.zip
987			: $(baseURL)/sqlite-3.6.22-x86-gcc2-2010-03-09.zip
988			:
989			: true
990		;
991	}
992}
993
994
995# Subversion
996if [ IsOptionalHaikuImagePackageAdded Subversion ] {
997	if $(TARGET_ARCH) != x86 {
998		Echo "No optional package Subversion available for $(TARGET_ARCH)" ;
999	} else {
1000		InstallOptionalHaikuImagePackage subversion-1.6.9-x86-gcc2-2010-03-15.zip
1001			: $(baseURL)/subversion-1.6.9-x86-gcc2-2010-03-15.zip
1002			:
1003			: true
1004		;
1005	}
1006}
1007
1008
1009# Tar
1010if [ IsOptionalHaikuImagePackageAdded Tar ] {
1011	if $(TARGET_ARCH) != x86 {
1012		Echo "No optional package Tar available for $(TARGET_ARCH)" ;
1013	} else {
1014		InstallOptionalHaikuImagePackage tar-1.22-x86-gcc4-2010-02-25.zip
1015			: $(baseURL)/tar-1.22-x86-gcc4-2010-02-25.zip
1016			:
1017		;
1018	}
1019}
1020
1021
1022# UserlandFS
1023if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
1024	local arch = $(TARGET_ARCH) ;
1025	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
1026
1027	# kernel module
1028	AddFilesToHaikuImage system add-ons kernel file_systems : userlandfs ;
1029
1030	# server
1031	AddFilesToHaikuImage system servers : userlandfs_server ;
1032
1033	# libs
1034	local userlandfsLibs =
1035		libuserlandfs_beos_kernel.so
1036		libuserlandfs_haiku_kernel.so
1037		libuserlandfs_fuse.so
1038	;
1039	AddFilesToHaikuHybridImage system lib : $(userlandfsLibs) : : true ;
1040
1041	# development goodies
1042	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
1043		if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
1044			Exit "Optional package UserlandFS: Unsupported GCC version:"
1045				$(HAIKU_GCC_VERSION[1]) ;
1046		}
1047
1048		# library symlinks
1049		local lib ;
1050		for lib in $(userlandfsLibs) {
1051			AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
1052				: /system/lib/$(lib:BS) ;
1053			AddSymlinkToAlternativeGCCArchive develop abi $(arch) $(abi) lib
1054				: /system/lib/$(arch)/$(lib:BS) ;
1055		}
1056
1057		# FUSE headers
1058		local fuseHeaders =
1059			fuse_common_compat.h
1060			fuse_common.h
1061			fuse_compat.h
1062			fuse.h
1063			fuse_lowlevel_compat.h
1064			fuse_lowlevel.h
1065			fuse_opt.h
1066		;
1067		fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
1068		SEARCH on $(fuseHeaders)
1069			= [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
1070		AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ;
1071	}
1072}
1073
1074
1075# Vim
1076if [ IsOptionalHaikuImagePackageAdded Vim ] {
1077	if $(TARGET_ARCH) != x86 {
1078		Echo "No optional package Vim available for $(TARGET_ARCH)" ;
1079	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1080		InstallOptionalHaikuImagePackage vim-7.2-x86-gcc4-2009-05-31.zip
1081			:  $(baseURL)/vim-7.2-x86-gcc4-2009-05-31.zip
1082			:
1083		;
1084		AddSymlinkToHaikuImage home config be Applications
1085			: /boot/common/bin/gvim ;
1086	} else {
1087		InstallOptionalHaikuImagePackage vim-7.2-r1a1-x86-gcc2-2009-09-06.zip
1088			:  $(baseURL)/vim-7.2-r1a1-x86-gcc2-2009-09-06.zip
1089			:
1090		;
1091		AddSymlinkToHaikuImage home config be Applications
1092			: /boot/common/bin/gvim ;
1093	}
1094}
1095
1096
1097# Vision
1098if [ IsOptionalHaikuImagePackageAdded Vision ] {
1099	if $(TARGET_ARCH) != x86 {
1100		Echo "No optional package Vision available for $(TARGET_ARCH)" ;
1101	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1102		InstallOptionalHaikuImagePackage Vision-0.9.7-H-090423-1.zip
1103			: $(baseURL)/Vision-0.9.7-H-x86-gcc4-2009-04-23.zip
1104			: apps
1105		;
1106		AddSymlinkToHaikuImage home config be Applications
1107			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
1108	} else {
1109		InstallOptionalHaikuImagePackage Vision-0.9.7-H-090423.zip
1110			: $(baseURL)/Vision-0.9.7-H-x86-gcc2-2009-04-23.zip
1111			: apps
1112		;
1113		AddSymlinkToHaikuImage home config be Applications
1114			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
1115	}
1116}
1117
1118
1119# VLC media player
1120if [ IsOptionalHaikuImagePackageAdded VLC ] {
1121	if $(TARGET_ARCH) != x86 {
1122		Echo "No optional package VLC available for $(TARGET_ARCH)" ;
1123	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1124		Echo "No optional package VLC available for gcc4" ;
1125	} else {
1126		InstallOptionalHaikuImagePackage VLC-0.8.6d.zip
1127			: $(baseURL)/vlc-0.8.6d-gcc2-2009-04-18.zip
1128			: apps
1129		;
1130		AddSymlinkToHaikuImage home config be Applications
1131			: "/boot/apps/vlc-0.8.6d/VLC media player" ;
1132		AddSymlinkToHaikuImage common bin
1133			: "/boot/apps/vlc-0.8.6d/VLC media player" : vlc ;
1134	}
1135}
1136
1137
1138# Welcome
1139if [ IsOptionalHaikuImagePackageAdded Welcome ] {
1140	CopyDirectoryToHaikuImage system documentation
1141		: [ FDirName $(HAIKU_TOP) docs welcome ]
1142		: welcome : -x .svn ;
1143	CopyDirectoryToHaikuImage system documentation
1144		: [ FDirName $(HAIKU_TOP) docs userguide ]
1145		: userguide : -x .svn ;
1146	CopyDirectoryToHaikuImage system documentation
1147		: [ FDirName $(HAIKU_TOP) docs images ]
1148		: images : -x .svn ;
1149	AddSymlinkToHaikuImage home Desktop
1150		: /boot/system/documentation/welcome/welcome_en.html : Welcome ;
1151	AddSymlinkToHaikuImage home Desktop
1152		: /boot/system/documentation/userguide/en/contents.html : User\ Guide ;
1153}
1154
1155
1156# WifiFirmwareScriptData
1157# This optional package is for people who build their own images & have wifi
1158# hardware that requires install-wifi-firmwares.sh & have no active network
1159# connection. This is not to be added to default images.
1160if [ IsOptionalHaikuImagePackageAdded WifiFirmwareScriptData ] {
1161	if $(TARGET_ARCH) != x86 {
1162		Echo "No optional package WifiFirmwareScriptData available for"
1163			$(TARGET_ARCH) ;
1164	} else {
1165		# broadcom43xx
1166		# firmware cutter
1167		local broadcomFWCutterArchive = b43-fwcutter-012.tar.bz2 ;
1168		local broadcomFWCutterURL =
1169			http://bu3sch.de/b43/fwcutter/$(broadcomFWCutterArchive) ;
1170		local broadcomFWCutterFile = [ DownloadFile $(broadcomFWCutterArchive)
1171			: $(broadcomFWCutterURL) ] ;
1172		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter
1173			: $(broadcomFWCutterFile) ;
1174
1175		# headers needed to compile firmware cutter
1176		local glibcDir = [ FDirName
1177			$(HAIKU_TOP) src system libroot posix glibc ] ;
1178		local byteswapHeader = [ FDirName $(glibcDir) string byteswap.h ] ;
1179		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter
1180			: $(byteswapHeader) ;
1181		local bitByteswapHeader = [ FDirName
1182			$(glibcDir) include arch x86 bits byteswap.h ] ;
1183		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter bits
1184			: $(bitByteswapHeader) ;
1185
1186		# file containing firmware
1187		local broadcom43xxFile ;
1188		broadcom43xxFile = [ DownloadFile wl_apsta-3.130.20.0.o
1189			: http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o ] ;
1190		AddFilesToHaikuImage system data firmware broadcom43xx
1191			: $(broadcom43xxFile) ;
1192
1193		# marvell88w8335
1194		local marvelArchive = malo-firmware-1.4.tgz ;
1195		local marvelURL = http://www.nazgul.ch/malo/$(marvelArchive) ;
1196		local marvelFile = [ DownloadFile $(marvelArchive) : $(marvelURL) ] ;
1197		AddFilesToHaikuImage system data firmware marvell88w8335
1198			: $(marvelFile) ;
1199	}
1200}
1201
1202
1203# WonderBrush
1204if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
1205	if $(TARGET_ARCH) != x86 {
1206		Echo "No optional package WonderBrush available for $(TARGET_ARCH)" ;
1207	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1208		Echo "No optional package WonderBrush available for gcc4" ;
1209	} else {
1210		InstallOptionalHaikuImagePackage WonderBrush-2.1.2.zip
1211			: $(baseURL)/WonderBrush-2.1.2-x86-gcc2-2008-11-08.zip
1212			: apps
1213		;
1214		AddSymlinkToHaikuImage home config be Applications
1215			: /boot/apps/WonderBrush/WonderBrush ;
1216	}
1217}
1218
1219
1220# XZ-Utils
1221if [ IsOptionalHaikuImagePackageAdded XZ-Utils ] {
1222	if $(TARGET_ARCH) != x86 {
1223		Echo "No optional package XZ-Utils available for $(TARGET_ARCH)" ;
1224	} else {
1225		InstallOptionalHaikuImagePackage xz-utils-4.999.9-x86-gcc4-2010-02-25.zip
1226			: $(baseURL)/xz-utils-4.999.9-x86-gcc4-2010-02-25.zip
1227			:
1228		;
1229		AddExpanderRuleToHaikuImage "application/x-xz" : .tar.xz
1230			: "tar -Jtvf \\0045s"
1231			: "tar -Jxvf \\0045s"
1232		;
1233		AddExpanderRuleToHaikuImage "application/x-xz" : .txz
1234			: "tar -Jtvf \\0045s"
1235			: "tar -Jxvf \\0045s"
1236		;
1237		AddExpanderRuleToHaikuImage "application/x-xz" : .xz
1238			: "echo \\0045s | sed 's/.xz\\\$//g'"
1239			: "xz -df \\0045s"
1240		;
1241	}
1242}
1243
1244
1245# Yasm
1246if [ IsOptionalHaikuImagePackageAdded Yasm ] {
1247	if $(TARGET_ARCH) != x86 {
1248		Echo "No optional package Yasm available for $(TARGET_ARCH)" ;
1249	} else {
1250		InstallOptionalHaikuImagePackage yasm-0.8.0-r1a1-x86-gcc2-2009-08-30.zip
1251			: $(baseURL)/yasm-0.8.0-r1a1-x86-gcc2-2009-08-30.zip
1252			:
1253		;
1254	}
1255}
1256