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