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