xref: /haiku/build/jam/OptionalPackages (revision 97901ec593ec4dd50ac115c1c35a6d72f6e489a5)
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) = 1
10		&& $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
11	isHybridBuild = 1 ;
12}
13
14
15# Available Optional Packages:
16#	ABI-compliance-checker	- tool for checking ABI compatibility between libs
17#	APR						- support libraries used for example by Subversion
18#	APR-util				- Apache portable runtime utility library
19#	BeAE					- open source Audio Editor
20#	Beam					- powerful native e-mail client
21#	BeBook					- the classic BeOS API documentation
22#	BeHappy					- special documentation (i.e. BeBook) browser
23#	BeOSCompatibility		- creates links within the system to support old apps
24#	BePDF					- native PDF reader
25#	BeZillaBrowser			- fork of Mozilla's 1.8 branch.
26#	Bluetooth				- experimental Haiku components for Bluetooth
27#	Bzip					- file archiving utility
28#	CDRecord				- the command line CD writing tools
29#	Clockwerk				- native audio/video compositing
30#	CLucene					- indexed file search
31#	Curl					- a client that groks URLs
32#	CMake					- cross platform make
33#	CVS						- the version control system
34#	Development				- more complete dev environment (including autotools)
35#	DevelopmentBase			- basic development environment (gcc, headers, libs,...)
36#	DevelopmentMin			- development headers, libs, tools, from sources only
37#	Expat					- XML parsing libraries
38#	friss					- RSS/ATOM/... feeds reader
39#	GetText					- a framework to help produce multi-lingual messages.
40#	Git						- the distributed version control system
41#	ICU-devel				- the headers for ICU (for development)
42#	KeymapSwitcher			- Easy to use keymap switcher
43#	LibEvent				- An event notification library
44#	LibIconv				- text encoding conversion library
45#	LibLayout				- GCC2 package needed by some BeOS apps to compile
46#	LibXML2					- the XML support libary
47#	LibXSLT					- xslt library and utility
48#	Links					- the web browser
49#	Mercurial				- the distributed version control system
50#	Nano					- the command line text editor
51#	Neon					- support libraries used for example by SVN
52#	NetFS					- the native networked file system components
53#	NetSurf					- the web browser
54#	OCaml					- the Objective Caml language
55#	OpenSound				- additional audio driver package
56#	OpenSSH					- the secure shell
57#	OpenSSL					- secure sockets library
58#	P7zip					- file archiving utility
59#	PCRE					- the (Perl-compatible) regex engine
60#	Pe						- the powerful native Programmer's Editor
61#	Perl					- the scripting language
62#	Python					- the scripting language
63#	Rsync					- remote directory synchronization
64#	Sed						- the ultimate stream editor
65#	SQLite					- the database implementation
66#	Subversion				- the version control system
67#	Tar						- archiving utility
68#	TrackerNewTemplates		- template files for Tracker's New menu
69#	Transmission			- A fast, easy, and free BitTorrent Client
70#	UserlandFS				- aids native file system development (like FUSE)
71#	Vim						- Vi IMproved. Highly configurable text editor
72#	Vision					- powerful native IRC client
73#	VLC						- the multi media player with native interface
74#	WebPositive				- native, WebKit-based web browser
75#	Welcome					- introductory documentation to Haiku
76#	WifiFirmwareScriptData	- data files needed by install-wifi-firmwares.sh
77#	WonderBrush				- native graphics application
78#	XZ-Utils				- file archiving utility
79#	Yasm					- the assembler utility
80
81local baseURL = http://haiku-files.org/files/optional-packages ;
82local baseSourceURL = http://haiku-files.org/files/releases/r1alpha2/sources ;
83
84# ABI-compliance-checker
85if [ IsOptionalHaikuImagePackageAdded ABI-compliance-checker ] {
86	if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
87		Echo "No optional package ABI-compliance-checker for gcc2" ;
88	} else {
89		InstallOptionalHaikuImagePackage
90			ABI-compliance-checker-1.12-noarch-gcc4-2010-02-01.zip
91			: $(baseURL)/ABI-compliance-checker-1.12-noarch-gcc4-2010-02-01.zip
92		;
93	}
94}
95
96
97# APR
98if [ IsOptionalHaikuImagePackageAdded APR ] {
99	if $(TARGET_ARCH) != x86 {
100		Echo "No optional package APR available for $(TARGET_ARCH)" ;
101	} else {
102		InstallOptionalHaikuImagePackage apr-1.4.2-r1a2-x86-gcc2-2010-04-22-a.zip
103			: $(baseURL)/apr-1.4.2-r1a2-x86-gcc2-2010-04-22-a.zip
104			:
105			: true
106			: true
107		;
108		InstallSourceArchive apr-1.4.2_haiku-2010-04-29.tar.xz
109			: $(baseSourceURL)/apr-1.4.2_haiku-2010-04-29.tar.xz
110		;
111	}
112}
113
114
115# APR-util
116if [ IsOptionalHaikuImagePackageAdded APR-util ] {
117	if $(TARGET_ARCH) != x86 {
118		Echo "No optional package APR-util available for $(TARGET_ARCH)" ;
119	} else {
120		InstallOptionalHaikuImagePackage
121			apr-util-1.3.9-r1a2-x86-gcc2-2010-04-22-a.zip
122			: $(baseURL)/apr-util-1.3.9-r1a2-x86-gcc2-2010-04-22-a.zip
123			:
124			: true
125			: true
126		;
127		InstallSourceArchive apr-util-1.3.9_haiku-2010-04-29.tar.xz
128			: $(baseSourceURL)/apr-util-1.3.9_haiku-2010-04-29.tar.xz
129		;
130	}
131}
132
133
134# BeAE
135if [ IsOptionalHaikuImagePackageAdded BeAE ] {
136	if $(TARGET_ARCH) != x86 {
137		Echo "No optional package BeAE available for $(TARGET_ARCH)" ;
138	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
139		Echo "No optional package BeAE available for gcc4" ;
140	} else {
141		InstallOptionalHaikuImagePackage beae-20-r1a2-x86-gcc2-2010-04-25.zip
142			: $(baseURL)/beae-20-r1a2-x86-gcc2-2010-04-25.zip
143			:
144		;
145		AddSymlinkToHaikuImage home config be Applications
146			: /boot/apps/BeAE/BeAE ;
147	}
148}
149
150
151# Beam
152if [ IsOptionalHaikuImagePackageAdded Beam ] {
153	if $(TARGET_ARCH) != x86 {
154		Echo "No optional package Beam available for $(TARGET_ARCH)" ;
155	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
156		Echo "No optional package Beam available for gcc4" ;
157	} else {
158		InstallOptionalHaikuImagePackage Beam-1.2alpha-x86-gcc2-2010-04-29.zip
159			: $(baseURL)/Beam-1.2alpha-x86-gcc2-2010-04-29.zip
160		;
161		AddSymlinkToHaikuImage home config be Applications
162			: /boot/apps/Beam/Beam ;
163	}
164}
165
166
167# BeBook
168if [ IsOptionalHaikuImagePackageAdded BeBook ] {
169	InstallOptionalHaikuImagePackage bebook_20081026.zip
170		: $(baseURL)/bebook_20081026.zip
171		: system documentation
172	;
173	AddSymlinkToHaikuImage home Desktop
174		: /boot/system/documentation/bebook/index.html : BeBook ;
175}
176
177
178# BeHappy
179if [ IsOptionalHaikuImagePackageAdded BeHappy ] {
180	if $(TARGET_ARCH) != x86 {
181		Echo "No optional package BeHappy available for $(TARGET_ARCH)" ;
182	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
183		Echo "No optional package BeHappy available for gcc4" ;
184	} else {
185		InstallOptionalHaikuImagePackage BeHappy-1.0.6-x86-gcc2-2008-10-16.zip
186			: $(baseURL)/BeHappy-1.0.6-x86-gcc2-2008-10-16.zip
187			:
188		;
189		AddSymlinkToHaikuImage home config be Applications
190			: /boot/apps/BeHappy/BeHappy ;
191	}
192}
193
194
195# BeOSCompatibility
196if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
197	if $(TARGET_ARCH) != x86 {
198		Echo "No optional package BeOSCompatibility available for $(TARGET_ARCH)" ;
199	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
200		Echo "No optional package BeOSCompatibility available for gcc4" ;
201	} else {
202		Echo "Warning: Adding BeOS compatibility symlinks. This will go away. Please fix your apps!" ;
203		AddSymlinkToHaikuImage beos : ../system/apps ;
204		AddSymlinkToHaikuImage beos : ../system/bin ;
205		AddSymlinkToHaikuImage beos : ../system/documentation ;
206		AddSymlinkToHaikuImage beos : ../common/etc ;
207		AddSymlinkToHaikuImage beos : ../system/preferences ;
208		AddSymlinkToHaikuImage beos : ../system ;
209		AddDirectoryToHaikuImage var ;
210		AddSymlinkToHaikuImage var : /boot/common/var/log ;
211		AddSymlinkToHaikuImage var : /boot/common/cache/tmp ;
212	}
213}
214
215
216# BePDF
217if [ IsOptionalHaikuImagePackageAdded BePDF ] {
218	if $(TARGET_ARCH) != x86 {
219		Echo "No optional package BePDF available for $(TARGET_ARCH)" ;
220	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
221		Echo "No optional package BePDF available for gcc4" ;
222	} else {
223		InstallOptionalHaikuImagePackage
224			BePDF-1.1.1b3-r1a2-x86-gcc2-2010-05-08.zip
225			: $(baseURL)/BePDF-1.1.1b3-r1a2-x86-gcc2-2010-05-08.zip
226			: apps
227		;
228		AddSymlinkToHaikuImage home config be Applications
229			: /boot/apps/BePDF/BePDF ;
230		AddSymlinkToHaikuImage common data licenses
231			: "/boot/apps/BePDF/license/locale DevKit/Open Tracker License"
232			: "Open Tracker" ;
233		AddSymlinkToHaikuImage common data licenses
234			: "/boot/apps/BePDF/license/locale DevKit/LICENSE"
235			: "48HRS Public License" ;
236		InstallSourceArchive bepdf-1.1.1b3-2010-05-05.tar.xz
237			: $(baseSourceURL)/bepdf-1.1.1b3-2010-05-05.tar.xz ;
238	}
239}
240
241
242# BeZillaBrowser
243if [ IsOptionalHaikuImagePackageAdded BeZillaBrowser ] {
244	if $(TARGET_ARCH) != x86 {
245		Echo "No optional package BeZillaBrowser available for $(TARGET_ARCH)" ;
246	} else {
247		if $(HAIKU_GCC_VERSION[1]) >= 4 {
248			InstallOptionalHaikuImagePackage
249				BeZillaBrowser-2.0.0.22pre-r1a2-x86-gcc4-2010-05-04.zip
250				: $(baseURL)/BeZillaBrowser-2.0.0.22pre-r1a2-x86-gcc4-2010-05-04.zip
251 				:
252 			;
253 		} else {
254			InstallOptionalHaikuImagePackage
255				BeZillaBrowser-2.0.0.22pre-r1a2-x86-gcc2-2010-05-02.zip
256				: $(baseURL)/BeZillaBrowser-2.0.0.22pre-r1a2-x86-gcc2-2010-05-02.zip
257 				:
258 			;
259 		}
260 		AddSymlinkToHaikuImage home config be Applications
261			: /boot/apps/BeZillaBrowser/BeZillaBrowser
262		;
263		InstallSourceArchive BeZillaBrowser-2.0.0.22pre-r1a2-sources.tar.xz
264			: $(baseSourceURL)/BeZillaBrowser-2.0.0.22pre-r1a2-sources.tar.xz
265		;
266	}
267}
268
269
270# Bluetooth stack
271if [ IsOptionalHaikuImagePackageAdded Bluetooth ] {
272	local bluetoothDrivers = h2generic ;
273	AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ;
274	AddFilesToHaikuImage system servers : bluetooth_server ;
275	AddFilesToHaikuImage system lib : libbluetooth.so ;
276	AddFilesToHaikuImage system add-ons kernel network protocols : l2cap ;
277	AddFilesToHaikuImage system add-ons kernel bluetooth : btCoreData hci ;
278	AddFilesToHaikuImage system preferences : Bluetooth ;
279	AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ;
280	AddSymlinkToHaikuImage home config be Preferences
281		: /boot/system/preferences/Bluetooth ;
282	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
283		&& $(HAIKU_GCC_VERSION[1]) in 2 4 {
284		local arch = $(TARGET_ARCH) ;
285		local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
286		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
287			: /system/lib libbluetooth.so : : true ;
288	}
289}
290
291
292# Bzip
293if [ IsOptionalHaikuImagePackageAdded Bzip ] {
294	if $(TARGET_ARCH) != x86 {
295		Echo "No optional package Bzip available for $(TARGET_ARCH)" ;
296	} else {
297		InstallOptionalHaikuImagePackage
298			bzip2-1.0.5-r1a2-x86-gcc2-2010-04-21-a.zip
299			: $(baseURL)/bzip2-1.0.5-r1a2-x86-gcc2-2010-04-21-a.zip
300			:
301			: true
302			: true
303		;
304		InstallSourceArchive bzip2-1.0.5_haiku-2010-04-29.tar.xz
305			: $(baseSourceURL)/bzip2-1.0.5_haiku-2010-04-29.tar.xz
306		;
307	}
308}
309
310
311# CDRecord
312if [ IsOptionalHaikuImagePackageAdded CDRecord ] {
313	if $(TARGET_ARCH) != x86 {
314		Echo "No optional package CDRecord available for $(TARGET_ARCH)" ;
315	} else {
316		InstallOptionalHaikuImagePackage
317			cdrtools-2.01.01a77-r1a2-x86-gcc2-2010-04-30-a.zip
318			: $(baseURL)/cdrtools-2.01.01a77-r1a2-x86-gcc2-2010-04-30-a.zip
319			:
320		;
321		AddSymlinkToHaikuImage common bin
322			: /boot/apps/cdrtools/bin/cdrecord ;
323		AddSymlinkToHaikuImage common bin
324			: /boot/apps/cdrtools/bin/mkisofs ;
325		InstallSourceArchive cdrtools-2.01.01a77_haiku-2010-04-30.tar.xz
326			: $(baseSourceURL)/cdrtools-2.01.01a77_haiku-2010-04-30.tar.xz
327 		;
328	}
329}
330
331
332# Clockwerk
333if [ IsOptionalHaikuImagePackageAdded Clockwerk ] {
334	if $(TARGET_ARCH) != x86 {
335		Echo "No optional package Clockwerk available for $(TARGET_ARCH)" ;
336	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
337		InstallOptionalHaikuImagePackage Clockwerk-0.0.1-x86-gcc4-2009-08-06.zip
338			: $(baseURL)/Clockwerk-0.0.1-x86-gcc4-2009-08-06.zip
339			:
340		;
341		AddSymlinkToHaikuImage home config be Applications
342			: /boot/apps/Clockwerk/Clockwerk ;
343	} else {
344		InstallOptionalHaikuImagePackage Clockwerk-0.0.1-x86-gcc2-2009-08-06.zip
345			: $(baseURL)/Clockwerk-0.0.1-x86-gcc2-2009-08-06.zip
346			:
347		;
348		AddSymlinkToHaikuImage home config be Applications
349			: /boot/apps/Clockwerk/Clockwerk ;
350	}
351}
352
353
354# CLucene
355if [ IsOptionalHaikuImagePackageAdded CLucene ] {
356	if $(TARGET_ARCH) != x86 {
357		Echo "No optional package CLucene available for $(TARGET_ARCH)" ;
358	} else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
359		Echo "No optional package CLucene available for GCC2" ;
360	} else {
361		InstallOptionalHaikuImagePackage
362			clucene-0.9.21svn-x86-gcc4-haiku-2009-08-11.zip
363			: $(baseURL)/clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip
364			:
365			: true
366		;
367	}
368}
369
370
371# CMake
372if [ IsOptionalHaikuImagePackageAdded CMake ] {
373	if $(TARGET_ARCH) != x86 {
374		Echo "No optional package CMake available for $(TARGET_ARCH)" ;
375	} else {
376		InstallOptionalHaikuImagePackage
377			cmake-2.8.0-r1a2-x86-gcc2-2010-04-22-a.zip
378			: $(baseURL)/cmake-2.8.0-r1a2-x86-gcc2-2010-04-22-a.zip
379			:
380			: true
381		;
382		InstallSourceArchive cmake-2.8.0_haiku-2010-04-29.tar.xz
383			: $(baseSourceURL)/cmake-2.8.0_haiku-2010-04-29.tar.xz ;
384	}
385}
386
387
388# Curl
389if [ IsOptionalHaikuImagePackageAdded Curl ] {
390	if $(TARGET_ARCH) != x86 {
391		Echo "No optional package Curl available for $(TARGET_ARCH)" ;
392	} else {
393		InstallOptionalHaikuImagePackage
394			curl-7.20.1-r1a2-x86-gcc2-2010-04-22-a.zip
395			: $(baseURL)/curl-7.20.1-r1a2-x86-gcc2-2010-04-22-a.zip
396			:
397			:
398			: true
399		;
400		InstallSourceArchive curl-7.20.1_haiku-2010-04-29.tar.xz
401			: $(baseSourceURL)/curl-7.20.1_haiku-2010-04-29.tar.xz
402		;
403	}
404}
405
406
407# CVS
408if [ IsOptionalHaikuImagePackageAdded CVS ] {
409	if $(TARGET_ARCH) != x86 {
410		Echo "No optional package CVS available for $(TARGET_ARCH)" ;
411	} else {
412		InstallOptionalHaikuImagePackage
413			cvs-1.12.13-r1a2-x86-gcc2-2010-04-29-a.zip
414			: $(baseURL)/cvs-1.12.13-r1a2-x86-gcc2-2010-04-29-a.zip
415			:
416			: true
417		;
418		InstallSourceArchive cvs-1.12.13_haiku-2010-04-29.tar.xz
419			: $(baseSourceURL)/cvs-1.12.13_haiku-2010-04-29.tar.xz ;
420	}
421}
422
423
424# Development
425if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 {
426	# autotools
427	InstallOptionalHaikuImagePackage autoconf-2.65-r1a2-x86-gcc2-2010-04-21-a.zip
428		: $(baseURL)/autoconf-2.65-r1a2-x86-gcc2-2010-04-21-a.zip
429		:
430		: true ;
431	InstallSourceArchive autoconf-2.65_haiku-2010-04-29.tar.xz
432		: $(baseSourceURL)/autoconf-2.65_haiku-2010-04-29.tar.xz
433	;
434	InstallOptionalHaikuImagePackage automake-1.11.1-r1a2-x86-gcc2-2010-04-21-a.zip
435		: $(baseURL)/automake-1.11.1-r1a2-x86-gcc2-2010-04-21-a.zip
436		:
437		: true ;
438	InstallSourceArchive automake-1.11.1_haiku-2010-04-29.tar.xz
439		: $(baseSourceURL)/automake-1.11.1_haiku-2010-04-29.tar.xz
440	;
441	InstallOptionalHaikuImagePackage libtool-2.2.6b-r1a2-x86-gcc2-2010-04-21-a.zip
442		: $(baseURL)/libtool-2.2.6b-r1a2-x86-gcc2-2010-04-21-a.zip
443		:
444		: true
445		: true ;
446	InstallSourceArchive libtool-2.2.6b_haiku-2010-04-29.tar.xz
447		: $(baseSourceURL)/libtool-2.2.6b_haiku-2010-04-29.tar.xz
448	;
449	InstallOptionalHaikuImagePackage texinfo-4.13a-r1a2-x86-gcc2-2010-04-21-a.zip
450		: $(baseURL)/texinfo-4.13a-r1a2-x86-gcc2-2010-04-21-a.zip
451		:
452		: true ;
453	InstallSourceArchive texinfo-4.13a_haiku-2010-04-29.tar.xz
454		: $(baseSourceURL)/texinfo-4.13a_haiku-2010-04-29.tar.xz
455	;
456}
457
458
459# DevelopmentBase
460if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ]
461		&& $(TARGET_ARCH) = x86 {
462	# gcc and binutils
463	if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) {
464		InstallOptionalHaikuImagePackage
465			gcc-2.95.3-r1a2-x86-gcc2-2010-04-20-1.zip
466			: $(baseURL)/gcc-2.95.3-r1a2-x86-gcc2-2010-04-20-1.zip ;
467	}
468
469	if $(HAIKU_GCC_VERSION[1]) = 2 {
470		# symlink to the appropriate system/lib[/gcc2] folder
471		AddSymlinkToHaikuHybridImage
472			develop abi x86 gcc2 tools gcc-2.95.3-haiku-100420 lib
473			: /system/lib libstdc++.r4.so : : true ;
474	}
475
476	if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) {
477		InstallOptionalHaikuImagePackage gcc-4.3.3-r1a2-x86-gcc4-2010-04-25.zip
478			: $(baseURL)/gcc-4.3.3-r1a2-x86-gcc4-2010-04-25.zip ;
479	}
480
481	if $(HAIKU_GCC_VERSION[1]) = 4 {
482		# symlink cpp to g++'s headers
483		AddSymlinkToHaikuHybridImage develop abi x86 gcc4 headers
484			: ../tools/current/include/g++ : cpp ;
485
486		# symlink to the appropriate system/lib[/gcc4] folder
487		local libs = libstdc++.so libsupc++.so ;
488		for lib in $(libs) {
489			AddSymlinkToHaikuHybridImage
490				develop abi x86 gcc4 tools gcc-4.3.3-haiku-100425 lib
491				: /system/lib $(lib) : : true ;
492		}
493	}
494
495	# other commonly used tools
496	InstallOptionalHaikuImagePackage bison-2.4.1-r1a2-x86-gcc2-2010-04-21-a.zip
497		: $(baseURL)/bison-2.4.1-r1a2-x86-gcc2-2010-04-21-a.zip ;
498	InstallSourceArchive bison-2.4.1_haiku-2010-04-29.tar.xz
499		: $(baseSourceURL)/bison-2.4.1_haiku-2010-04-29.tar.xz ;
500	InstallOptionalHaikuImagePackage m4-1.4.14-r1a2-x86-gcc2-2010-04-21-a.zip
501		: $(baseURL)/m4-1.4.14-r1a2-x86-gcc2-2010-04-21-a.zip ;
502	InstallSourceArchive m4-1.4.14_haiku-2010-04-29.tar.xz
503		: $(baseSourceURL)/m4-1.4.14_haiku-2010-04-29.tar.xz ;
504	InstallOptionalHaikuImagePackage flex-2.5.35-r1a2-x86-gcc2-2010-04-21-a.zip
505		: $(baseURL)/flex-2.5.35-r1a2-x86-gcc2-2010-04-21-a.zip ;
506	InstallSourceArchive flex-2.5.35_haiku-2010-04-29.tar.xz
507		: $(baseSourceURL)/flex-2.5.35_haiku-2010-04-29.tar.xz ;
508	InstallOptionalHaikuImagePackage jam-2.5-r1a2-x86-gcc2-2010-04-21.zip
509		: $(baseURL)/jam-2.5-r1a2-x86-gcc2-2010-04-21.zip ;
510}
511
512
513# DevelopmentMin
514if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 {
515	if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
516		Exit "Optional package DevelopmentMin: Unsupported GCC version:"
517			$(HAIKU_GCC_VERSION[1]) ;
518	}
519
520	local arch = $(TARGET_ARCH) ;
521	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
522	local abiDirTokens = develop abi $(arch) $(abi) ;
523
524	# glue code
525	AddFilesToHaikuHybridImage $(abiDirTokens) lib :
526		<src!system!glue!arch!$(arch)>crti.o
527		<src!system!glue!arch!$(arch)>crtn.o
528		<src!system!glue>init_term_dyn.o
529		<src!system!glue>start_dyn.o
530		<src!system!glue>haiku_version_glue.o
531	;
532
533	# kernel
534	AddFilesToHaikuHybridImage $(abiDirTokens) lib : kernel.so : _KERNEL_ ;
535
536	# additional libraries
537	local developmentLibs = <revisioned>libroot_debug.so ;
538	AddFilesToHaikuHybridImage system lib : $(developmentLibs) : : true ;
539
540	# library symlinks
541	local lib ;
542	for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) $(developmentLibs) {
543		AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
544			: /system/lib $(lib:BS) : : true ;
545		local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ;
546		if $(abiVersion) {
547			local abiVersionedLib = $(lib:BS).$(abiVersion) ;
548			AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
549				: /system/lib $(abiVersionedLib) : : true ;
550		}
551	}
552
553	# static libraries
554	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libncurses.a ;
555
556	# the POSIX error code mapper library
557	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libposix_error_mapper.a ;
558
559	# symlinks for ABI abstraction
560	AddSymlinkToHaikuImage develop abi : $(arch)/$(abi) : current ;
561	AddSymlinkToHaikuImage develop lib : /boot/develop/abi/current/lib
562		: $(arch) ;
563	AddSymlinkToHaikuImage develop tools
564		: /boot/develop/abi/current/tools/current : gnupro ;
565	AddSymlinkToHaikuImage develop headers
566		: /boot/develop/abi/current/headers/cpp ;
567	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
568		: /boot/common/lib : common : true ;
569	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
570		: /boot/home/config/lib : home : true ;
571
572	# ABI independent stuff
573
574	# scripts: cc and c++ wrapper, freetype-config, setgcc
575	local scripts = cc c++ freetype-config setgcc ;
576	SEARCH on $(scripts) = [ FDirName $(HAIKU_TOP) data bin ] ;
577	AddFilesToHaikuImage system bin : $(scripts) ;
578
579	# make and mkdepend build tool, which are part of the Haiku source tree
580	# TODO: Both should be removed from the tree, made download packages
581	# and moved to the DevelopmentBase package.
582	AddFilesToHaikuImage system bin : make mkdepend ;
583
584	# skeleton makefile and makefile-engine
585	local makefileEngineFiles =
586		<makefile-engine>makefile
587		<makefile-engine>makefile-engine
588	;
589	SEARCH on $(makefileEngineFiles)
590		= [ FDirName $(HAIKU_TOP) data develop ] ;
591	AddFilesToHaikuImage develop etc : $(makefileEngineFiles) ;
592
593	# headers
594	AddHeaderDirectoryToHaikuImage config ;
595	AddHeaderDirectoryToHaikuImage glibc ;
596	AddHeaderDirectoryToHaikuImage os ;
597	AddHeaderDirectoryToHaikuImage posix ;
598
599	# create be -> os symlink for now
600	AddSymlinkToHaikuImage develop headers : os : be ;
601
602	# BSD and GNU compatibility headers
603	AddHeaderDirectoryToHaikuImage compatibility bsd : bsd ;
604	AddHeaderDirectoryToHaikuImage compatibility gnu : gnu ;
605
606	# third party libs headers
607	AddHeaderDirectoryToHaikuImage libs freetype2 : 3rdparty ;
608	AddHeaderDirectoryToHaikuImage libs jpeg : 3rdparty ;
609	AddHeaderDirectoryToHaikuImage libs ncurses : 3rdparty ;
610	AddHeaderDirectoryToHaikuImage libs png : 3rdparty ;
611	AddHeaderDirectoryToHaikuImage libs termcap : 3rdparty ;
612	AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ;
613
614	# cpp headers
615	if $(HAIKU_GCC_VERSION[1]) = 2 {
616		# GCC 2 only -- for GCC 4 they come with the DevelopmentBase package
617		CopyDirectoryToHaikuImage $(abiDirTokens) headers
618			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
619		CopyDirectoryToAlternativeGCCArchive $(abiDirTokens) headers
620			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
621	}
622}
623
624
625# Expat
626if [ IsOptionalHaikuImagePackageAdded Expat ] {
627	if $(TARGET_ARCH) != x86 {
628		Echo "No optional package Expat available for $(TARGET_ARCH)" ;
629	} else {
630		InstallOptionalHaikuImagePackage
631			expat-2.0.1-r1a2-x86-gcc2-2010-04-22-a.zip
632			: $(baseURL)/expat-2.0.1-r1a2-x86-gcc2-2010-04-22-a.zip
633			:
634			: true
635			: true
636		;
637		InstallSourceArchive expat-2.0.1_haiku-2010-04-29.tar.xz
638			: $(baseSourceURL)/expat-2.0.1_haiku-2010-04-29.tar.xz ;
639	}
640}
641
642
643# friss
644if [ IsOptionalHaikuImagePackageAdded friss ] {
645	if $(TARGET_ARCH) != x86 {
646		Echo "No optional package friss available for $(TARGET_ARCH)" ;
647	} else if $(HAIKU_GCC_VERSION[1]) = 2 {
648		Echo "No optional package friss available for gcc2" ;
649	} else {
650		InstallOptionalHaikuImagePackage friss-0.5pre7-x86-gcc4.zip
651			: http://pulkomandy.ath.cx/projects/friss/export/8/bin/friss-0.5pre7-x86-gcc4.zip
652			:
653			: true
654		;
655	}
656}
657
658
659# GetText
660if [ IsOptionalHaikuImagePackageAdded GetText ] {
661	if $(TARGET_ARCH) != x86 {
662		Echo "No optional package GetText available for $(TARGET_ARCH)" ;
663	} else {
664		if $(HAIKU_GCC_VERSION[1]) >= 4 {
665			InstallOptionalHaikuImagePackage
666				gettext-0.17-x86-gcc4-2010-05-06.zip
667				: $(baseURL)/gettext-0.17-x86-gcc4-2010-05-06.zip
668				:
669				: true
670			;
671			InstallSourceArchive gettext-0.17_haiku-2010-05-06.tar.xz
672				: $(baseSourceURL)/gettext-0.17_haiku-2010-05-06.tar.xz ;
673		} else if $(HAIKU_GCC_VERSION[1]) = 2 && $(isHybridBuild) {
674			InstallOptionalHaikuImagePackage
675				gettext-0.17-x86-gcc2h-2010-05-06.zip
676				: $(baseURL)/gettext-0.17-x86-gcc2h-2010-05-06.zip
677				:
678				: true
679			;
680			InstallSourceArchive gettext-0.17_haiku-2010-05-06.tar.xz
681				: $(baseSourceURL)/gettext-0.17_haiku-2010-05-06.tar.xz ;
682		} else {
683			Echo "No optional package GetText available for $(TARGET_ARCH)-gcc2" ;
684		}
685	}
686}
687
688
689# Git
690if [ IsOptionalHaikuImagePackageAdded Git ] {
691	if $(TARGET_ARCH) != x86 {
692		Echo "No optional package Git available for $(TARGET_ARCH)" ;
693	} else {
694		InstallOptionalHaikuImagePackage
695			git-1.7.0.5-r1a2-x86-gcc2-2010-04-22-a.zip
696			: $(baseURL)/git-1.7.0.5-r1a2-x86-gcc2-2010-04-22-a.zip
697			:
698			: true
699		;
700		InstallSourceArchive git-1.7.0.5_haiku-2010-04-29.tar.xz
701			: $(baseSourceURL)/git-1.7.0.5_haiku-2010-04-29.tar.xz ;
702	}
703}
704
705
706# ICU-devel
707if [ IsOptionalHaikuImagePackageAdded ICU-devel ] {
708	InstallOptionalHaikuImagePackage icu-devel-4.2-2010-01-26.zip
709		: $(baseURL)/icu-devel-4.2-2010-01-26.zip
710	;
711	local arch = $(TARGET_ARCH) ;
712	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
713	local libs = common data i18n ;
714	for lib in $(libs) {
715		lib = libicu-$(lib).so ;
716		local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ;
717		if $(abiVersion) {
718			local abiVersionedLib = $(lib).$(abiVersion) ;
719			AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
720				: /system/lib $(abiVersionedLib) : : true ;
721		}
722		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
723			: /system/lib $(lib) : : true ;
724	}
725}
726
727
728# KeymapSwitcher
729if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] {
730	if $(TARGET_ARCH) != x86 {
731		Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ;
732	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
733		InstallOptionalHaikuImagePackage
734			KeymapSwitcher-1.2.5-r1a2-x86-gcc4-2010-05-08.zip
735			: $(baseURL)/KeymapSwitcher-1.2.5-r1a2-x86-gcc4-2010-05-08.zip
736			:
737		;
738		AddSymlinkToHaikuImage home config be Desktop\ applets
739			: /boot/common/bin/KeymapSwitcher ;
740	} else {
741		InstallOptionalHaikuImagePackage
742			KeymapSwitcher-1.2.5-r1a2-x86-gcc2-2010-05-08.zip
743			: $(baseURL)/KeymapSwitcher-1.2.5-r1a2-x86-gcc2-2010-05-08.zip
744			:
745		;
746		AddSymlinkToHaikuImage home config be Desktop\ applets
747			: /boot/common/bin/KeymapSwitcher ;
748	}
749}
750
751
752# LibEvent
753if [ IsOptionalHaikuImagePackageAdded LibEvent ] {
754	if $(TARGET_ARCH) != x86 {
755		Echo "No optional package LibEvent available for $(TARGET_ARCH)" ;
756	} else {
757		if $(HAIKU_GCC_VERSION[1]) >= 4 {
758			InstallOptionalHaikuImagePackage
759				libevent-1.4.13-x86-gcc4-2010-05-06.zip
760				: $(baseURL)/libevent-1.4.13-x86-gcc4-2010-05-06.zip
761				:
762				: true
763			;
764			InstallSourceArchive libevent-1.4.13_haiku-2010-05-06.tar.xz
765				: $(baseSourceURL)/libevent-1.4.13_haiku-2010-05-06.tar.xz ;
766		} else if $(HAIKU_GCC_VERSION[1]) = 2 && $(isHybridBuild) {
767			InstallOptionalHaikuImagePackage
768				libevent-1.4.13-x86-gcc2h-2010-05-06.zip
769				: $(baseURL)/libevent-1.4.13-x86-gcc2h-2010-05-06.zip
770				:
771				: true
772			;
773			InstallSourceArchive libevent-1.4.13_haiku-2010-05-06.tar.xz
774				: $(baseSourceURL)/libevent-1.4.13_haiku-2010-05-06.tar.xz ;
775		} else {
776			Echo "No optional package LibEvent available for $(TARGET_ARCH)-gcc2" ;
777		}
778	}
779}
780
781
782# LibIconv
783if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
784	if $(TARGET_ARCH) != x86 {
785		Echo "No optional package LibIconv available for $(TARGET_ARCH)" ;
786	} else {
787		InstallOptionalHaikuImagePackage
788			libiconv-1.13.1-r1a2-x86-gcc2-2010-04-21-a.zip
789			: $(baseURL)/libiconv-1.13.1-r1a2-x86-gcc2-2010-04-21-a.zip
790			:
791			:
792			: true
793		;
794		InstallSourceArchive libiconv-1.13.1_haiku-2010-04-29.tar.xz
795			: $(baseSourceURL)/libiconv-1.13.1_haiku-2010-04-29.tar.xz ;
796	}
797}
798
799
800# LibLayout library
801if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
802	if $(TARGET_ARCH) != x86 {
803		Echo "No optional package LibLayout available for $(TARGET_ARCH)" ;
804	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
805		Echo "No optional package LibLayout available for gcc4" ;
806	} else {
807		InstallOptionalHaikuImagePackage liblayout-1.4.0-gcc2-2009-03-08.zip
808			: $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip
809			:
810		;
811	}
812}
813
814
815# LibXML2
816if [ IsOptionalHaikuImagePackageAdded LibXML2 ] {
817	if $(TARGET_ARCH) != x86 {
818		Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ;
819	} else {
820		InstallOptionalHaikuImagePackage
821			libxml2-2.7.7-r1a2-x86-gcc2-2010-04-22-a.zip
822			: $(baseURL)/libxml2-2.7.7-r1a2-x86-gcc2-2010-04-22-a.zip
823			:
824			:
825			: true
826		;
827		InstallSourceArchive libxml2-2.7.7_haiku-2010-04-29.tar.xz
828			: $(baseSourceURL)/libxml2-2.7.7_haiku-2010-04-29.tar.xz ;
829	}
830}
831
832
833# LibXSLT
834if [ IsOptionalHaikuImagePackageAdded LibXSLT ] {
835	if $(TARGET_ARCH) != x86 {
836		Echo "No optional package LibXSLT available for $(TARGET_ARCH)" ;
837	} else {
838		InstallOptionalHaikuImagePackage
839			libxslt-1.1.26-r1a2-x86-gcc2-2010-04-22-a.zip
840			: $(baseURL)/libxslt-1.1.26-r1a2-x86-gcc2-2010-04-22-a.zip
841			:
842			: true
843		;
844		InstallSourceArchive libxslt-1.1.26_haiku-2010-04-29.tar.xz
845			: $(baseSourceURL)/libxslt-1.1.26_haiku-2010-04-29.tar.xz ;
846	}
847}
848
849
850# Links web browser
851if [ IsOptionalHaikuImagePackageAdded Links ] {
852	if $(TARGET_ARCH) != x86 {
853		Echo "No optional package Links available for $(TARGET_ARCH)" ;
854	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
855		Echo "No optional package Links available for gcc4" ;
856	} else {
857		InstallOptionalHaikuImagePackage Links.zip
858			: $(baseURL)/links-x86-gcc2-2008-05-03.zip
859			:
860		;
861		AddSymlinkToHaikuImage home config be Applications
862			: /boot/home/config/bin/links ;
863	}
864}
865
866
867# MandatoryPackages
868if [ IsOptionalHaikuImagePackageAdded MandatoryPackages ] {
869	# Pseudo package for grouping packages, which are added to all images.
870}
871
872
873# Mercurial
874if [ IsOptionalHaikuImagePackageAdded Mercurial ] {
875	if $(TARGET_ARCH) != x86 {
876		Echo "No optional package Mercurial available for $(TARGET_ARCH)" ;
877	} else {
878		InstallOptionalHaikuImagePackage
879			mercurial-1.5-r1a2-x86-gcc2-2010-04-27-a.zip
880			: $(baseURL)/mercurial-1.5-r1a2-x86-gcc2-2010-04-27-a.zip
881			:
882			: true
883		;
884		InstallSourceArchive mercurial-1.5_haiku-2010-04-29.tar.xz
885			: $(baseSourceURL)/mercurial-1.5_haiku-2010-04-29.tar.xz ;
886	}
887}
888
889
890# Nano
891if [ IsOptionalHaikuImagePackageAdded Nano ] {
892	if $(TARGET_ARCH) != x86 {
893		Echo "No optional package Nano available for $(TARGET_ARCH)" ;
894	} else {
895		InstallOptionalHaikuImagePackage
896			nano-2.2.3-r1a2-x86-gcc2-2010-04-22-a.zip
897			: $(baseURL)/nano-2.2.3-r1a2-x86-gcc2-2010-04-22-a.zip
898			:
899		;
900		InstallSourceArchive nano-2.2.3_haiku-2010-04-29.tar.xz
901			: $(baseSourceURL)/nano-2.2.3_haiku-2010-04-29.tar.xz ;
902	}
903}
904
905
906# Neon
907if [ IsOptionalHaikuImagePackageAdded Neon ] {
908	if $(TARGET_ARCH) != x86 {
909		Echo "No optional package Neon available for $(TARGET_ARCH)" ;
910	} else {
911		InstallOptionalHaikuImagePackage
912			neon-0.29.3-r1a2-x86-gcc2-2010-04-22-a.zip
913			: $(baseURL)/neon-0.29.3-r1a2-x86-gcc2-2010-04-22-a.zip
914			:
915			: true
916			: true
917		;
918		InstallSourceArchive neon-0.29.3_haiku-2010-04-29.tar.xz
919			: $(baseSourceURL)/neon-0.29.3_haiku-2010-04-29.tar.xz ;
920	}
921}
922
923
924# NetFS network file system
925if [ IsOptionalHaikuImagePackageAdded NetFS ] {
926	# userlandfs module
927	AddFilesToHaikuImage home config add-ons userlandfs : netfs ;
928
929	# servers
930	AddFilesToHaikuImage system servers : netfs_server ;
931	AddFilesToHaikuImage system servers : authentication_server ;
932
933	# tools
934	AddFilesToHaikuImage system bin : netfs_config ;
935	AddFilesToHaikuImage system bin : netfs_server_prefs ;
936
937	#example settings for netfs_server
938	local netfsServerSettingsFiles = <driver-settings>netfs-server ;
939	SEARCH on $(netfsServerSettingsFiles)
940		= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems netfs ] ;
941	AddFilesToHaikuImage home config settings kernel drivers
942	: $(netfsServerSettingsFiles) ;
943
944	#userlandfs settings are needed for netfs_config to work (ioctls)
945	local userlandfsServerSettingsFiles = <driver-settings>userlandfs ;
946	SEARCH on $(userlandfsServerSettingsFiles)
947		= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems userlandfs ] ;
948	AddFilesToHaikuImage home config settings kernel drivers
949	: $(userlandfsServerSettingsFiles) ;
950}
951
952
953# NetSurf web browser
954if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
955	if $(TARGET_ARCH) != x86 {
956		Echo "No optional package NetSurf available for $(TARGET_ARCH)" ;
957	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
958		Echo "No optional package NetSurf available for gcc4" ;
959	} else {
960		InstallOptionalHaikuImagePackage NetSurf-r9862b.zip
961			: $(baseURL)/NetSurf-r9862-x86-gcc2-2010-01-27.zip
962			:
963		;
964		AddSymlinkToHaikuImage home config be Applications
965			: /boot/apps/netsurf/NetSurf ;
966		InstallSourceArchive netsurf-r9862.7z
967			: http://haiku-files.org/files/sources/2010/netsurf-r9862.7z
968		;
969	}
970}
971
972
973# OCaml
974if [ IsOptionalHaikuImagePackageAdded OCaml ] {
975	if $(TARGET_ARCH) != x86 {
976		Echo "No optional package OCaml available for $(TARGET_ARCH)" ;
977	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
978		Echo "No optional package OCaml available for gcc4" ;
979	} else {
980		InstallOptionalHaikuImagePackage
981			ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip
982			: http://jerome.duval.free.fr/obos/ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip
983			:
984		;
985		InstallOptionalHaikuImagePackage
986			camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip
987			: http://jerome.duval.free.fr/obos/camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip
988			:
989		;
990	}
991}
992
993
994# OpenSound drivers
995if [ IsOptionalHaikuImagePackageAdded OpenSound ] {
996	if $(TARGET_ARCH) != x86 {
997		Echo "No optional package OpenSound available for $(TARGET_ARCH)" ;
998	} else {
999		InstallOptionalHaikuImagePackage
1000			opensound-4.2-r1a2-x86-gcc2-2010-05-01.zip
1001			: $(baseURL)/opensound-4.2-r1a2-x86-gcc2-2010-05-01.zip
1002			:
1003		;
1004	}
1005	#ExtractArchiveToHaikuImage home : data/vv.mp3.zip : 0 ;
1006}
1007
1008
1009# OpenSSH
1010if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
1011	if $(TARGET_ARCH) != x86 {
1012		Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ;
1013	} else {
1014		if ! $(HAIKU_IMAGE_HOST_NAME) && ! $(HAIKU_IGNORE_USER_BUILD_CONFIG) {
1015			Exit "Optional package OpenSSH requires the HAIKU_IMAGE_HOST_NAME"
1016				"variable to be set!" ;
1017		}
1018		InstallOptionalHaikuImagePackage
1019			openssh-5.5p1-r1a2-x86-gcc2-2010-04-30-a.zip
1020			: $(baseURL)/openssh-5.5p1-r1a2-x86-gcc2-2010-04-30-a.zip
1021			:
1022		;
1023		InstallSourceArchive openssh-5.5p1_haiku-2010-04-30.tar.xz
1024			: $(baseSourceURL)/openssh-5.5p1_haiku-2010-04-30.tar.xz ;
1025
1026		AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true
1027			: "sshd user" ;
1028	}
1029}
1030
1031
1032# OpenSSL
1033if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
1034	if $(TARGET_ARCH) != x86 {
1035		Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
1036	} else {
1037		InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
1038			: $(HAIKU_OPENSSL_URL)
1039			:
1040			:
1041			: true
1042		;
1043		InstallSourceArchive openssl-1.0.0_haiku-2010-04-29.tar.xz
1044			: $(baseSourceURL)/openssl-1.0.0_haiku-2010-04-29.tar.xz ;
1045	}
1046}
1047
1048
1049# P7zip
1050if [ IsOptionalHaikuImagePackageAdded P7zip ] {
1051	if $(TARGET_ARCH) != x86 {
1052		Echo "No optional package P7zip available for $(TARGET_ARCH)" ;
1053	} else {
1054		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1055			InstallOptionalHaikuImagePackage
1056				p7zip-9.04-r1a2-x86-gcc4-2010-05-06.zip
1057				: $(baseURL)/p7zip-9.04-r1a2-x86-gcc4-2010-05-06.zip
1058				:
1059			;
1060		} else {
1061			InstallOptionalHaikuImagePackage
1062				p7zip-9.04-r1a2-x86-gcc2-2010-05-06.zip
1063				: $(baseURL)/p7zip-9.04-r1a2-x86-gcc2-2010-05-06.zip
1064				:
1065			;
1066			InstallSourceArchive p7zip-9.04_haiku-2010-05-06.tar.xz
1067				: $(baseSourceURL)/p7zip-9.04_haiku-2010-05-06.tar.xz ;
1068		}
1069		AddExpanderRuleToHaikuImage "application/x-7z-compressed" : .7z
1070			: "7za l \\0045s"
1071			: "7za x -y \\0045s"
1072		;
1073
1074	}
1075}
1076
1077
1078# PCRE regex engine
1079if [ IsOptionalHaikuImagePackageAdded PCRE ] {
1080	if $(TARGET_ARCH) != x86 {
1081		Echo "No optional package PCRE available for $(TARGET_ARCH)" ;
1082	} else {
1083		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1084			InstallOptionalHaikuImagePackage pcre-7.9-x86-gcc4-2009-09-30.zip
1085				: $(baseURL)/pcre-7.9-x86-gcc4-2009-09-30.zip
1086			;
1087		} else {
1088			InstallOptionalHaikuImagePackage
1089				libpcre-8.02-r1a2-x86-gcc2-2010-04-28-a.zip
1090				: $(baseURL)/libpcre-8.02-r1a2-x86-gcc2-2010-04-28-a.zip
1091			;
1092		}
1093		InstallSourceArchive libpcre-8.02_haiku-2010-04-29.tar.xz
1094			: $(baseSourceURL)/libpcre-8.02_haiku-2010-04-29.tar.xz ;
1095	}
1096}
1097
1098
1099# Pe text editor
1100if [ IsOptionalHaikuImagePackageAdded Pe ] {
1101	if $(TARGET_ARCH) != x86 {
1102		Echo "No optional package Pe available for $(TARGET_ARCH)" ;
1103	} else {
1104		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1105			InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc4-2009-08-04.zip
1106				: $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip
1107			;
1108		} else {
1109			InstallOptionalHaikuImagePackage
1110				Pe-2.4.2-r597-r1a2-x86-gcc2-2010-05-06.zip
1111				: $(baseURL)/Pe-2.4.2-r597-r1a2-x86-gcc2-2010-05-06.zip
1112			;
1113		}
1114
1115		AddSymlinkToHaikuImage home config be Applications
1116			: /boot/apps/Pe/Pe ;
1117		AddSymlinkToHaikuImage common bin
1118			: /boot/apps/Pe/lpe ;
1119	}
1120}
1121
1122
1123# Perl
1124if [ IsOptionalHaikuImagePackageAdded Perl ] {
1125	if $(TARGET_ARCH) != x86 {
1126		Echo "No optional package Perl available for $(TARGET_ARCH)" ;
1127	} else {
1128		InstallOptionalHaikuImagePackage
1129			perl-5.10.1-r1a2-x86-gcc2-2010-04-25-a.zip
1130			: $(baseURL)/perl-5.10.1-r1a2-x86-gcc2-2010-04-25-a.zip
1131			:
1132			: true
1133			: true
1134		;
1135		InstallSourceArchive perl-5.10.1_haiku-2010-04-29.tar.xz
1136			: $(baseSourceURL)/perl-5.10.1_haiku-2010-04-29.tar.xz ;
1137	}
1138}
1139
1140
1141# Python
1142if [ IsOptionalHaikuImagePackageAdded Python ] {
1143	if $(TARGET_ARCH) != x86 {
1144		Echo "No optional package Python available for $(TARGET_ARCH)" ;
1145	} else {
1146		InstallOptionalHaikuImagePackage
1147			python-2.6.5-r1a2-x86-gcc2-2010-04-25-a.zip
1148			: $(baseURL)/python-2.6.5-r1a2-x86-gcc2-2010-04-25-a.zip
1149			:
1150			: true
1151			: true
1152		;
1153		InstallSourceArchive python-2.6.5_haiku-2010-04-29.tar.xz
1154			: $(baseSourceURL)/python-2.6.5_haiku-2010-04-29.tar.xz ;
1155	}
1156}
1157
1158
1159# Rsync
1160if [ IsOptionalHaikuImagePackageAdded Rsync ] {
1161	if $(TARGET_ARCH) != x86 {
1162		Echo "No optional package Rsync available for $(TARGET_ARCH)" ;
1163	} else {
1164		InstallOptionalHaikuImagePackage
1165			rsync-3.0.7-r1a2-x86-gcc2-2010-04-22-a.zip
1166			: $(baseURL)/rsync-3.0.7-r1a2-x86-gcc2-2010-04-22-a.zip
1167			:
1168		;
1169		InstallSourceArchive rsync-3.0.7_haiku-2010-04-29.tar.xz
1170			: $(baseSourceURL)/rsync-3.0.7_haiku-2010-04-29.tar.xz ;
1171	}
1172}
1173
1174
1175# Sed
1176if [ IsOptionalHaikuImagePackageAdded Sed ] {
1177	if $(TARGET_ARCH) != x86 {
1178		Echo "No optional package Sed available for $(TARGET_ARCH)" ;
1179	} else {
1180		InstallOptionalHaikuImagePackage
1181			sed-4.2.1-r1a2-x86-gcc2-2010-04-21-a.zip
1182			: $(baseURL)/sed-4.2.1-r1a2-x86-gcc2-2010-04-21-a.zip
1183			:
1184			:
1185		;
1186		InstallSourceArchive sed-4.2.1_haiku-2010-04-29.tar.xz
1187			: $(baseSourceURL)/sed-4.2.1_haiku-2010-04-29.tar.xz ;
1188	}
1189}
1190
1191
1192# SQLite
1193if [ IsOptionalHaikuImagePackageAdded SQLite ] {
1194	if $(TARGET_ARCH) != x86 {
1195		Echo "No optional package SQLite available for $(TARGET_ARCH)" ;
1196	} else {
1197		InstallOptionalHaikuImagePackage
1198			sqlite-3.6.23-r1a2-x86-gcc2-2010-04-22-a.zip
1199			: $(baseURL)/sqlite-3.6.23-r1a2-x86-gcc2-2010-04-22-a.zip
1200			:
1201			:
1202			: true
1203		;
1204		InstallSourceArchive sqlite-3.6.23_haiku-2010-04-29.tar.xz
1205			: $(baseSourceURL)/sqlite-3.6.23_haiku-2010-04-29.tar.xz ;
1206	}
1207}
1208
1209
1210# Subversion
1211if [ IsOptionalHaikuImagePackageAdded Subversion ] {
1212	if $(TARGET_ARCH) != x86 {
1213		Echo "No optional package Subversion available for $(TARGET_ARCH)" ;
1214	} else {
1215		InstallOptionalHaikuImagePackage
1216			subversion-1.6.9-r1a2-x86-gcc2-2010-04-28-a.zip
1217			: $(baseURL)/subversion-1.6.9-r1a2-x86-gcc2-2010-04-28-a.zip
1218			:
1219			: true
1220			: true
1221		;
1222		InstallSourceArchive subversion-1.6.9_haiku-2010-04-29.tar.xz
1223			: $(baseSourceURL)/subversion-1.6.9_haiku-2010-04-29.tar.xz ;
1224	}
1225}
1226
1227
1228# Tar
1229if [ IsOptionalHaikuImagePackageAdded Tar ] {
1230	if $(TARGET_ARCH) != x86 {
1231		Echo "No optional package Tar available for $(TARGET_ARCH)" ;
1232	} else {
1233		InstallOptionalHaikuImagePackage
1234			tar-1.22-r1a2-x86-gcc2-2010-04-22-a.zip
1235			: $(baseURL)/tar-1.22-r1a2-x86-gcc2-2010-04-22-a.zip
1236			:
1237		;
1238		InstallSourceArchive tar-1.22_haiku-2010-04-29.tar.xz
1239			: $(baseSourceURL)/tar-1.22_haiku-2010-04-29.tar.xz ;
1240	}
1241}
1242
1243
1244# TrackerNewTemplates
1245if [ IsOptionalHaikuImagePackageAdded TrackerNewTemplates ] {
1246	InstallOptionalHaikuImagePackage TrackerNewTemplates-2010-04-26.zip
1247		: $(baseURL)/TrackerNewTemplates-2010-04-26.zip
1248		: home config settings Tracker "Tracker New Templates"
1249	;
1250}
1251
1252
1253# Transmission
1254if [ IsOptionalHaikuImagePackageAdded Transmission ] {
1255	if $(TARGET_ARCH) != x86 {
1256		Echo "No optional package Transmission available for $(TARGET_ARCH)" ;
1257	} else {
1258		if $(HAIKU_GCC_VERSION[1]) >= 4 || $(isHybridBuild) {
1259			InstallOptionalHaikuImagePackage
1260				transmission-1.93-x86-gcc4-2010-05-06.zip
1261				: $(baseURL)/transmission-1.93-x86-gcc4-2010-05-06.zip
1262				:
1263				: true
1264			;
1265			InstallSourceArchive transmission-1.93_haiku-2010-05-06.tar.xz
1266				: $(baseSourceURL)/transmission-1.93_haiku-2010-05-06.tar.xz ;
1267		} else {
1268			Echo "No optional package Transmission available for $(TARGET_ARCH)-gcc2" ;
1269		}
1270	}
1271}
1272
1273
1274# UserlandFS
1275if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
1276	local arch = $(TARGET_ARCH) ;
1277	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
1278
1279	# kernel module
1280	AddFilesToHaikuImage system add-ons kernel file_systems : userlandfs ;
1281
1282	# server
1283	AddFilesToHaikuImage system servers : userlandfs_server ;
1284
1285	# libs
1286	local userlandfsLibs =
1287		libuserlandfs_beos_kernel.so
1288		libuserlandfs_haiku_kernel.so
1289		libuserlandfs_fuse.so
1290	;
1291	AddFilesToHaikuHybridImage system lib : $(userlandfsLibs) : : true ;
1292
1293	# development goodies
1294	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
1295		if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
1296			Exit "Optional package UserlandFS: Unsupported GCC version:"
1297				$(HAIKU_GCC_VERSION[1]) ;
1298		}
1299
1300		# library symlinks
1301		local lib ;
1302		for lib in $(userlandfsLibs) {
1303			AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
1304				: /system/lib/$(lib:BS) ;
1305			AddSymlinkToAlternativeGCCArchive develop abi $(arch) $(abi) lib
1306				: /system/lib/$(arch)/$(lib:BS) ;
1307		}
1308
1309		# FUSE headers
1310		local fuseHeaders =
1311			fuse_common_compat.h
1312			fuse_common.h
1313			fuse_compat.h
1314			fuse.h
1315			fuse_lowlevel_compat.h
1316			fuse_lowlevel.h
1317			fuse_opt.h
1318		;
1319		fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
1320		SEARCH on $(fuseHeaders)
1321			= [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
1322		AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ;
1323	}
1324}
1325
1326
1327# Vim
1328if [ IsOptionalHaikuImagePackageAdded Vim ] {
1329	if $(TARGET_ARCH) != x86 {
1330		Echo "No optional package Vim available for $(TARGET_ARCH)" ;
1331	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1332		InstallOptionalHaikuImagePackage vim-7.2-r1a2-x86-gcc4-2010-05-07.zip
1333			:  $(baseURL)/vim-7.2-r1a2-x86-gcc4-2010-05-07.zip
1334			:
1335		;
1336		AddSymlinkToHaikuImage home config be Applications
1337			: /boot/common/bin/gvim ;
1338		# TODO: move this symlink to the archive
1339		AddSymlinkToHaikuImage common bin : vim : vi ;
1340	} else {
1341		InstallOptionalHaikuImagePackage vim-7.2-r1a2-x86-gcc2-2010-05-07.zip
1342			:  $(baseURL)/vim-7.2-r1a2-x86-gcc2-2010-05-07.zip
1343			:
1344		;
1345		AddSymlinkToHaikuImage home config be Applications
1346			: /boot/common/bin/gvim ;
1347		# TODO: move this symlink to the archive
1348		AddSymlinkToHaikuImage common bin : vim : vi ;
1349	}
1350}
1351
1352
1353# Vision
1354if [ IsOptionalHaikuImagePackageAdded Vision ] {
1355	if $(TARGET_ARCH) != x86 {
1356		Echo "No optional package Vision available for $(TARGET_ARCH)" ;
1357	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1358		InstallOptionalHaikuImagePackage Vision-0.9.7-H-x86-gcc4-r1a2-2010-05-07.zip
1359			: $(baseURL)/Vision-0.9.7-H-x86-gcc4-r1a2-2010-05-07.zip
1360			: apps
1361		;
1362		AddSymlinkToHaikuImage home config be Applications
1363			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
1364	} else {
1365		InstallOptionalHaikuImagePackage Vision-0.9.7-H-x86-gcc2-r1a2-2010-05-07.zip
1366			: $(baseURL)/Vision-0.9.7-H-x86-gcc2-r1a2-2010-05-07.zip
1367			: apps
1368		;
1369		AddSymlinkToHaikuImage home config be Applications
1370			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
1371	}
1372}
1373
1374
1375# VLC media player
1376if [ IsOptionalHaikuImagePackageAdded VLC ] {
1377	if $(TARGET_ARCH) != x86 {
1378		Echo "No optional package VLC available for $(TARGET_ARCH)" ;
1379	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1380		Echo "No optional package VLC available for gcc4" ;
1381	} else {
1382		InstallOptionalHaikuImagePackage VLC-0.8.6d.zip
1383			: $(baseURL)/vlc-0.8.6d-gcc2-2009-04-18.zip
1384			: apps
1385		;
1386		AddSymlinkToHaikuImage home config be Applications
1387			: "/boot/apps/vlc-0.8.6d/VLC media player" ;
1388		AddSymlinkToHaikuImage common bin
1389			: "/boot/apps/vlc-0.8.6d/VLC media player" : vlc ;
1390	}
1391}
1392
1393
1394# WebPositive
1395if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
1396	if $(TARGET_ARCH) != x86 {
1397		Echo "No optional package WebPositive available for $(TARGET_ARCH)" ;
1398	} else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
1399		Echo "No optional package WebPositive available for gcc2" ;
1400	} else {
1401		InstallOptionalHaikuImagePackage
1402			WebPositive-gcc4-x86-r495-2010-05-11.zip
1403			: $(baseURL)/WebPositive-gcc4-x86-r495-2010-05-11.zip
1404			:
1405		;
1406		AddSymlinkToHaikuImage home config be Applications
1407			: /boot/apps/WebPositive/WebPositive ;
1408	}
1409}
1410
1411
1412# Welcome
1413if [ IsOptionalHaikuImagePackageAdded Welcome ] {
1414	CopyDirectoryToHaikuImage system documentation
1415		: [ FDirName $(HAIKU_TOP) docs welcome ]
1416		: welcome : -x .svn ;
1417	CopyDirectoryToHaikuImage system documentation
1418		: [ FDirName $(HAIKU_TOP) docs userguide ]
1419		: userguide : -x .svn ;
1420	CopyDirectoryToHaikuImage system documentation
1421		: [ FDirName $(HAIKU_TOP) docs images ]
1422		: images : -x .svn ;
1423	AddSymlinkToHaikuImage home Desktop
1424		: /boot/system/documentation/welcome/welcome_en.html : Welcome ;
1425	AddSymlinkToHaikuImage home Desktop
1426		: /boot/system/documentation/userguide/en/contents.html : User\ Guide ;
1427}
1428
1429
1430# WifiFirmwareScriptData
1431# This optional package is for people who build their own images & have wifi
1432# hardware that requires install-wifi-firmwares.sh & have no active network
1433# connection. This is not to be added to default images.
1434if [ IsOptionalHaikuImagePackageAdded WifiFirmwareScriptData ] {
1435	if $(TARGET_ARCH) != x86 {
1436		Echo "No optional package WifiFirmwareScriptData available for"
1437			$(TARGET_ARCH) ;
1438	} else {
1439		# broadcom43xx
1440		# firmware cutter
1441		local broadcomFWCutterArchive = b43-fwcutter-012.tar.bz2 ;
1442		local broadcomFWCutterURL =
1443			http://bu3sch.de/b43/fwcutter/$(broadcomFWCutterArchive) ;
1444		local broadcomFWCutterFile = [ DownloadFile $(broadcomFWCutterArchive)
1445			: $(broadcomFWCutterURL) ] ;
1446		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter
1447			: $(broadcomFWCutterFile) ;
1448
1449		# headers needed to compile firmware cutter
1450		local glibcDir = [ FDirName
1451			$(HAIKU_TOP) src system libroot posix glibc ] ;
1452		local byteswapHeader = [ FDirName $(glibcDir) string byteswap.h ] ;
1453		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter
1454			: $(byteswapHeader) ;
1455		local bitByteswapHeader = [ FDirName
1456			$(glibcDir) include arch x86 bits byteswap.h ] ;
1457		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter bits
1458			: $(bitByteswapHeader) ;
1459
1460		# file containing firmware
1461		local broadcom43xxFile ;
1462		broadcom43xxFile = [ DownloadFile wl_apsta-3.130.20.0.o
1463			: http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o ] ;
1464		AddFilesToHaikuImage system data firmware broadcom43xx
1465			: $(broadcom43xxFile) ;
1466
1467		# marvell88w8335
1468		local marvelArchive = malo-firmware-1.4.tgz ;
1469		local marvelURL = http://www.nazgul.ch/malo/$(marvelArchive) ;
1470		local marvelFile = [ DownloadFile $(marvelArchive) : $(marvelURL) ] ;
1471		AddFilesToHaikuImage system data firmware marvell88w8335
1472			: $(marvelFile) ;
1473	}
1474}
1475
1476
1477# WonderBrush
1478if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
1479	if $(TARGET_ARCH) != x86 {
1480		Echo "No optional package WonderBrush available for $(TARGET_ARCH)" ;
1481	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1482		Echo "No optional package WonderBrush available for gcc4" ;
1483	} else {
1484		InstallOptionalHaikuImagePackage WonderBrush-2.1.2.zip
1485			: $(baseURL)/WonderBrush-2.1.2-x86-gcc2-2008-11-08.zip
1486			: apps
1487		;
1488		AddSymlinkToHaikuImage home config be Applications
1489			: /boot/apps/WonderBrush/WonderBrush ;
1490	}
1491}
1492
1493
1494# XZ-Utils
1495if [ IsOptionalHaikuImagePackageAdded XZ-Utils ] {
1496	if $(TARGET_ARCH) != x86 {
1497		Echo "No optional package XZ-Utils available for $(TARGET_ARCH)" ;
1498	} else {
1499		InstallOptionalHaikuImagePackage
1500			xz-utils-4.999.9-r1a2-x86-gcc4-2010-04-25-a.zip
1501			: $(baseURL)/xz-utils-4.999.9-r1a2-x86-gcc4-2010-04-25-a.zip
1502			:
1503			:
1504			: true
1505		;
1506		InstallSourceArchive xz-utils-4.999.9_haiku-2010-04-29.tar.xz
1507			: $(baseSourceURL)/xz-utils-4.999.9_haiku-2010-04-29.tar.xz ;
1508		AddExpanderRuleToHaikuImage "application/x-xz" : .tar.xz
1509			: "tar -Jtvf \\0045s"
1510			: "tar -Jxvf \\0045s"
1511		;
1512		AddExpanderRuleToHaikuImage "application/x-xz" : .txz
1513			: "tar -Jtvf \\0045s"
1514			: "tar -Jxvf \\0045s"
1515		;
1516		AddExpanderRuleToHaikuImage "application/x-xz" : .xz
1517			: "echo \\0045s | sed 's/.xz\\\$//g'"
1518			: "xz -df \\0045s"
1519		;
1520	}
1521}
1522
1523
1524# Yasm
1525if [ IsOptionalHaikuImagePackageAdded Yasm ] {
1526	if $(TARGET_ARCH) != x86 {
1527		Echo "No optional package Yasm available for $(TARGET_ARCH)" ;
1528	} else {
1529		InstallOptionalHaikuImagePackage
1530			yasm-0.8.0-r1a2-x86-gcc2-2010-04-21.zip
1531			: $(baseURL)/yasm-0.8.0-r1a2-x86-gcc2-2010-04-21.zip
1532			:
1533		;
1534		InstallSourceArchive yasm-0.8.0_haiku-2010-04-29.tar.xz
1535			: $(baseSourceURL)/yasm-0.8.0_haiku-2010-04-29.tar.xz ;
1536	}
1537}
1538