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