]> git.ipfire.org Git - people/ms/ipfire-3.x.git/blob - make.sh
Remove package miniupnpd.
[people/ms/ipfire-3.x.git] / make.sh
1 #!/bin/bash
2 ###############################################################################
3 # #
4 # IPFire.org - A linux based firewall #
5 # Copyright (C) 2007, 2008, 2009 Michael Tremer & Christian Schmidt #
6 # #
7 # This program is free software: you can redistribute it and/or modify #
8 # it under the terms of the GNU General Public License as published by #
9 # the Free Software Foundation, either version 3 of the License, or #
10 # (at your option) any later version. #
11 # #
12 # This program is distributed in the hope that it will be useful, #
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of #
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
15 # GNU General Public License for more details. #
16 # #
17 # You should have received a copy of the GNU General Public License #
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. #
19 # #
20 ###############################################################################
21 #
22
23 NAME="IPFire" # Software name
24 SNAME="ipfire" # Short name
25 VERSION="3.0-prealpha2" # Version number
26 TOOLCHAINVERSION="${VERSION}-13" # Toolchain
27 SLOGAN="Gluttony" # Software slogan
28
29 # Include funtions
30 . tools/make-include
31
32
33 ################################################################################
34 # This builds the entire stage "toolchain" #
35 ################################################################################
36 toolchain_build() {
37
38 ORG_PATH=$PATH
39 export PATH=${TOOLS_DIR}/usr/bin:${TOOLS_DIR}/usr/sbin:${TOOLS_DIR}/bin:${TOOLS_DIR}/sbin:$PATH
40 STAGE_ORDER=01
41 STAGE=toolchain
42
43 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-toolchain.log"
44 export LOGFILE
45
46 build_spy stage ${STAGE}
47
48 # We can't skip packages in toolchain stage
49 SAVE_SKIP_PACKAGE_LIST=$SKIP_PACKAGE_LIST
50 SKIP_PACKAGE_LIST=
51
52 icecc_disable
53
54 toolchain_make stage1
55 toolchain_make ccache PASS=1
56 toolchain_make binutils PASS=1
57 toolchain_make gcc PASS=1
58 toolchain_make linux-headers
59 toolchain_make glibc
60 toolchain_make adjust-toolchain
61 toolchain_make test-toolchain PASS=1
62 toolchain_make zlib
63 toolchain_make gcc PASS=2
64 toolchain_make binutils PASS=2
65 toolchain_make test-toolchain PASS=2
66 toolchain_make ncurses
67 toolchain_make attr
68 toolchain_make acl
69 toolchain_make bash
70 toolchain_make bzip2
71 toolchain_make coreutils
72 toolchain_make cpio
73 toolchain_make diffutils
74 toolchain_make e2fsprogs
75 toolchain_make icecc
76 icecc_enable
77 icecc_use toolchain # Use the fresh gcc
78 toolchain_make ccache PASS=2
79 toolchain_make file
80 toolchain_make findutils
81 toolchain_make gawk
82 toolchain_make gettext
83 toolchain_make grep
84 toolchain_make gzip
85 toolchain_make m4
86 toolchain_make make
87 toolchain_make patch
88 toolchain_make pax-utils
89 toolchain_make perl
90 toolchain_make sed
91 toolchain_make tar
92 toolchain_make texinfo
93 toolchain_make flex
94 toolchain_make bc
95 toolchain_make xz
96 toolchain_make autoconf
97 toolchain_make automake
98 toolchain_make strip
99
100 export PATH=$ORG_PATH SKIP_PACKAGE_LIST=$SAVE_SKIP_PACKAGE_LIST
101 unset SAVE_SKIP_PACKAGE_LIST
102 }
103
104 ################################################################################
105 # This builds the entire stage "base" #
106 ################################################################################
107 base_build() {
108
109 PATH=${TOOLS_DIR}/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:$TOOLS_DIR/bin
110 STAGE_ORDER=02
111 STAGE=base
112
113 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-base.log"
114 export LOGFILE
115
116 build_spy stage ${STAGE}
117
118 # Start distributed compiling with toolchain
119 iceccd_start
120 icecc_use toolchain
121
122 ipfire_make stage2
123 ipfire_make scripts
124 ipfire_make system-release
125 ipfire_make linux-headers
126 ipfire_make man-pages
127 ipfire_make glibc
128 ipfire_make adjust-toolchain
129 ipfire_make test-toolchain
130 ipfire_make zlib
131 ipfire_make binutils
132 ipfire_make gcc
133
134 # Change to self-built gcc
135 icecc_use base
136
137 ipfire_make make
138 ipfire_make libtool
139 ipfire_make gettext
140 ipfire_make pkg-config
141 ipfire_make berkeley
142 ipfire_make sed
143 ipfire_make iana-etc
144 ipfire_make m4
145 ipfire_make bison
146 ipfire_make flex
147 ipfire_make ncurses
148 ipfire_make shadow
149 ipfire_make cracklib
150 ipfire_make pam
151 ipfire_make attr
152 ipfire_make acl
153 ipfire_make libcap2
154 ipfire_make util-linux-ng
155 ipfire_make e2fsprogs
156 ipfire_make coreutils
157 ipfire_make procps
158 ipfire_make perl
159 ipfire_make readline
160 ipfire_make libidn
161 ipfire_make bzip2
162 ipfire_make pcre
163 ipfire_make paxctl
164 ipfire_make autoconf
165 ipfire_make automake
166 ipfire_make bash
167 ipfire_make cpio
168 ipfire_make diffutils
169 ipfire_make eventlog
170 ipfire_make file
171 ipfire_make findutils
172 ipfire_make gmp
173 ipfire_make grub
174 ipfire_make gawk
175 ipfire_make glib2
176 ipfire_make grep
177 ipfire_make groff
178 ipfire_make gzip
179 ipfire_make iputils
180 ipfire_make iproute2
181 ipfire_make kbd
182 ipfire_make less
183 ipfire_make man-db
184 ipfire_make module-init-tools
185 ipfire_make mpfr
186 ipfire_make patch
187 ipfire_make pax-utils
188 ipfire_make psmisc
189 ipfire_make syslog-ng
190 ipfire_make sysvinit
191 ipfire_make tar
192 ipfire_make texinfo
193 ipfire_make vim
194 }
195
196 ################################################################################
197 # This builds the entire stage "ipfire" #
198 ################################################################################
199 ipfire_build() {
200 PATH=${TOOLS_DIR}/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/${MACHINE_REAL}-linux/bin
201 STAGE_ORDER=03
202 STAGE=ipfire
203
204 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-ipfire.log"
205 export LOGFILE
206
207 build_spy stage ${STAGE}
208
209 ### Building the configuration dirs and files
210 #
211 ipfire_make stage3
212 ipfire_make xz
213 ipfire_make unzip
214
215 ipfire_make linux
216
217 ### Building some general stuff
218 # STAGE 1
219 ipfire_make libdaemon
220 ipfire_make expat
221 ipfire_make dbus
222 ipfire_make dbus-glib
223 ipfire_make upstart
224 ipfire_make initscripts
225 ipfire_make openssl
226 ipfire_make pth
227 ipfire_make libassuan
228 ipfire_make libgpg-error
229 ipfire_make libgcrypt
230 ipfire_make gnutls
231 ipfire_make perl-xml-parser
232 ipfire_make intltool
233 ipfire_make python
234 ipfire_make python-cracklib
235 ipfire_make python-dbus
236 ipfire_make python-setuptools
237 ipfire_make python-urlgrabber
238 ipfire_make python-IPy
239 ipfire_make libxml2
240 ipfire_make libxslt
241 ipfire_make popt
242 ipfire_make libusb
243 ipfire_make libusb-compat # Can be removed if usbutils supports libusb-1.0
244 ipfire_make bc
245 ipfire_make boost
246 ipfire_make lua
247
248 ### Building some network stuff
249 #
250 ipfire_make libpcap
251 ipfire_make linux-atm
252 ipfire_make ppp
253 ipfire_make pptp
254 ipfire_make dhcp
255 ipfire_make iptables
256 ipfire_make libnfnetlink
257 ipfire_make libnetfilter_queue
258 ipfire_make libnetfilter_conntrack
259 ipfire_make libnetfilter_log
260 ipfire_make python-netfilter_conntrack
261 ipfire_make l7-protocols
262 ipfire_make bridge-utils
263 ipfire_make vlan
264 ipfire_make bind
265 ipfire_make jwhois
266 ipfire_make avahi
267 ipfire_make libssh2
268 ipfire_make libdnet
269 ipfire_make rstp
270 ipfire_make ebtables
271 ipfire_make openlldp
272 ipfire_make radvd
273 ipfire_make aiccu
274
275 ### Building some general stuff
276 # STAGE 2
277 ipfire_make libksba
278 ipfire_make slang
279 ipfire_make newt
280 ipfire_make cyrus-sasl
281 ipfire_make openldap
282 ipfire_make pam_ldap
283 ipfire_make nss_ldap
284 ipfire_make ldapvi
285 ipfire_make sqlite
286 ipfire_make python-sqlite2
287 ipfire_make curl
288 ipfire_make pinentry
289 ipfire_make gnupg2
290 ipfire_make sudo
291 ipfire_make libjpeg
292 ipfire_make libpng
293 ipfire_make libtiff
294 ipfire_make libart
295 ipfire_make freetype
296 ipfire_make fontconfig
297 ipfire_make pixman
298 ipfire_make cairo
299 ipfire_make pango
300 ipfire_make lzo
301 ipfire_make lsof
302 ipfire_make br2684ctl
303 ipfire_make etherwake
304 ipfire_make beep
305 ipfire_make libuser
306 ipfire_make passwd
307 ipfire_make directfb
308 ipfire_make pdns
309 ipfire_make pdns-recursor
310 ipfire_make libevent
311 ipfire_make libnfsidmap
312 ipfire_make libgssglue
313 ipfire_make librpcsecgss
314 ipfire_make gperf
315
316 ### Building vpn stuff
317 #
318 ipfire_make strongswan
319 ipfire_make openvpn
320
321 ### Building filesystem stuff
322 #
323 ipfire_make btrfs-progs
324 ipfire_make reiserfsprogs
325 ipfire_make libaal
326 ipfire_make reiser4progs
327 ipfire_make xfsprogs
328 ipfire_make sysfsutils
329 ipfire_make squashfs-tools
330 ipfire_make dosfstools
331 ipfire_make lvm2
332 ipfire_make mdadm
333 ipfire_make dmraid
334 ipfire_make cryptsetup-luks
335 ipfire_make python-cryptsetup
336 ipfire_make fuse
337
338 ### Building hardware utils
339 #
340 ipfire_make pciutils
341 ipfire_make usbutils
342 ipfire_make hdparm
343 ipfire_make smartmontools
344 ipfire_make lm-sensors
345 ipfire_make parted
346 ipfire_make hal
347 ipfire_make hal-info
348 ipfire_make udev
349
350 ### Building some important tools
351 #
352 ipfire_make ulogd2
353 ipfire_make which
354 ipfire_make screen
355 ipfire_make rrdtool
356 ipfire_make ntp
357 ipfire_make openssh
358 ipfire_make ez-ipupdate
359 ipfire_make noip
360 ipfire_make lighttpd
361 ipfire_make webinterface
362 ipfire_make logrotate
363 #ipfire_make logwatch
364 ipfire_make dvdrtools
365 ipfire_make python-parted
366 ipfire_make python-pyblock
367 ipfire_make libbdevid
368 ipfire_make memtest86+
369 ipfire_make quagga
370 #ipfire_make mISDN
371 ipfire_make wireless-tools
372
373 ipfire_make python-werkzeug
374 ipfire_make python-flup
375 ipfire_make python-tornado
376 ipfire_make pyfire
377 ipfire_make network
378 ipfire_make firewall
379 ipfire_make pakfire
380 }
381
382 ################################################################################
383 # This builds the entire stage "misc" #
384 ################################################################################
385 misc_build() {
386
387 PATH=${TOOLS_DIR}/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/${MACHINE_REAL}-linux/bin
388 STAGE_ORDER=04
389 STAGE=misc
390
391 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-misc.log"
392 export LOGFILE
393
394 build_spy stage ${STAGE}
395
396 ipfire_make stage4
397
398 ### Console tools
399 #
400 ipfire_make mc
401 ipfire_make traceroute
402 ipfire_make nmap
403 #ipfire_make rsync
404 ipfire_make tcpdump
405 ipfire_make htop
406 ipfire_make nano
407 ipfire_make joe
408
409 ### Servers
410 #
411 ipfire_make squid
412 ipfire_make samba
413
414 ### Assembler
415 #
416 ipfire_make nasm
417 ipfire_make syslinux
418
419 ipfire_make mkinitramfs
420 ipfire_make splashy
421
422 ipfire_make vsftpd
423
424 ## NTFS
425 #ipfire_make ntfs-3g
426 #
427 ## Net tools
428 ipfire_make net-snmp
429 ipfire_make bwm-ng
430
431 ### These will become addons as usual but will be integrated later
432 #
433 #ipfire_make snort
434 #ipfire_make oinkmaster
435 ipfire_make ghostscript
436 ipfire_make cups
437 ipfire_make sane
438 ipfire_make hplip
439 #ipfire_make postfix
440 #ipfire_make fetchmail
441 #ipfire_make clamav
442 #ipfire_make alsa
443 ipfire_make portmap
444 ipfire_make nfs-utils
445 ipfire_make freeradius
446
447 ### Debugging
448 #
449 ipfire_make paxtest
450 ipfire_make gdb
451 ipfire_make strace
452 ipfire_make pychecker
453
454 ### Virtualization
455 #
456 ipfire_make xen
457 ipfire_make qemu
458 ipfire_make libvirt
459 }
460
461 ################################################################################
462 # This builds the entire stage "installer" #
463 ################################################################################
464 installer_build() {
465
466 PATH=${TOOLS_DIR}/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/${MACHINE_REAL}-linux/bin
467 STAGE_ORDER=05
468 STAGE=installer
469
470 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-installer.log"
471 export LOGFILE
472
473 build_spy stage ${STAGE}
474
475 ipfire_make stage5
476 ipfire_make pomona
477 }
478
479 ################################################################################
480 # This builds the entire stage "packages" #
481 ################################################################################
482 packages_build() {
483
484 PATH=${TOOLS_DIR}/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/${MACHINE_REAL}-linux/bin
485 STAGE_ORDER=06
486 STAGE=packages
487
488 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-packages.log"
489 export LOGFILE
490
491 build_spy stage ${STAGE}
492
493 # Generate ChangeLog
494 git_log
495
496 # Generate packages list
497 echo -n "Generating packages list"
498 pkg_list_packages > $BASEDIR/doc/packages-list.txt
499 beautify message DONE
500
501 if [ ${EMB} -eq 0 ]; then
502 ipfire_make images-core
503 ipfire_make images-info
504 ipfire_make images-initramfs
505 ipfire_make images-overlays
506 ipfire_make pxe
507 ipfire_make cdrom
508
509 if check_loop; then
510 : #ipfire_make usb-key
511 else
512 echo -n "Can't build usb-key images on this machine"
513 beautify message WARN
514 fi
515 mv $LFS/$IMAGES_DIR/{*.iso,*.tar.gz,*.img.gz} $BASEDIR >>$LOGFILE 2>&1
516 else
517 if check_loop; then
518 # We put here the code that is done when
519 # we do an embedded build
520 :
521 fi
522 fi
523
524 # Cleanup
525 stdumount
526 rm -rf $LFS/tmp/*
527
528 cd $PWD
529 }
530
531 # See what we're supposed to do
532 . $BASEDIR/tools/make-interactive