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