xref: /haiku/build/jam/OptionalPackages (revision 3a5082aa46f958b1f49398c8b69458fa12dd581e)
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 and lib-links 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.67-x86-gcc2-2010-08-03.zip
430		: $(baseURL)/autoconf-2.67-x86-gcc2-2010-08-03.zip
431		:
432		: true
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.10-x86-gcc2-2010-06-10.zip
442		: $(baseURL)/libtool-2.2.10-x86-gcc2-2010-06-10.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-07-12.zip
466			: $(baseURL)/gcc-2.95.3-x86-gcc2-2010-07-12.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-100712 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-1.zip
478			: $(baseURL)/gcc-4.3.3-r1a2-x86-gcc4-2010-04-25-1.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	AddFilesToHaikuHybridImage $(abiDirTokens) lib : liblocalestub.a ;
556
557	# the POSIX error code mapper library
558	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libposix_error_mapper.a ;
559
560	# symlinks for ABI abstraction
561	AddSymlinkToHaikuImage develop abi : $(arch)/$(abi) : current ;
562	AddSymlinkToHaikuImage develop lib : /boot/develop/abi/current/lib
563		: $(arch) ;
564	AddSymlinkToHaikuImage develop tools
565		: /boot/develop/abi/current/tools/current : gnupro ;
566	AddSymlinkToHaikuImage develop headers
567		: /boot/develop/abi/current/headers/cpp ;
568	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
569		: /boot/common/lib : common : true ;
570	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
571		: /boot/home/config/lib : home : true ;
572
573	# ABI independent stuff
574
575	# scripts: cc and c++ wrapper, freetype-config, setgcc
576	local scripts = cc c++ freetype-config setgcc ;
577	SEARCH on $(scripts) = [ FDirName $(HAIKU_TOP) data bin ] ;
578	AddFilesToHaikuImage system bin : $(scripts) ;
579
580	# make and mkdepend build tool, which are part of the Haiku source tree
581	# TODO: Both should be removed from the tree, made download packages
582	# and moved to the DevelopmentBase package.
583	AddFilesToHaikuImage system bin : make mkdepend ;
584
585	# skeleton makefile and makefile-engine
586	local makefileEngineFiles =
587		<makefile-engine>makefile
588		<makefile-engine>makefile-engine
589	;
590	SEARCH on $(makefileEngineFiles)
591		= [ FDirName $(HAIKU_TOP) data develop ] ;
592	AddFilesToHaikuImage develop etc : $(makefileEngineFiles) ;
593
594	# headers
595	AddHeaderDirectoryToHaikuImage config ;
596	AddHeaderDirectoryToHaikuImage glibc ;
597	AddHeaderDirectoryToHaikuImage os ;
598	AddHeaderDirectoryToHaikuImage posix ;
599
600	# create be -> os symlink for now
601	AddSymlinkToHaikuImage develop headers : os : be ;
602
603	# BSD and GNU compatibility headers
604	AddHeaderDirectoryToHaikuImage compatibility bsd : bsd ;
605	AddHeaderDirectoryToHaikuImage compatibility gnu : gnu ;
606
607	# third party libs headers
608	AddHeaderDirectoryToHaikuImage libs freetype2 : 3rdparty ;
609	AddHeaderDirectoryToHaikuImage libs jpeg : 3rdparty ;
610	AddHeaderDirectoryToHaikuImage libs ncurses : 3rdparty ;
611	AddHeaderDirectoryToHaikuImage libs png : 3rdparty ;
612	AddHeaderDirectoryToHaikuImage libs termcap : 3rdparty ;
613	AddHeaderDirectoryToHaikuImage libs tiff : 3rdparty ;
614	AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ;
615
616	# cpp headers
617	if $(HAIKU_GCC_VERSION[1]) = 2 {
618		# GCC 2 only -- for GCC 4 they come with the DevelopmentBase package
619		CopyDirectoryToHaikuImage $(abiDirTokens) headers
620			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
621		CopyDirectoryToAlternativeGCCArchive $(abiDirTokens) headers
622			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
623	}
624}
625
626
627# Expat
628if [ IsOptionalHaikuImagePackageAdded Expat ] {
629	if $(TARGET_ARCH) != x86 {
630		Echo "No optional package Expat available for $(TARGET_ARCH)" ;
631	} else {
632		InstallOptionalHaikuImagePackage
633			expat-2.0.1-r1a2-x86-gcc2-2010-04-22-a.zip
634			: $(baseURL)/expat-2.0.1-r1a2-x86-gcc2-2010-04-22-a.zip
635			:
636			: true
637			: true
638		;
639		InstallSourceArchive expat-2.0.1_haiku-2010-04-29.tar.xz
640			: $(baseSourceURL)/expat-2.0.1_haiku-2010-04-29.tar.xz ;
641	}
642}
643
644
645# friss
646if [ IsOptionalHaikuImagePackageAdded friss ] {
647	if $(TARGET_ARCH) != x86 {
648		Echo "No optional package friss available for $(TARGET_ARCH)" ;
649	} else if $(HAIKU_GCC_VERSION[1]) >= 4 || $(isHybridBuild) {
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	} else {
656		Echo "No optional package friss available for gcc2" ;
657	}
658}
659
660
661# GetText
662if [ IsOptionalHaikuImagePackageAdded GetText ] {
663	if $(TARGET_ARCH) != x86 {
664		Echo "No optional package GetText available for $(TARGET_ARCH)" ;
665	} else {
666		if $(HAIKU_GCC_VERSION[1]) >= 4 {
667			InstallOptionalHaikuImagePackage
668				gettext-0.17-x86-gcc4-2010-05-06.zip
669				: $(baseURL)/gettext-0.17-x86-gcc4-2010-05-06.zip
670				:
671				: true
672			;
673			InstallSourceArchive gettext-0.17_haiku-2010-05-06.tar.xz
674				: $(baseSourceURL)/gettext-0.17_haiku-2010-05-06.tar.xz ;
675		} else if $(HAIKU_GCC_VERSION[1]) = 2 && $(isHybridBuild) {
676			InstallOptionalHaikuImagePackage
677				gettext-0.17-x86-gcc2h-2010-05-06.zip
678				: $(baseURL)/gettext-0.17-x86-gcc2h-2010-05-06.zip
679				:
680				: true
681			;
682			InstallSourceArchive gettext-0.17_haiku-2010-05-06.tar.xz
683				: $(baseSourceURL)/gettext-0.17_haiku-2010-05-06.tar.xz ;
684		} else {
685			Echo "No optional package GetText available for $(TARGET_ARCH)-gcc2" ;
686		}
687	}
688}
689
690
691# Git
692if [ IsOptionalHaikuImagePackageAdded Git ] {
693	if $(TARGET_ARCH) != x86 {
694		Echo "No optional package Git available for $(TARGET_ARCH)" ;
695	} else {
696		InstallOptionalHaikuImagePackage
697			git-1.7.1-x86-gcc2-2010-05-26.zip
698			: $(baseURL)/git-1.7.1-x86-gcc2-2010-05-26.zip
699			:
700			: true
701		;
702	}
703}
704
705
706# GPerf
707if [ IsOptionalHaikuImagePackageAdded GPerf ] {
708	if $(TARGET_ARCH) != x86 {
709		Echo "No optional package GPerf available for $(TARGET_ARCH)" ;
710	} else {
711		if $(HAIKU_GCC_VERSION[1]) >= 4 {
712			InstallOptionalHaikuImagePackage
713				gperf-3.0.4-x86-gcc4-2010-06-15.zip
714				: $(baseURL)/gperf-3.0.4-x86-gcc4-2010-06-15.zip
715				:
716				: true
717			;
718		} else {
719			InstallOptionalHaikuImagePackage
720				gperf-3.0.4-x86-gcc2-2010-06-15.zip
721				: $(baseURL)/gperf-3.0.4-x86-gcc2-2010-06-15.zip
722				:
723				: true
724			;
725		}
726	}
727}
728
729
730# ICU
731if [ IsOptionalHaikuImagePackageAdded ICU ] {
732	if $(TARGET_ARCH) != x86 {
733		Echo "No optional package ICU available for $(TARGET_ARCH)" ;
734	} else {
735		if $(HAIKU_GCC_VERSION[1]) = 2 {
736			# unzip gcc2
737			InstallOptionalHaikuImagePackage $(HAIKU_ICU_GCC_2_PACKAGE)
738				: $(baseURL)/$(HAIKU_ICU_GCC_2_PACKAGE)
739				: system lib ;
740			if $(isHybridBuild) {
741				# unzip gcc4 to gcc4 subdir
742				InstallOptionalHaikuImagePackage $(HAIKU_ICU_GCC_4_PACKAGE)
743					: $(baseURL)/$(HAIKU_ICU_GCC_4_PACKAGE)
744					: system lib gcc4
745				;
746			}
747		} else {
748			# unzip gcc4
749			InstallOptionalHaikuImagePackage $(HAIKU_ICU_GCC_4_PACKAGE)
750				: $(baseURL)/$(HAIKU_ICU_GCC_4_PACKAGE)
751				: system lib ;
752			if $(isHybridBuild) {
753				# unzip gcc2 to gcc2 subdir
754				InstallOptionalHaikuImagePackage $(HAIKU_ICU_GCC_2_PACKAGE)
755					: $(baseURL)/$(HAIKU_ICU_GCC_2_PACKAGE)
756					: system lib gcc2
757				;
758			}
759		}
760	}
761}
762
763
764# ICU-devel
765if [ IsOptionalHaikuImagePackageAdded ICU-devel ] {
766	InstallOptionalHaikuImagePackage $(HAIKU_ICU_DEVEL_PACKAGE)
767		: $(baseURL)/$(HAIKU_ICU_DEVEL_PACKAGE)
768	;
769
770	local arch = $(TARGET_ARCH) ;
771	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
772	for abiVersionedLib in $(HAIKU_ICU_LIBS) {
773		abiVersionedLib = $(abiVersionedLib:G=) ;
774		local lib = $(abiVersionedLib:B) ;
775		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
776			: /system/lib $(abiVersionedLib) : : true ;
777		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
778			: $(abiVersionedLib) : $(lib) ;
779	}
780}
781
782
783# KeymapSwitcher
784if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] {
785	if $(TARGET_ARCH) != x86 {
786		Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ;
787	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
788		InstallOptionalHaikuImagePackage
789			KeymapSwitcher-1.2.5-r1a2-x86-gcc4-2010-05-08.zip
790			: $(baseURL)/KeymapSwitcher-1.2.5-r1a2-x86-gcc4-2010-05-08.zip
791			:
792		;
793		AddSymlinkToHaikuImage home config be Desktop\ applets
794			: /boot/common/bin/KeymapSwitcher ;
795	} else {
796		InstallOptionalHaikuImagePackage
797			KeymapSwitcher-1.2.5-r1a2-x86-gcc2-2010-05-08.zip
798			: $(baseURL)/KeymapSwitcher-1.2.5-r1a2-x86-gcc2-2010-05-08.zip
799			:
800		;
801		AddSymlinkToHaikuImage home config be Desktop\ applets
802			: /boot/common/bin/KeymapSwitcher ;
803	}
804}
805
806
807# LibEvent
808if [ IsOptionalHaikuImagePackageAdded LibEvent ] {
809	if $(TARGET_ARCH) != x86 {
810		Echo "No optional package LibEvent available for $(TARGET_ARCH)" ;
811	} else {
812		if $(HAIKU_GCC_VERSION[1]) >= 4 {
813			InstallOptionalHaikuImagePackage
814				libevent-1.4.13-x86-gcc4-2010-05-06.zip
815				: $(baseURL)/libevent-1.4.13-x86-gcc4-2010-05-06.zip
816				:
817				: true
818			;
819			InstallSourceArchive libevent-1.4.13_haiku-2010-05-06.tar.xz
820				: $(baseSourceURL)/libevent-1.4.13_haiku-2010-05-06.tar.xz ;
821		} else if $(HAIKU_GCC_VERSION[1]) = 2 && $(isHybridBuild) {
822			InstallOptionalHaikuImagePackage
823				libevent-1.4.13-x86-gcc2h-2010-05-06.zip
824				: $(baseURL)/libevent-1.4.13-x86-gcc2h-2010-05-06.zip
825				:
826				: true
827			;
828			InstallSourceArchive libevent-1.4.13_haiku-2010-05-06.tar.xz
829				: $(baseSourceURL)/libevent-1.4.13_haiku-2010-05-06.tar.xz ;
830		} else {
831			Echo "No optional package LibEvent available for $(TARGET_ARCH)-gcc2" ;
832		}
833	}
834}
835
836
837# LibIconv
838if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
839	if $(TARGET_ARCH) != x86 {
840		Echo "No optional package LibIconv available for $(TARGET_ARCH)" ;
841	} else {
842		InstallOptionalHaikuImagePackage
843			libiconv-1.13.1-r1a2-x86-gcc2-2010-04-21-a.zip
844			: $(baseURL)/libiconv-1.13.1-r1a2-x86-gcc2-2010-04-21-a.zip
845			:
846			:
847			: true
848		;
849		InstallSourceArchive libiconv-1.13.1_haiku-2010-04-29.tar.xz
850			: $(baseSourceURL)/libiconv-1.13.1_haiku-2010-04-29.tar.xz ;
851	}
852}
853
854
855# LibLayout library
856if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
857	if $(TARGET_ARCH) != x86 {
858		Echo "No optional package LibLayout available for $(TARGET_ARCH)" ;
859	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
860		Echo "No optional package LibLayout available for gcc4" ;
861	} else {
862		InstallOptionalHaikuImagePackage liblayout-1.4.0-gcc2-2009-03-08.zip
863			: $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip
864			:
865		;
866	}
867}
868
869
870# LibXML2
871if [ IsOptionalHaikuImagePackageAdded LibXML2 ] {
872	if $(TARGET_ARCH) != x86 {
873		Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ;
874	} else {
875		InstallOptionalHaikuImagePackage
876			libxml2-2.7.7-r1a2-x86-gcc2-2010-04-22-a.zip
877			: $(baseURL)/libxml2-2.7.7-r1a2-x86-gcc2-2010-04-22-a.zip
878			:
879			:
880			: true
881		;
882		InstallSourceArchive libxml2-2.7.7_haiku-2010-04-29.tar.xz
883			: $(baseSourceURL)/libxml2-2.7.7_haiku-2010-04-29.tar.xz ;
884	}
885}
886
887
888# LibXSLT
889if [ IsOptionalHaikuImagePackageAdded LibXSLT ] {
890	if $(TARGET_ARCH) != x86 {
891		Echo "No optional package LibXSLT available for $(TARGET_ARCH)" ;
892	} else {
893		InstallOptionalHaikuImagePackage
894			libxslt-1.1.26-r1a2-x86-gcc2-2010-04-22-a.zip
895			: $(baseURL)/libxslt-1.1.26-r1a2-x86-gcc2-2010-04-22-a.zip
896			:
897			: true
898		;
899		InstallSourceArchive libxslt-1.1.26_haiku-2010-04-29.tar.xz
900			: $(baseSourceURL)/libxslt-1.1.26_haiku-2010-04-29.tar.xz ;
901	}
902}
903
904
905# Links web browser
906if [ IsOptionalHaikuImagePackageAdded Links ] {
907	if $(TARGET_ARCH) != x86 {
908		Echo "No optional package Links available for $(TARGET_ARCH)" ;
909	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
910		Echo "No optional package Links available for gcc4" ;
911	} else {
912		InstallOptionalHaikuImagePackage Links.zip
913			: $(baseURL)/links-x86-gcc2-2008-05-03.zip
914			:
915		;
916		AddSymlinkToHaikuImage home config be Applications
917			: /boot/home/config/bin/links ;
918	}
919}
920
921
922# MandatoryPackages
923if [ IsOptionalHaikuImagePackageAdded MandatoryPackages ] {
924	# Pseudo package for grouping packages, which are added to all images.
925}
926
927
928# Mercurial
929if [ IsOptionalHaikuImagePackageAdded Mercurial ] {
930	if $(TARGET_ARCH) != x86 {
931		Echo "No optional package Mercurial available for $(TARGET_ARCH)" ;
932	} else {
933		InstallOptionalHaikuImagePackage
934			mercurial-1.6-x86-gcc2-2010-07-01.zip
935			: $(baseURL)/mercurial-1.6-x86-gcc2-2010-07-01.zip
936			:
937			: true
938		;
939	}
940}
941
942
943# Nano
944if [ IsOptionalHaikuImagePackageAdded Nano ] {
945	if $(TARGET_ARCH) != x86 {
946		Echo "No optional package Nano available for $(TARGET_ARCH)" ;
947	} else {
948		InstallOptionalHaikuImagePackage
949			nano-2.2.3-r1a2-x86-gcc2-2010-04-22-a.zip
950			: $(baseURL)/nano-2.2.3-r1a2-x86-gcc2-2010-04-22-a.zip
951			:
952		;
953		InstallSourceArchive nano-2.2.3_haiku-2010-04-29.tar.xz
954			: $(baseSourceURL)/nano-2.2.3_haiku-2010-04-29.tar.xz ;
955	}
956}
957
958
959# Neon
960if [ IsOptionalHaikuImagePackageAdded Neon ] {
961	if $(TARGET_ARCH) != x86 {
962		Echo "No optional package Neon available for $(TARGET_ARCH)" ;
963	} else {
964		InstallOptionalHaikuImagePackage
965			neon-0.29.3-r1a2-x86-gcc2-2010-04-22-a.zip
966			: $(baseURL)/neon-0.29.3-r1a2-x86-gcc2-2010-04-22-a.zip
967			:
968			: true
969			: true
970		;
971		InstallSourceArchive neon-0.29.3_haiku-2010-04-29.tar.xz
972			: $(baseSourceURL)/neon-0.29.3_haiku-2010-04-29.tar.xz ;
973	}
974}
975
976
977# NetFS network file system
978if [ IsOptionalHaikuImagePackageAdded NetFS ] {
979	# userlandfs module
980	AddFilesToHaikuImage home config add-ons userlandfs : netfs ;
981
982	# servers
983	AddFilesToHaikuImage system servers : netfs_server ;
984	AddFilesToHaikuImage system servers : authentication_server ;
985
986	# tools
987	AddFilesToHaikuImage system bin : netfs_config ;
988	AddFilesToHaikuImage system bin : netfs_server_prefs ;
989
990	#example settings for netfs_server
991	local netfsServerSettingsFiles = <driver-settings>netfs-server ;
992	SEARCH on $(netfsServerSettingsFiles)
993		= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems netfs ] ;
994	AddFilesToHaikuImage home config settings kernel drivers
995	: $(netfsServerSettingsFiles) ;
996
997	#userlandfs settings are needed for netfs_config to work (ioctls)
998	local userlandfsServerSettingsFiles = <driver-settings>userlandfs ;
999	SEARCH on $(userlandfsServerSettingsFiles)
1000		= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems userlandfs ] ;
1001	AddFilesToHaikuImage home config settings kernel drivers
1002	: $(userlandfsServerSettingsFiles) ;
1003}
1004
1005
1006# NetSurf web browser
1007if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
1008	if $(TARGET_ARCH) != x86 {
1009		Echo "No optional package NetSurf available for $(TARGET_ARCH)" ;
1010	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1011		Echo "No optional package NetSurf available for gcc4" ;
1012	} else {
1013		InstallOptionalHaikuImagePackage NetSurf-r9862b.zip
1014			: $(baseURL)/NetSurf-r9862-x86-gcc2-2010-01-27.zip
1015			:
1016		;
1017		AddSymlinkToHaikuImage home config be Applications
1018			: /boot/apps/netsurf/NetSurf ;
1019		InstallSourceArchive netsurf-r9862.7z
1020			: http://haiku-files.org/files/sources/2010/netsurf-r9862.7z
1021		;
1022	}
1023}
1024
1025
1026# OCaml
1027if [ IsOptionalHaikuImagePackageAdded OCaml ] {
1028	if $(TARGET_ARCH) != x86 {
1029		Echo "No optional package OCaml available for $(TARGET_ARCH)" ;
1030	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1031		Echo "No optional package OCaml available for gcc4" ;
1032	} else {
1033		InstallOptionalHaikuImagePackage
1034			ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip
1035			: http://jerome.duval.free.fr/obos/ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip
1036			:
1037		;
1038		InstallOptionalHaikuImagePackage
1039			camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip
1040			: http://jerome.duval.free.fr/obos/camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip
1041			:
1042		;
1043	}
1044}
1045
1046
1047# OpenSound drivers
1048if [ IsOptionalHaikuImagePackageAdded OpenSound ] {
1049	if $(TARGET_ARCH) != x86 {
1050		Echo "No optional package OpenSound available for $(TARGET_ARCH)" ;
1051	} else {
1052		InstallOptionalHaikuImagePackage
1053			opensound-4.2-r1a2-x86-gcc2-2010-05-01.zip
1054			: $(baseURL)/opensound-4.2-r1a2-x86-gcc2-2010-05-01.zip
1055			:
1056		;
1057	}
1058	#ExtractArchiveToHaikuImage home : data/vv.mp3.zip : 0 ;
1059}
1060
1061
1062# OpenSSH
1063if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
1064	if $(TARGET_ARCH) != x86 {
1065		Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ;
1066	} else {
1067		if ! $(HAIKU_IMAGE_HOST_NAME) && ! $(HAIKU_IGNORE_USER_BUILD_CONFIG) {
1068			Exit "Optional package OpenSSH requires the HAIKU_IMAGE_HOST_NAME"
1069				"variable to be set!" ;
1070		}
1071		InstallOptionalHaikuImagePackage
1072			openssh-5.5p1-x86-gcc2-2010-05-26.zip
1073			: $(baseURL)/openssh-5.5p1-x86-gcc2-2010-05-26.zip
1074			:
1075		;
1076
1077		AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true
1078			: "sshd user" ;
1079	}
1080}
1081
1082
1083# OpenSSL
1084if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
1085	if $(TARGET_ARCH) != x86 {
1086		Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
1087	} else {
1088		InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
1089			: $(HAIKU_OPENSSL_URL)
1090			:
1091			:
1092			: true
1093		;
1094		InstallSourceArchive openssl-1.0.0_haiku-2010-04-29.tar.xz
1095			: $(baseSourceURL)/openssl-1.0.0_haiku-2010-04-29.tar.xz ;
1096	}
1097}
1098
1099
1100# P7zip
1101if [ IsOptionalHaikuImagePackageAdded P7zip ] {
1102	if $(TARGET_ARCH) != x86 {
1103		Echo "No optional package P7zip available for $(TARGET_ARCH)" ;
1104	} else {
1105		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1106			InstallOptionalHaikuImagePackage
1107				p7zip-9.04-r1a2-x86-gcc4-2010-05-06.zip
1108				: $(baseURL)/p7zip-9.04-r1a2-x86-gcc4-2010-05-06.zip
1109				:
1110			;
1111		} else {
1112			InstallOptionalHaikuImagePackage
1113				p7zip-9.04-r1a2-x86-gcc2-2010-05-06.zip
1114				: $(baseURL)/p7zip-9.04-r1a2-x86-gcc2-2010-05-06.zip
1115				:
1116			;
1117			InstallSourceArchive p7zip-9.04_haiku-2010-05-06.tar.xz
1118				: $(baseSourceURL)/p7zip-9.04_haiku-2010-05-06.tar.xz ;
1119		}
1120		AddExpanderRuleToHaikuImage "application/x-7z-compressed" : .7z
1121			: "7za l \\0045s"
1122			: "7za x -y \\0045s"
1123		;
1124
1125	}
1126}
1127
1128
1129# PCRE regex engine
1130if [ IsOptionalHaikuImagePackageAdded PCRE ] {
1131	if $(TARGET_ARCH) != x86 {
1132		Echo "No optional package PCRE available for $(TARGET_ARCH)" ;
1133	} else {
1134		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1135			InstallOptionalHaikuImagePackage pcre-7.9-x86-gcc4-2009-09-30.zip
1136				: $(baseURL)/pcre-7.9-x86-gcc4-2009-09-30.zip
1137			;
1138		} else {
1139			InstallOptionalHaikuImagePackage
1140				libpcre-8.02-r1a2-x86-gcc2-2010-04-28-a.zip
1141				: $(baseURL)/libpcre-8.02-r1a2-x86-gcc2-2010-04-28-a.zip
1142			;
1143		}
1144		InstallSourceArchive libpcre-8.02_haiku-2010-04-29.tar.xz
1145			: $(baseSourceURL)/libpcre-8.02_haiku-2010-04-29.tar.xz ;
1146	}
1147}
1148
1149
1150# Pe text editor
1151if [ IsOptionalHaikuImagePackageAdded Pe ] {
1152	if $(TARGET_ARCH) != x86 {
1153		Echo "No optional package Pe available for $(TARGET_ARCH)" ;
1154	} else {
1155		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1156			InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc4-2009-08-04.zip
1157				: $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip
1158			;
1159		} else {
1160			InstallOptionalHaikuImagePackage
1161				Pe-2.4.2-r597-r1a2-x86-gcc2-2010-05-06.zip
1162				: $(baseURL)/Pe-2.4.2-r597-r1a2-x86-gcc2-2010-05-06.zip
1163			;
1164		}
1165
1166		AddSymlinkToHaikuImage home config be Applications
1167			: /boot/apps/Pe/Pe ;
1168		AddSymlinkToHaikuImage common bin
1169			: /boot/apps/Pe/lpe ;
1170	}
1171}
1172
1173
1174# Perl
1175if [ IsOptionalHaikuImagePackageAdded Perl ] {
1176	if $(TARGET_ARCH) != x86 {
1177		Echo "No optional package Perl available for $(TARGET_ARCH)" ;
1178	} else {
1179		InstallOptionalHaikuImagePackage
1180			perl-5.10.1-r1a2-x86-gcc2-2010-04-25-a.zip
1181			: $(baseURL)/perl-5.10.1-r1a2-x86-gcc2-2010-04-25-a.zip
1182			:
1183			: true
1184			: true
1185		;
1186		InstallSourceArchive perl-5.10.1_haiku-2010-04-29.tar.xz
1187			: $(baseSourceURL)/perl-5.10.1_haiku-2010-04-29.tar.xz ;
1188	}
1189}
1190
1191
1192# Python
1193if [ IsOptionalHaikuImagePackageAdded Python ] {
1194	if $(TARGET_ARCH) != x86 {
1195		Echo "No optional package Python available for $(TARGET_ARCH)" ;
1196	} else {
1197		InstallOptionalHaikuImagePackage
1198			python-2.6.5-x86-gcc2-2010-05-26.zip
1199			: $(baseURL)/python-2.6.5-x86-gcc2-2010-05-26.zip
1200			:
1201			: true
1202			: true
1203		;
1204	}
1205}
1206
1207
1208# Rsync
1209if [ IsOptionalHaikuImagePackageAdded Rsync ] {
1210	if $(TARGET_ARCH) != x86 {
1211		Echo "No optional package Rsync available for $(TARGET_ARCH)" ;
1212	} else {
1213		InstallOptionalHaikuImagePackage
1214			rsync-3.0.7-r1a2-x86-gcc2-2010-04-22-a.zip
1215			: $(baseURL)/rsync-3.0.7-r1a2-x86-gcc2-2010-04-22-a.zip
1216			:
1217		;
1218		InstallSourceArchive rsync-3.0.7_haiku-2010-04-29.tar.xz
1219			: $(baseSourceURL)/rsync-3.0.7_haiku-2010-04-29.tar.xz ;
1220	}
1221}
1222
1223
1224# Sed
1225if [ IsOptionalHaikuImagePackageAdded Sed ] {
1226	if $(TARGET_ARCH) != x86 {
1227		Echo "No optional package Sed available for $(TARGET_ARCH)" ;
1228	} else {
1229		InstallOptionalHaikuImagePackage
1230			sed-4.2.1-r1a2-x86-gcc2-2010-04-21-a.zip
1231			: $(baseURL)/sed-4.2.1-r1a2-x86-gcc2-2010-04-21-a.zip
1232			:
1233			:
1234		;
1235		InstallSourceArchive sed-4.2.1_haiku-2010-04-29.tar.xz
1236			: $(baseSourceURL)/sed-4.2.1_haiku-2010-04-29.tar.xz ;
1237	}
1238}
1239
1240
1241# SQLite
1242if [ IsOptionalHaikuImagePackageAdded SQLite ] {
1243	if $(TARGET_ARCH) != x86 {
1244		Echo "No optional package SQLite available for $(TARGET_ARCH)" ;
1245	} else {
1246		InstallOptionalHaikuImagePackage
1247			sqlite-3.6.23-r1a2-x86-gcc2-2010-04-22-a.zip
1248			: $(baseURL)/sqlite-3.6.23-r1a2-x86-gcc2-2010-04-22-a.zip
1249			:
1250			:
1251			: true
1252		;
1253		InstallSourceArchive sqlite-3.6.23_haiku-2010-04-29.tar.xz
1254			: $(baseSourceURL)/sqlite-3.6.23_haiku-2010-04-29.tar.xz ;
1255	}
1256}
1257
1258
1259# Subversion
1260if [ IsOptionalHaikuImagePackageAdded Subversion ] {
1261	if $(TARGET_ARCH) != x86 {
1262		Echo "No optional package Subversion available for $(TARGET_ARCH)" ;
1263	} else {
1264		InstallOptionalHaikuImagePackage
1265			subversion-1.6.9-r1a2-x86-gcc2-2010-04-28-a.zip
1266			: $(baseURL)/subversion-1.6.9-r1a2-x86-gcc2-2010-04-28-a.zip
1267			:
1268			: true
1269			: true
1270		;
1271		InstallSourceArchive subversion-1.6.9_haiku-2010-04-29.tar.xz
1272			: $(baseSourceURL)/subversion-1.6.9_haiku-2010-04-29.tar.xz ;
1273	}
1274}
1275
1276
1277# Tar
1278if [ IsOptionalHaikuImagePackageAdded Tar ] {
1279	if $(TARGET_ARCH) != x86 {
1280		Echo "No optional package Tar available for $(TARGET_ARCH)" ;
1281	} else {
1282		InstallOptionalHaikuImagePackage
1283			tar-1.22-r1a2-x86-gcc2-2010-04-22-a.zip
1284			: $(baseURL)/tar-1.22-r1a2-x86-gcc2-2010-04-22-a.zip
1285			:
1286		;
1287		InstallSourceArchive tar-1.22_haiku-2010-04-29.tar.xz
1288			: $(baseSourceURL)/tar-1.22_haiku-2010-04-29.tar.xz ;
1289	}
1290}
1291
1292
1293# TimGMSoundFont
1294if [ IsOptionalHaikuImagePackageAdded TimGMSoundFont ] {
1295	InstallOptionalHaikuImagePackage TimGMSoundFont-2010-06-16.zip
1296		: $(baseURL)/TimGMSoundFont-2010-06-16.zip
1297		:
1298	;
1299}
1300
1301
1302# TrackerNewTemplates
1303if [ IsOptionalHaikuImagePackageAdded TrackerNewTemplates ] {
1304	InstallOptionalHaikuImagePackage TrackerNewTemplates-2010-04-26.zip
1305		: $(baseURL)/TrackerNewTemplates-2010-04-26.zip
1306		: home config settings Tracker "Tracker New Templates"
1307	;
1308}
1309
1310
1311# Transmission
1312if [ IsOptionalHaikuImagePackageAdded Transmission ] {
1313	if $(TARGET_ARCH) != x86 {
1314		Echo "No optional package Transmission available for $(TARGET_ARCH)" ;
1315	} else {
1316		if $(HAIKU_GCC_VERSION[1]) >= 4 || $(isHybridBuild) {
1317			InstallOptionalHaikuImagePackage
1318				transmission-2.01-x86-gcc4-2010-07-10.zip
1319				: $(baseURL)/transmission-2.01-x86-gcc4-2010-07-10.zip
1320				:
1321				: true
1322			;
1323		} else {
1324			Echo "No optional package Transmission available for $(TARGET_ARCH)-gcc2" ;
1325		}
1326	}
1327}
1328
1329
1330# UserlandFS
1331if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
1332	local arch = $(TARGET_ARCH) ;
1333	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
1334
1335	# kernel module
1336	AddFilesToHaikuImage system add-ons kernel file_systems : userlandfs ;
1337
1338	# server
1339	AddFilesToHaikuImage system servers : userlandfs_server ;
1340
1341	# libs
1342	local userlandfsLibs =
1343		libuserlandfs_beos_kernel.so
1344		libuserlandfs_haiku_kernel.so
1345		libuserlandfs_fuse.so
1346	;
1347	AddFilesToHaikuHybridImage system lib : $(userlandfsLibs) : : true ;
1348
1349	# development goodies
1350	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
1351		if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
1352			Exit "Optional package UserlandFS: Unsupported GCC version:"
1353				$(HAIKU_GCC_VERSION[1]) ;
1354		}
1355
1356		# library symlinks
1357		local lib ;
1358		for lib in $(userlandfsLibs) {
1359			AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
1360				: /system/lib/$(lib:BS) ;
1361			AddSymlinkToAlternativeGCCArchive develop abi $(arch) $(abi) lib
1362				: /system/lib/$(arch)/$(lib:BS) ;
1363		}
1364
1365		# FUSE headers
1366		local fuseHeaders =
1367			fuse_common_compat.h
1368			fuse_common.h
1369			fuse_compat.h
1370			fuse.h
1371			fuse_lowlevel_compat.h
1372			fuse_lowlevel.h
1373			fuse_opt.h
1374		;
1375		fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
1376		SEARCH on $(fuseHeaders)
1377			= [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
1378		AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ;
1379	}
1380}
1381
1382
1383# Vim
1384if [ IsOptionalHaikuImagePackageAdded Vim ] {
1385	if $(TARGET_ARCH) != x86 {
1386		Echo "No optional package Vim available for $(TARGET_ARCH)" ;
1387	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1388		InstallOptionalHaikuImagePackage vim-7.2-r1a2-x86-gcc4-2010-05-07.zip
1389			:  $(baseURL)/vim-7.2-r1a2-x86-gcc4-2010-05-07.zip
1390			:
1391		;
1392		AddSymlinkToHaikuImage home config be Applications
1393			: /boot/common/bin/gvim ;
1394		# TODO: move this symlink to the archive
1395		AddSymlinkToHaikuImage common bin : vim : vi ;
1396	} else {
1397		InstallOptionalHaikuImagePackage vim-7.2-r1a2-x86-gcc2-2010-05-07.zip
1398			:  $(baseURL)/vim-7.2-r1a2-x86-gcc2-2010-05-07.zip
1399			:
1400		;
1401		AddSymlinkToHaikuImage home config be Applications
1402			: /boot/common/bin/gvim ;
1403		# TODO: move this symlink to the archive
1404		AddSymlinkToHaikuImage common bin : vim : vi ;
1405	}
1406}
1407
1408
1409# Vision
1410if [ IsOptionalHaikuImagePackageAdded Vision ] {
1411	if $(TARGET_ARCH) != x86 {
1412		Echo "No optional package Vision available for $(TARGET_ARCH)" ;
1413	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1414		InstallOptionalHaikuImagePackage Vision-0.9.7-H-x86-gcc4-2010-05-22.zip
1415			: $(baseURL)/Vision-0.9.7-H-x86-gcc4-2010-05-22.zip
1416			:
1417		;
1418		AddSymlinkToHaikuImage home config be Applications
1419			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
1420	} else {
1421		InstallOptionalHaikuImagePackage Vision-0.9.7-H-x86-gcc2-2010-05-22.zip
1422			: $(baseURL)/Vision-0.9.7-H-x86-gcc2-2010-05-22.zip
1423			:
1424		;
1425		AddSymlinkToHaikuImage home config be Applications
1426			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
1427	}
1428}
1429
1430
1431# VLC media player
1432if [ IsOptionalHaikuImagePackageAdded VLC ] {
1433	if $(TARGET_ARCH) != x86 {
1434		Echo "No optional package VLC available for $(TARGET_ARCH)" ;
1435	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1436		Echo "No optional package VLC available for gcc4" ;
1437	} else {
1438		InstallOptionalHaikuImagePackage VLC-0.8.6d.zip
1439			: $(baseURL)/vlc-0.8.6d-gcc2-2009-04-18.zip
1440			: apps
1441		;
1442		AddSymlinkToHaikuImage home config be Applications
1443			: "/boot/apps/vlc-0.8.6d/VLC media player" ;
1444		AddSymlinkToHaikuImage common bin
1445			: "/boot/apps/vlc-0.8.6d/VLC media player" : vlc ;
1446	}
1447}
1448
1449
1450# WebPositive
1451if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
1452	if $(TARGET_ARCH) != x86 {
1453		Echo "No optional package WebPositive available for $(TARGET_ARCH)" ;
1454	} else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
1455		Echo "No optional package WebPositive available for gcc2" ;
1456	} else {
1457		InstallOptionalHaikuImagePackage
1458			WebPositive-gcc4-x86-r542-2010-08-01.zip
1459			: $(baseURL)/WebPositive-gcc4-x86-r542-2010-08-01.zip
1460			:
1461		;
1462		AddSymlinkToHaikuImage home config be Applications
1463			: /boot/apps/WebPositive/WebPositive ;
1464	}
1465}
1466
1467
1468# Welcome
1469if [ IsOptionalHaikuImagePackageAdded Welcome ] {
1470	CopyDirectoryToHaikuImage system documentation
1471		: [ FDirName $(HAIKU_TOP) docs welcome ]
1472		: welcome : -x .svn ;
1473	CopyDirectoryToHaikuImage system documentation
1474		: [ FDirName $(HAIKU_TOP) docs userguide ]
1475		: userguide : -x .svn ;
1476	AddSymlinkToHaikuImage home Desktop
1477		: /boot/system/documentation/welcome/welcome_en.html : Welcome ;
1478	AddSymlinkToHaikuImage home Desktop
1479		: /boot/system/documentation/userguide/en/contents.html : User\ Guide ;
1480}
1481
1482
1483# WifiFirmwareScriptData
1484# This optional package is for people who build their own images & have wifi
1485# hardware that requires install-wifi-firmwares.sh & have no active network
1486# connection. This is not to be added to default images.
1487if [ IsOptionalHaikuImagePackageAdded WifiFirmwareScriptData ] {
1488	if $(TARGET_ARCH) != x86 {
1489		Echo "No optional package WifiFirmwareScriptData available for"
1490			$(TARGET_ARCH) ;
1491	} else {
1492		# broadcom43xx
1493		# firmware cutter
1494		local broadcomFWCutterArchive = b43-fwcutter-012.tar.bz2 ;
1495		local broadcomFWCutterURL =
1496			http://bu3sch.de/b43/fwcutter/$(broadcomFWCutterArchive) ;
1497		local broadcomFWCutterFile = [ DownloadFile $(broadcomFWCutterArchive)
1498			: $(broadcomFWCutterURL) ] ;
1499		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter
1500			: $(broadcomFWCutterFile) ;
1501
1502		# headers needed to compile firmware cutter
1503		local glibcDir = [ FDirName
1504			$(HAIKU_TOP) src system libroot posix glibc ] ;
1505		local byteswapHeader = [ FDirName $(glibcDir) string byteswap.h ] ;
1506		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter
1507			: $(byteswapHeader) ;
1508		local bitByteswapHeader = [ FDirName
1509			$(glibcDir) include arch x86 bits byteswap.h ] ;
1510		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter bits
1511			: $(bitByteswapHeader) ;
1512
1513		# file containing firmware
1514		local broadcom43xxFile ;
1515		broadcom43xxFile = [ DownloadFile wl_apsta-3.130.20.0.o
1516			: http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o ] ;
1517		AddFilesToHaikuImage system data firmware broadcom43xx
1518			: $(broadcom43xxFile) ;
1519
1520		# marvell88w8335
1521		local marvelArchive = malo-firmware-1.4.tgz ;
1522		local marvelURL = http://www.nazgul.ch/malo/$(marvelArchive) ;
1523		local marvelFile = [ DownloadFile $(marvelArchive) : $(marvelURL) ] ;
1524		AddFilesToHaikuImage system data firmware marvell88w8335
1525			: $(marvelFile) ;
1526	}
1527}
1528
1529
1530# WonderBrush
1531if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
1532	if $(TARGET_ARCH) != x86 {
1533		Echo "No optional package WonderBrush available for $(TARGET_ARCH)" ;
1534	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1535		Echo "No optional package WonderBrush available for gcc4" ;
1536	} else {
1537		InstallOptionalHaikuImagePackage WonderBrush-2.1.2.zip
1538			: $(baseURL)/WonderBrush-2.1.2-x86-gcc2-2008-11-08.zip
1539			: apps
1540		;
1541		AddSymlinkToHaikuImage home config be Applications
1542			: /boot/apps/WonderBrush/WonderBrush ;
1543	}
1544}
1545
1546
1547# XZ-Utils
1548if [ IsOptionalHaikuImagePackageAdded XZ-Utils ] {
1549	if $(TARGET_ARCH) != x86 {
1550		Echo "No optional package XZ-Utils available for $(TARGET_ARCH)" ;
1551	} else {
1552		InstallOptionalHaikuImagePackage
1553			xz-utils-4.999.9-r1a2-x86-gcc4-2010-04-25-a.zip
1554			: $(baseURL)/xz-utils-4.999.9-r1a2-x86-gcc4-2010-04-25-a.zip
1555			:
1556			:
1557			: true
1558		;
1559		InstallSourceArchive xz-utils-4.999.9_haiku-2010-04-29.tar.xz
1560			: $(baseSourceURL)/xz-utils-4.999.9_haiku-2010-04-29.tar.xz ;
1561		AddExpanderRuleToHaikuImage "application/x-xz" : .tar.xz
1562			: "tar -Jtvf \\0045s"
1563			: "tar -Jxvf \\0045s"
1564		;
1565		AddExpanderRuleToHaikuImage "application/x-xz" : .txz
1566			: "tar -Jtvf \\0045s"
1567			: "tar -Jxvf \\0045s"
1568		;
1569		AddExpanderRuleToHaikuImage "application/x-xz" : .xz
1570			: "echo \\0045s | sed 's/.xz\\\$//g'"
1571			: "xz -df \\0045s"
1572		;
1573	}
1574}
1575
1576
1577# Yasm
1578if [ IsOptionalHaikuImagePackageAdded Yasm ] {
1579	if $(TARGET_ARCH) != x86 {
1580		Echo "No optional package Yasm available for $(TARGET_ARCH)" ;
1581	} else {
1582		InstallOptionalHaikuImagePackage
1583			yasm-0.8.0-r1a2-x86-gcc2-2010-04-21.zip
1584			: $(baseURL)/yasm-0.8.0-r1a2-x86-gcc2-2010-04-21.zip
1585			:
1586		;
1587		InstallSourceArchive yasm-0.8.0_haiku-2010-04-29.tar.xz
1588			: $(baseSourceURL)/yasm-0.8.0_haiku-2010-04-29.tar.xz ;
1589	}
1590}
1591