xref: /haiku/build/jam/OptionalPackages (revision 16d5c24e533eb14b7b8a99ee9f3ec9ba66335b1e)
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#	APR
16#	APR-util
17#	Beam
18#	BeBook
19#	BeHappy
20#	BeOSCompatibility
21#	BePDF
22#	Bluetooth
23#	CDRecord
24#	CLucene
25#	CVS
26#	Development			- more complete dev environment (including autotools)
27#	DevelopmentBase		- basic development environment (gcc, headers, libs,...)
28#	DevelopmentMin		- development headers, libs, tools, from sources only
29#	Firefox
30#	KeymapSwitcher
31#	LibIconv
32#	LibLayout
33#	LibXML2
34#	Links
35#	Nano
36#	Neon
37#	NetSurf
38#	OpenSound
39#	OpenSSH
40#	OpenSSL
41#	P7zip
42#	Pe
43#	Perl
44#	Python
45#	Rsync
46#	SQLite
47#	Subversion
48#	Tar
49#	UserlandFS
50#	Vim
51#	Vision
52#	VLC
53#	Welcome
54#	WonderBrush
55#	Yasm
56
57local baseURL = http://haiku-files.org/files/optional-packages ;
58
59# APR
60if [ IsOptionalHaikuImagePackageAdded APR ] {
61	if $(TARGET_ARCH) != x86 {
62		Echo "No optional package APR available for $(TARGET_ARCH)" ;
63	} else {
64		InstallOptionalHaikuImagePackage apr-1.3.5-x86-gcc2-2009-07-05
65			: $(baseURL)/apr-1.3.5-x86-gcc2-2009-07-05.zip
66			:
67		;
68	}
69}
70
71
72# APR-util
73if [ IsOptionalHaikuImagePackageAdded APR-util ] {
74	if $(TARGET_ARCH) != x86 {
75		Echo "No optional package APR-util available for $(TARGET_ARCH)" ;
76	} else {
77		InstallOptionalHaikuImagePackage apr-util-1.3.7-x86-gcc2-2009-07-05
78			: $(baseURL)/apr-util-1.3.7-x86-gcc2-2009-07-05.zip
79			:
80		;
81	}
82}
83
84
85# Beam
86if [ IsOptionalHaikuImagePackageAdded Beam ] {
87	if $(TARGET_ARCH) != x86 {
88		Echo "No optional package Beam available for $(TARGET_ARCH)" ;
89	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
90		Echo "No optional package Beam available for gcc4" ;
91	} else {
92		InstallOptionalHaikuImagePackage Beam-1.1.2
93			: $(baseURL)/Beam-1.1.2-x86-gcc2-2008-03-27.zip
94			: apps
95		;
96		AddSymlinkToHaikuImage home config be Applications
97			: /boot/apps/beam-1-1-2-r5-with-libs/Beam ;
98	}
99}
100
101
102# BeBook
103if [ IsOptionalHaikuImagePackageAdded BeBook ] {
104	InstallOptionalHaikuImagePackage bebook_20081026
105		: $(baseURL)/bebook_20081026.zip
106		: system documentation
107	;
108	AddSymlinkToHaikuImage home Desktop
109		: /boot/system/documentation/bebook/index.html : BeBook ;
110}
111
112
113# BeHappy
114if [ IsOptionalHaikuImagePackageAdded BeHappy ] {
115	if $(TARGET_ARCH) != x86 {
116		Echo "No optional package BeHappy available for $(TARGET_ARCH)" ;
117	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
118		Echo "No optional package BeHappy available for gcc4" ;
119	} else {
120		InstallOptionalHaikuImagePackage BeHappy-1.0.6-x86-gcc2-2008-10-16
121			: $(baseURL)/BeHappy-1.0.6-x86-gcc2-2008-10-16.zip
122			:
123		;
124		AddSymlinkToHaikuImage home config be Applications
125			: /boot/apps/BeHappy/BeHappy ;
126	}
127}
128
129
130# BeOSCompatibility
131if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
132	if $(TARGET_ARCH) != x86 {
133		Echo "No optional package BeOSCompatibility available for $(TARGET_ARCH)" ;
134	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
135		Echo "No optional package BeOSCompatibility available for gcc4" ;
136	} else {
137		Echo "Warning: Adding BeOS compatibility symlinks. This will go away. Please fix your apps!" ;
138		AddSymlinkToHaikuImage beos : ../system/apps ;
139		AddSymlinkToHaikuImage beos : ../system/bin ;
140		AddSymlinkToHaikuImage beos : ../system/documentation ;
141		AddSymlinkToHaikuImage beos : ../system/etc ;
142		AddSymlinkToHaikuImage beos : ../system/preferences ;
143		AddSymlinkToHaikuImage beos : ../system ;
144	}
145}
146
147
148# BePDF
149if [ IsOptionalHaikuImagePackageAdded BePDF ] {
150	if $(TARGET_ARCH) != x86 {
151		Echo "No optional package BePDF available for $(TARGET_ARCH)" ;
152	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
153		Echo "No optional package BePDF available for gcc4" ;
154	} else {
155		InstallOptionalHaikuImagePackage BePDF-1.1.1b1.x86
156			: $(baseURL)/BePDF-1.1.1b1.x86.zip
157			: apps
158		;
159		AddSymlinkToHaikuImage home config be Applications
160			: /boot/apps/BePDF/BePDF ;
161	}
162}
163
164
165# Bluetooth stack
166if [ IsOptionalHaikuImagePackageAdded Bluetooth ] {
167	local bluetoothDrivers = h2generic ;
168	AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ;
169	AddFilesToHaikuImage system servers : bluetooth_server ;
170	AddFilesToHaikuImage system lib : libbluetooth.so ;
171	AddFilesToHaikuImage system add-ons kernel network devices : bluetooth ;
172	AddFilesToHaikuImage system add-ons kernel network protocols : l2cap ;
173	AddFilesToHaikuImage system add-ons kernel bluetooth : btCoreData ;
174	AddFilesToHaikuImage system preferences : Bluetooth ;
175	AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ;
176	AddSymlinkToHaikuImage home config be Preferences
177		: /boot/system/preferences/Bluetooth ;
178	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
179		&& $(HAIKU_GCC_VERSION[1]) in 2 4 {
180		local arch = $(TARGET_ARCH) ;
181		local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
182		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
183			: /system/lib libbluetooth.so : : true ;
184	}
185}
186
187
188# CDRecord
189if [ IsOptionalHaikuImagePackageAdded CDRecord ] {
190	if $(TARGET_ARCH) != x86 {
191		Echo "No optional package CDRecord available for $(TARGET_ARCH)" ;
192	} else {
193		InstallOptionalHaikuImagePackage cdrecord-2.01.01a59-x86-gcc2-2009-05-26
194			: $(baseURL)/cdrecord-2.01.01a59-x86-gcc2-2009-05-26.zip
195			:
196		;
197	}
198}
199
200
201# CLucene
202if [ IsOptionalHaikuImagePackageAdded CLucene ] {
203	if $(TARGET_ARCH) != x86 {
204		Echo "No optional package CLucene available for $(TARGET_ARCH)" ;
205	} else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
206		Echo "No optional package CLucene available for GCC2" ;
207	} else {
208		InstallOptionalHaikuImagePackage
209			clucene-0.9.21svn-x86-gcc4-haiku-2009-06-11
210			: $(baseURL)/clucene-0.9.21svn-x86-gcc4-haiku-2009-06-11.zip
211			:
212		;
213	}
214}
215
216
217# CVS
218if [ IsOptionalHaikuImagePackageAdded CVS ] {
219	if $(TARGET_ARCH) != x86 {
220		Echo "No optional package CVS available for $(TARGET_ARCH)" ;
221	} else {
222		InstallOptionalHaikuImagePackage cvs-1.12.13-x86-gcc2-2009-07-06
223			: $(baseURL)/cvs-1.12.13-x86-gcc2-2009-07-06.zip
224			:
225		;
226	}
227}
228
229
230# Development
231if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 {
232	# autotools
233	InstallOptionalHaikuImagePackage autoconf-2.63-gcc2-2008-11-05
234		: $(baseURL)/autoconf-2.63-gcc2-2008-11-05.zip ;
235	InstallOptionalHaikuImagePackage automake-1.10.1-gcc2-2008-11-06
236		: $(baseURL)/automake-1.10.1-gcc2-2008-11-06.zip ;
237	InstallOptionalHaikuImagePackage libtool-2.2.6a-x86-gcc2-2009-07-05
238		: $(baseURL)/libtool-2.2.6a-x86-gcc2-2009-07-05.zip ;
239	InstallOptionalHaikuImagePackage texinfo-4.13a-gcc2-2008-11-09
240		: $(baseURL)/texinfo-4.13a-gcc2-2008-11-09.zip ;
241}
242
243
244# DevelopmentBase
245if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ]
246		&& $(TARGET_ARCH) = x86 {
247	# gcc and binutils
248	if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) {
249		InstallOptionalHaikuImagePackage gcc-2.95.3-x86-gcc2-2009-06-29
250			: $(baseURL)/gcc-2.95.3-x86-gcc2-2009-06-29.zip ;
251	}
252
253	if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) {
254		InstallOptionalHaikuImagePackage gcc-4.3.3-x86-gcc4-2009-06-29
255			: $(baseURL)/gcc-4.3.3-x86-gcc4-2009-06-29.zip ;
256
257		# symlink cpp to g++'s headers
258		AddSymlinkToHaikuImage develop abi x86 gcc4 headers
259			: ../tools/current/include/g++ : cpp ;
260	}
261
262	# other commonly used tools
263	InstallOptionalHaikuImagePackage bison-2.4.1-x86-gcc2-2009-07-05
264		: $(baseURL)/bison-2.4.1-x86-gcc2-2009-07-05.zip ;
265	InstallOptionalHaikuImagePackage m4-1.4.12-gcc2-2008-11-04
266		: $(baseURL)/m4-1.4.12-gcc2-2008-11-04.zip ;
267	InstallOptionalHaikuImagePackage flex-2.5.35-x86-gcc2-2009-07-05
268		: $(baseURL)/flex-2.5.35-x86-gcc2-2009-07-05.zip ;
269	InstallOptionalHaikuImagePackage jam-2.5-x86-gcc2-2009-05-26
270		: $(baseURL)/jam-2.5-x86-gcc2-2009-05-26.zip ;
271
272}
273
274
275# DevelopmentMin
276if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 {
277	if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
278		Exit "Optional package DevelopmentMin: Unsupported GCC version:"
279			$(HAIKU_GCC_VERSION[1]) ;
280	}
281
282	local arch = $(TARGET_ARCH) ;
283	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
284	local abiDirTokens = develop abi $(arch) $(abi) ;
285
286	# glue code
287	AddFilesToHaikuHybridImage $(abiDirTokens) lib :
288		<src!system!glue!arch!$(arch)>crti.o
289		<src!system!glue!arch!$(arch)>crtn.o
290		<src!system!glue>init_term_dyn.o
291		<src!system!glue>start_dyn.o
292		<src!system!glue>haiku_version_glue.o
293	;
294
295	# kernel
296	AddFilesToHaikuHybridImage $(abiDirTokens) lib : kernel.so : _KERNEL_ ;
297
298	# library symlinks
299	local lib ;
300	for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) {
301		AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
302			: /system/lib $(lib:BS) : : true ;
303	}
304
305	# static libraries
306	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libncurses.a ;
307
308	# the POSIX error code mapper library
309	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libposix_error_mapper.a ;
310
311	# symlinks for ABI abstraction
312	AddSymlinkToHaikuImage develop abi : $(arch)/$(abi) : current ;
313	AddSymlinkToHaikuImage develop lib : /boot/develop/abi/current/lib
314		: $(arch) ;
315	AddSymlinkToHaikuImage develop tools
316		: /boot/develop/abi/current/tools/current : gnupro ;
317	AddSymlinkToHaikuImage develop headers
318		: /boot/develop/abi/current/headers/cpp ;
319	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
320		: /boot/common/lib : common : true ;
321	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
322		: /boot/home/config/lib : home : true ;
323
324	# ABI independent stuff
325
326	# scripts: cc and c++ wrapper, freetype-config, setgcc
327	local scripts = cc c++ freetype-config setgcc ;
328	SEARCH on $(scripts) = [ FDirName $(HAIKU_TOP) data bin ] ;
329	AddFilesToHaikuImage system bin : $(scripts) ;
330
331	# make and mkdepend build tool, which are part of the Haiku source tree
332	# TODO: Both should be removed from the tree, made download packages
333	# and moved to the DevelopmentBase package.
334	AddFilesToHaikuImage system bin : make mkdepend ;
335
336	# skeleton makefile and makefile-engine
337	local makefileEngineFiles =
338		<makefile-engine>makefile
339		<makefile-engine>makefile-engine
340	;
341	SEARCH on $(makefileEngineFiles)
342		= [ FDirName $(HAIKU_TOP) data develop ] ;
343	AddFilesToHaikuImage develop etc : $(makefileEngineFiles) ;
344
345	# headers
346	AddHeaderDirectoryToHaikuImage gnu : 3rdparty ;
347	AddHeaderDirectoryToHaikuImage glibc ;
348	AddHeaderDirectoryToHaikuImage os ;
349	AddHeaderDirectoryToHaikuImage posix ;
350
351	# create be -> os symlink for now
352	AddSymlinkToHaikuImage develop headers : os : be ;
353
354	# BSD compatibility headers
355	AddHeaderDirectoryToHaikuImage compatibility bsd : bsd ;
356
357	# third party libs headers
358	AddHeaderDirectoryToHaikuImage libs freetype2 : 3rdparty ;
359	AddHeaderDirectoryToHaikuImage libs iconv : 3rdparty ;
360	AddHeaderDirectoryToHaikuImage libs ncurses : 3rdparty ;
361	AddHeaderDirectoryToHaikuImage libs png : 3rdparty ;
362	AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ;
363
364	# cpp headers
365	if $(HAIKU_GCC_VERSION[1]) = 2 {
366		# GCC 2 only -- for GCC 4 they come with the DevelopmentBase package
367		CopyDirectoryToHaikuImage $(abiDirTokens) headers
368			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
369		CopyDirectoryToAlternativeGCCArchive $(abiDirTokens) headers
370			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
371	}
372}
373
374
375# Firefox web browser
376if [ IsOptionalHaikuImagePackageAdded Firefox ] {
377	if $(TARGET_ARCH) != x86 {
378		Echo "No optional package Firefox available for $(TARGET_ARCH)" ;
379	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
380		InstallOptionalHaikuImagePackage
381			BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01
382			: $(baseURL)/BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01.zip
383 			: apps
384 		;
385 		AddSymlinkToHaikuImage home config be Applications
386			: /boot/apps/BeZillaBrowser/BeZillaBrowser ;
387
388
389	} else {
390		InstallOptionalHaikuImagePackage BeZillaBrowser-gcc2-20090218
391			: http://bezilla.beuser.de/builds/BeZillaBrowser-gcc2-20090218.zip
392 			: apps
393 		;
394 		AddSymlinkToHaikuImage home config be Applications
395			: /boot/apps/BeZillaBrowser/BeZillaBrowser ;
396	}
397}
398
399
400# KeymapSwitcher
401if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] {
402	if $(TARGET_ARCH) != x86 {
403		Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ;
404	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
405		InstallOptionalHaikuImagePackage
406			KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31
407			:  $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip
408			:
409		;
410		AddSymlinkToHaikuImage home config be Desktop\ Applets
411			: /boot/common/bin/KeymapSwitcher ;
412	} else {
413		InstallOptionalHaikuImagePackage
414			KeymapSwitcher-1.2.3-x86-gcc2-2009-05-31
415			:  $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc2-2009-05-31.zip
416			:
417		;
418		AddSymlinkToHaikuImage home config be Desktop\ Applets
419			: /boot/common/bin/KeymapSwitcher ;
420	}
421}
422
423
424# LibIconv
425if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
426	if $(TARGET_ARCH) != x86 {
427		Echo "No optional package LibIconv available for $(TARGET_ARCH)" ;
428	} else {
429		InstallOptionalHaikuImagePackage libiconv-1.13-x86-gcc2-2009-07-05
430			: $(baseURL)/libiconv-1.13-x86-gcc2-2009-07-05.zip
431			:
432		;
433	}
434}
435
436
437# LibLayout library
438if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
439	if $(TARGET_ARCH) != x86 {
440		Echo "No optional package LibLayout available for $(TARGET_ARCH)" ;
441	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
442		Echo "No optional package LibLayout available for gcc4" ;
443	} else {
444		InstallOptionalHaikuImagePackage liblayout-1.4.0-gcc2-2009-03-08
445			: $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip
446			:
447		;
448	}
449}
450
451
452# LibXML2
453if [ IsOptionalHaikuImagePackageAdded LibXML2 ] {
454	if $(TARGET_ARCH) != x86 {
455		Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ;
456	} else {
457		InstallOptionalHaikuImagePackage libxml2-2.7.3-x86-gcc2-2009-07-06
458			: $(baseURL)/libxml2-2.7.3-x86-gcc2-2009-07-06.zip
459			:
460		;
461	}
462}
463
464
465# Links web browser
466if [ IsOptionalHaikuImagePackageAdded Links ] {
467	if $(TARGET_ARCH) != x86 {
468		Echo "No optional package Links available for $(TARGET_ARCH)" ;
469	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
470		Echo "No optional package Links available for gcc4" ;
471	} else {
472		InstallOptionalHaikuImagePackage Links
473			: $(baseURL)/links-x86-gcc2-2008-05-03.zip
474			:
475		;
476		AddSymlinkToHaikuImage home config be Applications
477			: /boot/home/config/bin/links ;
478	}
479}
480
481
482# Nano
483if [ IsOptionalHaikuImagePackageAdded Nano ] {
484	if $(TARGET_ARCH) != x86 {
485		Echo "No optional package Nano available for $(TARGET_ARCH)" ;
486	} else {
487		InstallOptionalHaikuImagePackage nano-2.0.9-x86-gcc2-2009-07-06
488			: $(baseURL)/nano-2.0.9-x86-gcc2-2009-07-06.zip
489			:
490		;
491	}
492}
493
494
495# Neon
496if [ IsOptionalHaikuImagePackageAdded Neon ] {
497	if $(TARGET_ARCH) != x86 {
498		Echo "No optional package Neon available for $(TARGET_ARCH)" ;
499	} else {
500		InstallOptionalHaikuImagePackage neon-0.28.5-x86-gcc2-2009-07-06
501			: $(baseURL)/neon-0.28.5-x86-gcc2-2009-07-06.zip
502			:
503		;
504	}
505}
506
507
508# NetSurf web browser
509if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
510	if $(TARGET_ARCH) != x86 {
511		Echo "No optional package NetSurf available for $(TARGET_ARCH)" ;
512	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
513		Echo "No optional package NetSurf available for gcc4" ;
514	} else {
515		InstallOptionalHaikuImagePackage NetSurf-r7117
516			: $(baseURL)/NetSurf-r7117-x86-gcc2-2009-04-17.zip
517			:
518		;
519		AddSymlinkToHaikuImage home config be Applications
520			: /boot/apps/netsurf/NetSurf ;
521	}
522}
523
524
525# OpenSound drivers
526if [ IsOptionalHaikuImagePackageAdded OpenSound ] {
527	if $(TARGET_ARCH) != x86 {
528		Echo "No optional package OpenSound available for $(TARGET_ARCH)" ;
529	} else {
530		InstallOptionalHaikuImagePackage OpenSound
531			: $(baseURL)/OpenSound-x86-gcc2-2008-06-21.zip
532			:
533		;
534	}
535	#UnzipArchiveToHaikuImage home : data/vv.mp3.zip : 0 ;
536}
537
538
539# OpenSSH
540if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
541	if $(TARGET_ARCH) != x86 {
542		Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ;
543	} else {
544		if ! $(HAIKU_IMAGE_HOST_NAME) && ! $(HAIKU_IGNORE_USER_BUILD_CONFIG) {
545			Exit "Optional package OpenSSH requires the HAIKU_IMAGE_HOST_NAME"
546				"variable to be set!" ;
547		}
548
549		InstallOptionalHaikuImagePackage openssh-5.2p1-x86-gcc2-2009-05-27
550			: $(baseURL)/openssh-5.2p1-x86-gcc2-2009-05-27.zip
551			:
552		;
553
554		AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true
555			: "sshd user" ;
556	}
557}
558
559
560# OpenSSL
561if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
562	if $(TARGET_ARCH) != x86 {
563		Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
564	} else {
565		InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
566			: $(HAIKU_OPENSSL_URL)
567			:
568		;
569	}
570}
571
572
573# P7zip
574if [ IsOptionalHaikuImagePackageAdded P7zip ] {
575	if $(TARGET_ARCH) != x86 {
576		Echo "No optional package P7zip available for $(TARGET_ARCH)" ;
577	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
578		Echo "No optional package P7zip available for gcc4" ;
579	} else {
580		InstallOptionalHaikuImagePackage p7zip-4.65-x86-gcc2-2009-05-24
581			: $(baseURL)/p7zip-4.65-x86-gcc2-2009-05-24.zip
582			:
583		;
584
585		actions BuildHaikuImageExpanderRules
586		{
587			echo "\"application/x-7z-compressed\"\t.7z\t\"7za l \0045s\"\t\"7za x -y \0045s\"" > $(1)
588		}
589
590		Always expander.rules ;
591		MakeLocate expander.rules : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ;
592		BuildHaikuImageExpanderRules expander.rules ;
593		AddFilesToHaikuImage home config etc : expander.rules ;
594	}
595}
596
597
598# Pe text editor
599if [ IsOptionalHaikuImagePackageAdded Pe ] {
600	if $(TARGET_ARCH) != x86 {
601		Echo "No optional package Pe available for $(TARGET_ARCH)" ;
602	} else {
603		if $(HAIKU_GCC_VERSION[1]) >= 4 {
604			InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc4-2009-07-05
605				: $(baseURL)/Pe-2.4.2-x86-gcc4-2009-07-05.zip
606			;
607		} else {
608			InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc2-2009-07-05
609				: $(baseURL)/Pe-2.4.2-x86-gcc2-2009-07-05.zip
610			;
611		}
612
613		AddSymlinkToHaikuImage home config be Applications
614			: /boot/apps/Pe/Pe ;
615		AddSymlinkToHaikuImage common bin
616			: /boot/apps/Pe/lpe ;
617	}
618}
619
620
621# Perl
622if [ IsOptionalHaikuImagePackageAdded Perl ] {
623	if $(TARGET_ARCH) != x86 {
624		Echo "No optional package Perl available for $(TARGET_ARCH)" ;
625	} else {
626		InstallOptionalHaikuImagePackage perl-5.10.0-gcc2-2008-10-29
627			: $(baseURL)/perl-5.10.0-gcc2-2008-10-29.zip
628			:
629		;
630	}
631}
632
633
634# Python
635if [ IsOptionalHaikuImagePackageAdded Python ] {
636	if $(TARGET_ARCH) != x86 {
637		Echo "No optional package Python available for $(TARGET_ARCH)" ;
638	} else {
639		InstallOptionalHaikuImagePackage python-2.6.2-x86-gcc2-2009-05-27
640			: $(baseURL)/python-2.6.2-x86-gcc2-2009-05-27.zip
641			:
642		;
643	}
644}
645
646
647# SQLite
648if [ IsOptionalHaikuImagePackageAdded SQLite ] {
649	if $(TARGET_ARCH) != x86 {
650		Echo "No optional package SQLite available for $(TARGET_ARCH)" ;
651	} else {
652		InstallOptionalHaikuImagePackage sqlite-3.6.16-x86-gcc2-2009-07-06
653			: $(baseURL)/sqlite-3.6.16-x86-gcc2-2009-07-06.zip
654			:
655		;
656	}
657}
658
659
660# Rsync
661if [ IsOptionalHaikuImagePackageAdded Rsync ] {
662	if $(TARGET_ARCH) != x86 {
663		Echo "No optional package Rsync available for $(TARGET_ARCH)" ;
664	} else {
665		InstallOptionalHaikuImagePackage rsync-3.0.6-x86-gcc2-2009-05-26
666			: $(baseURL)/rsync-3.0.6-x86-gcc2-2009-05-26.zip
667			:
668		;
669	}
670}
671
672
673# Subversion
674if [ IsOptionalHaikuImagePackageAdded Subversion ] {
675	if $(TARGET_ARCH) != x86 {
676		Echo "No optional package Subversion available for $(TARGET_ARCH)" ;
677	} else {
678		InstallOptionalHaikuImagePackage subversion-1.6.2-x86-gcc2-2009-05-20
679			: $(baseURL)/subversion-1.6.2-x86-gcc2-2009-05-20.zip
680			:
681		;
682	}
683}
684
685
686# Tar
687if [ IsOptionalHaikuImagePackageAdded Tar ] {
688	if $(TARGET_ARCH) != x86 {
689		Echo "No optional package Tar available for $(TARGET_ARCH)" ;
690	} else {
691		InstallOptionalHaikuImagePackage tar-1.21-gcc2-2009-02-08
692			: $(baseURL)/tar-1.21-gcc2-2009-02-08.zip
693			:
694		;
695	}
696}
697
698
699# UserlandFS
700if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
701	local arch = $(TARGET_ARCH) ;
702	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
703
704	# kernel module
705	AddFilesToHaikuImage system add-ons kernel file_systems : userlandfs ;
706
707	# server
708	AddFilesToHaikuImage system servers : userlandfs_server ;
709
710	# libs
711	local userlandfsLibs =
712		libuserlandfs_beos_kernel.so
713		libuserlandfs_haiku_kernel.so
714		libuserlandfs_fuse.so
715	;
716	AddFilesToHaikuHybridImage system lib : $(userlandfsLibs) : : true ;
717
718	# development goodies
719	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
720		if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
721			Exit "Optional package UserlandFS: Unsupported GCC version:"
722				$(HAIKU_GCC_VERSION[1]) ;
723		}
724
725		# library symlinks
726		local lib ;
727		for lib in $(userlandfsLibs) {
728			AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
729				: /system/lib/$(lib:BS) ;
730			AddSymlinkToAlternativeGCCArchive develop abi $(arch) $(abi) lib
731				: /system/lib/$(arch)/$(lib:BS) ;
732		}
733
734		# FUSE headers
735		local fuseHeaders =
736			fuse_common_compat.h
737			fuse_common.h
738			fuse_compat.h
739			fuse.h
740			fuse_lowlevel_compat.h
741			fuse_lowlevel.h
742			fuse_opt.h
743		;
744		fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
745		SEARCH on $(fuseHeaders)
746			= [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
747		AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ;
748	}
749}
750
751
752# Vim
753if [ IsOptionalHaikuImagePackageAdded Vim ] {
754	if $(TARGET_ARCH) != x86 {
755		Echo "No optional package Vim available for $(TARGET_ARCH)" ;
756	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
757		InstallOptionalHaikuImagePackage vim-7.2-x86-gcc4-2009-05-31
758			:  $(baseURL)/vim-7.2-x86-gcc4-2009-05-31.zip
759			:
760		;
761		AddSymlinkToHaikuImage home config be Applications
762			: /boot/common/bin/gvim ;
763	} else {
764		InstallOptionalHaikuImagePackage vim-7.2-x86-gcc2-2009-05-31
765			:  $(baseURL)/vim-7.2-x86-gcc2-2009-05-31.zip
766			:
767		;
768		AddSymlinkToHaikuImage home config be Applications
769			: /boot/common/bin/gvim ;
770	}
771}
772
773
774# Vision
775if [ IsOptionalHaikuImagePackageAdded Vision ] {
776	if $(TARGET_ARCH) != x86 {
777		Echo "No optional package Vision available for $(TARGET_ARCH)" ;
778	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
779		InstallOptionalHaikuImagePackage Vision-0.9.7-H-090423
780			: $(baseURL)/Vision-0.9.7-H-x86-gcc4-2009-04-23.zip
781			: apps
782		;
783		AddSymlinkToHaikuImage home config be Applications
784			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
785	} else {
786		InstallOptionalHaikuImagePackage Vision-0.9.7-H-090423
787			: $(baseURL)/Vision-0.9.7-H-x86-gcc2-2009-04-23.zip
788			: apps
789		;
790		AddSymlinkToHaikuImage home config be Applications
791			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
792	}
793}
794
795
796# VLC media player
797if [ IsOptionalHaikuImagePackageAdded VLC ] {
798	if $(TARGET_ARCH) != x86 {
799		Echo "No optional package VLC available for $(TARGET_ARCH)" ;
800	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
801		Echo "No optional package VLC available for gcc4" ;
802	} else {
803		InstallOptionalHaikuImagePackage VLC-0.8.6d
804			: $(baseURL)/vlc-0.8.6d-gcc2-2009-04-18.zip
805			: apps
806		;
807		AddSymlinkToHaikuImage home config be Applications
808			: "/boot/apps/vlc-0.8.6d/VLC media player" ;
809		AddSymlinkToHaikuImage common bin
810			: "/boot/apps/vlc-0.8.6d/VLC media player" : vlc ;
811	}
812}
813
814
815# Welcome
816if [ IsOptionalHaikuImagePackageAdded Welcome ] {
817	CopyDirectoryToHaikuImage system documentation
818		: [ FDirName $(HAIKU_TOP) docs welcome ]
819		: welcome : -x .svn ;
820	CopyDirectoryToHaikuImage system documentation
821		: [ FDirName $(HAIKU_TOP) docs userguide ]
822		: userguide : -x .svn ;
823	AddFilesToHaikuImage system documentation
824		: [ FDirName $(HAIKU_TOP) docs Haiku-doc.css ]
825		: Haiku-doc.css ;
826	AddSymlinkToHaikuImage home Desktop
827		: /boot/system/documentation/welcome/welcome.html : Welcome ;
828}
829
830
831# WonderBrush
832if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
833	if $(TARGET_ARCH) != x86 {
834		Echo "No optional package WonderBrush available for $(TARGET_ARCH)" ;
835	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
836		Echo "No optional package WonderBrush available for gcc4" ;
837	} else {
838		InstallOptionalHaikuImagePackage WonderBrush-2.1.2
839			: $(baseURL)/WonderBrush-2.1.2-x86-gcc2-2008-11-08.zip
840			: apps
841		;
842		AddSymlinkToHaikuImage home config be Applications
843			: /boot/apps/WonderBrush/WonderBrush ;
844	}
845}
846
847
848# Yasm
849if [ IsOptionalHaikuImagePackageAdded Yasm ] {
850	if $(TARGET_ARCH) != x86 {
851		Echo "No optional package Yasm available for $(TARGET_ARCH)" ;
852	} else {
853		InstallOptionalHaikuImagePackage yasm-0.8.0-x86-gcc2-2009-07-06
854			: $(baseURL)/yasm-0.8.0-x86-gcc2-2009-07-06.zip
855			:
856		;
857	}
858}
859