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