]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - make.sh
Add missed imq-patch to git
[people/pmueller/ipfire-2.x.git] / make.sh
CommitLineData
df5e82b3 1#!/bin/bash
df5e82b3
MT
2############################################################################
3# #
f8e5510c 4# This file is part of the IPFire Firewall. #
df5e82b3 5# #
f8e5510c 6# IPFire is free software; you can redistribute it and/or modify #
df5e82b3
MT
7# it under the terms of the GNU General Public License as published by #
8# the Free Software Foundation; either version 2 of the License, or #
9# (at your option) any later version. #
10# #
f8e5510c 11# IPFire is distributed in the hope that it will be useful, #
df5e82b3
MT
12# but WITHOUT ANY WARRANTY; without even the implied warranty of #
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
14# GNU General Public License for more details. #
15# #
16# You should have received a copy of the GNU General Public License #
f8e5510c 17# along with IPFire; if not, write to the Free Software #
df5e82b3
MT
18# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
19# #
06209efc 20# Copyright (C) 2007 IPFire-Team <info@ipfire.org>. #
df5e82b3
MT
21# #
22############################################################################
df5e82b3
MT
23#
24
dd36ba84
MT
25NAME="IPFire" # Software name
26SNAME="ipfire" # Short name
64cf4991 27VERSION="2.3-test"
a2deff9c 28GIT_BRANCH=master:master # Version number
dd36ba84
MT
29SLOGAN="www.ipfire.org" # Software slogan
30CONFIG_ROOT=/var/ipfire # Configuration rootdir
31NICE=10 # Nice level
32MAX_RETRIES=1 # prefetch/check loop
15679d9f
MT
33KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
34MACHINE=`uname -m`
15679d9f 35
8f7b33ea 36IPFVER="full" # Which versions should be compiled? (full|devel)
03ad5f93 37
15679d9f
MT
38# Debian specific settings
39if [ ! -e /etc/debian_version ]; then
df5e82b3 40 FULLPATH=`which $0`
15679d9f 41else
df5e82b3
MT
42 if [ -x /usr/bin/realpath ]; then
43 FULLPATH=`/usr/bin/realpath $0`
44 else
45 echo "ERROR: Need to do apt-get install realpath"
46 exit 1
47 fi
15679d9f 48fi
df5e82b3 49
15679d9f
MT
50PWD=`pwd`
51BASENAME=`basename $0`
52BASEDIR=`echo $FULLPATH | sed "s/\/$BASENAME//g"`
53LOGFILE=$BASEDIR/log/_build.preparation.log
54export BASEDIR LOGFILE
55DIR_CHK=$BASEDIR/cache/check
56mkdir $BASEDIR/log/ 2>/dev/null
df5e82b3 57
15679d9f
MT
58# Include funtions
59. tools/make-functions
df5e82b3 60
15679d9f
MT
61if [ -f .config ]; then
62 . .config
63else
6b8cff41
MT
64 echo -e "${BOLD}No configuration found!${NORMAL}"
65 echo -ne "Do you want to create one (y/N)?"
66 read CREATE_CONFIG
67 echo ""
68 if [ "$CREATE_CONFIG" == "y" ]; then
69 make_config
70 fi
15679d9f 71fi
df5e82b3 72
483b7768
MT
73if [ -z $EDITOR ]; then
74 for i in nano emacs vi; do
75 EDITOR=$(which $i 2>/dev/null)
76 if ! [ -z $EDITOR ]; then
77 export EDITOR=$EDITOR
78 break
79 fi
80 done
81 [ -z $EDITOR ] && exiterror "You should have installed an editor."
82fi
83
df5e82b3
MT
84prepareenv() {
85 ############################################################################
86 # #
87 # Are we running the right shell? #
88 # #
89 ############################################################################
90 if [ ! "$BASH" ]; then
1b273e8f 91 exiterror "BASH environment variable is not set. You're probably running the wrong shell."
df5e82b3
MT
92 fi
93
94 if [ -z "${BASH_VERSION}" ]; then
1b273e8f 95 exiterror "Not running BASH shell."
df5e82b3
MT
96 fi
97
98
99 ############################################################################
100 # #
101 # Trap on emergency exit #
102 # #
103 ############################################################################
104 trap "exiterror 'Build process interrupted'" SIGINT SIGTERM SIGKILL SIGSTOP SIGQUIT
105
106
107 ############################################################################
108 # #
109 # Resetting our nice level #
110 # #
111 ############################################################################
9b0ff0a0 112 echo -ne "Resetting our nice level to $NICE" | tee -a $LOGFILE
df5e82b3
MT
113 renice $NICE $$ > /dev/null
114 if [ `nice` != "$NICE" ]; then
1b273e8f
MT
115 beautify message FAIL
116 exiterror "Failed to set correct nice level"
15679d9f 117 else
1b273e8f 118 beautify message DONE
df5e82b3
MT
119 fi
120
15679d9f 121
df5e82b3
MT
122 ############################################################################
123 # #
124 # Checking if running as root user #
125 # #
126 ############################################################################
9b0ff0a0 127 echo -ne "Checking if we're running as root user" | tee -a $LOGFILE
df5e82b3 128 if [ `id -u` != 0 ]; then
1b273e8f
MT
129 beautify message FAIL
130 exiterror "Not building as root"
15679d9f 131 else
1b273e8f 132 beautify message DONE
df5e82b3
MT
133 fi
134
135
136 ############################################################################
137 # #
138 # Checking for necessary temporary space #
139 # #
140 ############################################################################
9b0ff0a0 141 echo -ne "Checking for necessary space on disk $BASE_DEV" | tee -a $LOGFILE
df5e82b3
MT
142 BASE_DEV=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $1 }'`
143 BASE_ASPACE=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $4 }'`
41921bd9 144 if (( 2048000 > $BASE_ASPACE )); then
1b273e8f
MT
145 BASE_USPACE=`du -skx $BASEDIR | awk '{print $1}'`
146 if (( 2048000 - $BASE_USPACE > $BASE_ASPACE )); then
147 beautify message FAIL
148 exiterror "Not enough temporary space available, need at least 2GB on $BASE_DEV"
149 fi
15679d9f 150 else
1b273e8f 151 beautify message DONE
df5e82b3
MT
152 fi
153
154 ############################################################################
155 # #
156 # Building Linux From Scratch system #
157 # #
158 ############################################################################
df5e82b3
MT
159 # Set umask
160 umask 022
161
162 # Set LFS Directory
163 LFS=$BASEDIR/build
164
165 # Check /tools symlink
166 if [ -h /tools ]; then
167 rm -f /tools
168 fi
169 if [ ! -a /tools ]; then
1b273e8f 170 ln -s $BASEDIR/build/tools /
df5e82b3
MT
171 fi
172 if [ ! -h /tools ]; then
1b273e8f 173 exiterror "Could not create /tools symbolic link."
df5e82b3
MT
174 fi
175
176 # Setup environment
177 set +h
178 LC_ALL=POSIX
1179dc27 179 MAKETUNING="-j6"
dd714b8a 180 export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING
df5e82b3
MT
181 unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
182
183 # Make some extra directories
184 mkdir -p $BASEDIR/build/{tools,etc,usr/src} 2>/dev/null
90d372c4 185 mkdir -p $BASEDIR/build/{dev/{shm,pts},proc,sys}
df5e82b3 186 mkdir -p $BASEDIR/{cache,ccache} 2>/dev/null
90d372c4
MT
187 mkdir -p $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache}
188
189 mknod -m 600 $BASEDIR/build/dev/console c 5 1 2>/dev/null
190 mknod -m 666 $BASEDIR/build/dev/null c 1 3 2>/dev/null
df5e82b3
MT
191
192 # Make all sources and proc available under lfs build
90d372c4 193 mount --bind /dev $BASEDIR/build/dev
857d9bf2
MT
194 mount --bind /dev/pts $BASEDIR/build/dev/pts
195 mount --bind /dev/shm $BASEDIR/build/dev/shm
196 mount --bind /proc $BASEDIR/build/proc
197 mount --bind /sys $BASEDIR/build/sys
df5e82b3
MT
198 mount --bind $BASEDIR/cache $BASEDIR/build/usr/src/cache
199 mount --bind $BASEDIR/ccache $BASEDIR/build/usr/src/ccache
200 mount --bind $BASEDIR/config $BASEDIR/build/usr/src/config
201 mount --bind $BASEDIR/doc $BASEDIR/build/usr/src/doc
202 mount --bind $BASEDIR/html $BASEDIR/build/usr/src/html
203 mount --bind $BASEDIR/langs $BASEDIR/build/usr/src/langs
204 mount --bind $BASEDIR/lfs $BASEDIR/build/usr/src/lfs
205 mount --bind $BASEDIR/log $BASEDIR/build/usr/src/log
206 mount --bind $BASEDIR/src $BASEDIR/build/usr/src/src
207
119ee469 208 # This is a temporary hack!!!
6b8cff41
MT
209 if [ ! -f /tools/bin/hostname ]; then
210 cp -f /bin/hostname /tools/bin/hostname 2>/dev/null
211 fi
119ee469 212
df5e82b3
MT
213 # Run LFS static binary creation scripts one by one
214 export CCACHE_DIR=$BASEDIR/ccache
215 export CCACHE_HASHDIR=1
216
217 # Remove pre-install list of installed files in case user erase some files before rebuild
218 rm -f $BASEDIR/build/usr/src/lsalr 2>/dev/null
219}
220
df5e82b3
MT
221buildtoolchain() {
222 LOGFILE="$BASEDIR/log/_build.toolchain.log"
223 export LOGFILE
df5e82b3
MT
224 ORG_PATH=$PATH
225 NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}`
226 export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1}
227 lfsmake1 ccache
15679d9f
MT
228 lfsmake1 binutils PASS=1
229 lfsmake1 gcc PASS=1
df5e82b3 230 export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH
dd714b8a
MT
231 lfsmake1 linux-libc-header
232 lfsmake1 glibc
9b0ff0a0 233 lfsmake1 cleanup-toolchain PASS=1
df5e82b3
MT
234 lfsmake1 tcl
235 lfsmake1 expect
df5e82b3 236 lfsmake1 dejagnu
15679d9f
MT
237 lfsmake1 gcc PASS=2
238 lfsmake1 binutils PASS=2
dd714b8a
MT
239 lfsmake1 ncurses
240 lfsmake1 bash
df5e82b3 241 lfsmake1 bzip2
dd714b8a 242 lfsmake1 coreutils
df5e82b3
MT
243 lfsmake1 diffutils
244 lfsmake1 findutils
dd714b8a 245 lfsmake1 gawk
df5e82b3 246 lfsmake1 gettext
dd714b8a
MT
247 lfsmake1 grep
248 lfsmake1 gzip
249 lfsmake1 m4
250 lfsmake1 make
df5e82b3 251 lfsmake1 patch
dd714b8a
MT
252 lfsmake1 perl
253 lfsmake1 sed
df5e82b3
MT
254 lfsmake1 tar
255 lfsmake1 texinfo
df5e82b3 256 lfsmake1 util-linux
9b0ff0a0 257 lfsmake1 cleanup-toolchain PASS=2
df5e82b3
MT
258 export PATH=$ORG_PATH
259}
260
261buildbase() {
262 LOGFILE="$BASEDIR/log/_build.base.log"
263 export LOGFILE
df5e82b3 264 lfsmake2 stage2
9b0ff0a0 265 lfsmake2 linux-libc-header
df5e82b3
MT
266 lfsmake2 man-pages
267 lfsmake2 glibc
9b0ff0a0 268 lfsmake2 cleanup-toolchain PASS=3
df5e82b3
MT
269 lfsmake2 binutils
270 lfsmake2 gcc
9b0ff0a0 271 lfsmake2 berkeley
df5e82b3 272 lfsmake2 coreutils
df5e82b3 273 lfsmake2 iana-etc
df5e82b3
MT
274 lfsmake2 m4
275 lfsmake2 bison
9b0ff0a0
MT
276 lfsmake2 ncurses
277 lfsmake2 procps
df5e82b3 278 lfsmake2 sed
9b0ff0a0 279 lfsmake2 libtool
df5e82b3 280 lfsmake2 perl
9b0ff0a0
MT
281 lfsmake2 readline
282 lfsmake2 zlib
df5e82b3
MT
283 lfsmake2 autoconf
284 lfsmake2 automake
285 lfsmake2 bash
df5e82b3
MT
286 lfsmake2 bzip2
287 lfsmake2 diffutils
df5e82b3 288 lfsmake2 e2fsprogs
65998e0a 289 lfsmake2 ed
9b0ff0a0
MT
290 lfsmake2 file
291 lfsmake2 findutils
292 lfsmake2 flex
9b0ff0a0
MT
293 lfsmake2 gawk
294 lfsmake2 gettext
295 lfsmake2 grep
296 lfsmake2 groff
df5e82b3 297 lfsmake2 gzip
9b0ff0a0
MT
298 lfsmake2 inetutils
299 lfsmake2 iproute2
300 lfsmake2 kbd
301 lfsmake2 less
44254afd 302 lfsmake2 libaal
df5e82b3 303 lfsmake2 make
9b0ff0a0
MT
304 lfsmake2 man
305 lfsmake2 mktemp
df5e82b3 306 lfsmake2 modutils
65f8f30f 307 lfsmake2 mtd
65998e0a 308 lfsmake2 net-tools
df5e82b3 309 lfsmake2 patch
df5e82b3 310 lfsmake2 psmisc
44254afd 311 lfsmake2 reiser4progs
df5e82b3
MT
312 lfsmake2 shadow
313 lfsmake2 sysklogd
314 lfsmake2 sysvinit
315 lfsmake2 tar
90d372c4
MT
316 lfsmake2 texinfo
317 lfsmake2 udev
df5e82b3 318 lfsmake2 util-linux
90d372c4 319 lfsmake2 vim
44254afd 320 lfsmake2 grub
df5e82b3
MT
321}
322
15679d9f 323buildipfire() {
907cd036 324 LOGFILE="$BASEDIR/log/_build.ipfire.log"
df5e82b3 325 export LOGFILE
15679d9f 326 ipfiremake configroot
dc8b9670 327 ipfiremake backup
15679d9f
MT
328 ipfiremake dhcp
329 ipfiremake dhcpcd
330 ipfiremake libusb
331 ipfiremake libpcap
15679d9f
MT
332 ipfiremake ppp
333 ipfiremake rp-pppoe
334 ipfiremake unzip
3a1019f6 335 ipfiremake linux SMP=1
64cf4991
AF
336# ipfiremake linux-fusion SMP=1
337# ipfiremake ipp2p SMP=1
338# ipfiremake zaptel SMP=1
339# ipfiremake r8169 SMP=1
340# ipfiremake r8168 SMP=1
341# ipfiremake atl1 SMP=1
83f6acb2 342 ipfiremake atl2 SMP=1
2cb46e81 343 ipfiremake kqemu SMP=1
2a8c4fcb 344 ipfiremake v4l-dvb SMP=1
fad7b108 345 ipfiremake madwifi SMP=1
85e27660 346 ipfiremake sane KMOD=1 SMP=1
38f05351 347 ipfiremake openswan KMOD=1 SMP=1
c3e36980 348 ipfiremake linux
64cf4991
AF
349# ipfiremake linux-fusion
350# ipfiremake ipp2p
351# ipfiremake zaptel
352# ipfiremake r8169
353# ipfiremake r8168
354# ipfiremake atl1
83f6acb2 355 ipfiremake atl2
2cb46e81 356 ipfiremake kqemu
2a8c4fcb 357 ipfiremake v4l-dvb
fad7b108 358 ipfiremake madwifi
85e27660 359 ipfiremake sane KMOD=1
38f05351 360 ipfiremake openswan KMOD=1
c545beb1 361 ipfiremake pkg-config
a89770fa 362 ipfiremake linux-atm
ad9d4caf 363 ipfiremake cpio
ee78a5ef
MT
364 ipfiremake klibc
365 ipfiremake mkinitcpio
366 ipfiremake udev KLIBC=1
15679d9f
MT
367 ipfiremake expat
368 ipfiremake gdbm
369 ipfiremake gmp
c8ead4a5 370 ipfiremake pam
15679d9f 371 ipfiremake openssl
eac942d9 372 ipfiremake curl
15679d9f
MT
373 ipfiremake python
374 ipfiremake libnet
27b8cc24 375 ipfiremake libidn
ddac6087 376 ipfiremake libjpeg
15679d9f
MT
377 ipfiremake libpng
378 ipfiremake libtiff
fd3e7da0 379 ipfiremake libart
9594506f 380 ipfiremake freetype
15679d9f
MT
381 ipfiremake gd
382 ipfiremake popt
411afd1f 383 ipfiremake pcre
15679d9f
MT
384 ipfiremake slang
385 ipfiremake newt
fd3e7da0 386 ipfiremake libcap
15679d9f 387 ipfiremake pciutils
51f3b7f5 388 ipfiremake usbutils
15679d9f 389 ipfiremake libxml2
c6c9630e 390 ipfiremake libxslt
6b8cff41 391 ipfiremake BerkeleyDB
15679d9f 392 ipfiremake mysql
411afd1f 393 ipfiremake cyrus-sasl
15679d9f
MT
394 ipfiremake openldap
395 ipfiremake apache2
396 ipfiremake php
a10ae6cc 397 ipfiremake apache2 PASS=C
15679d9f
MT
398 ipfiremake arping
399 ipfiremake beep
400 ipfiremake bind
15679d9f
MT
401 ipfiremake cdrtools
402 ipfiremake dnsmasq
403 ipfiremake dosfstools
444973a4 404 ipfiremake squashfstools
72d80898 405 ipfiremake reiserfsprogs
e0c749da 406 ipfiremake xfsprogs
93afd047 407 ipfiremake sysfsutils
8e055e65 408 ipfiremake fuse
d02350a2 409 ipfiremake ntfs-3g
15679d9f
MT
410 ipfiremake ethtool
411 ipfiremake ez-ipupdate
412 ipfiremake fcron
e3670217 413 ipfiremake perl-GD
330345c2 414 ipfiremake GD-Graph
786f2c8a 415 ipfiremake GD-TextUtil
15679d9f
MT
416 ipfiremake gnupg
417 ipfiremake hdparm
f9956330 418 ipfiremake sdparm
7861f575 419 ipfiremake mtools
15679d9f 420 ipfiremake initscripts
406f019f 421 ipfiremake whatmask
15679d9f 422 ipfiremake iptables
490256d5 423 ipfiremake libupnp
552b817b 424 ipfiremake ipp2p IPT=1
490256d5 425 ipfiremake linux-igd
15679d9f 426 ipfiremake ipaddr
15679d9f 427 ipfiremake iptstate
fd3e7da0 428 ipfiremake iputils
15679d9f 429 ipfiremake l7-protocols
8bba2965 430 ipfiremake mISDN
83bac7f3 431 ipfiremake capi4k-utils
93afd047 432 ipfiremake hwdata
72d80898 433 ipfiremake kudzu
15679d9f
MT
434 ipfiremake logrotate
435 ipfiremake logwatch
15679d9f 436 ipfiremake misc-progs
15679d9f 437 ipfiremake nano
15679d9f
MT
438 ipfiremake nasm
439 ipfiremake URI
440 ipfiremake HTML-Tagset
441 ipfiremake HTML-Parser
442 ipfiremake Compress-Zlib
443 ipfiremake Digest
444 ipfiremake Digest-SHA1
445 ipfiremake Digest-HMAC
446 ipfiremake libwww-perl
447 ipfiremake Net-DNS
448 ipfiremake Net-IPv4Addr
449 ipfiremake Net_SSLeay
450 ipfiremake IO-Stringy
451 ipfiremake Unix-Syslog
452 ipfiremake Mail-Tools
453 ipfiremake MIME-Tools
454 ipfiremake Net-Server
455 ipfiremake Convert-TNEF
456 ipfiremake Convert-UUlib
457 ipfiremake Archive-Tar
458 ipfiremake Archive-Zip
459 ipfiremake Text-Tabs+Wrap
460 ipfiremake Locale-Country
93afd047 461 ipfiremake XML-Parser
c5568d64 462 ipfiremake glib
15679d9f
MT
463 ipfiremake GeoIP
464 ipfiremake fwhits
465 ipfiremake noip_updater
466 ipfiremake ntp
15679d9f 467 ipfiremake openssh
15679d9f
MT
468 ipfiremake rrdtool
469 ipfiremake setserial
470 ipfiremake setup
471 ipfiremake snort
8a5604bf 472 ipfiremake oinkmaster
15679d9f
MT
473 ipfiremake squid
474 ipfiremake squid-graph
475 ipfiremake squidguard
069ae085 476 ipfiremake calamaris
6f00de0d 477 ipfiremake tcpdump
15679d9f
MT
478 ipfiremake traceroute
479 ipfiremake vlan
480 ipfiremake wireless
481 ipfiremake libsafe
15679d9f 482 ipfiremake pakfire
15679d9f 483 ipfiremake java
15679d9f
MT
484 ipfiremake spandsp
485 ipfiremake lzo
486 ipfiremake openvpn
15679d9f 487 ipfiremake pammysql
15679d9f 488 ipfiremake cups
fccb3371
MT
489 ipfiremake ghostscript
490 ipfiremake foomatic
2231d107 491 ipfiremake hplip
15679d9f
MT
492 ipfiremake samba
493 ipfiremake sudo
494 ipfiremake mc
495 ipfiremake wget
15679d9f
MT
496 ipfiremake bridge-utils
497 ipfiremake screen
498 ipfiremake hddtemp
499 ipfiremake smartmontools
500 ipfiremake htop
15679d9f 501 ipfiremake postfix
15679d9f 502 ipfiremake fetchmail
5ad5a6bc 503 ipfiremake cyrus-imapd
58493e1e 504 ipfiremake openmailadmin
15679d9f 505 ipfiremake clamav
15679d9f 506 ipfiremake spamassassin
fd3e7da0 507 ipfiremake amavisd
0708852c 508 ipfiremake alsa
15679d9f 509 ipfiremake mpg123
a28fdc01 510 ipfiremake mpfire
6c98857b 511 ipfiremake guardian
67081922 512 ipfiremake libid3tag
15679d9f
MT
513 ipfiremake libmad
514 ipfiremake libogg
515 ipfiremake libvorbis
3de6d1b9 516 ipfiremake libdvbpsi
15679d9f 517 ipfiremake lame
15679d9f 518 ipfiremake sox
a6931e7e 519 ipfiremake libshout
0dde24fa
MT
520 ipfiremake icecast
521 ipfiremake icegenerator
71043200 522 ipfiremake mpd
f86b0cc3 523 ipfiremake mpc
0dde24fa
MT
524 ipfiremake xvid
525 ipfiremake libmpeg2
3926e90d 526 ipfiremake cmake
0708852c 527 ipfiremake libpri
0708852c 528 ipfiremake asterisk
15679d9f 529 ipfiremake gnump3d
eac942d9 530 ipfiremake libsigc++
15679d9f
MT
531 ipfiremake applejuice
532 ipfiremake ocaml
533 ipfiremake mldonkey
eac942d9
MT
534 ipfiremake libtorrent
535 ipfiremake rtorrent
06209efc 536 ipfiremake ipfireseeder
15679d9f
MT
537 ipfiremake rsync
538 ipfiremake tcpwrapper
539 ipfiremake portmap
540 ipfiremake nfs
541 ipfiremake nmap
15679d9f 542 ipfiremake ncftp
15679d9f 543 ipfiremake etherwake
06da1292 544 ipfiremake bwm-ng
1a8688ba
MT
545 ipfiremake tripwire
546 ipfiremake sysstat
a08c3a2e 547 ipfiremake vsftpd
51f3b7f5 548 ipfiremake which
64cf4991 549 ipfiremake openswan
186e3d2c 550 ipfiremake lsof
c5e5a5aa 551 ipfiremake centerim
d83f547d 552 ipfiremake br2684ctl
bb565aa4 553 ipfiremake pcmciautils
87846bb3 554 ipfiremake lm_sensors
a332b303
CS
555 ipfiremake collectd
556 ipfiremake lcd4linux
e0c749da
MT
557 ipfiremake neon
558 ipfiremake subversion
00b216e6 559 ipfiremake tcptrack
03129a5b 560 ipfiremake teamspeak
3495f7ba 561 ipfiremake elinks
323208ea 562 ipfiremake igmpproxy
47d36d8e 563 ipfiremake fbset
bc38ecd0
MT
564 ipfiremake sdl
565 ipfiremake qemu
08fc1a19 566 ipfiremake sane
b332d4ea
AF
567 ipfiremake netpbm
568 ipfiremake phpSANE
f8abcd46 569 ipfiremake tunctl
0bd7d00b 570 ipfiremake nagios
eb20e136
AF
571 ipfiremake ebtables
572 ipfiremake arptables
debeaeaa
AF
573 ipfiremake fontconfig
574 ipfiremake freefont
78c655ac
AF
575 ipfiremake directfb
576 ipfiremake dfb++
4dab22a1 577 ipfiremake ffmpeg
9232685b 578 ipfiremake videolan
debeaeaa 579 ipfiremake vdr
9dd15f03 580 ipfiremake w_scan
77a2f0af 581 ipfiremake git
3900a6c7 582 ipfiremake squidclamav
3926e90d 583 ipfiremake bc
d115df89 584 ipfiremake esniper
6c33dc5c
AF
585 ipfiremake vnstat
586 ipfiremake vnstati
fad7b108 587 ipfiremake wpa_supplicant
d0817963 588 ipfiremake hostapd
396eca1a 589 ipfiremake urlgrabber
6796a869
AF
590 echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
591 cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild
592 echo >> $BASEDIR/build/var/ipfire/firebuild
593 git log -1 >> $BASEDIR/build/var/ipfire/firebuild
594 echo >> $BASEDIR/build/var/ipfire/firebuild
595 git status >> $BASEDIR/build/var/ipfire/firebuild
596 echo >> $BASEDIR/build/var/ipfire/firebuild
597 cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild
d0817963 598}
df5e82b3
MT
599
600buildinstaller() {
601 # Run installer scripts one by one
602 LOGFILE="$BASEDIR/log/_build.installer.log"
603 export LOGFILE
0afc6d83 604 ipfiremake syslinux
4dc82852
MT
605 ipfiremake as86
606 ipfiremake mbr
fd0763dc 607 ipfiremake memtest
bc9f0c12
MT
608 installmake linux-libc-header
609 installmake binutils
610 ipfiremake uClibc PASS=1
611 ipfiremake gcc INST=1
612 installmake uClibc PASS=2
613 installmake gcc INST=2
614 installmake uClibc PASS=3
df5e82b3 615 installmake busybox
c66941dd 616 installmake udev
33634aa8
MT
617 installmake slang
618 installmake newt
72d80898 619 installmake gettext
33634aa8
MT
620 installmake kbd
621 installmake popt
33634aa8 622 installmake sysvinit
df5e82b3 623 installmake misc-progs
44254afd
MT
624 installmake libaal
625 installmake reiser4progs
89069053 626 installmake reiserfsprogs
a6316ce4 627 installmake sysfsutils
df5e82b3 628 installmake util-linux
df5e82b3 629 installmake pciutils
c5568d64 630 installmake zlib
65f8f30f 631 installmake mtd
c78a77eb 632 installmake wget
93afd047 633 installmake hwdata
fcb5057d 634 installmake kudzu
ff632ec4 635 installmake pcmciautils
df5e82b3 636 installmake installer
df5e82b3 637 installmake initrd
df5e82b3
MT
638}
639
640buildpackages() {
641 LOGFILE="$BASEDIR/log/_build.packages.log"
642 export LOGFILE
643 echo "... see detailed log in _build.*.log files" >> $LOGFILE
0fbb45e9 644
edd536b6 645 installmake strip
df5e82b3
MT
646
647 # Generating list of packages used
0fbb45e9 648 echo -n "Generating packages list from logs" | tee -a $LOGFILE
df5e82b3
MT
649 rm -f $BASEDIR/doc/packages-list
650 for i in `ls -1tr $BASEDIR/log/[^_]*`; do
651 if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
7471f6ab 652 echo "* `basename $i`" >>$BASEDIR/doc/packages-list
df5e82b3
MT
653 fi
654 done
7471f6ab 655 echo "== List of softwares used to build $NAME Version: $VERSION ==" > $BASEDIR/doc/packages-list.txt
4fe9acb2 656 grep -v 'configroot$\|img$\|initrd$\|initscripts$\|installer$\|install$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$\|_missing_rootfile$\|install1$\|install2$\|pass1$\|pass2$\|pass3$' \
df5e82b3
MT
657 $BASEDIR/doc/packages-list | sort >> $BASEDIR/doc/packages-list.txt
658 rm -f $BASEDIR/doc/packages-list
c9673262 659 # packages-list.txt is ready to be displayed for wiki page
0fbb45e9 660 beautify message DONE
df5e82b3 661
9607771a 662 # Create images for install
74dbbc36
MT
663 ipfiremake cdrom ED=full
664
4dc82852 665 # Check if there is a loop device for building in virtual environments
eedc26d9 666 if [ -e /dev/loop/0 ] || [ -e /dev/loop0 ]; then
4dc82852
MT
667 ipfiremake usb-stick
668 fi
c9673262 669
ff753a4c
AF
670 # Create updater package
671 ipfiremake updater
f0fc8807 672 mv $LFS/install/images/{*.iso,*.tgz,*.img.gz,*.bz2} $BASEDIR >> $LOGFILE 2>&1
c9673262 673
0d909a4a 674 ipfirepackages
e67a57fe
MT
675
676 # Cleanup
677 stdumount
678 rm -rf $BASEDIR/build/tmp/*
679
680 # Generating total list of files
0d909a4a 681 echo -n "Generating files list from logs" | tee -a $LOGFILE
e67a57fe
MT
682 rm -f $BASEDIR/log/FILES
683 for i in `ls -1tr $BASEDIR/log/[^_]*`; do
684 if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
685 echo "##" >>$BASEDIR/log/FILES
686 echo "## `basename $i`" >>$BASEDIR/log/FILES
687 echo "##" >>$BASEDIR/log/FILES
688 cat $i | sed "s%^\./%#%" | sort >> $BASEDIR/log/FILES
689 fi
690 done
0d909a4a 691 beautify message DONE
e67a57fe
MT
692
693 cd $PWD
e67a57fe
MT
694}
695
696ipfirepackages() {
4378d325 697 ipfiremake core-updates
fe7fe395 698 for i in $(ls -1 $BASEDIR/config/rootfiles/packages); do
453b418b
MT
699 if [ -e $BASEDIR/lfs/$i ]; then
700 ipfiredist $i
701 else
702 echo -n $i
703 beautify message SKIP
704 fi
fe7fe395 705 done
78331e30 706 test -d $BASEDIR/packages || mkdir $BASEDIR/packages
5c8cfc99 707 mv -f $LFS/install/packages/* $BASEDIR/packages >> $LOGFILE 2>&1
483f59cd 708 rm -rf $BASEDIR/build/install/packages/*
df5e82b3
MT
709}
710
711# See what we're supposed to do
712case "$1" in
713build)
9729e787 714 clear
df5e82b3 715 BUILDMACHINE=`uname -m`
712d859c 716 PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1`
df5e82b3 717 #only restore on a clean disk
9b0ff0a0 718 if [ ! -f log/cleanup-toolchain-2-tools ]; then
df5e82b3 719 if [ ! -n "$PACKAGE" ]; then
15679d9f 720 beautify build_stage "Full toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
df5e82b3
MT
721 prepareenv
722 buildtoolchain
723 else
724 PACKAGENAME=${PACKAGE%.tar.gz}
15679d9f 725 beautify build_stage "Packaged toolchain compilation"
df5e82b3
MT
726 if [ `md5sum $PACKAGE | awk '{print $1}'` == `cat $PACKAGENAME.md5 | awk '{print $1}'` ]; then
727 tar zxf $PACKAGE
728 prepareenv
729 else
730 exiterror "$PACKAGENAME md5 did not match, check downloaded package"
731 fi
732 fi
733 else
9729e787
MT
734 echo -n "Using installed toolchain" | tee -a $LOGFILE
735 beautify message SKIP
df5e82b3
MT
736 prepareenv
737 fi
5cfe86e6 738
7ab7a9b4 739 beautify build_start
0b59f25c 740 beautify build_stage "Building LFS"
df5e82b3 741 buildbase
15679d9f 742
0b59f25c 743 beautify build_stage "Building IPFire"
15679d9f 744 buildipfire
5cfe86e6 745
0b59f25c 746 beautify build_stage "Building installer"
df5e82b3 747 buildinstaller
15679d9f 748
0b59f25c 749 beautify build_stage "Building packages"
df5e82b3 750 buildpackages
7ab7a9b4 751 beautify build_end
df5e82b3
MT
752 ;;
753shell)
754 # enter a shell inside LFS chroot
755 # may be used to changed kernel settings
756 prepareenv
757 entershell
758 ;;
df5e82b3 759clean)
a50d04ab 760 echo -en "${BOLD}Cleaning build directory...${NORMAL}"
df5e82b3
MT
761 for i in `mount | grep $BASEDIR | sed 's/^.*loop=\(.*\))/\1/'`; do
762 $LOSETUP -d $i 2>/dev/null
763 done
764 for i in `mount | grep $BASEDIR | cut -d " " -f 1`; do
765 umount $i
766 done
767 stdumount
768 for i in `seq 0 7`; do
769 if ( losetup /dev/loop${i} 2>/dev/null | grep -q "/install/images" ); then
770 umount /dev/loop${i} 2>/dev/null;
771 losetup -d /dev/loop${i} 2>/dev/null;
772 fi;
773 done
774 rm -rf $BASEDIR/build
775 rm -rf $BASEDIR/cdrom
f9315063 776 rm -rf $BASEDIR/packages
df5e82b3 777 rm -rf $BASEDIR/log
df5e82b3
MT
778 if [ -h /tools ]; then
779 rm -f /tools
780 fi
a50d04ab 781 beautify message DONE
df5e82b3 782 ;;
c3db995c 783downloadsrc)
df5e82b3
MT
784 if [ ! -d $BASEDIR/cache ]; then
785 mkdir $BASEDIR/cache
786 fi
787 mkdir -p $BASEDIR/log
857d9bf2 788 echo -e "${BOLD}Preload all source files${NORMAL}" | tee -a $LOGFILE
df5e82b3
MT
789 FINISHED=0
790 cd $BASEDIR/lfs
791 for c in `seq $MAX_RETRIES`; do
792 if (( FINISHED==1 )); then
793 break
794 fi
795 FINISHED=1
796 cd $BASEDIR/lfs
797 for i in *; do
798 if [ -f "$i" -a "$i" != "Config" ]; then
e22c7973 799 echo -ne "Loading $i"
df5e82b3
MT
800 make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1
801 if [ $? -ne 0 ]; then
e22c7973 802 beautify message FAIL
df5e82b3
MT
803 FINISHED=0
804 else
805 if [ $c -eq 1 ]; then
e22c7973 806 beautify message DONE
df5e82b3
MT
807 fi
808 fi
809 fi
810 done
811 done
e22c7973 812 echo -e "${BOLD}***Verifying md5sums${NORMAL}"
df5e82b3
MT
813 ERROR=0
814 for i in *; do
815 if [ -f "$i" -a "$i" != "Config" ]; then
816 make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t " md5 >> $LOGFILE 2>&1
817 if [ $? -ne 0 ]; then
e22c7973
MT
818 echo -ne "MD5 difference in lfs/$i"
819 beautify message FAIL
df5e82b3
MT
820 ERROR=1
821 fi
822 fi
823 done
824 if [ $ERROR -eq 0 ]; then
e22c7973
MT
825 echo -ne "${BOLD}all files md5sum match${NORMAL}"
826 beautify message DONE
827 else
828 echo -ne "${BOLD}not all files were correctly download${NORMAL}"
829 beautify message FAIL
df5e82b3 830 fi
e22c7973 831 cd - >/dev/null 2>&1
df5e82b3 832 ;;
df5e82b3 833toolchain)
9729e787 834 clear
df5e82b3 835 prepareenv
15679d9f 836 beautify build_stage "Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
df5e82b3
MT
837 buildtoolchain
838 BUILDMACHINE=`uname -m`
839 echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
712d859c
MT
840 test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains
841 cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz \
df5e82b3
MT
842 build/{bin,etc,usr/bin,usr/local} \
843 build/tools/{bin,etc,*-linux-gnu,include,lib,libexec,sbin,share,var} \
844 log >> $LOGFILE
712d859c
MT
845 md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz \
846 > cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.md5
df5e82b3
MT
847 stdumount
848 ;;
849gettoolchain)
850 BUILDMACHINE=`uname -m`
851 # arbitrary name to be updated in case of new toolchain package upload
c6cb9d25 852 PACKAGE=$SNAME-$VERSION-toolchain-$BUILDMACHINE
712d859c 853 if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.gz ]; then
5bd13f01 854 URL_TOOLCHAIN=`grep URL_TOOLCHAIN lfs/Config | awk '{ print $3 }'`
712d859c
MT
855 test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains
856 echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
857 cd $BASEDIR/cache/toolchains
5bd13f01 858 wget $URL_TOOLCHAIN/$PACKAGE.tar.gz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null
712d859c
MT
859 if [ $? -ne 0 ]; then
860 echo "`date -u '+%b %e %T'`: error downloading toolchain for $BUILDMACHINE machine" | tee -a $LOGFILE
40a4ea4c 861 else
712d859c
MT
862 if [ "`md5sum $PACKAGE.tar.gz | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then
863 echo "`date -u '+%b %e %T'`: toolchain md5 ok" | tee -a $LOGFILE
864 else
865 exiterror "$PACKAGE.md5 did not match, check downloaded package"
866 fi
40a4ea4c 867 fi
712d859c
MT
868 else
869 echo "Toolchain is already downloaded. Exiting..."
df5e82b3
MT
870 fi
871 ;;
15679d9f 872othersrc)
ce56e927 873 prepareenv
15679d9f 874 echo -ne "`date -u '+%b %e %T'`: Build sources iso for $MACHINE" | tee -a $LOGFILE
ce56e927
MT
875 chroot $LFS /tools/bin/env -i HOME=/root \
876 TERM=$TERM PS1='\u:\w\$ ' \
877 PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
878 VERSION=$VERSION NAME="$NAME" SNAME="$SNAME" MACHINE=$MACHINE \
879 /bin/bash -x -c "cd /usr/src/lfs && make -f sources-iso LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
880 mv $LFS/install/images/ipfire-* $BASEDIR >> $LOGFILE 2>&1
15679d9f
MT
881 if [ $? -eq "0" ]; then
882 beautify message DONE
883 else
884 beautify message FAIL
885 fi
ce56e927
MT
886 stdumount
887 ;;
483b7768 888git)
c6cb9d25
MT
889 case "$2" in
890 update|up)
483b7768
MT
891 git pull
892 ;;
c6cb9d25 893 commit|ci)
483b7768
MT
894 shift 2
895 git commit $*
896
897 [ "$?" -eq "0" ] || exiterror "git commit $* failed."
898
899 echo -e "${BOLD}Do you want to push, too? [y/N]${NORMAL}"
900 read
901 [ -z $REPLY ] && exit 0
902 for i in y Y j J; do
903 if [ "$i" == "$REPLY" ]; then
904 $0 git push
905 exit $?
906 fi
907 done
908 exiterror "\"$REPLY\" is not a valid answer."
909 ;;
c6cb9d25 910 dist)
483b7768
MT
911 git archive HEAD | gzip -9 > ${SNAME}-${VERSION}.tar.gz
912 ;;
028698e8 913 diff|di)
483b7768
MT
914 echo -ne "Make a local diff to last revision"
915 git diff HEAD > ipfire-diff-$(date +'%Y-%m-%d-%H:%M').diff
916 evaluate 1
917 echo "Diff was successfully saved to ipfire-diff-$(date +'%Y-%m-%d-%H:%M').diff"
918 git diff --stat
919 ;;
920 push)
921 [ -z $GIT_USER ] && exiterror "You have to setup GIT_USER first."
922 GIT_URL="ssh://${GIT_USER}@git.ipfire.org/pub/git/ipfire-2.x"
923
b3b363da 924 git push ${GIT_URL} ${GIT_BRANCH}
483b7768 925 ;;
c6cb9d25 926 esac
f9315063 927 ;;
15679d9f
MT
928uploadsrc)
929 PWD=`pwd`
930 cd $BASEDIR/cache/
931 echo -e "Uploading cache to ftp server:"
fd1b8061 932 ncftpls -u $FTP_CACHE_USER -p $FTP_CACHE_PASS ftp://$FTP_CACHE_URL/$FTP_CACHE_PATH/ > /tmp/ftplist
15679d9f 933 for i in *; do
fd1b8061
MT
934 if [ "$(basename $i)" == "toolchains" ]; then continue; fi
935 grep -q $(basename $i) /tmp/ftplist
0eab8e84 936 if [ "$?" -ne "0" ]; then
fd1b8061
MT
937 echo -ne "$(basename $i)"
938 ncftpput -u $FTP_CACHE_USER -p $FTP_CACHE_PASS $FTP_CACHE_URL $FTP_CACHE_PATH/ $(basename $i)
6fb8ec08 939 if [ "$?" -ne "0" ]; then
15679d9f 940 beautify message FAIL
0eab8e84
MT
941 fi
942 fi
943 done
6fb8ec08 944 rm -f /tmp/ftplist
15679d9f
MT
945 cd $PWD
946 exit 0
0eab8e84 947 ;;
cc0e56be 948upload)
b2c64f8c
MT
949 FTP_ISO_PORT=`echo "$FTP_ISO_URL" | awk -F: '{ print $2 }'`
950 FTP_ISO_URL=`echo "$FTP_ISO_URL" | awk -F: '{ print $1 }'`
951 if [ -z $FTP_ISO_PORT ]; then
952 FTP_ISO_PORT=21
953 fi
954 cat <<EOF > .ftp-commands
de2c999d 955mkdir -p $FTP_ISO_PATH$SVN_REVISION
b2c64f8c 956mkdir -p $FTP_ISO_PATH$SVN_REVISION/paks
9dc02b38
MT
957quit
958EOF
b2c64f8c
MT
959 ncftp -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL < .ftp-commands
960 rm -f .ftp-commands
961
962 case "$2" in
963 iso)
964 echo -e "Uploading the iso to $FTP_ISO_PATH/$SVN_REVISION."
965
8f55c54e 966 md5sum ipfire-$VERSION.$MACHINE-full.iso > ipfire-$VERSION.$MACHINE-full.iso.md5
dff9df9d
MT
967 for i in svn_status ipfire-source-r$SVN_REVISION.tar.gz ipfire-$VERSION.$MACHINE-full.iso ipfire-$VERSION.$MACHINE-full.iso.md5 ipfire-$VERSION.$MACHINE-devel.iso ipfire-$VERSION.$MACHINE-devel.iso.md5; do
968 if [ -e "$i" ]; then
b2c64f8c
MT
969 ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/ $i
970 if [ "$?" -eq "0" ]; then
971 echo "The file with name $i was successfully uploaded to $FTP_ISO_URL$FTP_ISO_PATH$SVN_REVISION/."
972 else
973 echo "There was an error while uploading the file $i to the ftp server."
974 exit 1
975 fi
dff9df9d 976 fi
b2c64f8c 977 done
a4c9c660 978 rm -f ipfire-$VERSION.$MACHINE-full.iso.md5
6aae8d61 979 if [ "$3" = "--with-sources-cd" ]; then
b2c64f8c 980 ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH/$SVN_REVISION/ ipfire-sources-cd-$VERSION.$MACHINE.iso
6aae8d61 981 fi
cc0e56be
MT
982 ;;
983 paks)
b2c64f8c 984 ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/paks packages/*
cc0e56be 985 if [ "$?" -eq "0" ]; then
822c5bd0 986 echo -e "The packages were successfully uploaded to $FTP_ISO_URL$FTP_ISO_PATH$SVN_REVISION/."
cc0e56be
MT
987 else
988 echo -e "There was an error while uploading the packages to the ftp server."
712d859c 989 exit 1
cc0e56be
MT
990 fi
991 ;;
992 esac
0d0521b6 993 ;;
cc0e56be 994batch)
c8582074 995 if [ "$2" = "--background" ]; then
15679d9f
MT
996 batch_script
997 exit $?
998 fi
27ac55bf 999 if [ `screen -ls | grep -q ipfire` ]; then
712d859c
MT
1000 echo "Build is already running, sorry!"
1001 exit 1
1002 else
27ac55bf
MT
1003 if [ "$2" = "--rebuild" ]; then
1004 export IPFIRE_REBUILD=1
1005 echo "REBUILD!"
1006 else
1007 export IPFIRE_REBUILD=0
1008 fi
15679d9f
MT
1009 echo -en "${BOLD}***IPFire-Batch-Build is starting...${NORMAL}"
1010 screen -dmS ipfire $0 batch --background
1011 evaluate 1
712d859c
MT
1012 exit 0
1013 fi
cc0e56be 1014 ;;
028698e8 1015watch)
15679d9f 1016 watch_screen
028698e8 1017 ;;
33634aa8
MT
1018pxe)
1019 case "$2" in
1020 start)
1021 start_tftpd
1022 ;;
1023 stop)
1024 stop_tftpd
1025 ;;
a50d04ab 1026 reload|restart)
33634aa8
MT
1027 reload_tftpd
1028 ;;
1029 esac
1030 exit 0
1031 ;;
bf7c473f
MT
1032lang)
1033 update_langs
1034 ;;
6b8cff41 1035"")
24a4a744 1036 clear
d6d43509 1037 select name in "Exit" "IPFIRE: Downloadsrc" "IPFIRE: Build (silent)" "IPFIRE: Watch Build" "IPFIRE: Batch" "IPFIRE: Clean" "LOG: Tail" "Help"
24a4a744
MT
1038 do
1039 case $name in
c3db995c
MT
1040 "IPFIRE: Downloadsrc")
1041 $0 downloadsrc
c6cb9d25
MT
1042 ;;
1043 "IPFIRE: Build (silent)")
1044 $0 build-silent
1045 ;;
1046 "IPFIRE: Watch Build")
028698e8 1047 $0 watch
c6cb9d25 1048 ;;
712d859c
MT
1049 "IPFIRE: Batch")
1050 $0 batch
1051 ;;
c6cb9d25
MT
1052 "IPFIRE: Clean")
1053 $0 clean
1054 ;;
c6cb9d25 1055 "Help")
a50d04ab 1056 echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain}"
c6cb9d25
MT
1057 cat doc/make.sh-usage
1058 ;;
712d859c
MT
1059 "LOG: Tail")
1060 tail -f log/_*
1061 ;;
c6cb9d25
MT
1062 "Exit")
1063 break
1064 ;;
24a4a744
MT
1065 esac
1066 done
df5e82b3 1067 ;;
a50d04ab
MT
1068config)
1069 make_config
1070 ;;
6b8cff41 1071*)
a50d04ab 1072 echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain}"
6b8cff41
MT
1073 cat doc/make.sh-usage
1074 ;;
3ea75603 1075esac