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