xref: /haiku/build/jam/OptionalPackages (revision 4cf03112fa7d2fbd98d3248e2c8afd898c596665)
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-gcc2-2008-11-09
238		: $(baseURL)/libtool-2.2.6a-gcc2-2008-11-09.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-1
255			: $(baseURL)/gcc-4.3.3-x86-gcc4-2009-06-29-1.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 ncurses : 3rdparty ;
360	AddHeaderDirectoryToHaikuImage libs png : 3rdparty ;
361	AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ;
362
363	# cpp headers
364	if $(HAIKU_GCC_VERSION[1]) = 2 {
365		# GCC 2 only -- for GCC 4 they come with the DevelopmentBase package
366		CopyDirectoryToHaikuImage $(abiDirTokens) headers
367			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
368		CopyDirectoryToAlternativeGCCArchive $(abiDirTokens) headers
369			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
370	}
371}
372
373
374# Firefox web browser
375if [ IsOptionalHaikuImagePackageAdded Firefox ] {
376	if $(TARGET_ARCH) != x86 {
377		Echo "No optional package Firefox available for $(TARGET_ARCH)" ;
378	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
379		InstallOptionalHaikuImagePackage
380			BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01
381			: $(baseURL)/BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01.zip
382 			: apps
383 		;
384 		AddSymlinkToHaikuImage home config be Applications
385			: /boot/apps/BeZillaBrowser/BeZillaBrowser ;
386
387
388	} else {
389		InstallOptionalHaikuImagePackage BeZillaBrowser-gcc2-20090218
390			: http://bezilla.beuser.de/builds/BeZillaBrowser-gcc2-20090218.zip
391 			: apps
392 		;
393 		AddSymlinkToHaikuImage home config be Applications
394			: /boot/apps/BeZillaBrowser/BeZillaBrowser ;
395	}
396}
397
398
399# KeymapSwitcher
400if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] {
401	if $(TARGET_ARCH) != x86 {
402		Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ;
403	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
404		InstallOptionalHaikuImagePackage
405			KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31
406			:  $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip
407			:
408		;
409		AddSymlinkToHaikuImage home config be Desktop\ Applets
410			: /boot/common/bin/KeymapSwitcher ;
411	} else {
412		InstallOptionalHaikuImagePackage
413			KeymapSwitcher-1.2.3-x86-gcc2-2009-05-31
414			:  $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc2-2009-05-31.zip
415			:
416		;
417		AddSymlinkToHaikuImage home config be Desktop\ Applets
418			: /boot/common/bin/KeymapSwitcher ;
419	}
420}
421
422
423# LibIconv
424if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
425	if $(TARGET_ARCH) != x86 {
426		Echo "No optional package LibIconv available for $(TARGET_ARCH)" ;
427	} else {
428		InstallOptionalHaikuImagePackage libiconv-1.13.1-x86-gcc2-2009-07-07
429			: $(baseURL)/libiconv-1.13.1-x86-gcc2-2009-07-07.zip
430			:
431		;
432	}
433}
434
435
436# LibLayout library
437if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
438	if $(TARGET_ARCH) != x86 {
439		Echo "No optional package LibLayout available for $(TARGET_ARCH)" ;
440	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
441		Echo "No optional package LibLayout available for gcc4" ;
442	} else {
443		InstallOptionalHaikuImagePackage liblayout-1.4.0-gcc2-2009-03-08
444			: $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip
445			:
446		;
447	}
448}
449
450
451# LibXML2
452if [ IsOptionalHaikuImagePackageAdded LibXML2 ] {
453	if $(TARGET_ARCH) != x86 {
454		Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ;
455	} else {
456		InstallOptionalHaikuImagePackage libxml2-2.7.3-x86-gcc2-2009-07-06
457			: $(baseURL)/libxml2-2.7.3-x86-gcc2-2009-07-06.zip
458			:
459		;
460	}
461}
462
463
464# Links web browser
465if [ IsOptionalHaikuImagePackageAdded Links ] {
466	if $(TARGET_ARCH) != x86 {
467		Echo "No optional package Links available for $(TARGET_ARCH)" ;
468	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
469		Echo "No optional package Links available for gcc4" ;
470	} else {
471		InstallOptionalHaikuImagePackage Links
472			: $(baseURL)/links-x86-gcc2-2008-05-03.zip
473			:
474		;
475		AddSymlinkToHaikuImage home config be Applications
476			: /boot/home/config/bin/links ;
477	}
478}
479
480
481# Nano
482if [ IsOptionalHaikuImagePackageAdded Nano ] {
483	if $(TARGET_ARCH) != x86 {
484		Echo "No optional package Nano available for $(TARGET_ARCH)" ;
485	} else {
486		InstallOptionalHaikuImagePackage nano-2.0.9-x86-gcc2-2009-07-06
487			: $(baseURL)/nano-2.0.9-x86-gcc2-2009-07-06.zip
488			:
489		;
490	}
491}
492
493
494# Neon
495if [ IsOptionalHaikuImagePackageAdded Neon ] {
496	if $(TARGET_ARCH) != x86 {
497		Echo "No optional package Neon available for $(TARGET_ARCH)" ;
498	} else {
499		InstallOptionalHaikuImagePackage neon-0.28.5-x86-gcc2-2009-07-06
500			: $(baseURL)/neon-0.28.5-x86-gcc2-2009-07-06.zip
501			:
502		;
503	}
504}
505
506
507# NetSurf web browser
508if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
509	if $(TARGET_ARCH) != x86 {
510		Echo "No optional package NetSurf available for $(TARGET_ARCH)" ;
511	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
512		Echo "No optional package NetSurf available for gcc4" ;
513	} else {
514		InstallOptionalHaikuImagePackage NetSurf-r7117
515			: $(baseURL)/NetSurf-r7117-x86-gcc2-2009-04-17.zip
516			:
517		;
518		AddSymlinkToHaikuImage home config be Applications
519			: /boot/apps/netsurf/NetSurf ;
520	}
521}
522
523
524# OpenSound drivers
525if [ IsOptionalHaikuImagePackageAdded OpenSound ] {
526	if $(TARGET_ARCH) != x86 {
527		Echo "No optional package OpenSound available for $(TARGET_ARCH)" ;
528	} else {
529		InstallOptionalHaikuImagePackage OpenSound
530			: $(baseURL)/OpenSound-x86-gcc2-2008-06-21.zip
531			:
532		;
533	}
534	#UnzipArchiveToHaikuImage home : data/vv.mp3.zip : 0 ;
535}
536
537
538# OpenSSH
539if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
540	if $(TARGET_ARCH) != x86 {
541		Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ;
542	} else {
543		if ! $(HAIKU_IMAGE_HOST_NAME) && ! $(HAIKU_IGNORE_USER_BUILD_CONFIG) {
544			Exit "Optional package OpenSSH requires the HAIKU_IMAGE_HOST_NAME"
545				"variable to be set!" ;
546		}
547
548		InstallOptionalHaikuImagePackage openssh-5.2p1-x86-gcc2-2009-05-27
549			: $(baseURL)/openssh-5.2p1-x86-gcc2-2009-05-27.zip
550			:
551		;
552
553		AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true
554			: "sshd user" ;
555	}
556}
557
558
559# OpenSSL
560if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
561	if $(TARGET_ARCH) != x86 {
562		Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
563	} else {
564		InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
565			: $(HAIKU_OPENSSL_URL)
566			:
567		;
568	}
569}
570
571
572# P7zip
573if [ IsOptionalHaikuImagePackageAdded P7zip ] {
574	if $(TARGET_ARCH) != x86 {
575		Echo "No optional package P7zip available for $(TARGET_ARCH)" ;
576	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
577		Echo "No optional package P7zip available for gcc4" ;
578	} else {
579		InstallOptionalHaikuImagePackage p7zip-4.65-x86-gcc2-2009-05-24
580			: $(baseURL)/p7zip-4.65-x86-gcc2-2009-05-24.zip
581			:
582		;
583
584		actions BuildHaikuImageExpanderRules
585		{
586			echo "\"application/x-7z-compressed\"\t.7z\t\"7za l \0045s\"\t\"7za x -y \0045s\"" > $(1)
587		}
588
589		Always expander.rules ;
590		MakeLocate expander.rules : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ;
591		BuildHaikuImageExpanderRules expander.rules ;
592		AddFilesToHaikuImage home config etc : expander.rules ;
593	}
594}
595
596
597# Pe text editor
598if [ IsOptionalHaikuImagePackageAdded Pe ] {
599	if $(TARGET_ARCH) != x86 {
600		Echo "No optional package Pe available for $(TARGET_ARCH)" ;
601	} else {
602		if $(HAIKU_GCC_VERSION[1]) >= 4 {
603			InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc4-2009-07-05
604				: $(baseURL)/Pe-2.4.2-x86-gcc4-2009-07-05.zip
605			;
606		} else {
607			InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc2-2009-07-05
608				: $(baseURL)/Pe-2.4.2-x86-gcc2-2009-07-05.zip
609			;
610		}
611
612		AddSymlinkToHaikuImage home config be Applications
613			: /boot/apps/Pe/Pe ;
614		AddSymlinkToHaikuImage common bin
615			: /boot/apps/Pe/lpe ;
616	}
617}
618
619
620# Perl
621if [ IsOptionalHaikuImagePackageAdded Perl ] {
622	if $(TARGET_ARCH) != x86 {
623		Echo "No optional package Perl available for $(TARGET_ARCH)" ;
624	} else {
625		InstallOptionalHaikuImagePackage perl-5.10.0-gcc2-2008-10-29
626			: $(baseURL)/perl-5.10.0-gcc2-2008-10-29.zip
627			:
628		;
629	}
630}
631
632
633# Python
634if [ IsOptionalHaikuImagePackageAdded Python ] {
635	if $(TARGET_ARCH) != x86 {
636		Echo "No optional package Python available for $(TARGET_ARCH)" ;
637	} else {
638		InstallOptionalHaikuImagePackage python-2.6.2-x86-gcc2-2009-07-12
639			: $(baseURL)/python-2.6.2-x86-gcc2-2009-07-12.zip
640			:
641		;
642	}
643}
644
645
646# Rsync
647if [ IsOptionalHaikuImagePackageAdded Rsync ] {
648	if $(TARGET_ARCH) != x86 {
649		Echo "No optional package Rsync available for $(TARGET_ARCH)" ;
650	} else {
651		InstallOptionalHaikuImagePackage rsync-3.0.6-x86-gcc2-2009-05-26
652			: $(baseURL)/rsync-3.0.6-x86-gcc2-2009-05-26.zip
653			:
654		;
655	}
656}
657
658
659# SQLite
660if [ IsOptionalHaikuImagePackageAdded SQLite ] {
661	if $(TARGET_ARCH) != x86 {
662		Echo "No optional package SQLite available for $(TARGET_ARCH)" ;
663	} else {
664		InstallOptionalHaikuImagePackage sqlite-3.6.16-x86-gcc2-2009-07-06
665			: $(baseURL)/sqlite-3.6.16-x86-gcc2-2009-07-06.zip
666			:
667		;
668	}
669}
670
671
672# Subversion
673if [ IsOptionalHaikuImagePackageAdded Subversion ] {
674	if $(TARGET_ARCH) != x86 {
675		Echo "No optional package Subversion available for $(TARGET_ARCH)" ;
676	} else {
677		InstallOptionalHaikuImagePackage subversion-1.6.2-x86-gcc2-2009-05-20
678			: $(baseURL)/subversion-1.6.2-x86-gcc2-2009-05-20.zip
679			:
680		;
681	}
682}
683
684
685# Tar
686if [ IsOptionalHaikuImagePackageAdded Tar ] {
687	if $(TARGET_ARCH) != x86 {
688		Echo "No optional package Tar available for $(TARGET_ARCH)" ;
689	} else {
690		InstallOptionalHaikuImagePackage tar-1.21-gcc2-2009-02-08
691			: $(baseURL)/tar-1.21-gcc2-2009-02-08.zip
692			:
693		;
694	}
695}
696
697
698# UserlandFS
699if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
700	local arch = $(TARGET_ARCH) ;
701	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
702
703	# kernel module
704	AddFilesToHaikuImage system add-ons kernel file_systems : userlandfs ;
705
706	# server
707	AddFilesToHaikuImage system servers : userlandfs_server ;
708
709	# libs
710	local userlandfsLibs =
711		libuserlandfs_beos_kernel.so
712		libuserlandfs_haiku_kernel.so
713		libuserlandfs_fuse.so
714	;
715	AddFilesToHaikuHybridImage system lib : $(userlandfsLibs) : : true ;
716
717	# development goodies
718	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
719		if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
720			Exit "Optional package UserlandFS: Unsupported GCC version:"
721				$(HAIKU_GCC_VERSION[1]) ;
722		}
723
724		# library symlinks
725		local lib ;
726		for lib in $(userlandfsLibs) {
727			AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
728				: /system/lib/$(lib:BS) ;
729			AddSymlinkToAlternativeGCCArchive develop abi $(arch) $(abi) lib
730				: /system/lib/$(arch)/$(lib:BS) ;
731		}
732
733		# FUSE headers
734		local fuseHeaders =
735			fuse_common_compat.h
736			fuse_common.h
737			fuse_compat.h
738			fuse.h
739			fuse_lowlevel_compat.h
740			fuse_lowlevel.h
741			fuse_opt.h
742		;
743		fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
744		SEARCH on $(fuseHeaders)
745			= [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
746		AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ;
747	}
748}
749
750
751# Vim
752if [ IsOptionalHaikuImagePackageAdded Vim ] {
753	if $(TARGET_ARCH) != x86 {
754		Echo "No optional package Vim available for $(TARGET_ARCH)" ;
755	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
756		InstallOptionalHaikuImagePackage vim-7.2-x86-gcc4-2009-05-31
757			:  $(baseURL)/vim-7.2-x86-gcc4-2009-05-31.zip
758			:
759		;
760		AddSymlinkToHaikuImage home config be Applications
761			: /boot/common/bin/gvim ;
762	} else {
763		InstallOptionalHaikuImagePackage vim-7.2-x86-gcc2-2009-05-31
764			:  $(baseURL)/vim-7.2-x86-gcc2-2009-05-31.zip
765			:
766		;
767		AddSymlinkToHaikuImage home config be Applications
768			: /boot/common/bin/gvim ;
769	}
770}
771
772
773# Vision
774if [ IsOptionalHaikuImagePackageAdded Vision ] {
775	if $(TARGET_ARCH) != x86 {
776		Echo "No optional package Vision available for $(TARGET_ARCH)" ;
777	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
778		InstallOptionalHaikuImagePackage Vision-0.9.7-H-090423
779			: $(baseURL)/Vision-0.9.7-H-x86-gcc4-2009-04-23.zip
780			: apps
781		;
782		AddSymlinkToHaikuImage home config be Applications
783			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
784	} else {
785		InstallOptionalHaikuImagePackage Vision-0.9.7-H-090423
786			: $(baseURL)/Vision-0.9.7-H-x86-gcc2-2009-04-23.zip
787			: apps
788		;
789		AddSymlinkToHaikuImage home config be Applications
790			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
791	}
792}
793
794
795# VLC media player
796if [ IsOptionalHaikuImagePackageAdded VLC ] {
797	if $(TARGET_ARCH) != x86 {
798		Echo "No optional package VLC available for $(TARGET_ARCH)" ;
799	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
800		Echo "No optional package VLC available for gcc4" ;
801	} else {
802		InstallOptionalHaikuImagePackage VLC-0.8.6d
803			: $(baseURL)/vlc-0.8.6d-gcc2-2009-04-18.zip
804			: apps
805		;
806		AddSymlinkToHaikuImage home config be Applications
807			: "/boot/apps/vlc-0.8.6d/VLC media player" ;
808		AddSymlinkToHaikuImage common bin
809			: "/boot/apps/vlc-0.8.6d/VLC media player" : vlc ;
810	}
811}
812
813
814# Welcome
815if [ IsOptionalHaikuImagePackageAdded Welcome ] {
816	CopyDirectoryToHaikuImage system documentation
817		: [ FDirName $(HAIKU_TOP) docs welcome ]
818		: welcome : -x .svn ;
819	CopyDirectoryToHaikuImage system documentation
820		: [ FDirName $(HAIKU_TOP) docs userguide ]
821		: userguide : -x .svn ;
822	AddFilesToHaikuImage system documentation
823		: [ FDirName $(HAIKU_TOP) docs Haiku-doc.css ]
824		: Haiku-doc.css ;
825	AddSymlinkToHaikuImage home Desktop
826		: /boot/system/documentation/welcome/welcome.html : Welcome ;
827}
828
829
830# WonderBrush
831if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
832	if $(TARGET_ARCH) != x86 {
833		Echo "No optional package WonderBrush available for $(TARGET_ARCH)" ;
834	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
835		Echo "No optional package WonderBrush available for gcc4" ;
836	} else {
837		InstallOptionalHaikuImagePackage WonderBrush-2.1.2
838			: $(baseURL)/WonderBrush-2.1.2-x86-gcc2-2008-11-08.zip
839			: apps
840		;
841		AddSymlinkToHaikuImage home config be Applications
842			: /boot/apps/WonderBrush/WonderBrush ;
843	}
844}
845
846
847# Yasm
848if [ IsOptionalHaikuImagePackageAdded Yasm ] {
849	if $(TARGET_ARCH) != x86 {
850		Echo "No optional package Yasm available for $(TARGET_ARCH)" ;
851	} else {
852		InstallOptionalHaikuImagePackage yasm-0.8.0-x86-gcc2-2009-07-06
853			: $(baseURL)/yasm-0.8.0-x86-gcc2-2009-07-06.zip
854			:
855		;
856	}
857}
858