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