xref: /haiku/build/jam/OptionalPackages (revision 526e86ac79f9899c43e2def55f82754a5c449f8a)
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.66-x86-gcc2-2010-07-03.zip
430		: $(baseURL)/autoconf-2.66-x86-gcc2-2010-07-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-04-20-1.zip
466			: $(baseURL)/gcc-2.95.3-r1a2-x86-gcc2-2010-04-20-1.zip ;
467	}
468
469	if $(HAIKU_GCC_VERSION[1]) = 2 {
470		# symlink to the appropriate system/lib[/gcc2] folder
471		AddSymlinkToHaikuHybridImage
472			develop abi x86 gcc2 tools gcc-2.95.3-haiku-100420 lib
473			: /system/lib libstdc++.r4.so : : true ;
474	}
475
476	if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) {
477		InstallOptionalHaikuImagePackage gcc-4.3.3-r1a2-x86-gcc4-2010-04-25-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-devel
731if [ IsOptionalHaikuImagePackageAdded ICU-devel ] {
732	InstallOptionalHaikuImagePackage icu-devel-4.2-2010-01-26.zip
733		: $(baseURL)/icu-devel-4.2-2010-01-26.zip
734	;
735	local arch = $(TARGET_ARCH) ;
736	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
737	local libs = common data i18n ;
738	for lib in $(libs) {
739		lib = libicu-$(lib).so ;
740		local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ;
741		if $(abiVersion) {
742			local abiVersionedLib = $(lib).$(abiVersion) ;
743			AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
744				: /system/lib $(abiVersionedLib) : : true ;
745		}
746		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
747			: /system/lib $(lib) : : true ;
748	}
749}
750
751
752# KeymapSwitcher
753if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] {
754	if $(TARGET_ARCH) != x86 {
755		Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ;
756	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
757		InstallOptionalHaikuImagePackage
758			KeymapSwitcher-1.2.5-r1a2-x86-gcc4-2010-05-08.zip
759			: $(baseURL)/KeymapSwitcher-1.2.5-r1a2-x86-gcc4-2010-05-08.zip
760			:
761		;
762		AddSymlinkToHaikuImage home config be Desktop\ applets
763			: /boot/common/bin/KeymapSwitcher ;
764	} else {
765		InstallOptionalHaikuImagePackage
766			KeymapSwitcher-1.2.5-r1a2-x86-gcc2-2010-05-08.zip
767			: $(baseURL)/KeymapSwitcher-1.2.5-r1a2-x86-gcc2-2010-05-08.zip
768			:
769		;
770		AddSymlinkToHaikuImage home config be Desktop\ applets
771			: /boot/common/bin/KeymapSwitcher ;
772	}
773}
774
775
776# LibEvent
777if [ IsOptionalHaikuImagePackageAdded LibEvent ] {
778	if $(TARGET_ARCH) != x86 {
779		Echo "No optional package LibEvent available for $(TARGET_ARCH)" ;
780	} else {
781		if $(HAIKU_GCC_VERSION[1]) >= 4 {
782			InstallOptionalHaikuImagePackage
783				libevent-1.4.13-x86-gcc4-2010-05-06.zip
784				: $(baseURL)/libevent-1.4.13-x86-gcc4-2010-05-06.zip
785				:
786				: true
787			;
788			InstallSourceArchive libevent-1.4.13_haiku-2010-05-06.tar.xz
789				: $(baseSourceURL)/libevent-1.4.13_haiku-2010-05-06.tar.xz ;
790		} else if $(HAIKU_GCC_VERSION[1]) = 2 && $(isHybridBuild) {
791			InstallOptionalHaikuImagePackage
792				libevent-1.4.13-x86-gcc2h-2010-05-06.zip
793				: $(baseURL)/libevent-1.4.13-x86-gcc2h-2010-05-06.zip
794				:
795				: true
796			;
797			InstallSourceArchive libevent-1.4.13_haiku-2010-05-06.tar.xz
798				: $(baseSourceURL)/libevent-1.4.13_haiku-2010-05-06.tar.xz ;
799		} else {
800			Echo "No optional package LibEvent available for $(TARGET_ARCH)-gcc2" ;
801		}
802	}
803}
804
805
806# LibIconv
807if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
808	if $(TARGET_ARCH) != x86 {
809		Echo "No optional package LibIconv available for $(TARGET_ARCH)" ;
810	} else {
811		InstallOptionalHaikuImagePackage
812			libiconv-1.13.1-r1a2-x86-gcc2-2010-04-21-a.zip
813			: $(baseURL)/libiconv-1.13.1-r1a2-x86-gcc2-2010-04-21-a.zip
814			:
815			:
816			: true
817		;
818		InstallSourceArchive libiconv-1.13.1_haiku-2010-04-29.tar.xz
819			: $(baseSourceURL)/libiconv-1.13.1_haiku-2010-04-29.tar.xz ;
820	}
821}
822
823
824# LibLayout library
825if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
826	if $(TARGET_ARCH) != x86 {
827		Echo "No optional package LibLayout available for $(TARGET_ARCH)" ;
828	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
829		Echo "No optional package LibLayout available for gcc4" ;
830	} else {
831		InstallOptionalHaikuImagePackage liblayout-1.4.0-gcc2-2009-03-08.zip
832			: $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip
833			:
834		;
835	}
836}
837
838
839# LibXML2
840if [ IsOptionalHaikuImagePackageAdded LibXML2 ] {
841	if $(TARGET_ARCH) != x86 {
842		Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ;
843	} else {
844		InstallOptionalHaikuImagePackage
845			libxml2-2.7.7-r1a2-x86-gcc2-2010-04-22-a.zip
846			: $(baseURL)/libxml2-2.7.7-r1a2-x86-gcc2-2010-04-22-a.zip
847			:
848			:
849			: true
850		;
851		InstallSourceArchive libxml2-2.7.7_haiku-2010-04-29.tar.xz
852			: $(baseSourceURL)/libxml2-2.7.7_haiku-2010-04-29.tar.xz ;
853	}
854}
855
856
857# LibXSLT
858if [ IsOptionalHaikuImagePackageAdded LibXSLT ] {
859	if $(TARGET_ARCH) != x86 {
860		Echo "No optional package LibXSLT available for $(TARGET_ARCH)" ;
861	} else {
862		InstallOptionalHaikuImagePackage
863			libxslt-1.1.26-r1a2-x86-gcc2-2010-04-22-a.zip
864			: $(baseURL)/libxslt-1.1.26-r1a2-x86-gcc2-2010-04-22-a.zip
865			:
866			: true
867		;
868		InstallSourceArchive libxslt-1.1.26_haiku-2010-04-29.tar.xz
869			: $(baseSourceURL)/libxslt-1.1.26_haiku-2010-04-29.tar.xz ;
870	}
871}
872
873
874# Links web browser
875if [ IsOptionalHaikuImagePackageAdded Links ] {
876	if $(TARGET_ARCH) != x86 {
877		Echo "No optional package Links available for $(TARGET_ARCH)" ;
878	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
879		Echo "No optional package Links available for gcc4" ;
880	} else {
881		InstallOptionalHaikuImagePackage Links.zip
882			: $(baseURL)/links-x86-gcc2-2008-05-03.zip
883			:
884		;
885		AddSymlinkToHaikuImage home config be Applications
886			: /boot/home/config/bin/links ;
887	}
888}
889
890
891# MandatoryPackages
892if [ IsOptionalHaikuImagePackageAdded MandatoryPackages ] {
893	# Pseudo package for grouping packages, which are added to all images.
894}
895
896
897# Mercurial
898if [ IsOptionalHaikuImagePackageAdded Mercurial ] {
899	if $(TARGET_ARCH) != x86 {
900		Echo "No optional package Mercurial available for $(TARGET_ARCH)" ;
901	} else {
902		InstallOptionalHaikuImagePackage
903			mercurial-1.6-x86-gcc2-2010-07-01.zip
904			: $(baseURL)/mercurial-1.6-x86-gcc2-2010-07-01.zip
905			:
906			: true
907		;
908	}
909}
910
911
912# Nano
913if [ IsOptionalHaikuImagePackageAdded Nano ] {
914	if $(TARGET_ARCH) != x86 {
915		Echo "No optional package Nano available for $(TARGET_ARCH)" ;
916	} else {
917		InstallOptionalHaikuImagePackage
918			nano-2.2.3-r1a2-x86-gcc2-2010-04-22-a.zip
919			: $(baseURL)/nano-2.2.3-r1a2-x86-gcc2-2010-04-22-a.zip
920			:
921		;
922		InstallSourceArchive nano-2.2.3_haiku-2010-04-29.tar.xz
923			: $(baseSourceURL)/nano-2.2.3_haiku-2010-04-29.tar.xz ;
924	}
925}
926
927
928# Neon
929if [ IsOptionalHaikuImagePackageAdded Neon ] {
930	if $(TARGET_ARCH) != x86 {
931		Echo "No optional package Neon available for $(TARGET_ARCH)" ;
932	} else {
933		InstallOptionalHaikuImagePackage
934			neon-0.29.3-r1a2-x86-gcc2-2010-04-22-a.zip
935			: $(baseURL)/neon-0.29.3-r1a2-x86-gcc2-2010-04-22-a.zip
936			:
937			: true
938			: true
939		;
940		InstallSourceArchive neon-0.29.3_haiku-2010-04-29.tar.xz
941			: $(baseSourceURL)/neon-0.29.3_haiku-2010-04-29.tar.xz ;
942	}
943}
944
945
946# NetFS network file system
947if [ IsOptionalHaikuImagePackageAdded NetFS ] {
948	# userlandfs module
949	AddFilesToHaikuImage home config add-ons userlandfs : netfs ;
950
951	# servers
952	AddFilesToHaikuImage system servers : netfs_server ;
953	AddFilesToHaikuImage system servers : authentication_server ;
954
955	# tools
956	AddFilesToHaikuImage system bin : netfs_config ;
957	AddFilesToHaikuImage system bin : netfs_server_prefs ;
958
959	#example settings for netfs_server
960	local netfsServerSettingsFiles = <driver-settings>netfs-server ;
961	SEARCH on $(netfsServerSettingsFiles)
962		= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems netfs ] ;
963	AddFilesToHaikuImage home config settings kernel drivers
964	: $(netfsServerSettingsFiles) ;
965
966	#userlandfs settings are needed for netfs_config to work (ioctls)
967	local userlandfsServerSettingsFiles = <driver-settings>userlandfs ;
968	SEARCH on $(userlandfsServerSettingsFiles)
969		= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems userlandfs ] ;
970	AddFilesToHaikuImage home config settings kernel drivers
971	: $(userlandfsServerSettingsFiles) ;
972}
973
974
975# NetSurf web browser
976if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
977	if $(TARGET_ARCH) != x86 {
978		Echo "No optional package NetSurf available for $(TARGET_ARCH)" ;
979	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
980		Echo "No optional package NetSurf available for gcc4" ;
981	} else {
982		InstallOptionalHaikuImagePackage NetSurf-r9862b.zip
983			: $(baseURL)/NetSurf-r9862-x86-gcc2-2010-01-27.zip
984			:
985		;
986		AddSymlinkToHaikuImage home config be Applications
987			: /boot/apps/netsurf/NetSurf ;
988		InstallSourceArchive netsurf-r9862.7z
989			: http://haiku-files.org/files/sources/2010/netsurf-r9862.7z
990		;
991	}
992}
993
994
995# OCaml
996if [ IsOptionalHaikuImagePackageAdded OCaml ] {
997	if $(TARGET_ARCH) != x86 {
998		Echo "No optional package OCaml available for $(TARGET_ARCH)" ;
999	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1000		Echo "No optional package OCaml available for gcc4" ;
1001	} else {
1002		InstallOptionalHaikuImagePackage
1003			ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip
1004			: http://jerome.duval.free.fr/obos/ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip
1005			:
1006		;
1007		InstallOptionalHaikuImagePackage
1008			camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip
1009			: http://jerome.duval.free.fr/obos/camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip
1010			:
1011		;
1012	}
1013}
1014
1015
1016# OpenSound drivers
1017if [ IsOptionalHaikuImagePackageAdded OpenSound ] {
1018	if $(TARGET_ARCH) != x86 {
1019		Echo "No optional package OpenSound available for $(TARGET_ARCH)" ;
1020	} else {
1021		InstallOptionalHaikuImagePackage
1022			opensound-4.2-r1a2-x86-gcc2-2010-05-01.zip
1023			: $(baseURL)/opensound-4.2-r1a2-x86-gcc2-2010-05-01.zip
1024			:
1025		;
1026	}
1027	#ExtractArchiveToHaikuImage home : data/vv.mp3.zip : 0 ;
1028}
1029
1030
1031# OpenSSH
1032if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
1033	if $(TARGET_ARCH) != x86 {
1034		Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ;
1035	} else {
1036		if ! $(HAIKU_IMAGE_HOST_NAME) && ! $(HAIKU_IGNORE_USER_BUILD_CONFIG) {
1037			Exit "Optional package OpenSSH requires the HAIKU_IMAGE_HOST_NAME"
1038				"variable to be set!" ;
1039		}
1040		InstallOptionalHaikuImagePackage
1041			openssh-5.5p1-x86-gcc2-2010-05-26.zip
1042			: $(baseURL)/openssh-5.5p1-x86-gcc2-2010-05-26.zip
1043			:
1044		;
1045
1046		AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true
1047			: "sshd user" ;
1048	}
1049}
1050
1051
1052# OpenSSL
1053if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
1054	if $(TARGET_ARCH) != x86 {
1055		Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
1056	} else {
1057		InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
1058			: $(HAIKU_OPENSSL_URL)
1059			:
1060			:
1061			: true
1062		;
1063		InstallSourceArchive openssl-1.0.0_haiku-2010-04-29.tar.xz
1064			: $(baseSourceURL)/openssl-1.0.0_haiku-2010-04-29.tar.xz ;
1065	}
1066}
1067
1068
1069# P7zip
1070if [ IsOptionalHaikuImagePackageAdded P7zip ] {
1071	if $(TARGET_ARCH) != x86 {
1072		Echo "No optional package P7zip available for $(TARGET_ARCH)" ;
1073	} else {
1074		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1075			InstallOptionalHaikuImagePackage
1076				p7zip-9.04-r1a2-x86-gcc4-2010-05-06.zip
1077				: $(baseURL)/p7zip-9.04-r1a2-x86-gcc4-2010-05-06.zip
1078				:
1079			;
1080		} else {
1081			InstallOptionalHaikuImagePackage
1082				p7zip-9.04-r1a2-x86-gcc2-2010-05-06.zip
1083				: $(baseURL)/p7zip-9.04-r1a2-x86-gcc2-2010-05-06.zip
1084				:
1085			;
1086			InstallSourceArchive p7zip-9.04_haiku-2010-05-06.tar.xz
1087				: $(baseSourceURL)/p7zip-9.04_haiku-2010-05-06.tar.xz ;
1088		}
1089		AddExpanderRuleToHaikuImage "application/x-7z-compressed" : .7z
1090			: "7za l \\0045s"
1091			: "7za x -y \\0045s"
1092		;
1093
1094	}
1095}
1096
1097
1098# PCRE regex engine
1099if [ IsOptionalHaikuImagePackageAdded PCRE ] {
1100	if $(TARGET_ARCH) != x86 {
1101		Echo "No optional package PCRE available for $(TARGET_ARCH)" ;
1102	} else {
1103		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1104			InstallOptionalHaikuImagePackage pcre-7.9-x86-gcc4-2009-09-30.zip
1105				: $(baseURL)/pcre-7.9-x86-gcc4-2009-09-30.zip
1106			;
1107		} else {
1108			InstallOptionalHaikuImagePackage
1109				libpcre-8.02-r1a2-x86-gcc2-2010-04-28-a.zip
1110				: $(baseURL)/libpcre-8.02-r1a2-x86-gcc2-2010-04-28-a.zip
1111			;
1112		}
1113		InstallSourceArchive libpcre-8.02_haiku-2010-04-29.tar.xz
1114			: $(baseSourceURL)/libpcre-8.02_haiku-2010-04-29.tar.xz ;
1115	}
1116}
1117
1118
1119# Pe text editor
1120if [ IsOptionalHaikuImagePackageAdded Pe ] {
1121	if $(TARGET_ARCH) != x86 {
1122		Echo "No optional package Pe available for $(TARGET_ARCH)" ;
1123	} else {
1124		if $(HAIKU_GCC_VERSION[1]) >= 4 {
1125			InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc4-2009-08-04.zip
1126				: $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip
1127			;
1128		} else {
1129			InstallOptionalHaikuImagePackage
1130				Pe-2.4.2-r597-r1a2-x86-gcc2-2010-05-06.zip
1131				: $(baseURL)/Pe-2.4.2-r597-r1a2-x86-gcc2-2010-05-06.zip
1132			;
1133		}
1134
1135		AddSymlinkToHaikuImage home config be Applications
1136			: /boot/apps/Pe/Pe ;
1137		AddSymlinkToHaikuImage common bin
1138			: /boot/apps/Pe/lpe ;
1139	}
1140}
1141
1142
1143# Perl
1144if [ IsOptionalHaikuImagePackageAdded Perl ] {
1145	if $(TARGET_ARCH) != x86 {
1146		Echo "No optional package Perl available for $(TARGET_ARCH)" ;
1147	} else {
1148		InstallOptionalHaikuImagePackage
1149			perl-5.10.1-r1a2-x86-gcc2-2010-04-25-a.zip
1150			: $(baseURL)/perl-5.10.1-r1a2-x86-gcc2-2010-04-25-a.zip
1151			:
1152			: true
1153			: true
1154		;
1155		InstallSourceArchive perl-5.10.1_haiku-2010-04-29.tar.xz
1156			: $(baseSourceURL)/perl-5.10.1_haiku-2010-04-29.tar.xz ;
1157	}
1158}
1159
1160
1161# Python
1162if [ IsOptionalHaikuImagePackageAdded Python ] {
1163	if $(TARGET_ARCH) != x86 {
1164		Echo "No optional package Python available for $(TARGET_ARCH)" ;
1165	} else {
1166		InstallOptionalHaikuImagePackage
1167			python-2.6.5-x86-gcc2-2010-05-26.zip
1168			: $(baseURL)/python-2.6.5-x86-gcc2-2010-05-26.zip
1169			:
1170			: true
1171			: true
1172		;
1173	}
1174}
1175
1176
1177# Rsync
1178if [ IsOptionalHaikuImagePackageAdded Rsync ] {
1179	if $(TARGET_ARCH) != x86 {
1180		Echo "No optional package Rsync available for $(TARGET_ARCH)" ;
1181	} else {
1182		InstallOptionalHaikuImagePackage
1183			rsync-3.0.7-r1a2-x86-gcc2-2010-04-22-a.zip
1184			: $(baseURL)/rsync-3.0.7-r1a2-x86-gcc2-2010-04-22-a.zip
1185			:
1186		;
1187		InstallSourceArchive rsync-3.0.7_haiku-2010-04-29.tar.xz
1188			: $(baseSourceURL)/rsync-3.0.7_haiku-2010-04-29.tar.xz ;
1189	}
1190}
1191
1192
1193# Sed
1194if [ IsOptionalHaikuImagePackageAdded Sed ] {
1195	if $(TARGET_ARCH) != x86 {
1196		Echo "No optional package Sed available for $(TARGET_ARCH)" ;
1197	} else {
1198		InstallOptionalHaikuImagePackage
1199			sed-4.2.1-r1a2-x86-gcc2-2010-04-21-a.zip
1200			: $(baseURL)/sed-4.2.1-r1a2-x86-gcc2-2010-04-21-a.zip
1201			:
1202			:
1203		;
1204		InstallSourceArchive sed-4.2.1_haiku-2010-04-29.tar.xz
1205			: $(baseSourceURL)/sed-4.2.1_haiku-2010-04-29.tar.xz ;
1206	}
1207}
1208
1209
1210# SQLite
1211if [ IsOptionalHaikuImagePackageAdded SQLite ] {
1212	if $(TARGET_ARCH) != x86 {
1213		Echo "No optional package SQLite available for $(TARGET_ARCH)" ;
1214	} else {
1215		InstallOptionalHaikuImagePackage
1216			sqlite-3.6.23-r1a2-x86-gcc2-2010-04-22-a.zip
1217			: $(baseURL)/sqlite-3.6.23-r1a2-x86-gcc2-2010-04-22-a.zip
1218			:
1219			:
1220			: true
1221		;
1222		InstallSourceArchive sqlite-3.6.23_haiku-2010-04-29.tar.xz
1223			: $(baseSourceURL)/sqlite-3.6.23_haiku-2010-04-29.tar.xz ;
1224	}
1225}
1226
1227
1228# Subversion
1229if [ IsOptionalHaikuImagePackageAdded Subversion ] {
1230	if $(TARGET_ARCH) != x86 {
1231		Echo "No optional package Subversion available for $(TARGET_ARCH)" ;
1232	} else {
1233		InstallOptionalHaikuImagePackage
1234			subversion-1.6.9-r1a2-x86-gcc2-2010-04-28-a.zip
1235			: $(baseURL)/subversion-1.6.9-r1a2-x86-gcc2-2010-04-28-a.zip
1236			:
1237			: true
1238			: true
1239		;
1240		InstallSourceArchive subversion-1.6.9_haiku-2010-04-29.tar.xz
1241			: $(baseSourceURL)/subversion-1.6.9_haiku-2010-04-29.tar.xz ;
1242	}
1243}
1244
1245
1246# Tar
1247if [ IsOptionalHaikuImagePackageAdded Tar ] {
1248	if $(TARGET_ARCH) != x86 {
1249		Echo "No optional package Tar available for $(TARGET_ARCH)" ;
1250	} else {
1251		InstallOptionalHaikuImagePackage
1252			tar-1.22-r1a2-x86-gcc2-2010-04-22-a.zip
1253			: $(baseURL)/tar-1.22-r1a2-x86-gcc2-2010-04-22-a.zip
1254			:
1255		;
1256		InstallSourceArchive tar-1.22_haiku-2010-04-29.tar.xz
1257			: $(baseSourceURL)/tar-1.22_haiku-2010-04-29.tar.xz ;
1258	}
1259}
1260
1261
1262# TimGMSoundFont
1263if [ IsOptionalHaikuImagePackageAdded TimGMSoundFont ] {
1264	InstallOptionalHaikuImagePackage TimGMSoundFont-2010-06-16.zip
1265		: $(baseURL)/TimGMSoundFont-2010-06-16.zip
1266		:
1267	;
1268}
1269
1270
1271# TrackerNewTemplates
1272if [ IsOptionalHaikuImagePackageAdded TrackerNewTemplates ] {
1273	InstallOptionalHaikuImagePackage TrackerNewTemplates-2010-04-26.zip
1274		: $(baseURL)/TrackerNewTemplates-2010-04-26.zip
1275		: home config settings Tracker "Tracker New Templates"
1276	;
1277}
1278
1279
1280# Transmission
1281if [ IsOptionalHaikuImagePackageAdded Transmission ] {
1282	if $(TARGET_ARCH) != x86 {
1283		Echo "No optional package Transmission available for $(TARGET_ARCH)" ;
1284	} else {
1285		if $(HAIKU_GCC_VERSION[1]) >= 4 || $(isHybridBuild) {
1286			InstallOptionalHaikuImagePackage
1287				transmission-2.01-x86-gcc4-2010-07-10.zip
1288				: $(baseURL)/transmission-2.01-x86-gcc4-2010-07-10.zip
1289				:
1290				: true
1291			;
1292		} else {
1293			Echo "No optional package Transmission available for $(TARGET_ARCH)-gcc2" ;
1294		}
1295	}
1296}
1297
1298
1299# UserlandFS
1300if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
1301	local arch = $(TARGET_ARCH) ;
1302	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
1303
1304	# kernel module
1305	AddFilesToHaikuImage system add-ons kernel file_systems : userlandfs ;
1306
1307	# server
1308	AddFilesToHaikuImage system servers : userlandfs_server ;
1309
1310	# libs
1311	local userlandfsLibs =
1312		libuserlandfs_beos_kernel.so
1313		libuserlandfs_haiku_kernel.so
1314		libuserlandfs_fuse.so
1315	;
1316	AddFilesToHaikuHybridImage system lib : $(userlandfsLibs) : : true ;
1317
1318	# development goodies
1319	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
1320		if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
1321			Exit "Optional package UserlandFS: Unsupported GCC version:"
1322				$(HAIKU_GCC_VERSION[1]) ;
1323		}
1324
1325		# library symlinks
1326		local lib ;
1327		for lib in $(userlandfsLibs) {
1328			AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
1329				: /system/lib/$(lib:BS) ;
1330			AddSymlinkToAlternativeGCCArchive develop abi $(arch) $(abi) lib
1331				: /system/lib/$(arch)/$(lib:BS) ;
1332		}
1333
1334		# FUSE headers
1335		local fuseHeaders =
1336			fuse_common_compat.h
1337			fuse_common.h
1338			fuse_compat.h
1339			fuse.h
1340			fuse_lowlevel_compat.h
1341			fuse_lowlevel.h
1342			fuse_opt.h
1343		;
1344		fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
1345		SEARCH on $(fuseHeaders)
1346			= [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
1347		AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ;
1348	}
1349}
1350
1351
1352# Vim
1353if [ IsOptionalHaikuImagePackageAdded Vim ] {
1354	if $(TARGET_ARCH) != x86 {
1355		Echo "No optional package Vim available for $(TARGET_ARCH)" ;
1356	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1357		InstallOptionalHaikuImagePackage vim-7.2-r1a2-x86-gcc4-2010-05-07.zip
1358			:  $(baseURL)/vim-7.2-r1a2-x86-gcc4-2010-05-07.zip
1359			:
1360		;
1361		AddSymlinkToHaikuImage home config be Applications
1362			: /boot/common/bin/gvim ;
1363		# TODO: move this symlink to the archive
1364		AddSymlinkToHaikuImage common bin : vim : vi ;
1365	} else {
1366		InstallOptionalHaikuImagePackage vim-7.2-r1a2-x86-gcc2-2010-05-07.zip
1367			:  $(baseURL)/vim-7.2-r1a2-x86-gcc2-2010-05-07.zip
1368			:
1369		;
1370		AddSymlinkToHaikuImage home config be Applications
1371			: /boot/common/bin/gvim ;
1372		# TODO: move this symlink to the archive
1373		AddSymlinkToHaikuImage common bin : vim : vi ;
1374	}
1375}
1376
1377
1378# Vision
1379if [ IsOptionalHaikuImagePackageAdded Vision ] {
1380	if $(TARGET_ARCH) != x86 {
1381		Echo "No optional package Vision available for $(TARGET_ARCH)" ;
1382	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
1383		InstallOptionalHaikuImagePackage Vision-0.9.7-H-x86-gcc4-2010-05-22.zip
1384			: $(baseURL)/Vision-0.9.7-H-x86-gcc4-2010-05-22.zip
1385			:
1386		;
1387		AddSymlinkToHaikuImage home config be Applications
1388			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
1389	} else {
1390		InstallOptionalHaikuImagePackage Vision-0.9.7-H-x86-gcc2-2010-05-22.zip
1391			: $(baseURL)/Vision-0.9.7-H-x86-gcc2-2010-05-22.zip
1392			:
1393		;
1394		AddSymlinkToHaikuImage home config be Applications
1395			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
1396	}
1397}
1398
1399
1400# VLC media player
1401if [ IsOptionalHaikuImagePackageAdded VLC ] {
1402	if $(TARGET_ARCH) != x86 {
1403		Echo "No optional package VLC available for $(TARGET_ARCH)" ;
1404	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1405		Echo "No optional package VLC available for gcc4" ;
1406	} else {
1407		InstallOptionalHaikuImagePackage VLC-0.8.6d.zip
1408			: $(baseURL)/vlc-0.8.6d-gcc2-2009-04-18.zip
1409			: apps
1410		;
1411		AddSymlinkToHaikuImage home config be Applications
1412			: "/boot/apps/vlc-0.8.6d/VLC media player" ;
1413		AddSymlinkToHaikuImage common bin
1414			: "/boot/apps/vlc-0.8.6d/VLC media player" : vlc ;
1415	}
1416}
1417
1418
1419# WebPositive
1420if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
1421	if $(TARGET_ARCH) != x86 {
1422		Echo "No optional package WebPositive available for $(TARGET_ARCH)" ;
1423	} else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
1424		Echo "No optional package WebPositive available for gcc2" ;
1425	} else {
1426		InstallOptionalHaikuImagePackage
1427			WebPositive-gcc4-x86-r529-2010-07-09.zip
1428			: $(baseURL)/WebPositive-gcc4-x86-r529-2010-07-09.zip
1429			:
1430		;
1431		AddSymlinkToHaikuImage home config be Applications
1432			: /boot/apps/WebPositive/WebPositive ;
1433	}
1434}
1435
1436
1437# Welcome
1438if [ IsOptionalHaikuImagePackageAdded Welcome ] {
1439	CopyDirectoryToHaikuImage system documentation
1440		: [ FDirName $(HAIKU_TOP) docs welcome ]
1441		: welcome : -x .svn ;
1442	CopyDirectoryToHaikuImage system documentation
1443		: [ FDirName $(HAIKU_TOP) docs userguide ]
1444		: userguide : -x .svn ;
1445	AddSymlinkToHaikuImage home Desktop
1446		: /boot/system/documentation/welcome/welcome_en.html : Welcome ;
1447	AddSymlinkToHaikuImage home Desktop
1448		: /boot/system/documentation/userguide/en/contents.html : User\ Guide ;
1449}
1450
1451
1452# WifiFirmwareScriptData
1453# This optional package is for people who build their own images & have wifi
1454# hardware that requires install-wifi-firmwares.sh & have no active network
1455# connection. This is not to be added to default images.
1456if [ IsOptionalHaikuImagePackageAdded WifiFirmwareScriptData ] {
1457	if $(TARGET_ARCH) != x86 {
1458		Echo "No optional package WifiFirmwareScriptData available for"
1459			$(TARGET_ARCH) ;
1460	} else {
1461		# broadcom43xx
1462		# firmware cutter
1463		local broadcomFWCutterArchive = b43-fwcutter-012.tar.bz2 ;
1464		local broadcomFWCutterURL =
1465			http://bu3sch.de/b43/fwcutter/$(broadcomFWCutterArchive) ;
1466		local broadcomFWCutterFile = [ DownloadFile $(broadcomFWCutterArchive)
1467			: $(broadcomFWCutterURL) ] ;
1468		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter
1469			: $(broadcomFWCutterFile) ;
1470
1471		# headers needed to compile firmware cutter
1472		local glibcDir = [ FDirName
1473			$(HAIKU_TOP) src system libroot posix glibc ] ;
1474		local byteswapHeader = [ FDirName $(glibcDir) string byteswap.h ] ;
1475		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter
1476			: $(byteswapHeader) ;
1477		local bitByteswapHeader = [ FDirName
1478			$(glibcDir) include arch x86 bits byteswap.h ] ;
1479		AddFilesToHaikuImage system data firmware broadcom43xx b43-fwcutter bits
1480			: $(bitByteswapHeader) ;
1481
1482		# file containing firmware
1483		local broadcom43xxFile ;
1484		broadcom43xxFile = [ DownloadFile wl_apsta-3.130.20.0.o
1485			: http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o ] ;
1486		AddFilesToHaikuImage system data firmware broadcom43xx
1487			: $(broadcom43xxFile) ;
1488
1489		# marvell88w8335
1490		local marvelArchive = malo-firmware-1.4.tgz ;
1491		local marvelURL = http://www.nazgul.ch/malo/$(marvelArchive) ;
1492		local marvelFile = [ DownloadFile $(marvelArchive) : $(marvelURL) ] ;
1493		AddFilesToHaikuImage system data firmware marvell88w8335
1494			: $(marvelFile) ;
1495	}
1496}
1497
1498
1499# WonderBrush
1500if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
1501	if $(TARGET_ARCH) != x86 {
1502		Echo "No optional package WonderBrush available for $(TARGET_ARCH)" ;
1503	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
1504		Echo "No optional package WonderBrush available for gcc4" ;
1505	} else {
1506		InstallOptionalHaikuImagePackage WonderBrush-2.1.2.zip
1507			: $(baseURL)/WonderBrush-2.1.2-x86-gcc2-2008-11-08.zip
1508			: apps
1509		;
1510		AddSymlinkToHaikuImage home config be Applications
1511			: /boot/apps/WonderBrush/WonderBrush ;
1512	}
1513}
1514
1515
1516# XZ-Utils
1517if [ IsOptionalHaikuImagePackageAdded XZ-Utils ] {
1518	if $(TARGET_ARCH) != x86 {
1519		Echo "No optional package XZ-Utils available for $(TARGET_ARCH)" ;
1520	} else {
1521		InstallOptionalHaikuImagePackage
1522			xz-utils-4.999.9-r1a2-x86-gcc4-2010-04-25-a.zip
1523			: $(baseURL)/xz-utils-4.999.9-r1a2-x86-gcc4-2010-04-25-a.zip
1524			:
1525			:
1526			: true
1527		;
1528		InstallSourceArchive xz-utils-4.999.9_haiku-2010-04-29.tar.xz
1529			: $(baseSourceURL)/xz-utils-4.999.9_haiku-2010-04-29.tar.xz ;
1530		AddExpanderRuleToHaikuImage "application/x-xz" : .tar.xz
1531			: "tar -Jtvf \\0045s"
1532			: "tar -Jxvf \\0045s"
1533		;
1534		AddExpanderRuleToHaikuImage "application/x-xz" : .txz
1535			: "tar -Jtvf \\0045s"
1536			: "tar -Jxvf \\0045s"
1537		;
1538		AddExpanderRuleToHaikuImage "application/x-xz" : .xz
1539			: "echo \\0045s | sed 's/.xz\\\$//g'"
1540			: "xz -df \\0045s"
1541		;
1542	}
1543}
1544
1545
1546# Yasm
1547if [ IsOptionalHaikuImagePackageAdded Yasm ] {
1548	if $(TARGET_ARCH) != x86 {
1549		Echo "No optional package Yasm available for $(TARGET_ARCH)" ;
1550	} else {
1551		InstallOptionalHaikuImagePackage
1552			yasm-0.8.0-r1a2-x86-gcc2-2010-04-21.zip
1553			: $(baseURL)/yasm-0.8.0-r1a2-x86-gcc2-2010-04-21.zip
1554			:
1555		;
1556		InstallSourceArchive yasm-0.8.0_haiku-2010-04-29.tar.xz
1557			: $(baseSourceURL)/yasm-0.8.0_haiku-2010-04-29.tar.xz ;
1558	}
1559}
1560