]> git.ipfire.org Git - ipfire-3.x.git/blame - make.sh
Add new package: libnl.
[ipfire-3.x.git] / make.sh
CommitLineData
df5e82b3 1#!/bin/bash
60caa2d0
MT
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###############################################################################
df5e82b3
MT
21#
22
10f9531b
MT
23NAME="IPFire" # Software name
24SNAME="ipfire" # Short name
e9e9859a 25VERSION="3.0-prealpha2" # Version number
fea96dbc 26TOOLCHAINVERSION="${VERSION}-13" # Toolchain
e9e9859a 27SLOGAN="Gluttony" # Software slogan
df5e82b3 28
15679d9f 29# Include funtions
ca8da28e 30. tools/make-include
df5e82b3 31
df5e82b3 32
ca8da28e
MT
33################################################################################
34# This builds the entire stage "toolchain" #
35################################################################################
36toolchain_build() {
df5e82b3 37
ca8da28e 38 ORG_PATH=$PATH
5b2fee31 39 export PATH=${TOOLS_DIR}/usr/bin:${TOOLS_DIR}/usr/sbin:${TOOLS_DIR}/bin:${TOOLS_DIR}/sbin:$PATH
ca8da28e
MT
40 STAGE_ORDER=01
41 STAGE=toolchain
df5e82b3 42
11f0ec61 43 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-toolchain.log"
ca8da28e 44 export LOGFILE
98be0467 45
4a792716 46 build_spy stage ${STAGE}
98be0467 47
99bbe115
MT
48 # We can't skip packages in toolchain stage
49 SAVE_SKIP_PACKAGE_LIST=$SKIP_PACKAGE_LIST
50 SKIP_PACKAGE_LIST=
5b2fee31 51
50185fc6
MT
52 icecc_disable
53
08874027 54 toolchain_make stage1
b548ddb7 55 toolchain_make ccache PASS=1
08874027
MT
56 toolchain_make binutils PASS=1
57 toolchain_make gcc PASS=1
b66871de 58 toolchain_make linux-headers
ca8da28e 59 toolchain_make glibc
be472d5a 60 toolchain_make adjust-toolchain
9bfb004a 61 toolchain_make test-toolchain PASS=1
a041beae 62 toolchain_make zlib
08874027 63 toolchain_make gcc PASS=2
88068980 64 toolchain_make binutils PASS=2
9bfb004a 65 toolchain_make test-toolchain PASS=2
ca8da28e 66 toolchain_make ncurses
c3a82323
MT
67 toolchain_make attr
68 toolchain_make acl
ca8da28e
MT
69 toolchain_make bash
70 toolchain_make bzip2
71 toolchain_make coreutils
c3a82323 72 toolchain_make cpio
ca8da28e 73 toolchain_make diffutils
e3d88b86 74 toolchain_make e2fsprogs
50185fc6
MT
75 toolchain_make icecc
76 icecc_enable
77 icecc_use toolchain # Use the fresh gcc
b548ddb7 78 toolchain_make ccache PASS=2
c3a82323 79 toolchain_make file
ca8da28e
MT
80 toolchain_make findutils
81 toolchain_make gawk
82 toolchain_make gettext
83 toolchain_make grep
84 toolchain_make gzip
7e71e64b 85 toolchain_make m4
ca8da28e
MT
86 toolchain_make make
87 toolchain_make patch
c3a82323 88 toolchain_make pax-utils
ca8da28e
MT
89 toolchain_make perl
90 toolchain_make sed
91 toolchain_make tar
92 toolchain_make texinfo
08874027
MT
93 toolchain_make flex
94 toolchain_make bc
c3a82323 95 toolchain_make xz
5b2fee31
MT
96 toolchain_make autoconf
97 toolchain_make automake
cf63eea7 98 toolchain_make strip
f90d4c9b 99
99bbe115 100 export PATH=$ORG_PATH SKIP_PACKAGE_LIST=$SAVE_SKIP_PACKAGE_LIST
c9c4fe39 101 unset SAVE_SKIP_PACKAGE_LIST
ca8da28e 102}
df5e82b3 103
ca8da28e
MT
104################################################################################
105# This builds the entire stage "base" #
106################################################################################
107base_build() {
108
6e0756c3 109 PATH=${TOOLS_DIR}/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:$TOOLS_DIR/bin
ca8da28e
MT
110 STAGE_ORDER=02
111 STAGE=base
112
11f0ec61 113 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-base.log"
ca8da28e 114 export LOGFILE
98be0467 115
4a792716 116 build_spy stage ${STAGE}
98be0467 117
3d628fb8
MT
118 # Start distributed compiling with toolchain
119 iceccd_start
120 icecc_use toolchain
5b2fee31 121
ca8da28e 122 ipfire_make stage2
2b926a51 123 ipfire_make scripts
9b1a19d3 124 ipfire_make system-release
b66871de 125 ipfire_make linux-headers
ca8da28e
MT
126 ipfire_make man-pages
127 ipfire_make glibc
3888140c 128 ipfire_make adjust-toolchain
6275cc34 129 ipfire_make test-toolchain
8be4c544 130 ipfire_make zlib
ca8da28e
MT
131 ipfire_make binutils
132 ipfire_make gcc
5b2fee31 133
3d628fb8
MT
134 # Change to self-built gcc
135 icecc_use base
5b2fee31 136
142bb476
MT
137 ipfire_make make
138 ipfire_make libtool
139 ipfire_make gettext
140 ipfire_make pkg-config
ca8da28e 141 ipfire_make berkeley
3888140c 142 ipfire_make sed
ca8da28e
MT
143 ipfire_make iana-etc
144 ipfire_make m4
145 ipfire_make bison
142bb476 146 ipfire_make flex
ca8da28e 147 ipfire_make ncurses
142bb476
MT
148 ipfire_make shadow
149 ipfire_make cracklib
150 ipfire_make pam
151 ipfire_make attr
c3a82323 152 ipfire_make acl
142bb476
MT
153 ipfire_make libcap2
154 ipfire_make util-linux-ng
9df5afd3 155 ipfire_make e2fsprogs
142bb476 156 ipfire_make coreutils
ca8da28e 157 ipfire_make procps
2431e4ae
MT
158 ipfire_make perl
159 ipfire_make readline
05b75387 160 ipfire_make libidn
c9c4fe39
MT
161 ipfire_make bzip2
162 ipfire_make pcre
774900dc 163 ipfire_make paxctl
6c6da42f
MT
164 ipfire_make autoconf
165 ipfire_make automake
ca8da28e 166 ipfire_make bash
c3a82323 167 ipfire_make cpio
ca8da28e 168 ipfire_make diffutils
d178ccd6 169 ipfire_make eventlog
ca8da28e
MT
170 ipfire_make file
171 ipfire_make findutils
88068980 172 ipfire_make gmp
0e61af85 173 ipfire_make grub
ca8da28e 174 ipfire_make gawk
e1a120a3 175 ipfire_make glib2
ca8da28e
MT
176 ipfire_make grep
177 ipfire_make groff
178 ipfire_make gzip
05b75387 179 ipfire_make iputils
ca8da28e
MT
180 ipfire_make iproute2
181 ipfire_make kbd
182 ipfire_make less
0e61af85 183 ipfire_make man-db
0e61af85 184 ipfire_make module-init-tools
88068980 185 ipfire_make mpfr
ca8da28e 186 ipfire_make patch
c3a82323 187 ipfire_make pax-utils
ca8da28e 188 ipfire_make psmisc
d178ccd6 189 ipfire_make syslog-ng
ca8da28e
MT
190 ipfire_make sysvinit
191 ipfire_make tar
192 ipfire_make texinfo
ca8da28e 193 ipfire_make vim
ca8da28e 194}
df5e82b3 195
ca8da28e
MT
196################################################################################
197# This builds the entire stage "ipfire" #
198################################################################################
199ipfire_build() {
6e0756c3 200 PATH=${TOOLS_DIR}/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/${MACHINE_REAL}-linux/bin
ca8da28e
MT
201 STAGE_ORDER=03
202 STAGE=ipfire
203
11f0ec61 204 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-ipfire.log"
ca8da28e 205 export LOGFILE
98be0467 206
4a792716 207 build_spy stage ${STAGE}
98be0467 208
246556fe
MT
209 ### Building the configuration dirs and files
210 #
211 ipfire_make stage3
ea6ea8ba 212 ipfire_make xz
04580204 213 ipfire_make unzip
cc0b96e4 214
b66871de 215 ipfire_make linux
d55b19f6 216
51c2a8ee
MT
217 ### Building some general stuff
218 # STAGE 1
af084e59 219 ipfire_make libdaemon
51c2a8ee 220 ipfire_make expat
fcf49a01
MT
221 ipfire_make dbus
222 ipfire_make dbus-glib
07605e79 223 ipfire_make upstart
60caa2d0 224 ipfire_make initscripts
7def04b8 225 ipfire_make openssl
32a885ad
MT
226 ipfire_make pth
227 ipfire_make libassuan
228 ipfire_make libgpg-error
229 ipfire_make libgcrypt
230 ipfire_make gnutls
47815f74 231 ipfire_make perl-xml-parser
af084e59 232 ipfire_make intltool
51c2a8ee 233 ipfire_make python
b26de680 234 ipfire_make python-cracklib
8a8de99a 235 ipfire_make python-dbus
04580204 236 ipfire_make python-setuptools
8a8de99a 237 ipfire_make python-urlgrabber
d1a556eb 238 ipfire_make python-IPy
c8787b95
MT
239 ipfire_make libxml2
240 ipfire_make libxslt
51c2a8ee
MT
241 ipfire_make popt
242 ipfire_make libusb
29ca8a35 243 ipfire_make libusb-compat # Can be removed if usbutils supports libusb-1.0
08874027 244 ipfire_make bc
5cb92f45
MT
245 ipfire_make boost
246 ipfire_make lua
a97daddb 247
246556fe
MT
248 ### Building some network stuff
249 #
250 ipfire_make libpcap
251 ipfire_make linux-atm
252 ipfire_make ppp
e345b349 253 ipfire_make pptp
246556fe
MT
254 ipfire_make dhcp
255 ipfire_make iptables
a97daddb
MT
256 ipfire_make libnfnetlink
257 ipfire_make libnetfilter_queue
258 ipfire_make libnetfilter_conntrack
0ebfc06d 259 ipfire_make libnetfilter_log
31528ce8 260 ipfire_make python-netfilter_conntrack
a97daddb 261 ipfire_make l7-protocols
a97daddb
MT
262 ipfire_make bridge-utils
263 ipfire_make vlan
d3a6643e 264 ipfire_make bind
cf4642af 265 ipfire_make jwhois
af084e59 266 ipfire_make avahi
c778ae7d 267 ipfire_make libssh2
d7ebfff2 268 ipfire_make libdnet
b3c6e15c 269 ipfire_make rstp
f3e09334 270 ipfire_make ebtables
fcc1b509 271 ipfire_make openlldp
8f4c669f 272 ipfire_make radvd
f0d8b025 273 ipfire_make aiccu
3b3fe2ae 274 ipfire_make libnl
246556fe
MT
275
276 ### Building some general stuff
51c2a8ee 277 # STAGE 2
6b28811f 278 ipfire_make libksba
246556fe
MT
279 ipfire_make slang
280 ipfire_make newt
281 ipfire_make cyrus-sasl
e4330b49
MT
282 ipfire_make openldap
283 ipfire_make pam_ldap
284 ipfire_make nss_ldap
87394312 285 ipfire_make ldapvi
cf63eea7 286 ipfire_make sqlite
3db0947c 287 ipfire_make python-sqlite2
246556fe 288 ipfire_make curl
aa9194b6 289 ipfire_make pinentry
5d6d8fb4 290 ipfire_make gnupg2
246556fe 291 ipfire_make sudo
296ce414 292 ipfire_make libjpeg
246556fe
MT
293 ipfire_make libpng
294 ipfire_make libtiff
295 ipfire_make libart
296 ipfire_make freetype
4599805c 297 ipfire_make fontconfig
7bdf5351 298 ipfire_make pixman
46e597a8 299 ipfire_make cairo
9ea352e8 300 ipfire_make pango
246556fe 301 ipfire_make lzo
b8b94b55
MT
302 ipfire_make lsof
303 ipfire_make br2684ctl
304 ipfire_make etherwake
b8b94b55 305 ipfire_make beep
7012b0f9 306 ipfire_make libuser
20cb2f38 307 ipfire_make passwd
a3c1fce0 308 ipfire_make directfb
5cb92f45
MT
309 ipfire_make pdns
310 ipfire_make pdns-recursor
486599c5 311 ipfire_make libevent
6ba9e58f
SS
312 ipfire_make libnfsidmap
313 ipfire_make libgssglue
314 ipfire_make librpcsecgss
00036844 315 ipfire_make gperf
246556fe 316
c33b4fab
MT
317 ### Building vpn stuff
318 #
430b0f89 319 ipfire_make strongswan
0323c7b3 320 ipfire_make openvpn
c33b4fab 321
246556fe
MT
322 ### Building filesystem stuff
323 #
e1191aee 324 ipfire_make btrfs-progs
246556fe
MT
325 ipfire_make reiserfsprogs
326 ipfire_make libaal
327 ipfire_make reiser4progs
a97daddb 328 ipfire_make xfsprogs
90708ef5 329 ipfire_make sysfsutils
cb9bb118 330 ipfire_make squashfs-tools
16894d55 331 ipfire_make dosfstools
ab93fc03
MT
332 ipfire_make lvm2
333 ipfire_make mdadm
2c6dbb0e 334 ipfire_make dmraid
d9cc2700
MT
335 ipfire_make cryptsetup-luks
336 ipfire_make python-cryptsetup
994df291 337 ipfire_make fuse
16894d55 338
246556fe
MT
339 ### Building hardware utils
340 #
341 ipfire_make pciutils
342 ipfire_make usbutils
343 ipfire_make hdparm
b8b94b55 344 ipfire_make smartmontools
90708ef5 345 ipfire_make lm-sensors
47815f74 346 ipfire_make parted
51c2a8ee 347 ipfire_make hal
f790dccc 348 ipfire_make hal-info
00036844 349 ipfire_make udev
246556fe
MT
350
351 ### Building some important tools
352 #
908e611e 353 ipfire_make ulogd2
246556fe 354 ipfire_make which
246556fe
MT
355 ipfire_make screen
356 ipfire_make rrdtool
c9c4fe39 357 ipfire_make ntp
246556fe 358 ipfire_make openssh
b8b94b55
MT
359 ipfire_make ez-ipupdate
360 ipfire_make noip
361 ipfire_make lighttpd
eda77718 362 ipfire_make webinterface
15643257 363 ipfire_make logrotate
c3a82323 364 #ipfire_make logwatch
00b802aa 365 ipfire_make dvdrtools
d3e22d25 366 ipfire_make python-parted
2c6dbb0e
MT
367 ipfire_make python-pyblock
368 ipfire_make libbdevid
d3a6643e 369 ipfire_make memtest86+
acb73b33 370 ipfire_make quagga
cf63eea7 371 #ipfire_make mISDN
75247519 372 ipfire_make wireless-tools
5da9ffcf 373
0888ad9f 374 ipfire_make python-werkzeug
04580204 375 ipfire_make python-flup
482ef644 376 ipfire_make python-tornado
5da9ffcf 377 ipfire_make pyfire
a0149c64 378 ipfire_make network
8838c71a 379 ipfire_make firewall
3db0947c 380 ipfire_make pakfire
246556fe
MT
381}
382
383################################################################################
384# This builds the entire stage "misc" #
385################################################################################
386misc_build() {
387
6e0756c3 388 PATH=${TOOLS_DIR}/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/${MACHINE_REAL}-linux/bin
246556fe
MT
389 STAGE_ORDER=04
390 STAGE=misc
391
11f0ec61 392 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-misc.log"
246556fe 393 export LOGFILE
98be0467 394
4a792716 395 build_spy stage ${STAGE}
98be0467 396
d3a6643e 397 ipfire_make stage4
099d753f 398
d3a6643e
MT
399 ### Console tools
400 #
67deab0a 401 ipfire_make mc
8adff61a 402 ipfire_make traceroute
18bc0f4b 403 ipfire_make nmap
d3a6643e 404 #ipfire_make rsync
8d91255f 405 ipfire_make tcpdump
2b69f747
MT
406 ipfire_make htop
407 ipfire_make nano
43e5f46e 408 ipfire_make joe
afab9f98
MT
409
410 ### Servers
411 #
0bd28dc5 412 ipfire_make squid
afab9f98 413 ipfire_make samba
0bd28dc5 414
39c645cb
MT
415 ### Assembler
416 #
417 ipfire_make nasm
39c645cb 418 ipfire_make syslinux
db89f36d 419
d3e22d25 420 ipfire_make mkinitramfs
a3c1fce0 421 ipfire_make splashy
0bd28dc5 422
e0615386 423 ipfire_make vsftpd
2b69f747 424
d3a6643e 425 ## NTFS
cf63eea7
MT
426 #ipfire_make ntfs-3g
427 #
428 ## Net tools
4263cbc3 429 ipfire_make net-snmp
43e5f46e 430 ipfire_make bwm-ng
2b69f747 431
d3a6643e
MT
432 ### These will become addons as usual but will be integrated later
433 #
246556fe
MT
434 #ipfire_make snort
435 #ipfire_make oinkmaster
cb32861f
MS
436 ipfire_make ghostscript
437 ipfire_make cups
438 ipfire_make sane
439 ipfire_make hplip
31c59de6
MT
440 #ipfire_make postfix
441 #ipfire_make fetchmail
31c59de6
MT
442 #ipfire_make clamav
443 #ipfire_make alsa
e9d55d78 444 ipfire_make portmap
486599c5 445 ipfire_make nfs-utils
36908490 446 ipfire_make freeradius
96b2229e 447 ipfire_make hostapd
2b69f747 448
ba810f24
MT
449 ### Debugging
450 #
b09b6cdd 451 ipfire_make paxtest
d47d185c 452 ipfire_make gdb
ba810f24 453 ipfire_make strace
1c6710d1 454 ipfire_make pychecker
007c58f5
BS
455
456 ### Virtualization
457 #
458 ipfire_make xen
459 ipfire_make qemu
460 ipfire_make libvirt
df5e82b3
MT
461}
462
10f9531b 463################################################################################
a57b7dd3 464# This builds the entire stage "installer" #
10f9531b 465################################################################################
a57b7dd3 466installer_build() {
10f9531b 467
d3e22d25 468 PATH=${TOOLS_DIR}/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/${MACHINE_REAL}-linux/bin
10f9531b 469 STAGE_ORDER=05
a57b7dd3 470 STAGE=installer
10f9531b 471
11f0ec61 472 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-installer.log"
10f9531b
MT
473 export LOGFILE
474
4a792716 475 build_spy stage ${STAGE}
98be0467 476
10f9531b 477 ipfire_make stage5
a57b7dd3 478 ipfire_make pomona
df5e82b3
MT
479}
480
ca8da28e
MT
481################################################################################
482# This builds the entire stage "packages" #
483################################################################################
484packages_build() {
df5e82b3 485
6e0756c3 486 PATH=${TOOLS_DIR}/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/${MACHINE_REAL}-linux/bin
a57b7dd3 487 STAGE_ORDER=06
ca8da28e 488 STAGE=packages
df5e82b3 489
11f0ec61 490 LOGFILE="$BASEDIR/log_${TARGET}/_build.${STAGE_ORDER}-packages.log"
ca8da28e 491 export LOGFILE
0fbb45e9 492
4a792716 493 build_spy stage ${STAGE}
98be0467 494
6d18f164 495 # Generate ChangeLog
7755cdbf 496 git_log
10f9531b 497
9cb5b98a
MT
498 # Generate packages list
499 echo -n "Generating packages list"
51111711 500 pkg_list_packages > $BASEDIR/doc/packages-list.txt
9cb5b98a
MT
501 beautify message DONE
502
283eab18 503 if [ ${EMB} -eq 0 ]; then
db2ab938
MT
504 ipfire_make images-core
505 ipfire_make images-info
506 ipfire_make images-initramfs
507 ipfire_make images-overlays
32881254 508 ipfire_make pxe
485f0a3b
MT
509 ipfire_make cdrom
510
511 if check_loop; then
f3f8d56b 512 : #ipfire_make usb-key
485f0a3b
MT
513 else
514 echo -n "Can't build usb-key images on this machine"
515 beautify message WARN
516 fi
d5333f84 517 mv $LFS/$IMAGES_DIR/{*.iso,*.tar.gz,*.img.gz} $BASEDIR >>$LOGFILE 2>&1
485f0a3b
MT
518 else
519 if check_loop; then
520 # We put here the code that is done when
521 # we do an embedded build
522 :
523 fi
524 fi
c9673262 525
10f9531b
MT
526 # Cleanup
527 stdumount
528 rm -rf $LFS/tmp/*
90111bbd 529
10f9531b 530 cd $PWD
df5e82b3
MT
531}
532
533# See what we're supposed to do
ce85f613 534. $BASEDIR/tools/make-interactive