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