xref: /haiku/build/jam/OptionalPackages (revision a4ef4a49150f118d47324242917a596a3f8f8bd5)
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#	BePDF
21#	Bluetooth
22#	CVS
23#	Development
24#	Firefox
25#	Links
26#	NetSurf
27#	OpenSound
28#	OpenSSH
29#	OpenSSL
30#	P7zip
31#	Pe
32#	Perl
33#	Subversion
34#	Vision
35#	VLC
36#	Welcome
37#	WonderBrush
38#	Yasm
39
40
41# package dependencies
42OptionalPackageDependencies APR-util : APR ;
43OptionalPackageDependencies BeHappy : BeBook NetSurf ;
44OptionalPackageDependencies Development : Perl ;
45OptionalPackageDependencies NetSurf : OpenSSL ;
46OptionalPackageDependencies OpenSSH : OpenSSL ;
47OptionalPackageDependencies Subversion : OpenSSL ;
48
49
50# APR
51if [ IsOptionalHaikuImagePackageAdded APR ] {
52	if $(TARGET_ARCH) != x86 {
53		Echo "No optional package APR available for $(TARGET_ARCH)" ;
54	} else {
55		local baseURL = http://haiku-files.org/files/optional-packages ;
56		InstallOptionalHaikuImagePackage apr-0.9.17-gcc2-2008-05-20
57			: $(baseURL)/apr-0.9.17-gcc2-2008-05-20.zip
58			:
59		;
60	}
61}
62
63
64# APR-util
65if [ IsOptionalHaikuImagePackageAdded APR-util ] {
66	if $(TARGET_ARCH) != x86 {
67		Echo "No optional package APR-util available for $(TARGET_ARCH)" ;
68	} else {
69		local baseURL = http://haiku-files.org/files/optional-packages ;
70		InstallOptionalHaikuImagePackage apr-util-0.9.15-gcc2-2008-05-15
71			: $(baseURL)/apr-util-0.9.15-gcc2-2008-05-15.zip
72			:
73		;
74	}
75}
76
77
78# Beam
79if [ IsOptionalHaikuImagePackageAdded Beam ] {
80	if $(TARGET_ARCH) != x86 {
81		Echo "No optional package Beam available for $(TARGET_ARCH)" ;
82	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
83		Echo "No optional package Beam available for gcc4" ;
84	} else {
85		InstallOptionalHaikuImagePackage Beam
86#			: http://dl.hirschkaefer.de/beam/beam-1-1-2-bone-with-libs.zip
87			: http://dl.hirschkaefer.de/beam/beam-1-1-2-r5-with-libs.zip
88			: apps
89		;
90		AddSymlinkToHaikuImage home config be Applications
91#			: /boot/apps/beam-1-1-2-bone-with-libs/Beam ;
92			: /boot/apps/beam-1-1-2-r5-with-libs/Beam ;
93	}
94}
95
96
97# BeBook
98if [ IsOptionalHaikuImagePackageAdded BeBook ] {
99	InstallOptionalHaikuImagePackage bebook_20081026
100		: http://haiku-files.org/files/optional-packages/bebook_20081026.zip
101		: beos documentation
102	;
103	AddSymlinkToHaikuImage home Desktop
104		: /boot/beos/documentation/bebook/index.html : BeBook ;
105}
106
107
108# BeHappy
109if [ IsOptionalHaikuImagePackageAdded BeHappy ] {
110	if $(TARGET_ARCH) != x86 {
111		Echo "No optional package BeHappy available for $(TARGET_ARCH)" ;
112	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
113		Echo "No optional package BeHappy available for gcc4" ;
114	} else {
115		InstallOptionalHaikuImagePackage BeHappy
116			: http://revolf.free.fr/beos/behappy-bone.zip
117			:
118		;
119		AddSymlinkToHaikuImage home config be Applications
120			: /boot/apps/BeHappy/BeHappy ;
121	}
122}
123
124
125# BePDF
126if [ IsOptionalHaikuImagePackageAdded BePDF ] {
127	if $(TARGET_ARCH) != x86 {
128		Echo "No optional package BePDF available for $(TARGET_ARCH)" ;
129	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
130		Echo "No optional package BePDF available for gcc4" ;
131	} else {
132		InstallOptionalHaikuImagePackage BePDF-1.1.0b1.x86
133			: http://haiku-files.org/files/optional-packages/BePDF-1.1.0b1.x86.zip
134			: apps
135		;
136		AddSymlinkToHaikuImage home config be Applications
137			: /boot/apps/BePDF/BePDF ;
138	}
139}
140
141
142# Bluetooth stack
143if [ IsOptionalHaikuImagePackageAdded Bluetooth ] {
144	local bluetoothDrivers = h2generic ;
145	AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ;
146	AddFilesToHaikuImage beos system servers : bluetooth_server ;
147	AddFilesToHaikuImage beos system lib : libbluetooth.so ;
148	AddFilesToHaikuImage beos bin : bt_dev_info bt_discovery ;
149
150	if [ IsOptionalHaikuImagePackageAdded Development ] {
151		AddSymlinkToHaikuImage develop lib x86 : /system/lib/libbluetooth.so ;
152	}
153}
154
155
156# CVS
157if [ IsOptionalHaikuImagePackageAdded CVS ] {
158	if $(TARGET_ARCH) != x86 {
159		Echo "No optional package CVS available for $(TARGET_ARCH)" ;
160	} else {
161		local baseURL = http://haiku-files.org/files/optional-packages ;
162		InstallOptionalHaikuImagePackage cvs-1.12.13-gcc2-2008-12-04
163			: $(baseURL)/cvs-1.12.13-gcc2-2008-12-04.zip
164			:
165		;
166	}
167}
168
169
170# Development
171if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 {
172	# glue code
173	AddFilesToHaikuImage develop lib x86
174		: <src!system!glue!arch!x86>crti.o <src!system!glue!arch!x86>crtn.o
175		  <src!system!glue>init_term_dyn.o <src!system!glue>start_dyn.o ;
176
177	# kernel
178	AddFilesToHaikuImage develop lib x86 : kernel.so : _KERNEL_ ;
179
180	# library symlinks
181	local lib ;
182	for lib in $(BEOS_SYSTEM_LIBS) libglut.so {
183		AddSymlinkToHaikuImage develop lib x86 : /system/lib/$(lib:BS) ;
184	}
185
186	# static libraries
187	AddFilesToHaikuImage develop lib x86 : libncurses.a ;
188
189	# cc and c++ wrapper scripts
190	AddFilesToHaikuImage beos bin : cc c++ ;
191
192	# headers
193	AddHeaderDirectoryToHaikuImage gnu : 3rdparty ;
194	AddHeaderDirectoryToHaikuImage os ;
195	AddHeaderDirectoryToHaikuImage posix ;
196
197	# add _G_config.h to posix/
198	SEARCH on <header>_G_config.h = [ FDirName $(HAIKU_TOP) headers glibc ] ;
199	AddFilesToHaikuImage develop headers posix : <header>_G_config.h ;
200
201	# create be -> os symlink for now
202	AddSymlinkToHaikuImage develop headers : os : be ;
203
204	# BSD compatibility headers
205	AddHeaderDirectoryToHaikuImage compatibility bsd : bsd ;
206
207	# third party libs headers
208	AddHeaderDirectoryToHaikuImage libs freetype2 : 3rdparty ;
209	AddHeaderDirectoryToHaikuImage libs iconv : 3rdparty ;
210	AddHeaderDirectoryToHaikuImage libs ncurses : 3rdparty ;
211	AddHeaderDirectoryToHaikuImage libs png : 3rdparty ;
212	AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ;
213
214	if $(HAIKU_GCC_VERSION[1]) > 2 {
215		# gcc 4
216
217		# symlink cpp to g++'s headers
218		AddSymlinkToHaikuImage develop headers
219			: /boot/develop/tools/gnupro/include/g++ : cpp ;
220	} else {
221		# gcc 2.95.3
222
223		AddHeaderDirectoryToHaikuImage cpp ;
224	}
225
226	if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) = 1 {
227		# gcc and binutils
228		local baseURL = http://haiku-files.org/files/optional-packages ;
229		InstallOptionalHaikuImagePackage gcc-2.95.3-haiku-081024
230			: $(baseURL)/gcc-2.95.3-haiku-081024.zip
231			:
232		;
233		# other tools
234		InstallOptionalHaikuImagePackage autoconf-2.63-gcc2-2008-11-05
235			: $(baseURL)/autoconf-2.63-gcc2-2008-11-05.zip
236			:
237		;
238		InstallOptionalHaikuImagePackage automake-1.10.1-gcc2-2008-11-06
239			: $(baseURL)/automake-1.10.1-gcc2-2008-11-06.zip
240			:
241		;
242		InstallOptionalHaikuImagePackage bison-2.4-gcc2-2008-11-09
243			: $(baseURL)/bison-2.4-gcc2-2008-11-09.zip
244			:
245		;
246		InstallOptionalHaikuImagePackage flex-2.5.35-gcc2-2008-11-09
247			: $(baseURL)/flex-2.5.35-gcc2-2008-11-09.zip
248			:
249		;
250		InstallOptionalHaikuImagePackage jam-haiku-gcc2-2008-03-27-2
251			: $(baseURL)/jam-haiku-gcc2-2008-03-27-2.zip
252			:
253		;
254		InstallOptionalHaikuImagePackage libtool-2.2.6a-gcc2-2008-11-09
255			: $(baseURL)/libtool-2.2.6a-gcc2-2008-11-09.zip
256			:
257		;
258		InstallOptionalHaikuImagePackage m4-1.4.12-gcc2-2008-11-04
259			: $(baseURL)/m4-1.4.12-gcc2-2008-11-04.zip
260			:
261		;
262		InstallOptionalHaikuImagePackage texinfo-4.13a-gcc2-2008-11-09
263			: $(baseURL)/texinfo-4.13a-gcc2-2008-11-09.zip
264			:
265		;
266	}
267}
268
269
270# Firefox web browser
271if [ IsOptionalHaikuImagePackageAdded Firefox ] {
272	if $(TARGET_ARCH) != x86 {
273		Echo "No optional package Firefox available for $(TARGET_ARCH)" ;
274	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
275		Echo "No optional package Firefox available for gcc4" ;
276	} else {
277 		InstallOptionalHaikuImagePackage Firefox-2.0.0.17
278			: http://www.yellowbites.com/downloads/Firefox-2.0.0.17.zip
279 			: apps
280 		;
281 		AddSymlinkToHaikuImage home config be Applications
282			: /boot/apps/Firefox/Firefox ;
283	}
284}
285
286
287# Links web browser
288if [ IsOptionalHaikuImagePackageAdded Links ] {
289	if $(TARGET_ARCH) != x86 {
290		Echo "No optional package Links available for $(TARGET_ARCH)" ;
291	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
292		Echo "No optional package Links available for gcc4" ;
293	} else {
294		InstallOptionalHaikuImagePackage Links
295			: http://revolf.free.fr/beos/links-beos-bin.zip
296			:
297		;
298		AddSymlinkToHaikuImage home config be Applications
299			: /boot/home/config/bin/links ;
300	}
301}
302
303
304# NetSurf web browser
305if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
306	if $(TARGET_ARCH) != x86 {
307		Echo "No optional package NetSurf available for $(TARGET_ARCH)" ;
308	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
309		Echo "No optional package NetSurf available for gcc4" ;
310	} else {
311		InstallOptionalHaikuImagePackage NetSurf
312			: http://revolf.free.fr/beos/netsurf-bone.zip
313			:
314		;
315		AddSymlinkToHaikuImage home config be Applications
316			: /boot/apps/netsurf/NetSurf ;
317	}
318}
319
320
321# OpenSound drivers
322if [ IsOptionalHaikuImagePackageAdded OpenSound ] {
323	if $(TARGET_ARCH) != x86 {
324		Echo "No optional package OpenSound available for $(TARGET_ARCH)" ;
325	} else {
326		InstallOptionalHaikuImagePackage OpenSound
327			: http://www.yellowbites.com/downloads/OpenSound_Haiku20080621.zip
328			:
329		;
330	}
331	#UnzipArchiveToHaikuImage home : data/vv.mp3.zip : 0 ;
332}
333
334
335# OpenSSH
336if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
337	if $(TARGET_ARCH) != x86 {
338		Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ;
339	} else {
340		if ! $(HAIKU_IMAGE_HOST_NAME) {
341			Exit "Optional package OpenSSH requires the HAIKU_IMAGE_HOST_NAME"
342				"variable to be set!" ;
343		}
344
345		local baseURL = http://haiku-files.org/files/optional-packages ;
346		InstallOptionalHaikuImagePackage openssh-5.0p1-gcc2-2008-05-04-1
347			: $(baseURL)/openssh-5.0p1-gcc2-2008-05-04-1.zip
348			:
349		;
350
351		AddUserToHaikuImage sshd : 1001 : 100 : /var/empty : /bin/true
352			: "sshd user" ;
353	}
354}
355
356
357# OpenSSL
358if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
359	if $(TARGET_ARCH) != x86 {
360		Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
361	} else {
362		local baseURL = http://haiku-files.org/files/optional-packages ;
363		InstallOptionalHaikuImagePackage openssl-0.9.8g-gcc2-2008-03-28
364			: $(baseURL)/openssl-0.9.8g-gcc2-2008-03-28.zip
365			: home
366		;
367	}
368}
369
370
371
372# P7zip
373if [ IsOptionalHaikuImagePackageAdded P7zip ] {
374	if $(TARGET_ARCH) != x86 {
375		Echo "No optional package P7zip available for $(TARGET_ARCH)" ;
376	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
377		Echo "No optional package P7zip available for gcc4" ;
378	} else {
379		InstallOptionalHaikuImagePackage p7zip-4.61-gcc2-2008-12-03
380			: http://ports.haiku-files.org/downloads/82
381			:
382		;
383
384		actions BuildHaikuImageExpanderRules
385		{
386			echo "\"application/x-7z-compressed\"\t.7z\t\"7za l \0045s\"\t\"7za x -y \0045s\"" > $(1)
387		}
388
389		Always expander.rules ;
390		MakeLocate expander.rules : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ;
391		BuildHaikuImageExpanderRules expander.rules ;
392		AddFilesToHaikuImage home config etc : expander.rules ;
393	}
394}
395
396
397
398
399# Pe text editor
400if [ IsOptionalHaikuImagePackageAdded Pe ] {
401	if $(TARGET_ARCH) != x86 {
402		Echo "No optional package Pe available for $(TARGET_ARCH)" ;
403	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
404		Echo "No optional package Pe available for gcc4" ;
405	} else {
406		InstallOptionalHaikuImagePackage pe-2.4.1-x86-rc3
407			: http://www.yellowbites.com/downloads/pe-2.4.1-x86.zip
408			: apps
409		;
410
411		AddSymlinkToHaikuImage home config be Applications
412			: /boot/apps/Pe/Pe ;
413		AddSymlinkToHaikuImage home config bin
414			: /boot/apps/Pe/lpe ;
415	}
416}
417
418
419# Perl
420if [ IsOptionalHaikuImagePackageAdded Perl ] {
421	if $(TARGET_ARCH) != x86 {
422		Echo "No optional package Perl available for $(TARGET_ARCH)" ;
423	} else {
424		local baseURL = http://haiku-files.org/files/optional-packages ;
425		InstallOptionalHaikuImagePackage perl-5.10.0-gcc2-2008-10-29
426			: $(baseURL)/perl-5.10.0-gcc2-2008-10-29.zip
427			:
428		;
429	}
430}
431
432
433# Subversion
434if [ IsOptionalHaikuImagePackageAdded Subversion ] {
435	if $(TARGET_ARCH) != x86 {
436		Echo "No optional package Subversion available for $(TARGET_ARCH)" ;
437	} else {
438		InstallOptionalHaikuImagePackage Subversion
439			: http://haiku.mlotz.ch/subversion-1.4.6-haiku-20080628.zip
440			: home
441		;
442	}
443}
444
445
446# Vision
447if [ IsOptionalHaikuImagePackageAdded Vision ] {
448	if $(TARGET_ARCH) != x86 {
449		Echo "No optional package Vision available for $(TARGET_ARCH)" ;
450	} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
451		InstallOptionalHaikuImagePackage Vision-0.9.7-H-21072008-gcc4
452			: http://vision.sf.net/Vision-0.9.7-H-21072008-gcc4.zip
453			: apps
454		;
455		AddSymlinkToHaikuImage home config be Applications
456			: /boot/apps/Vision-0.9.7-H-21072008/Vision ;
457	} else {
458		InstallOptionalHaikuImagePackage Vision-0.9.7-H-11112008
459			: http://vision.sf.net/Vision-0.9.7-H-11112008.zip
460			: apps
461		;
462		AddSymlinkToHaikuImage home config be Applications
463			: /boot/apps/Vision-0.9.7-H-11112008/Vision ;
464	}
465}
466
467
468# VLC media player
469if [ IsOptionalHaikuImagePackageAdded VLC ] {
470	if $(TARGET_ARCH) != x86 {
471		Echo "No optional package VLC available for $(TARGET_ARCH)" ;
472	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
473		Echo "No optional package VLC available for gcc4" ;
474	} else {
475		InstallOptionalHaikuImagePackage VLC-0.8.6c
476			: http://www.yellowbites.com/downloads/vlc-0.8.6c.zip
477			: apps
478		;
479		AddSymlinkToHaikuImage home config be Applications
480			: "/boot/apps/vlc-0.8.6c/VLC media player" ;
481		AddSymlinkToHaikuImage common bin
482			: "/boot/apps/vlc-0.8.6c/VLC media player" : vlc ;
483	}
484}
485
486
487# Welcome
488if [ IsOptionalHaikuImagePackageAdded Welcome ] {
489	CopyDirectoryToHaikuImage beos documentation
490		: [ FDirName $(HAIKU_TOP) docs welcome ]
491		: welcome : -x .svn ;
492	CopyDirectoryToHaikuImage beos documentation
493		: [ FDirName $(HAIKU_TOP) docs userguide ]
494		: userguide : -x .svn ;
495	AddSymlinkToHaikuImage home Desktop
496		: /boot/beos/documentation/welcome/welcome.html : Welcome ;
497}
498
499
500# WonderBrush
501if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
502	if $(TARGET_ARCH) != x86 {
503		Echo "No optional package WonderBrush available for $(TARGET_ARCH)" ;
504	} else if $(HAIKU_GCC_VERSION[1]) >= 4 && $(isHybridBuild) = 0 {
505		Echo "No optional package WonderBrush available for gcc4" ;
506	} else {
507		local baseURL = http://www.yellowbites.com/downloads ;
508		InstallOptionalHaikuImagePackage WonderBrush-2.1.2-Haiku
509			: $(baseURL)/WonderBrush-2.1.2-gcc2-x86-Haiku.zip
510			: apps
511		;
512		AddSymlinkToHaikuImage home config be Applications
513			: /boot/apps/WonderBrush/WonderBrush ;
514	}
515}
516
517
518# Yasm
519if [ IsOptionalHaikuImagePackageAdded Yasm ] {
520	if $(TARGET_ARCH) != x86 {
521		Echo "No optional package Yasm available for $(TARGET_ARCH)" ;
522	} else {
523		local baseURL = http://haiku-files.org/files/optional-packages ;
524		InstallOptionalHaikuImagePackage yasm-0.7.2-gcc2-2008-11-25
525			: $(baseURL)/yasm-0.7.2-gcc2-2008-11-25.zip
526			:
527		;
528	}
529}
530