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