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