xref: /haiku/build/jam/OptionalPackages (revision a1163de83ea633463a79de234b8742ee106531b2)
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 = 0 ;
9if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
10	isHybridBuild = 1 ;
11}
12
13
14# Available Optional Packages:
15#	APR
16#	APR-util
17#	Beam
18#	BeBook
19#	BeHappy
20#	BeOSCompatibility
21#	BePDF
22#	Bluetooth
23#	CDRecord
24#	CVS
25#	Development			- more complete dev environment (including autotools)
26#	DevelopmentBase		- basic development environment (gcc, headers, libs,...)
27#	DevelopmentMin		- development headers, libs, tools, from sources only
28#	Firefox
29#	KeymapSwitcher
30#	LibIconv
31#	LibLayout
32#	LibXML2
33#	Links
34#	Nano
35#	Neon
36#	NetSurf
37#	OpenSound
38#	OpenSSH
39#	OpenSSL
40#	P7zip
41#	Pe
42#	Perl
43#	Python
44#	Rsync
45#	SQLite
46#	Subversion
47#	Tar
48#	UserlandFS
49#	Vim
50#	Vision
51#	VLC
52#	Welcome
53#	WonderBrush
54#	Yasm
55
56
57# APR
58if [ IsOptionalHaikuImagePackageAdded APR ] {
59	if $(TARGET_ARCH) != x86 {
60		Echo "No optional package APR available for $(TARGET_ARCH)" ;
61	} else {
62		local baseURL = http://www.haiku-ports.de/packages/dev-libs/apr ;
63		InstallOptionalHaikuImagePackage apr-1.3.3-gcc2-haiku-2009-05-27
64			: $(baseURL)/apr-1.3.3-gcc2-haiku-2009-05-27.zip
65			:
66		;
67	}
68}
69
70
71# APR-util
72if [ IsOptionalHaikuImagePackageAdded APR-util ] {
73	if $(TARGET_ARCH) != x86 {
74		Echo "No optional package APR-util available for $(TARGET_ARCH)" ;
75	} else {
76		local baseURL = http://www.haiku-ports.de/packages/dev-libs/apr-util ;
77		InstallOptionalHaikuImagePackage apr-util-1.3.4-gcc2-haiku-2009-05-27
78			: $(baseURL)/apr-util-1.3.4-gcc2-haiku-2009-05-27.zip
79			:
80		;
81	}
82}
83
84
85# Beam
86if [ IsOptionalHaikuImagePackageAdded Beam ] {
87	if $(TARGET_ARCH) != x86 {
88		Echo "No optional package Beam available for $(TARGET_ARCH)" ;
89	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
90		Echo "No optional package Beam available for gcc4" ;
91	} else {
92		InstallOptionalHaikuImagePackage Beam
93#			: http://dl.hirschkaefer.de/beam/beam-1-1-2-bone-with-libs.zip
94			: http://dl.hirschkaefer.de/beam/beam-1-1-2-r5-with-libs.zip
95			: apps
96		;
97		AddSymlinkToHaikuImage home config be Applications
98#			: /boot/apps/beam-1-1-2-bone-with-libs/Beam ;
99			: /boot/apps/beam-1-1-2-r5-with-libs/Beam ;
100	}
101}
102
103
104# BeBook
105if [ IsOptionalHaikuImagePackageAdded BeBook ] {
106	InstallOptionalHaikuImagePackage bebook_20081026
107		: http://haiku-files.org/files/optional-packages/bebook_20081026.zip
108		: system documentation
109	;
110	AddSymlinkToHaikuImage home Desktop
111		: /boot/system/documentation/bebook/index.html : BeBook ;
112}
113
114
115# BeHappy
116if [ IsOptionalHaikuImagePackageAdded BeHappy ] {
117	if $(TARGET_ARCH) != x86 {
118		Echo "No optional package BeHappy available for $(TARGET_ARCH)" ;
119	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
120		Echo "No optional package BeHappy available for gcc4" ;
121	} else {
122		InstallOptionalHaikuImagePackage BeHappy
123			: http://revolf.free.fr/beos/behappy-bone.zip
124			:
125		;
126		AddSymlinkToHaikuImage home config be Applications
127			: /boot/apps/BeHappy/BeHappy ;
128	}
129}
130
131
132# BeOSCompatibility
133if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
134	if $(TARGET_ARCH) != x86 {
135		Echo "No optional package BeOSCompatibility available for $(TARGET_ARCH)" ;
136	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
137		Echo "No optional package BeOSCompatibility available for gcc4" ;
138	} else {
139		Echo "Warning: Adding BeOS compatibility symlinks. This will go away. Please fix your apps!" ;
140		AddSymlinkToHaikuImage beos : ../system/apps ;
141		AddSymlinkToHaikuImage beos : ../system/bin ;
142		AddSymlinkToHaikuImage beos : ../system/documentation ;
143		AddSymlinkToHaikuImage beos : ../system/etc ;
144		AddSymlinkToHaikuImage beos : ../system/preferences ;
145		AddSymlinkToHaikuImage beos : ../system ;
146	}
147}
148
149
150# BePDF
151if [ IsOptionalHaikuImagePackageAdded BePDF ] {
152	if $(TARGET_ARCH) != x86 {
153		Echo "No optional package BePDF available for $(TARGET_ARCH)" ;
154	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
155		Echo "No optional package BePDF available for gcc4" ;
156	} else {
157		InstallOptionalHaikuImagePackage BePDF-1.1.1b1.x86
158			: http://haiku-files.org/files/optional-packages/BePDF-1.1.1b1.x86.zip
159			: apps
160		;
161		AddSymlinkToHaikuImage home config be Applications
162			: /boot/apps/BePDF/BePDF ;
163	}
164}
165
166
167# Bluetooth stack
168if [ IsOptionalHaikuImagePackageAdded Bluetooth ] {
169	local bluetoothDrivers = h2generic ;
170	AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ;
171	AddFilesToHaikuImage system servers : bluetooth_server ;
172	AddFilesToHaikuImage system lib : libbluetooth.so ;
173	AddFilesToHaikuImage system add-ons kernel network devices : bluetooth ;
174	AddFilesToHaikuImage system add-ons kernel network protocols : l2cap ;
175	AddFilesToHaikuImage system add-ons kernel bluetooth : btCoreData ;
176	AddFilesToHaikuImage system preferences : Bluetooth ;
177	AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ;
178	AddSymlinkToHaikuImage home config be Preferences
179		: /boot/system/preferences/Bluetooth ;
180	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
181		&& $(HAIKU_GCC_VERSION[1]) in 2 4 {
182		local arch = $(TARGET_ARCH) ;
183		local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
184		AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
185			: /system/lib libbluetooth.so : : true ;
186	}
187}
188
189
190# CDRecord
191if [ IsOptionalHaikuImagePackageAdded CDRecord ] {
192	if $(TARGET_ARCH) != x86 {
193		Echo "No optional package CDRecord available for $(TARGET_ARCH)" ;
194	} else {
195		local baseURL = http://www.haiku-ports.de/packages ;
196		InstallOptionalHaikuImagePackage cdrecord-2.01.01a59-gcc2-haiku-2009-05-26
197			: $(baseURL)/app-cdr/cdrtools/cdrecord-2.01.01a59-gcc2-haiku-2009-05-26.zip
198			:
199		;
200	}
201}
202
203
204# CVS
205if [ IsOptionalHaikuImagePackageAdded CVS ] {
206	if $(TARGET_ARCH) != x86 {
207		Echo "No optional package CVS available for $(TARGET_ARCH)" ;
208	} else {
209		local baseURL = http://haiku-files.org/files/optional-packages ;
210		InstallOptionalHaikuImagePackage cvs-1.12.13-gcc2-2008-12-04
211			: $(baseURL)/cvs-1.12.13-gcc2-2008-12-04.zip
212			:
213		;
214	}
215}
216
217
218# Development
219if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 {
220	# autotools
221	local baseURL = http://haiku-files.org/files/optional-packages ;
222	InstallOptionalHaikuImagePackage autoconf-2.63-gcc2-2008-11-05
223		: $(baseURL)/autoconf-2.63-gcc2-2008-11-05.zip ;
224	InstallOptionalHaikuImagePackage automake-1.10.1-gcc2-2008-11-06
225		: $(baseURL)/automake-1.10.1-gcc2-2008-11-06.zip ;
226	InstallOptionalHaikuImagePackage libtool-2.2.6a-gcc2-2008-11-09
227		: $(baseURL)/libtool-2.2.6a-gcc2-2008-11-09.zip ;
228	InstallOptionalHaikuImagePackage texinfo-4.13a-gcc2-2008-11-09
229		: $(baseURL)/texinfo-4.13a-gcc2-2008-11-09.zip ;
230}
231
232
233# DevelopmentBase
234if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ]
235		&& $(TARGET_ARCH) = x86 {
236	# gcc and binutils
237	if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) {
238		local baseURL = http://haiku-files.org/files/optional-packages ;
239		InstallOptionalHaikuImagePackage gcc-2.95.3-haiku-081024-1
240			: $(baseURL)/gcc-2.95.3-haiku-081024-1.zip ;
241	}
242
243	if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) {
244		local baseURL = http://haiku-files.org/files/optional-packages ;
245		InstallOptionalHaikuImagePackage gcc-4.3.3-haiku-090313-1
246			: $(baseURL)/gcc-4.3.3-haiku-090313-1.zip ;
247
248		# symlink cpp to g++'s headers
249		AddSymlinkToHaikuImage develop abi x86 gcc4 headers
250			: ../tools/current/include/g++ : cpp ;
251	}
252
253	if $(HAIKU_GCC_VERSION[1]) = 4 {
254		# symlink to libstdc++.so
255		# TODO: This needs to be solved differently! I.e. the build system
256		# (configure) should already produce libstdc++.so.
257		AddSymlinkToHaikuImage system lib
258			: /boot/develop/abi/x86/gcc4/tools/current/lib/libstdc++.so ;
259		AddSymlinkToAlternativeGCCArchive system lib gcc4
260			: /boot/develop/abi/x86/gcc4/tools/current/lib/libstdc++.so ;
261	}
262
263	# other commonly used tools
264	local baseURL = http://haiku-files.org/files/optional-packages ;
265	InstallOptionalHaikuImagePackage bison-2.4-gcc2-2008-11-09
266		: $(baseURL)/bison-2.4-gcc2-2008-11-09.zip ;
267	InstallOptionalHaikuImagePackage m4-1.4.12-gcc2-2008-11-04
268		: $(baseURL)/m4-1.4.12-gcc2-2008-11-04.zip ;
269	local baseURL = http://www.haiku-ports.de/packages ;
270	InstallOptionalHaikuImagePackage flex-2.5.35-gcc2-haiku-2009-05-26
271		: $(baseURL)/sys-devel/flex/flex-2.5.35-gcc2-haiku-2009-05-26.zip ;
272	InstallOptionalHaikuImagePackage jam-gcc2-haiku-2009-05-26
273		: $(baseURL)/dev-util/jam/jam-gcc2-haiku-2009-05-26.zip ;
274
275}
276
277
278# DevelopmentMin
279if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 {
280	if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
281		Exit "Optional package DevelopmentMin: Unsupported GCC version:"
282			$(HAIKU_GCC_VERSION[1]) ;
283	}
284
285	local arch = $(TARGET_ARCH) ;
286	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
287	local abiDirTokens = develop abi $(arch) $(abi) ;
288
289	# glue code
290	AddFilesToHaikuHybridImage $(abiDirTokens) lib :
291		<src!system!glue!arch!$(arch)>crti.o
292		<src!system!glue!arch!$(arch)>crtn.o
293		<src!system!glue>init_term_dyn.o
294		<src!system!glue>start_dyn.o
295		<src!system!glue>haiku_version_glue.o
296	;
297
298	# kernel
299	AddFilesToHaikuHybridImage $(abiDirTokens) lib : kernel.so : _KERNEL_ ;
300
301	# library symlinks
302	local lib ;
303	for lib in $(SYSTEM_LIBS) libglut.so {
304		AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
305			: /system/lib $(lib:BS) : : true ;
306	}
307
308	# static libraries
309	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libncurses.a ;
310
311	# the POSIX error code mapper library
312	AddFilesToHaikuHybridImage $(abiDirTokens) lib : libposix_error_mapper.a ;
313
314	# symlinks for ABI abstraction
315	AddSymlinkToHaikuImage develop abi : $(arch)/$(abi) : current ;
316	AddSymlinkToHaikuImage develop lib : /boot/develop/abi/current/lib
317		: $(arch) ;
318	AddSymlinkToHaikuImage develop tools
319		: /boot/develop/abi/current/tools/current : gnupro ;
320	AddSymlinkToHaikuImage develop headers
321		: /boot/develop/abi/current/headers/cpp ;
322	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
323		: /boot/common/lib : common : true ;
324	AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
325		: /boot/home/config/lib : home : true ;
326
327	# ABI independent stuff
328
329	# scripts: cc and c++ wrapper, freetype-config, setgcc
330	local scripts = cc c++ freetype-config setgcc ;
331	SEARCH on $(scripts) = [ FDirName $(HAIKU_TOP) data bin ] ;
332	AddFilesToHaikuImage system bin : $(scripts) ;
333
334	# make and mkdepend build tool, which are part of the Haiku source tree
335	# TODO: Both should be removed from the tree, made download packages
336	# and moved to the DevelopmentBase package.
337	AddFilesToHaikuImage system bin : make mkdepend ;
338
339	# skeleton makefile and makefile-engine
340	local makefileEngineFiles =
341		<makefile-engine>makefile
342		<makefile-engine>makefile-engine
343	;
344	SEARCH on $(makefileEngineFiles)
345		= [ FDirName $(HAIKU_TOP) data develop ] ;
346	AddFilesToHaikuImage develop etc : $(makefileEngineFiles) ;
347
348	# headers
349	AddHeaderDirectoryToHaikuImage gnu : 3rdparty ;
350	AddHeaderDirectoryToHaikuImage os ;
351	AddHeaderDirectoryToHaikuImage posix ;
352
353	# add _G_config.h to posix/
354	SEARCH on <header>_G_config.h = [ FDirName $(HAIKU_TOP) headers glibc ] ;
355	AddFilesToHaikuImage develop headers posix : <header>_G_config.h ;
356
357	# create be -> os symlink for now
358	AddSymlinkToHaikuImage develop headers : os : be ;
359
360	# BSD compatibility headers
361	AddHeaderDirectoryToHaikuImage compatibility bsd : bsd ;
362
363	# third party libs headers
364	AddHeaderDirectoryToHaikuImage libs freetype2 : 3rdparty ;
365	AddHeaderDirectoryToHaikuImage libs iconv : 3rdparty ;
366	AddHeaderDirectoryToHaikuImage libs ncurses : 3rdparty ;
367	AddHeaderDirectoryToHaikuImage libs png : 3rdparty ;
368	AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ;
369
370	# cpp headers
371	if $(HAIKU_GCC_VERSION[1]) = 2 {
372		# GCC 2 only -- for GCC 4 they come with the DevelopmentBase package
373		CopyDirectoryToHaikuImage $(abiDirTokens) headers
374			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
375		CopyDirectoryToAlternativeGCCArchive $(abiDirTokens) headers
376			: [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
377	}
378}
379
380
381# Firefox web browser
382if [ IsOptionalHaikuImagePackageAdded Firefox ] {
383	if $(TARGET_ARCH) != x86 {
384		Echo "No optional package Firefox available for $(TARGET_ARCH)" ;
385	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
386		local baseURL = http://haiku-files.org/files/optional-packages ;
387		InstallOptionalHaikuImagePackage BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01
388			: $(baseURL)/BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01.zip
389 			: apps
390 		;
391 		AddSymlinkToHaikuImage home config be Applications
392			: /boot/apps/BeZillaBrowser/BeZillaBrowser ;
393
394
395	} else {
396		InstallOptionalHaikuImagePackage BeZillaBrowser-gcc2-20090218
397			: http://bezilla.beuser.de/builds/BeZillaBrowser-gcc2-20090218.zip
398 			: apps
399 		;
400 		AddSymlinkToHaikuImage home config be Applications
401			: /boot/apps/BeZillaBrowser/BeZillaBrowser ;
402	}
403}
404
405
406# KeymapSwitcher
407if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] {
408	if $(TARGET_ARCH) != x86 {
409		Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ;
410	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
411		local baseURL = http://downloads.sourceforge.net/dotmatrix4beos ;
412		InstallOptionalHaikuImagePackage KeymapSwitcher-gcc4-20090531
413			:  $(baseURL)/KeymapSwitcher-1.2.3-gcc4-2009-05-31.zip
414			:
415		;
416		AddSymlinkToHaikuImage home config be Desktop\ Applets
417			: /boot/common/bin/KeymapSwitcher ;
418	} else {
419		local baseURL = http://downloads.sourceforge.net/dotmatrix4beos ;
420		InstallOptionalHaikuImagePackage KeymapSwitcher-gcc2-20090531
421			:  $(baseURL)/KeymapSwitcher-1.2.3-gcc2-2009-05-31.zip
422			:
423		;
424		AddSymlinkToHaikuImage home config be Desktop\ Applets
425			: /boot/common/bin/KeymapSwitcher ;
426	}
427}
428
429
430# LibIconv
431if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
432	if $(TARGET_ARCH) != x86 {
433		Echo "No optional package LibIconv available for $(TARGET_ARCH)" ;
434	} else {
435		local baseURL = http://www.haiku-ports.de/packages/dev-libs/libiconv ;
436		InstallOptionalHaikuImagePackage libiconv-1.13-gcc2-haiku-2009-05-27
437			: $(baseURL)/libiconv-1.13-gcc2-haiku-2009-05-27.zip
438			:
439		;
440	}
441}
442
443
444# LibLayout library
445if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
446	if $(TARGET_ARCH) != x86 {
447		Echo "No optional package LibLayout available for $(TARGET_ARCH)" ;
448	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
449		Echo "No optional package LibLayout available for gcc4" ;
450	} else {
451		local baseURL = http://haiku-files.org/files/optional-packages ;
452		InstallOptionalHaikuImagePackage liblayout-1.4.0-gcc2-2009-03-08
453			: $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip
454			:
455		;
456	}
457}
458
459
460# LibXML2
461if [ IsOptionalHaikuImagePackageAdded LibXML2 ] {
462	if $(TARGET_ARCH) != x86 {
463		Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ;
464	} else {
465		local baseURL = http://www.haiku-ports.de/packages/dev-libs/libxml2 ;
466		InstallOptionalHaikuImagePackage libxml2-2.7.3-gcc2-haiku-2009-05-27
467			: $(baseURL)/libxml2-2.7.3-gcc2-haiku-2009-05-27.zip
468			:
469		;
470	}
471}
472
473
474# Links web browser
475if [ IsOptionalHaikuImagePackageAdded Links ] {
476	if $(TARGET_ARCH) != x86 {
477		Echo "No optional package Links available for $(TARGET_ARCH)" ;
478	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
479		Echo "No optional package Links available for gcc4" ;
480	} else {
481		InstallOptionalHaikuImagePackage Links
482			: http://revolf.free.fr/beos/links-beos-bin.zip
483			:
484		;
485		AddSymlinkToHaikuImage home config be Applications
486			: /boot/home/config/bin/links ;
487	}
488}
489
490
491# Nano
492if [ IsOptionalHaikuImagePackageAdded Nano ] {
493	if $(TARGET_ARCH) != x86 {
494		Echo "No optional package Nano available for $(TARGET_ARCH)" ;
495	} else {
496		local baseURL = http://www.haiku-ports.de/packages ;
497		InstallOptionalHaikuImagePackage nano-2.0.9-gcc2-haiku-2009-05-27
498			: $(baseURL)/app-editors/nano/nano-2.0.9-gcc2-haiku-2009-05-27.zip
499			:
500		;
501	}
502}
503
504
505# Neon
506if [ IsOptionalHaikuImagePackageAdded Neon ] {
507	if $(TARGET_ARCH) != x86 {
508		Echo "No optional package Neon available for $(TARGET_ARCH)" ;
509	} else {
510		local baseURL = http://www.haiku-ports.de/packages/net-misc/neon ;
511		InstallOptionalHaikuImagePackage neon-0.28.4-gcc2-haiku-2009-05-23
512			: $(baseURL)/neon-0.28.4-gcc2-haiku-2009-05-23.zip
513			:
514		;
515	}
516}
517
518
519# NetSurf web browser
520if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
521	if $(TARGET_ARCH) != x86 {
522		Echo "No optional package NetSurf available for $(TARGET_ARCH)" ;
523	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
524		Echo "No optional package NetSurf available for gcc4" ;
525	} else {
526		InstallOptionalHaikuImagePackage NetSurf
527			: http://haiku-files.org/files/optional-packages/NetSurf-r7117-x86-gcc2-2009-04-17.zip
528			:
529		;
530		AddSymlinkToHaikuImage home config be Applications
531			: /boot/apps/netsurf/NetSurf ;
532	}
533}
534
535
536# OpenSound drivers
537if [ IsOptionalHaikuImagePackageAdded OpenSound ] {
538	if $(TARGET_ARCH) != x86 {
539		Echo "No optional package OpenSound available for $(TARGET_ARCH)" ;
540	} else {
541		InstallOptionalHaikuImagePackage OpenSound
542			: http://www.yellowbites.com/downloads/OpenSound_Haiku20080621.zip
543			:
544		;
545	}
546	#UnzipArchiveToHaikuImage home : data/vv.mp3.zip : 0 ;
547}
548
549
550# OpenSSH
551if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
552	if $(TARGET_ARCH) != x86 {
553		Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ;
554	} else {
555		if ! $(HAIKU_IMAGE_HOST_NAME) && ! $(HAIKU_IGNORE_USER_BUILD_CONFIG) {
556			Exit "Optional package OpenSSH requires the HAIKU_IMAGE_HOST_NAME"
557				"variable to be set!" ;
558		}
559
560		local baseURL = http://www.haiku-ports.de/packages/net-misc/openssh ;
561		InstallOptionalHaikuImagePackage openssh-5.2p1-gcc2-haiku-2009-05-27
562			: $(baseURL)/openssh-5.2p1-gcc2-haiku-2009-05-27.zip
563			:
564		;
565
566		AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true
567			: "sshd user" ;
568	}
569}
570
571
572# OpenSSL
573if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
574	if $(TARGET_ARCH) != x86 {
575		Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
576	} else {
577		InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
578			: $(HAIKU_OPENSSL_URL)
579			:
580		;
581	}
582}
583
584
585# P7zip
586if [ IsOptionalHaikuImagePackageAdded P7zip ] {
587	if $(TARGET_ARCH) != x86 {
588		Echo "No optional package P7zip available for $(TARGET_ARCH)" ;
589	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
590		Echo "No optional package P7zip available for gcc4" ;
591	} else {
592		local baseURL = http://www.haiku-ports.de/packages/app-arch/p7zip ;
593		InstallOptionalHaikuImagePackage p7zip-4.65-gcc2-haiku-2009-05-24
594			: $(baseURL)/p7zip-4.65-gcc2-haiku-2009-05-24.zip
595			:
596		;
597
598		actions BuildHaikuImageExpanderRules
599		{
600			echo "\"application/x-7z-compressed\"\t.7z\t\"7za l \0045s\"\t\"7za x -y \0045s\"" > $(1)
601		}
602
603		Always expander.rules ;
604		MakeLocate expander.rules : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ;
605		BuildHaikuImageExpanderRules expander.rules ;
606		AddFilesToHaikuImage home config etc : expander.rules ;
607	}
608}
609
610
611# Pe text editor
612if [ IsOptionalHaikuImagePackageAdded Pe ] {
613	if $(TARGET_ARCH) != x86 {
614		Echo "No optional package Pe available for $(TARGET_ARCH)" ;
615	} else {
616		local baseURL = http://haiku-files.org/files/optional-packages ;
617		if $(HAIKU_GCC_VERSION[1]) >= 4 {
618			InstallOptionalHaikuImagePackage pe-2.4.1-x86-rc3-gcc4-2009-03-27
619				: $(baseURL)/pe-2.4.1-x86-rc3-gcc4-2009-03-27.zip
620				: apps
621			;
622		} else {
623			InstallOptionalHaikuImagePackage pe-2.4.2-x86-gcc2-2009-04-14
624				: $(baseURL)/pe-2.4.2-x86-gcc2-2009-04-14.zip
625				: apps
626			;
627		}
628
629		AddSymlinkToHaikuImage home config be Applications
630			: /boot/apps/Pe/Pe ;
631		AddSymlinkToHaikuImage common bin
632			: /boot/apps/Pe/lpe ;
633	}
634}
635
636
637# Perl
638if [ IsOptionalHaikuImagePackageAdded Perl ] {
639	if $(TARGET_ARCH) != x86 {
640		Echo "No optional package Perl available for $(TARGET_ARCH)" ;
641	} else {
642		local baseURL = http://haiku-files.org/files/optional-packages ;
643		InstallOptionalHaikuImagePackage perl-5.10.0-gcc2-2008-10-29
644			: $(baseURL)/perl-5.10.0-gcc2-2008-10-29.zip
645			:
646		;
647	}
648}
649
650
651# Python
652if [ IsOptionalHaikuImagePackageAdded Python ] {
653	if $(TARGET_ARCH) != x86 {
654		Echo "No optional package Python available for $(TARGET_ARCH)" ;
655	} else {
656		local baseURL = http://www.haiku-ports.de/packages/dev-lang/python ;
657		InstallOptionalHaikuImagePackage python-2.6.2-gcc2-haiku-2009-05-27
658			: $(baseURL)/python-2.6.2-gcc2-haiku-2009-05-27.zip
659			:
660		;
661	}
662}
663
664
665# SQLite
666if [ IsOptionalHaikuImagePackageAdded SQLite ] {
667	if $(TARGET_ARCH) != x86 {
668		Echo "No optional package SQLite available for $(TARGET_ARCH)" ;
669	} else {
670		local baseURL = http://www.haiku-ports.de/packages/dev-db/sqlite ;
671		InstallOptionalHaikuImagePackage sqlite-3.6.14-gcc2-haiku-2009-05-10
672			: $(baseURL)/sqlite-3.6.14-gcc2-haiku-2009-05-10.zip
673			:
674		;
675	}
676}
677
678
679# Rsync
680if [ IsOptionalHaikuImagePackageAdded Rsync ] {
681	if $(TARGET_ARCH) != x86 {
682		Echo "No optional package Rsync available for $(TARGET_ARCH)" ;
683	} else {
684		local baseURL = http://dl.hirschkaefer.de/haiku ;
685		InstallOptionalHaikuImagePackage rsync-3.0.6-gcc2-haiku-2009-05-26
686			: $(baseURL)/rsync-3.0.6-gcc2-haiku-2009-05-26.zip
687			:
688		;
689	}
690}
691
692
693# Subversion
694if [ IsOptionalHaikuImagePackageAdded Subversion ] {
695	if $(TARGET_ARCH) != x86 {
696		Echo "No optional package Subversion available for $(TARGET_ARCH)" ;
697	} else {
698		local baseURL = http://www.haiku-ports.de/packages/dev-util/subversion ;
699		InstallOptionalHaikuImagePackage subversion-1.6.2-gcc2-haiku-2009-05-20
700			: $(baseURL)/subversion-1.6.2-gcc2-haiku-2009-05-20.zip
701			:
702		;
703	}
704}
705
706
707# Tar
708if [ IsOptionalHaikuImagePackageAdded Tar ] {
709        if $(TARGET_ARCH) != x86 {
710                Echo "No optional package Tar available for $(TARGET_ARCH)" ;
711        } else {
712		local baseURL = http://haiku-files.org/files/optional-packages ;
713                InstallOptionalHaikuImagePackage tar-1.21-gcc2-2009-02-08
714                        : $(baseURL)/tar-1.21-gcc2-2009-02-08.zip
715                        :
716                ;
717        }
718}
719
720
721# UserlandFS
722if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
723	local arch = $(TARGET_ARCH) ;
724	local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
725
726	# kernel module
727	AddFilesToHaikuImage system add-ons kernel file_systems : userlandfs ;
728
729	# server
730	AddFilesToHaikuImage system servers : userlandfs_server ;
731
732	# libs
733	local userlandfsLibs =
734		libuserlandfs_beos_kernel.so
735		libuserlandfs_haiku_kernel.so
736		libuserlandfs_fuse.so
737	;
738	AddFilesToHaikuHybridImage system lib : $(userlandfsLibs) : : true ;
739
740	# development goodies
741	if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
742		if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) {
743			Exit "Optional package UserlandFS: Unsupported GCC version:"
744				$(HAIKU_GCC_VERSION[1]) ;
745		}
746
747		# library symlinks
748		local lib ;
749		for lib in $(userlandfsLibs) {
750			AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
751				: /system/lib/$(lib:BS) ;
752			AddSymlinkToAlternativeGCCArchive develop abi $(arch) $(abi) lib
753				: /system/lib/$(arch)/$(lib:BS) ;
754		}
755
756		# FUSE headers
757		local fuseHeaders =
758			fuse_common_compat.h
759			fuse_common.h
760			fuse_compat.h
761			fuse.h
762			fuse_lowlevel_compat.h
763			fuse_lowlevel.h
764			fuse_opt.h
765		;
766		fuseHeaders = $(fuseHeaders:G=userlandfs!fuse) ;
767		SEARCH on $(fuseHeaders)
768			= [ FDirName $(HAIKU_TOP) headers private userlandfs fuse ] ;
769		AddFilesToHaikuImage develop headers userlandfs fuse : $(fuseHeaders) ;
770	}
771}
772
773
774# Vim
775if [ IsOptionalHaikuImagePackageAdded Vim ] {
776	if $(TARGET_ARCH) != x86 {
777		Echo "No optional package Vim available for $(TARGET_ARCH)" ;
778	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
779		local baseURL = http://haiku-ports.de/packages/app-editors/vim ;
780		InstallOptionalHaikuImagePackage vim-7.2-gcc4-20090531
781			:  $(baseURL)/vim-7.2-gcc4-haiku-2009-05-31.zip
782			:
783		;
784		AddSymlinkToHaikuImage home config be Applications
785			: /boot/common/bin/gvim ;
786	} else {
787		local baseURL = http://haiku-ports.de/packages/app-editors/vim ;
788		InstallOptionalHaikuImagePackage vim-7.2-gcc2-20090531
789			:  $(baseURL)/vim-7.2-gcc2-haiku-2009-05-31.zip
790			:
791		;
792		AddSymlinkToHaikuImage home config be Applications
793			: /boot/common/bin/gvim ;
794	}
795}
796
797
798# Vision
799if [ IsOptionalHaikuImagePackageAdded Vision ] {
800	if $(TARGET_ARCH) != x86 {
801		Echo "No optional package Vision available for $(TARGET_ARCH)" ;
802	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
803		InstallOptionalHaikuImagePackage Vision-0.9.7-H-090423-gcc4
804			: http://vision.sf.net/Vision-0.9.7-H-090423-gcc4.zip
805			: apps
806		;
807		AddSymlinkToHaikuImage home config be Applications
808			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
809	} else {
810		InstallOptionalHaikuImagePackage Vision-0.9.7-H-090423
811			: http://vision.sf.net/Vision-0.9.7-H-090423.zip
812			: apps
813		;
814		AddSymlinkToHaikuImage home config be Applications
815			: /boot/apps/Vision-0.9.7-H-090423/Vision ;
816	}
817}
818
819
820# VLC media player
821if [ IsOptionalHaikuImagePackageAdded VLC ] {
822	if $(TARGET_ARCH) != x86 {
823		Echo "No optional package VLC available for $(TARGET_ARCH)" ;
824	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
825		Echo "No optional package VLC available for gcc4" ;
826	} else {
827		local baseURL = http://haiku-files.org/files/optional-packages ;
828		InstallOptionalHaikuImagePackage VLC-0.8.6d
829			: $(baseURL)/vlc-0.8.6d-gcc2-2009-04-18.zip
830			: apps
831		;
832		AddSymlinkToHaikuImage home config be Applications
833			: "/boot/apps/vlc-0.8.6d/VLC media player" ;
834		AddSymlinkToHaikuImage common bin
835			: "/boot/apps/vlc-0.8.6d/VLC media player" : vlc ;
836	}
837}
838
839
840# Welcome
841if [ IsOptionalHaikuImagePackageAdded Welcome ] {
842	CopyDirectoryToHaikuImage system documentation
843		: [ FDirName $(HAIKU_TOP) docs welcome ]
844		: welcome : -x .svn ;
845	CopyDirectoryToHaikuImage system documentation
846		: [ FDirName $(HAIKU_TOP) docs userguide ]
847		: userguide : -x .svn ;
848	AddFilesToHaikuImage system documentation
849		: [ FDirName $(HAIKU_TOP) docs Haiku-doc.css ]
850		: Haiku-doc.css ;
851	AddSymlinkToHaikuImage home Desktop
852		: /boot/system/documentation/welcome/welcome.html : Welcome ;
853}
854
855
856# WonderBrush
857if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
858	if $(TARGET_ARCH) != x86 {
859		Echo "No optional package WonderBrush available for $(TARGET_ARCH)" ;
860	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
861		Echo "No optional package WonderBrush available for gcc4" ;
862	} else {
863		local baseURL = http://www.yellowbites.com/downloads ;
864		InstallOptionalHaikuImagePackage WonderBrush-2.1.2-Haiku
865			: $(baseURL)/WonderBrush-2.1.2-gcc2-x86-Haiku.zip
866			: apps
867		;
868		AddSymlinkToHaikuImage home config be Applications
869			: /boot/apps/WonderBrush/WonderBrush ;
870	}
871}
872
873
874# Yasm
875if [ IsOptionalHaikuImagePackageAdded Yasm ] {
876	if $(TARGET_ARCH) != x86 {
877		Echo "No optional package Yasm available for $(TARGET_ARCH)" ;
878	} else {
879		local baseURL = http://haiku-files.org/files/optional-packages ;
880		InstallOptionalHaikuImagePackage yasm-0.8.0-gcc2-2009-04-19
881			: $(baseURL)/yasm-0.8.0-gcc2-haiku-2009-04-19.zip
882			:
883		;
884	}
885}
886