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