configure.ac 49.3 KB
Newer Older
Leigh B. Stoller's avatar
Leigh B. Stoller committed
1
#
2
# Copyright (c) 2000-2015 University of Utah and the Flux Group.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
# 
# {{{EMULAB-LICENSE
# 
# This file is part of the Emulab network testbed software.
# 
# This file is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at
# your option) any later version.
# 
# This file is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public
# License for more details.
# 
# You should have received a copy of the GNU Affero General Public License
# along with this file.  If not, see <http://www.gnu.org/licenses/>.
# 
# }}}
Leigh B. Stoller's avatar
Leigh B. Stoller committed
22
#
23
AC_PREREQ([2.68])
24

25 26 27
AC_INIT
AC_CONFIG_SRCDIR([Makeconf.in])
AC_CONFIG_AUX_DIR(autoconf)
28
AC_PREFIX_DEFAULT(/usr/testbed)
29
AC_CONFIG_HEADER(config.h)
Leigh B Stoller's avatar
Leigh B Stoller committed
30
AC_CANONICAL_HOST
31

32 33 34 35 36 37
# We use separate source and obj trees in Emulab.  Configuring in a source
# tree messes it up, so throw an error.
#
# Check that $srcdir, (which defaults to the argv[0] path to the configure
# script,) is different from the current directory.
#
38
if test `(cd $srcdir; pwd)` = `pwd`; then
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
    if test "$ac_srcdir_defaulted" = yes; then
	AC_MSG_ERROR(
	    [You are running the configure script in the current directory.
Output from configure must go into an Emulab obj tree, not a source tree!
cd to the top of an obj tree, and run the configure in your source tree.])
    else
	AC_MSG_ERROR(
	    [You specified --srcdir= to be the current directory.
Output from configure should go into an Emulab obj tree, not a source tree!
cd to the top of an obj tree, and run the configure in your source tree.
Then --srcdir= will be unnecessary.])
    fi
fi
#
# Double-check that there isn't a Makeconf.in (the UNIQUE-FILE-IN-SOURCE-DIR)
# in the current directory.
#
if test -f $ac_unique_file; then
    AC_MSG_ERROR([The current directory is a source tree containing $ac_unique_file .
Output from configure should go into an Emulab obj tree, not a source tree!
cd to the top of an obj tree, and run the configure in your source tree.])
fi

Timothy Stack's avatar
 
Timothy Stack committed
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
for tbarch in arm/3.4.1; do
    PATH="/usr/local/$tbarch/bin:${PATH}"
done

if test x"${JAVA_HOME}" != x""; then
    PATH="${JAVA_HOME}/bin:${PATH}"
else
    for jdk in /usr/local/jdk*; do
	PATH="${jdk}/bin:${PATH}"
	break
    done
fi

AC_SUBST(PATH)

Leigh B Stoller's avatar
Leigh B Stoller committed
77
CPPFLAGS="-I/usr/local/include"
78

Leigh B Stoller's avatar
Leigh B Stoller committed
79
# BEGIN Python detection. For the event library.
80
AC_PATH_PROGS(PYTHON, python python2.7 python2.6 python2.5 python2.4 python2.3 python2.2)
81 82 83 84 85 86 87

if test x"$PYTHON" = x""; then
    AC_MSG_ERROR([python not detected])
fi

PYTHON_VERSION=`${PYTHON} -V 2>&1 | cut -d ' ' -f 2 | cut -d '.' -f 1,2`
PYTHON_PATH=`dirname ${PYTHON}`
88 89 90
if test ! -d "$PYTHON_PATH/include"; then
    PYTHON_PATH=`dirname ${PYTHON_PATH}`
fi
91 92 93 94
PYTHON_INCLUDE="${PYTHON_PATH}/include/python${PYTHON_VERSION}"
CPPFLAGS="${CPPFLAGS} -I${PYTHON_INCLUDE}"
AC_CHECK_HEADERS([Python.h],
		 [],
95
		 [AC_MSG_WARN("Cannot find Python.h in ${PYTHON_INCLUDE}")])
96 97 98
AC_SUBST(PYTHON_INCLUDE)
# END Python detection.

99 100 101 102 103
AC_CHECK_TOOL(CC,gcc)
AC_CHECK_TOOL(CXX,g++)
AC_CHECK_TOOL(AR,ar)
AC_CHECK_TOOL(RANLIB,ranlib)
AC_CHECK_TOOL(STRIP,strip)
Timothy Stack's avatar
 
Timothy Stack committed
104

105 106
AC_EXEEXT

107
AC_PATH_PROG(DIG,dig)
Timothy Stack's avatar
 
Timothy Stack committed
108
AC_PATH_PROG(ELVIN_CONFIG,elvin-config)
Timothy Stack's avatar
 
Timothy Stack committed
109 110
AC_PATH_PROG(JAVAC,javac)
AC_PATH_PROG(JAR,jar)
111
AC_PATH_PROG(NC,nc)
112
AC_PATH_PROG(SUDO,sudo)
Mike Hibler's avatar
Mike Hibler committed
113
AC_PATH_PROG(UUIDGEN,uuidgen)
Timothy Stack's avatar
 
Timothy Stack committed
114

Robert Ricci's avatar
Robert Ricci committed
115
AC_CHECK_TOOL(SSH,ssh)
116

Timothy Stack's avatar
 
Timothy Stack committed
117 118
AC_CHECK_FUNCS(srandomdev)

119 120
AC_SUBST(optional_subdirs)

121
#
122
# These get defined in the definitions file (--with-TBDEFS).
123 124
# NB: See AC_DEFINE_UNQUOTED() calls below, if you want a variable
# to appear in config.h.
Ryan Jackson's avatar
Ryan Jackson committed
125
#
126
AC_SUBST(TBDBNAME)
127
AC_SUBST(TBERRORLOGDBNAME)
128
AC_SUBST(TBADMINGROUP)
Leigh B. Stoller's avatar
Leigh B. Stoller committed
129 130
AC_SUBST(DELAYCAPACITY)
AC_SUBST(IPBASE)
131 132
AC_SUBST(JAILIPBASE)
AC_SUBST(JAILIPMASK)
133 134
AC_SUBST(BOSSNODE)
AC_SUBST(USERNODE)
135
AC_SUBST(FSNODE)
136
AC_SUBST(EVENTSERVER)
137
AC_SUBST(BOSSEVENTPORT)
138
AC_SUBST(OURDOMAIN)
139 140 141 142 143
AC_SUBST(USERSROOT_DIR)
AC_SUBST(PROJROOT_DIR)
AC_SUBST(GROUPSROOT_DIR)
AC_SUBST(SCRATCHROOT_DIR)
AC_SUBST(SHAREROOT_DIR)
144 145 146
AC_SUBST(FSDIR_PROJ)
AC_SUBST(FSDIR_GROUPS)
AC_SUBST(FSDIR_USERS)
147
AC_SUBST(FSDIR_SHARE)
148
AC_SUBST(FSDIR_SCRATCH)
149
AC_SUBST(FS_WITH_QUOTAS)
150
AC_SUBST(TRACK_INTERSWITCH_BANDWIDTH)
151
AC_SUBST(TIMESTAMPS)
152
AC_SUBST(OURTIMEZONE)
153
AC_SUBST(NODECONSOLE)
154
AC_SUBST(MFSVERSION)
155
AC_SUBST(UNIFIED_BOSS_AND_OPS)
156
AC_SUBST(DISABLE_NSE)
157 158
AC_SUBST(DISABLE_DHCPD_INSTALL)
AC_SUBST(DISABLE_NAMED_INSTALL)
159
AC_SUBST(DISABLE_NAMED_SETUP)
160
AC_SUBST(DISABLE_EXPORTS_SETUP)
161
AC_SUBST(DISABLE_EVENT_SCHED)
162 163 164
AC_SUBST(CLIENT_ETCDIR)
AC_SUBST(CLIENT_BINDIR)
AC_SUBST(CLIENT_VARDIR)
165
AC_SUBST(CLIENT_MANDIR)
166
AC_SUBST(SNMP_RW_COMMUNITY)
167 168 169
AC_SUBST(WWWHOST)
AC_SUBST(WWW)
AC_SUBST(TBBASE)
170
AC_SUBST(TBDEFS)
171 172 173 174 175 176 177 178
AC_SUBST(TBDOCBASE)
AC_SUBST(TBWWW)
AC_SUBST(THISHOMEBASE)
AC_SUBST(TBSECURECOOKIES)
AC_SUBST(TBCOOKIESUFFIX)
AC_SUBST(TBAUTHDOMAIN)
AC_SUBST(TBAUTHTIMEOUT)
AC_SUBST(TBMAINSITE)
179
AC_SUBST(FANCYBANNER)
180
AC_SUBST(SFSSUPPORT)
181
AC_SUBST(ELABINELAB)
182 183 184
AC_SUBST(OUTERBOSS_NODENAME)
AC_SUBST(OUTERBOSS_XMLRPCPORT)
AC_SUBST(OUTERBOSS_SSLCERTNAME)
Ryan Jackson's avatar
Ryan Jackson committed
185
AC_SUBST(SUBBOSS_SSLCERTNAME)
186
AC_SUBST(PLABSUPPORT)
Kevin Atkinson's avatar
 
Kevin Atkinson committed
187
AC_SUBST(PUBSUPPORT)
188
AC_SUBST(WIKISUPPORT)
189
AC_SUBST(MAILMANSUPPORT)
190
AC_SUBST(BUGDBSUPPORT)
191
AC_SUBST(OPSDBSUPPORT)
Timothy Stack's avatar
Timothy Stack committed
192
AC_SUBST(NFSTRACESUPPORT)
193
AC_SUBST(NTPSERVER)
194 195 196 197 198
AC_SUBST(EXTERNAL_NTPSERVER1)
AC_SUBST(EXTERNAL_NTPSERVER2)
AC_SUBST(EXTERNAL_NTPSERVER3)
AC_SUBST(EXTERNAL_NTPSERVER4)
AC_SUBST(NTPDRIFTFILE)
199
AC_SUBST(TBLOGFACIL)
200
AC_SUBST(TESTBED_NETWORK)
201
AC_SUBST(EXTERNAL_TESTBED_NETWORK)
202
AC_SUBST(TESTBED_NETMASK)
203
AC_SUBST(EXTERNAL_TESTBED_NETMASK)
204
AC_SUBST(BOSSNODE_IP)
205
AC_SUBST(EXTERNAL_BOSSNODE_IP)
206
AC_SUBST(USERNODE_IP)
207
AC_SUBST(EXTERNAL_USERNODE_IP)
208 209
AC_SUBST(FSNODE_IP)
AC_SUBST(EXTERNAL_FSNODE_IP)
210 211 212 213 214 215 216 217 218
AC_SUBST(CONTROL_ROUTER_IP)
AC_SUBST(CONTROL_NETWORK)
AC_SUBST(CONTROL_NETMASK)
AC_SUBST(PRIVATE_NETWORK)
AC_SUBST(PRIVATE_ROUTER)
AC_SUBST(PRIVATE_NETMASK)
AC_SUBST(PUBLIC_NETWORK)
AC_SUBST(PUBLIC_ROUTER)
AC_SUBST(PUBLIC_NETMASK)
219 220 221
AC_SUBST(MANAGEMENT_NETWORK)
AC_SUBST(MANAGEMENT_NETMASK)
AC_SUBST(MANAGEMENT_ROUTER)
222 223
AC_SUBST(VIRTNODE_NETWORK)
AC_SUBST(VIRTNODE_NETMASK)
224
AC_SUBST(DHCPD_DYNRANGE)
225
AC_SUBST(DHCPD_EXTRAIFS)
226
AC_SUBST(DHCPD_CONTROLNET_DECL)
227
AC_SUBST(NAMED_FORWARDERS)
228
AC_SUBST(NAMED_ALSONOTIFY)
229 230 231 232
AC_SUBST(SSLCERT_COUNTRY)
AC_SUBST(SSLCERT_STATE)
AC_SUBST(SSLCERT_LOCALITY)
AC_SUBST(SSLCERT_ORGNAME)
233 234
AC_SUBST(FRISEBEEMCASTADDR)
AC_SUBST(FRISEBEEMCASTPORT)
235
AC_SUBST(FRISEBEENUMPORTS)
236
AC_SUBST(WINSUPPORT)
Mike Hibler's avatar
Mike Hibler committed
237
AC_SUBST(NSVERIFY)
238
AC_SUBST(CVSSUPPORT)
239
AC_SUBST(TRACSUPPORT)
240
AC_SUBST(CHATSUPPORT)
241
AC_SUBST(STAMPS)
242
AC_SUBST(ARCHIVESUPPORT)
243 244
AC_SUBST(MIN_UNIX_UID)
AC_SUBST(MIN_UNIX_GID)
245
AC_SUBST(DELAYTHRESH)
246
AC_SUBST(PELABSUPPORT)
247
AC_SUBST(ELVIN_COMPAT)
248 249
AC_SUBST(ISOLATEADMINS)
AC_SUBST(DYNAMICROOTPASSWORDS)
250
AC_SUBST(TPM)
251
AC_SUBST(REMOTEWIKIDOCS)
Leigh B. Stoller's avatar
Leigh B. Stoller committed
252
AC_SUBST(PROTOGENI_SUPPORT)
253 254 255
AC_SUBST(PROTOGENI_WEBSITE)
AC_SUBST(PROTOGENI_ISCLEARINGHOUSE)
AC_SUBST(PROTOGENI_EMAIL)
Leigh B. Stoller's avatar
Leigh B. Stoller committed
256
AC_SUBST(PROTOGENI_DOMAIN)
257 258
AC_SUBST(PROTOGENI_RPCPORT)
AC_SUBST(PROTOGENI_RPCNAME)
259
AC_SUBST(PROTOGENI_LOCALUSER)
260
AC_SUBST(PROTOGENI_MAXSERVERLOAD)
261
AC_SUBST(PROTOGENI_GENIWEBLOGIN)
262
AC_SUBST(GENI_PUBRPCPORT)
263
AC_SUBST(PROTOGENI_URL)
264
AC_SUBST(PROTOGENI_GENIRACK)
Gary Wong's avatar
Gary Wong committed
265
AC_SUBST(PROTOGENI_NICKNAME)
266
AC_SUBST(STANDALONE_CLEARINGHOUSE)
267
AC_SUBST(GMAP_API_KEY)
268
AC_SUBST(NODE_USAGE_SUPPORT)
269
AC_SUBST(NOSTACKMIB)
270
AC_SUBST(EXP_VIS_SUPPORT)
271
AC_SUBST(NOSHAREDFS)
272
AC_SUBST(IMPORT_TMPDIR)
273
AC_SUBST(SELFLOADER_DATA)
274
AC_SUBST(TBUSEDBI)
275
AC_SUBST(NEEDMCQUERIER)
276 277
AC_SUBST(OPSVM_ENABLE)
AC_SUBST(OPSVM_MOUNTPOINT)
278 279
AC_SUBST(PORTAL_ENABLE)
AC_SUBST(PORTAL_ISPRIMARY)
280
AC_SUBST(LINUX_FSNODE)
281 282
AC_SUBST(VPUBADDR_BASE)
AC_SUBST(VPUBADDR_BITLEN)
283 284 285 286
AC_SUBST(WINDOWS_ORGNAME)
AC_SUBST(WINDOWS_OWNER)
AC_SUBST(WINDOWS_TIMEZONE)
AC_SUBST(WINDOWS_KEY_7PRO_X86)
287 288 289 290
AC_SUBST(FIREWALL_BOSS)
AC_SUBST(FIREWALL_OPS)
AC_SUBST(FIREWALL_BOSS_LOCALRULETMPL)
AC_SUBST(FIREWALL_OPS_LOCALRULETMPL)
291
AC_SUBST(SPEWFROMOPS)
292
AC_SUBST(NOSITECHECKIN)
293
AC_SUBST(EC2META_ENABLE)
294
AC_SUBST(BROWSER_CONSOLE_ENABLE)
Gary Wong's avatar
Gary Wong committed
295 296
AC_SUBST(IPV6_ENABLED)
AC_SUBST(IPV6_SUBNET_PREFIX)
297
AC_SUBST(NFSMAPTOUSER)
298
AC_SUBST(IMAGEPROVENANCE)
299
AC_SUBST(IMAGEDELTAS)
300
AC_SUBST(PROFILEVERSIONS)
301
AC_SUBST(NOVIRTNFSMOUNTS)
302 303 304 305 306
AC_SUBST(WITHZFS)
AC_SUBST(ZFS_ROOT)
AC_SUBST(ZFS_QUOTA_USER)
AC_SUBST(ZFS_QUOTA_PROJECT)
AC_SUBST(ZFS_QUOTA_GROUP)
307
AC_SUBST(ZFS_NOEXPORT)
308
AC_SUBST(INCREMENTAL_MOUNTD)
309 310
AC_SUBST(WITHAMD)
AC_SUBST(AMD_ROOT)
311
AC_SUBST(BS_IQN_PREFIX)
312

313 314 315 316 317 318
#
# Offer both versions of the email addresses that have the @ escaped
# for perl (the default), and that don't
#
AC_SUBST(TBOPSEMAIL)
AC_SUBST(TBOPSEMAIL_NOSLASH)
319 320
AC_SUBST(TBROBOCOPSEMAIL)
AC_SUBST(TBROBOCOPSEMAIL_NOSLASH)
321 322 323 324 325 326 327 328 329 330 331 332
AC_SUBST(TBLOGSEMAIL)
AC_SUBST(TBLOGSEMAIL_NOSLASH)
AC_SUBST(TBWWWEMAIL)
AC_SUBST(TBWWWEMAIL_NOSLASH)
AC_SUBST(TBAPPROVALEMAIL)
AC_SUBST(TBAPPROVALEMAIL_NOSLASH)
AC_SUBST(TBAUDITEMAIL)
AC_SUBST(TBAUDITEMAIL_NOSLASH)
AC_SUBST(TBSTATEDEMAIL)
AC_SUBST(TBSTATEDEMAIL_NOSLASH)
AC_SUBST(TBTESTSUITEEMAIL)
AC_SUBST(TBTESTSUITEEMAIL_NOSLASH)
333 334
AC_SUBST(TBAUTOMAILEMAIL)
AC_SUBST(TBAUTOMAILEMAIL_NOSLASH)
335 336 337 338
AC_SUBST(TBACTIVEARCHIVE)
AC_SUBST(TBACTIVEARCHIVE_NOSLASH)
AC_SUBST(TBUSERSARCHIVE)
AC_SUBST(TBUSERSARCHIVE_NOSLASH)
Leigh B. Stoller's avatar
Leigh B. Stoller committed
339 340
AC_SUBST(TBERRORSEMAIL)
AC_SUBST(TBERRORSEMAIL_NOSLASH)
341

342 343 344 345 346
#
# For snmpit support of Arista switch.
#
AC_SUBST(ARISTA_SWITCH_XMLRPCPORT)

347 348
#
# Defaults for for above variables.
Ryan Jackson's avatar
Ryan Jackson committed
349
#
350
TBERRORLOGDBNAME="errorlog"
351
TBADMINGROUP="flux"
352 353 354
CLIENT_ETCDIR="/etc/emulab"
CLIENT_BINDIR="/usr/local/etc/emulab"
CLIENT_VARDIR="/var/emulab"
355
CLIENT_MANDIR="/usr/local/man"
356 357
TBSECURECOOKIES=1
TBMAINSITE=0
358
TBUSEDBI=0
359
FANCYBANNER=0
360 361 362 363
VIRTNODE_NETWORK=172.16.0.0
VIRTNODE_NETMASK=255.240.0.0
JAILIPBASE=$VIRTNODE_NETWORK
JAILIPMASK=$VIRTNODE_NETMASK
364
IPBASE=10
365
SFSSUPPORT=0
366
ELABINELAB=0
367 368 369
OUTERBOSS_NODENAME=""
OUTERBOSS_XMLRPCPORT=3069
OUTERBOSS_SSLCERTNAME="/etc/outer_emulab.pem"
Ryan Jackson's avatar
Ryan Jackson committed
370
SUBBOSS_SSLCERTNAME="/etc/subboss.pem"
371
PLABSUPPORT=0
Kevin Atkinson's avatar
 
Kevin Atkinson committed
372
PUBSUPPORT=0
373
WIKISUPPORT=0
374
BUGDBSUPPORT=0
375
OPSDBSUPPORT=0
376
MAILMANSUPPORT=0
377
WINSUPPORT=0
Mike Hibler's avatar
Mike Hibler committed
378
NSVERIFY=1
379
CVSSUPPORT=0
380
TRACSUPPORT=0
381
CHATSUPPORT=0
382
STAMPS=0
383
ARCHIVESUPPORT=0
Timothy Stack's avatar
Timothy Stack committed
384
NFSTRACESUPPORT=0
385
TBLOGFACIL="local5"
386
BOSSEVENTPORT=16505
387
NTPSERVER="ops"
388 389 390 391 392
EXTERNAL_NTPSERVER1="0.pool.ntp.org"
EXTERNAL_NTPSERVER2="1.pool.ntp.org"
EXTERNAL_NTPSERVER3="2.pool.ntp.org"
EXTERNAL_NTPSERVER4="3.pool.ntp.org"
NTPDRIFTFILE="/var/db/ntp.drift"
393
UNIFIED_BOSS_AND_OPS=0
394 395
DISABLE_NAMED_INSTALL=0
DISABLE_DHCPD_INSTALL=0
396
DISABLE_NAMED_SETUP=0
397 398
FRISEBEEMCASTADDR="234.5.6"
FRISEBEEMCASTPORT=3564
399
FRISEBEENUMPORTS=0
400 401
MIN_UNIX_UID=10000
MIN_UNIX_GID=6000
402
DELAYTHRESH=2
403
PELABSUPPORT=0
404
ELVIN_COMPAT=0
405 406
ISOLATEADMINS=1
DYNAMICROOTPASSWORDS=1
407
TPM=0
408
REMOTEWIKIDOCS=1
Leigh B. Stoller's avatar
Leigh B. Stoller committed
409
PROTOGENI_SUPPORT=0
410 411 412
PROTOGENI_ISCLEARINGHOUSE=0
PROTOGENI_EMAIL="geni-dev-utah@flux.utah.edu"
PROTOGENI_WEBSITE="www.emulab.net"
Leigh B. Stoller's avatar
Leigh B. Stoller committed
413
PROTOGENI_DOMAIN="unknown"
414 415
PROTOGENI_RPCPORT=12369
PROTOGENI_RPCNAME=""
416 417
PROTOGENI_LOCALUSER=0
PROTOGENI_GENIWEBLOGIN=0
418
PROTOGENI_MAXSERVERLOAD=12
419
GENI_PUBRPCPORT=12370
420
PROTOGENI_GENIRACK=0
Gary Wong's avatar
Gary Wong committed
421
PROTOGENI_NICKNAME="unknown"
422
STANDALONE_CLEARINGHOUSE=0
423
NODE_USAGE_SUPPORT=0
424
EXP_VIS_SUPPORT=0
425
NOSTACKMIB=0
426
NOSHAREDFS=0
427
IMPORT_TMPDIR="/q"
428
NFSRACY=1
429
SELFLOADER_DATA="__DATA__"
430
NEEDMCQUERIER=0
431 432
OPSVM_ENABLE=0
OPSVM_MOUNTPOINT="/ops"
433
OURTIMEZONE="America/Denver"
434
NODECONSOLE="sio"
435
MFSVERSION=""
436 437
PORTAL_ENABLE=0
PORTAL_ISPRIMARY=0
438
LINUX_FSNODE=0
439
DHCPD_EXTRAIFS=""
440 441
VPUBADDR_BASE="none"
VPUBADDR_BITLEN="none"
442
ARISTA_SWITCH_XMLRPCPORT=80
443 444 445 446
FIREWALL_BOSS=0
FIREWALL_OPS=0
FIREWALL_BOSS_LOCALRULETMPL=""
FIREWALL_OPS_LOCALRULETMPL=""
447
SPEWFROMOPS=0
448
NOSITECHECKIN=0
449
EC2META_ENABLE=0
450
BROWSER_CONSOLE_ENABLE=0
451 452
IPV6_ENABLED=0
IPV6_SUBNET_PREFIX=""
453 454 455
MANAGEMENT_NETWORK="10.249.249.0"
MANAGEMENT_NETMASK="255.255.255.0"
MANAGEMENT_ROUTER="10.249.249.253"
456
NFSMAPTOUSER="root"
457
IMAGEPROVENANCE=0
458
IMAGEDELTAS=0
459
PROFILEVERSIONS=0
460
NOVIRTNFSMOUNTS=0
461 462 463 464 465
WITHZFS=0
ZFS_ROOT=z
ZFS_QUOTA_USER="1G"
ZFS_QUOTA_PROJECT="100G"
ZFS_QUOTA_GROUP="10G"
466
ZFS_NOEXPORT=0
467
INCREMENTAL_MOUNTD=0
468 469
WITHAMD=0
AMD_ROOT=/.amd_mnt
470
BS_IQN_PREFIX=iqn.2000-10.net.emulab
471

472 473 474 475 476 477 478 479 480 481
#
# XXX You really don't want to change these!
# They are ingrained and who knows what might break if you change them.
#
USERSROOT_DIR="/users"
PROJROOT_DIR="/proj"
GROUPSROOT_DIR="/groups"
SHAREROOT_DIR="/share"
SCRATCHROOT_DIR=""

Leigh B Stoller's avatar
Leigh B Stoller committed
482 483 484 485 486 487
#
# Flag as full Emulab build (for clientside). 
#
WITH_EMULAB=1
AC_SUBST(WITH_EMULAB)

488 489 490
#
# Okay, I know this is improper usage of --with. Too bad.
#
491 492
AC_ARG_WITH(TBDEFS,
[  --with-TBDEFS=name	Specify definitions file (defs-default default)],
493 494
[
    if test "$withval" = "yes"; then
495
	AC_MSG_ERROR([Invalid TBDEFS - Must specify the value])
496
    fi
497
    TBDEFS="$withval"
498
    TBPATH=`dirname $withval`
499
],[
500 501 502
    AC_MSG_ERROR(
	[The required --with-TBDEFS= argument was not given.
The value of --with-TBDEFS= must be the path to your Emulab defs file.
503 504
Copy and modify the defs-example file for your Emulab installation.
defs-default has values for Utah, including client-side image compilations.])
505
])
506 507 508 509 510

if test -f $TBDEFS; then
    #
    # Remove the comments and newlines.  Really, that's what it does.
    #
511 512
    OLDPATH=$PATH
    PATH="$TBPATH:$PATH"
513
    . $TBDEFS
514
    PATH=$OLDPATH
515 516 517
else
	AC_MSG_ERROR([Definitions file $TBDEFS was not found.])
fi
518

519 520 521 522 523
# XXX this can optionally be set in the defs file
if test -n "$FSDIR_SCRATCH"; then
    SCRATCHROOT_DIR="/scratch"
fi

Gary Wong's avatar
Gary Wong committed
524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557
# Try to guess ProtoGENI nickname if it wasn't specified explicitly,
# for backward compatibility (nobody used to care what they were called)
if test x"$PROTOGENI_NICKNAME" = x"unknown"; then
    case $OURDOMAIN in
    *utah.geniracks.net) PROTOGENI_NICKNAME="utah-ig";;
    *utahddc.geniracks.net) PROTOGENI_NICKNAME="utahddc-ig";;
    *gpolab.bbn.com) PROTOGENI_NICKNAME="gpo-ig";;
    *northwestern.edu) PROTOGENI_NICKNAME="northwestern-ig";;
    *lan.sdn.uky.edu) PROTOGENI_NICKNAME="uky-ig";;
    *kettering.edu) PROTOGENI_NICKNAME="kettering-ig";;
    *rnoc.gatech.edu) PROTOGENI_NICKNAME="gatech-ig";;
    *cs.princeton.edu) PROTOGENI_NICKNAME="princeton-ig";;
    *clemson.edu) PROTOGENI_NICKNAME="clemson-ig";;
    *ku.gpeni.net) PROTOGENI_NICKNAME="kansas-ig";;
    *nyu.edu) PROTOGENI_NICKNAME="nyu-ig";;
    *uidaho.edu) PROTOGENI_NICKNAME="idaho-ig";;
    *maxgigapop.net) PROTOGENI_NICKNAME="max-ig";;
    *nysernet.org) PROTOGENI_NICKNAME="nysernet-ig";;
    *sox.net) PROTOGENI_NICKNAME="sox-ig";;
    *illinois.edu) PROTOGENI_NICKNAME="illinois-ig";;
    *rnet.missouri.edu) PROTOGENI_NICKNAME="missouri-ig";;
    *wisc.edu) PROTOGENI_NICKNAME="wisconsin-ig";;
    *rutgers.edu) PROTOGENI_NICKNAME="rutgers-ig";;
    *stanford.edu) PROTOGENI_NICKNAME="stanford-ig";;
    *it.cornell.edu) PROTOGENI_NICKNAME="cornell-ig";;
    *lsu.edu) PROTOGENI_NICKNAME="lsu-ig";;
    *case.edu) PROTOGENI_NICKNAME="cwru-ig";;
    *iu.edu) PROTOGENI_NICKNAME="moxi-ig";;
    *uchicago.edu) PROTOGENI_NICKNAME="uchicago-ig";;
    *metrodatacenter.com) PROTOGENI_NICKNAME="ohmetrodc-ig";;
    *nps.edu) PROTOGENI_NICKNAME="nps-ig";;
    *osu.edu) PROTOGENI_NICKNAME="osu-ig";;
    *umkc.edu) PROTOGENI_NICKNAME="umkc-ig";;
    *idre.ucla.edu) PROTOGENI_NICKNAME="ucla-ig";;
558 559
    *washington.edu) PROTOGENI_NICKNAME="uwashington-ig";;
    *rnet.missouri.edu) PROTOGENI_NICKNAME="missouri-ig";;
Gary Wong's avatar
Gary Wong committed
560 561 562
    *pks2.sdn.uky.edu) PROTOGENI_NICKNAME="ukypks2-ig";;
    *colorado.edu) PROTOGENI_NICKNAME="colorado-ig";;
    *cenic.net) PROTOGENI_NICKNAME="cenic-ig";;
Gary Wong's avatar
Gary Wong committed
563 564 565
    esac
fi

566 567 568 569 570 571
#
# These must come after the "eval" above, since the variables are not
# defined until the defs file is taken in.
#
# Be sure to add to config.h.in!
#
572
if test x"$prefix" = x"NONE"; then
573
    AC_DEFINE_UNQUOTED(TBROOT, "/usr/testbed", [FS base for Emulab files])
574
else
575 576 577 578 579 580 581 582 583 584 585 586 587 588 589
    AC_DEFINE_UNQUOTED(TBROOT, "$prefix", [FS base for Emulab files])
fi
AC_DEFINE_UNQUOTED(TBDBNAME, "$TBDBNAME", [Emulab DB name])
AC_DEFINE_UNQUOTED(TBERRORLOGDBNAME, "$TBERRORLOGDBNAME", [Emulab errorlog DB])
AC_DEFINE_UNQUOTED(TBADMINGROUP, "$TBADMINGROUP", [Unix group of admin user])
AC_DEFINE_UNQUOTED(IPBASE, "$IPBASE", [Base of IPv4 space used for experiments])
AC_DEFINE_UNQUOTED(JAILIPBASE, "$JAILIPBASE", [Base of IPv4 space used for VMs])
AC_DEFINE_UNQUOTED(JAILIPMASK, "$JAILIPMASK", [Netmask for JAILIPBASE])
AC_DEFINE_UNQUOTED(BOSSNODE, "$BOSSNODE", [DNS name of boss node])
AC_DEFINE_UNQUOTED(BOSSNODE_IP, "$BOSSNODE_IP", [IPv4 address of boss node to be used by nodes])
AC_DEFINE_UNQUOTED(EXTERNAL_BOSSNODE_IP, "$EXTERNAL_BOSSNODE_IP", [IPv4 address of boss used from outside])
AC_DEFINE_UNQUOTED(USERNODE, "$USERNODE", [DNS name of ops node])
AC_DEFINE_UNQUOTED(USERNODE_IP, "$USERNODE_IP", [IPv4 address of ops node to be used by nodes])
AC_DEFINE_UNQUOTED(EXTERNAL_USERNODE_IP, "$EXTERNAL_USERNODE_IP", [IPv4 address of ops used from outside])
AC_DEFINE_UNQUOTED(FSNODE, "$FSNODE", [DNS name of fs node])
590
if test -n "$FSNODE_IP"; then
591
	AC_DEFINE_UNQUOTED(FSNODE_IP, "$FSNODE_IP", [IPv4 address of fs node to be used by nodes])
592
elif test "$USERNODE" = "$FSNODE"; then
593
	AC_DEFINE_UNQUOTED(FSNODE_IP, "$USERNODE_IP", [IPv4 address of fs node to be used by nodes])
594
elif test "$BOSSNODE" = "$FSNODE"; then
595 596 597 598 599 600 601 602 603 604 605 606 607
	AC_DEFINE_UNQUOTED(FSNODE_IP, "$BOSSNODE_IP", [IPv4 address of fs node to be used by nodes])
fi
AC_DEFINE_UNQUOTED(CONTROL_ROUTER_IP, "$CONTROL_ROUTER_IP", [IPv4 address of router to be used by nodes])
AC_DEFINE_UNQUOTED(CONTROL_NETWORK, "$CONTROL_NETWORK", [IPv4 node control network])
AC_DEFINE_UNQUOTED(CONTROL_NETMASK, "$CONTROL_NETMASK", [IPv4 node control network mask])
AC_DEFINE_UNQUOTED(USERSROOT_DIR, "$USERSROOT_DIR", [Root of 'users' filesystem])
AC_DEFINE_UNQUOTED(PROJROOT_DIR, "$PROJROOT_DIR", [Root of 'proj' filesystem])
AC_DEFINE_UNQUOTED(GROUPSROOT_DIR, "$GROUPSROOT_DIR", [Root of 'groups' filesystem])
AC_DEFINE_UNQUOTED(SCRATCHROOT_DIR, "$SCRATCHROOT_DIR", [Root of 'scratch' filesystem])
AC_DEFINE_UNQUOTED(SHAREROOT_DIR, "$SHAREROOT_DIR", [Root of 'share' filesystem])
AC_DEFINE_UNQUOTED(FSDIR_PROJ, "$FSDIR_PROJ", [Mount point of 'proj' filesystem on fs node])
AC_DEFINE_UNQUOTED(FSDIR_GROUPS, "$FSDIR_GROUPS", [Mount point of 'groups' filesystem on fs node])
AC_DEFINE_UNQUOTED(FSDIR_USERS, "$FSDIR_USERS", [Mount point of 'users' filesystem on fs node])
608
if test -n "$FSDIR_SHARE"; then
609
    AC_DEFINE_UNQUOTED(FSDIR_SHARE, "$FSDIR_SHARE", [Mount point of 'share' filesystem on fs node])
610
fi
611
if test -n "$FSDIR_SCRATCH"; then
612
    AC_DEFINE_UNQUOTED(FSDIR_SCRATCH, "$FSDIR_SCRATCH", [Mount point of 'scratch' filesystem on fs node])
613
fi
614 615 616 617
AC_DEFINE_UNQUOTED(BOSSEVENTPORT, "$BOSSEVENTPORT", [IPv4 address of pubsub server on boss])
AC_DEFINE_UNQUOTED(FRISEBEEMCASTADDR, "$FRISEBEEMCASTADDR", [Base IPv4 multicast address for disk imaging])
AC_DEFINE_UNQUOTED(FRISEBEEMCASTPORT, "$FRISEBEEMCASTPORT", [Base IPv4 port for disk imaging])
AC_DEFINE_UNQUOTED(FRISEBEENUMPORTS, "$FRISEBEENUMPORTS", [Number of IPv4 ports for disk imaging])
618

619 620 621 622 623 624
AC_DEFINE_UNQUOTED(NTPSERVER, "$NTPSERVER", [NTP server for nodes])
AC_DEFINE_UNQUOTED(EXTERNAL_NTPSERVER1, "$EXTERNAL_NTPSERVER1", [External NTP server for NTP node])
AC_DEFINE_UNQUOTED(EXTERNAL_NTPSERVER2, "$EXTERNAL_NTPSERVER2", [External NTP server for NTP node])
AC_DEFINE_UNQUOTED(EXTERNAL_NTPSERVER3, "$EXTERNAL_NTPSERVER3", [External NTP server for NTP node])
AC_DEFINE_UNQUOTED(EXTERNAL_NTPSERVER4, "$EXTERNAL_NTPSERVER4", [External NTP server for NTP node])
AC_DEFINE_UNQUOTED(NTPDRIFTFILE, "$NTPDRIFTFILE", [Location of NTP driftfile])
625

626 627 628
AC_DEFINE_UNQUOTED(MANAGEMENT_NETWORK, "$MANAGEMENT_NETWORK", [IPv4 node mangagement network])
AC_DEFINE_UNQUOTED(MANAGEMENT_NETMASK, "$MANAGEMENT_NETMASK", [IPv4 node management netmask])
AC_DEFINE_UNQUOTED(MANAGEMENT_ROUTER, "$MANAGEMENT_ROUTER", [IPv4 node management default GW])
629

630
if test $OPSDBSUPPORT -eq 1; then
631
    AC_DEFINE_UNQUOTED(OPSDBSUPPORT, 1, [Obsolete])
632 633
fi

634
if test $ELVIN_COMPAT -eq 1; then
635
    AC_DEFINE_UNQUOTED(ELVIN_COMPAT, 1, [Obsolete])
636 637
fi

638
if test $ELABINELAB -eq 1; then
639
    AC_DEFINE_UNQUOTED(ELABINELAB, 1, [For an Emulab-in-Emulab configuration])
640
fi
641

642
if test $ISOLATEADMINS -eq 1; then
643
    AC_DEFINE_UNQUOTED(ISOLATEADMINS, 1, [Do not allow admins and non-admins in same project])
644 645
fi
if test $DYNAMICROOTPASSWORDS -eq 1; then
646
    AC_DEFINE_UNQUOTED(DYNAMICROOTPASSWORDS, 1, [Per-node root passwords])
647
fi
648
if test $TPM -eq 1; then
649
    AC_DEFINE_UNQUOTED(TPM, 1, [Something about TPM])
650
fi
651
if test $NOSHAREDFS -eq 1; then
652
    AC_DEFINE_UNQUOTED(NOSHAREDFS, 1, [Do not allow NFS-shared filesystems])
653 654
fi
if test $NFSRACY -eq 1; then
655
    AC_DEFINE_UNQUOTED(NFSRACY, 1, [NFS server has race])
656
fi
657
if test $OPSVM_ENABLE -eq 1; then
658 659
    AC_DEFINE_UNQUOTED(OPSVM_ENABLE, 1, [ops node is a VM])
    AC_DEFINE_UNQUOTED(OPSVM_MOUNTPOINT, $OPSVM_MOUNTPOINT, [mount point on boss for ops VM FSes])
660
fi
661
if test $SPEWFROMOPS -eq 1; then
662
    AC_DEFINE_UNQUOTED(SPEWFROMOPS, 1, [Server rpm/tarballs from ops rather than boss])
663
fi
664
if test $PROTOGENI_SUPPORT -eq 1; then
665
    AC_DEFINE_UNQUOTED(PROTOGENI_SUPPORT, 1, [Support Protogeni])
666 667
fi
if test $PROTOGENI_GENIRACK -eq 1; then
668
    AC_DEFINE_UNQUOTED(PROTOGENI_GENIRACK, 1, [Support Protogeni rack])
669
fi
670
if test $IMAGEPROVENANCE -eq 1; then
671
    AC_DEFINE_UNQUOTED(IMAGEPROVENANCE, 1, [Support image versioning])
672 673
fi
if test $IMAGEDELTAS -eq 1; then
674
    AC_DEFINE_UNQUOTED(IMAGEDELTAS, 1, [Support imagezip delta images])
675
fi
676
if test $NOVIRTNFSMOUNTS -eq 1; then
677
    AC_DEFINE_UNQUOTED(NOVIRTNFSMOUNTS, 1, [Do not use NFS mounts on virtual nodes])
678 679
fi
if test $WITHZFS -eq 1; then
680
    AC_DEFINE_UNQUOTED(WITHZFS, 1, [Use ZFS on FS node for shared filesystems])
681
fi
682
if test $WITHAMD -eq 1; then
683
    AC_DEFINE_UNQUOTED(WITHAMD, 1, [Run AMD on boss node to handle shared FS mounts])
Mike Hibler's avatar
Mike Hibler committed
684
    AC_DEFINE_UNQUOTED(AMD_ROOT, "$AMD_ROOT", [Actual FS mount directory for AMD])
685
fi
686
AC_DEFINE_UNQUOTED(IMPORT_TMPDIR, "$IMPORT_TMPDIR", [Directory to use for imported images])
687

688
LOG_TESTBED=`echo "LOG_$TBLOGFACIL" | tr a-z A-Z`
689
AC_DEFINE_UNQUOTED(LOG_TESTBED, $LOG_TESTBED, [Syslog log facility for Emulab daemons])
690 691
AC_SUBST(LOG_TESTBED)

692 693 694 695
#
# If the private network is different then the control network, we need
# an extra subnet decl for it in dhcpd.conf.template. This is enormously
# crude and simplistic, but works for the local case!
Ryan Jackson's avatar
Ryan Jackson committed
696
#
697 698
if test "$PRIVATE_NETWORK" != "$CONTROL_NETWORK"; then
    DHCPD_CONTROLNET_DECL="subnet $PRIVATE_NETWORK netmask $PRIVATE_NETMASK {}"
699 700
fi

701
#
702 703
# The email addresses need to be be munged for perl scripts. But,
# php needs them un-escaped
704
#
705
TBOPSEMAIL_NOSLASH="$TBOPSEMAIL"
706
TBOPSEMAIL="`echo $TBOPSEMAIL | sed -e 's/@/\\\@/'`"
707 708
TBROBOCOPSEMAIL_NOSLASH="$TBROBOCOPSEMAIL"
TBROBOCOPSEMAIL="`echo $TBROBOCOPSEMAIL | sed -e 's/@/\\\@/'`"
709
TBLOGSEMAIL_NOSLASH="$TBLOGSEMAIL"
710
TBLOGSEMAIL="`echo $TBLOGSEMAIL | sed -e 's/@/\\\@/'`"
711
TBAUDITEMAIL_NOSLASH="$TBAUDITEMAIL"
712
TBAUDITEMAIL="`echo $TBAUDITEMAIL | sed -e 's/@/\\\@/'`"
713 714 715 716
TBWWWEMAIL_NOSLASH="$TBWWWEMAIL"
TBWWWEMAIL="`echo $TBWWWEMAIL | sed -e 's/@/\\\@/'`"
TBAPPROVALEMAIL_NOSLASH="$TBAPPROVALEMAIL"
TBAPPROVALEMAIL="`echo $TBAPPROVALEMAIL | sed -e 's/@/\\\@/'`"
717 718 719 720
TBSTATEDEMAIL_NOSLASH="$TBSTATEDEMAIL_NOSLASH"
TBSTATEDEMAIL="`echo $TBSTATEDEMAIL | sed -e 's/@/\\\@/'`"
TBTESTSUITEEMAIL_NOSLASH="$TBTESTSUITEEMAIL_NOSLASH"
TBTESTSUITEEMAIL="`echo $TBTESTSUITEEMAIL | sed -e 's/@/\\\@/'`"
721

722
if test -n "$TBAUTOMAILEMAIL"; then
723
    TBAUTOMAILEMAIL_NOSLASH="$TBAUTOMAILEMAIL"
724 725 726 727 728
    TBAUTOMAILEMAIL="`echo $TBAUTOMAILEMAIL | sed -e 's/@/\\\@/'`"
else
    TBAUTOMAILEMAIL_NOSLASH="$TBLOGSEMAIL_NOSLASH"
    TBAUTOMAILEMAIL="$TBLOGSEMAIL"
fi
729
if test -n "$TBACTIVEARCHIVE"; then
730
    TBACTIVEARCHIVE_NOSLASH="$TBACTIVEARCHIVE"
731 732
    TBACTIVEARCHIVE="`echo $TBACTIVEARCHIVE | sed -e 's/@/\\\@/'`"
else
733
    TBACTIVEARCHIVE_NOSLASH="$TBOPSEMAIL_NOSLASH"
734 735 736
    TBACTIVEARCHIVE="$TBOPSEMAIL"
fi
if test -n "$TBUSERSARCHIVE"; then
737
    TBUSERSARCHIVE_NOSLASH="$TBUSERSARCHIVE"
738 739
    TBUSERSARCHIVE="`echo $TBUSERSARCHIVE | sed -e 's/@/\\\@/'`"
else
740
    TBUSERSARCHIVE_NOSLASH="$TBOPSEMAIL_NOSLASH"
741 742
    TBUSERSARCHIVE="$TBOPSEMAIL"
fi
Leigh B. Stoller's avatar
Leigh B. Stoller committed
743 744 745 746 747 748 749
if test -n "$TBERRORSEMAIL"; then
    TBERRORSEMAIL_NOSLASH="$TBERRORSEMAIL"
    TBERRORSEMAIL="`echo $TBERRORSEMAIL | sed -e 's/@/\\\@/'`"
else
    TBERRORSEMAIL_NOSLASH="$TBOPSEMAIL_NOSLASH"
    TBERRORSEMAIL="$TBOPSEMAIL"
fi
750 751 752
if test -n "$PROTOGENI_EMAIL"; then
    PROTOGENI_EMAIL="`echo $PROTOGENI_EMAIL | sed -e 's/@/\\\@/'`"
fi
753

754 755 756 757 758 759 760 761 762 763
# Default OURDOMAIN to the domain name of the boss node
# This is gross beyond all description - autoconf changes m4's quote characters
# to '[' and ']', which prevents them from working in the sed expression below.
# So, we temporarily change them to something else then change them back.
# Note: In newer versions of autoconf, this can be done with 'quadrigraphs'
changequote(START, END)dnl
if test -z "$OURDOMAIN"; then
    OURDOMAIN="`echo $BOSSNODE | sed -E -e 's/^[a-zA-Z0-9\-]+\.//'`"
fi
changequote([, ])dnl
764
AC_DEFINE_UNQUOTED(OURDOMAIN, "$OURDOMAIN", [Domain name of Emulab site])
765

766 767 768 769 770 771 772 773 774 775 776 777
if test -z "$EXTERNAL_TESTBED_NETWORK"; then
    EXTERNAL_TESTBED_NETWORK=$TESTBED_NETWORK
fi
if test -z "$EXTERNAL_TESTBED_NETMASK"; then
    EXTERNAL_TESTBED_NETMASK=$TESTBED_NETMASK
fi
if test -z "$EXTERNAL_BOSSNODE_IP"; then
    EXTERNAL_BOSSNODE_IP=$BOSSNODE_IP
fi
if test -z "$EXTERNAL_USERNODE_IP"; then
    EXTERNAL_USERNODE_IP=$USERNODE_IP
fi
778 779 780 781 782 783
if test -z "$FSNODE_IP"; then
    FSNODE_IP=$USERNODE_IP
fi
if test -z "$EXTERNAL_FSNODE_IP"; then
    EXTERNAL_FSNODE_IP=$FSNODE_IP
fi
784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801
if test -z "$TBAUTHDOMAIN"; then
    TBAUTHDOMAIN=".$OURDOMAIN"
fi
if test -z "$TBAUTHTIMEOUT"; then
    TBAUTHTIMEOUT="21600"
fi
if test -z "$WWW"; then
    WWW="$WWWHOST"
fi
if test -z "$TBBASE"; then
    TBBASE="https://$WWW"
fi
if test -z "$TBDOCBASE"; then
    TBDOCBASE="http://$WWW"
fi
if test -z "$TBWWW"; then
    TBWWW="<$TBBASE/>"
fi
802
AC_DEFINE_UNQUOTED(TBBASE, "$TBBASE", [Base URL for Emulab files])
803

804 805 806
if test -z "$THISHOMEBASE"; then
    THISHOMEBASE="Emulab.Net"
fi
807
if test -z "$EVENTSERVER"; then
808
    EVENTSERVER="event-server"
809
fi
810
AC_DEFINE_UNQUOTED(EVENTSERVER, "$EVENTSERVER", [Emulab event server node])
Mike Hibler's avatar
Mike Hibler committed
811
AC_DEFINE_UNQUOTED(BS_IQN_PREFIX, "$BS_IQN_PREFIX", [IQN prefix for blockstores])
812

813 814 815 816 817
#
# Perl SelfLoader
# XXX this is a hack which enables us to disable it on versions of perl
# where there are problems with taint checking in the SelfLoader module.
#
818
AC_DEFINE_UNQUOTED(SELFLOADER_DATA, "$SELFLOADER_DATA", [Need perl SelfLoader hack])
819

820 821 822
#
# LEDA library path
#
823
AC_ARG_WITH(LEDA,
824
[  --with-LEDA		Specify LEDA path (/usr/testbed default)],
825 826 827 828 829 830 831
[
    if test "$withval" = "yes"; then
        LEDA="$ac_default_prefix/LEDA/LEDA-4.0"
    else
        LEDA="$withval"
    fi
],[
832 833 834 835 836
    if test -d "$ac_default_prefix/LEDA/LEDA-4.0"; then
        LEDA="$ac_default_prefix/LEDA/LEDA-4.0"
    else
        LEDA=""
    fi
837 838 839
])
AC_SUBST(LEDA)

840 841 842
#
# Override LEDA with assign binary.
#
843 844
AC_ARG_WITH(assignbinary,
[  --with-assignbinary	Specify assign binary (overrides LEDA, default on)],
845 846 847 848 849 850 851 852 853
[
    if test "$withval" = "yes"; then
        ASSIGN="assign.bin"
        LEDA=""
    else
        ASSIGN="$withval"
        LEDA=""
    fi
],[
854 855 856 857 858
    if test "$LEDA" = ""; then
        ASSIGN="assign.bin"
    else
        ASSIGN=""
    fi
859 860 861
])
AC_SUBST(ASSIGN)

Robert Ricci's avatar
Robert Ricci committed
862 863 864
#
# Arguments to ssh to disable strict host key checking, etc
#
Kirk Webb's avatar
 
Kirk Webb committed
865
AC_ARG_WITH(ssh-args,
Robert Ricci's avatar
Robert Ricci committed
866 867 868 869
[  --with-ssh-args	Specify ssh arguments when running from testbed scripts ],
[
    SSH_ARGS="$withval"
],[
Kirk Webb's avatar
 
Kirk Webb committed
870
    SSH_ARGS="-q -o BatchMode=yes -o StrictHostKeyChecking=no"
Robert Ricci's avatar
Robert Ricci committed
871 872 873
])
AC_SUBST(SSH_ARGS)

874 875 876 877 878 879 880 881 882 883 884 885
#
# Path to install rc.d scripts in
#
AC_ARG_WITH(rcdir,
[  --with-rcdir		Specify path to install rc.d scripts (/usr/local/etc/rc.d default)],
[
    INSTALL_RCDIR="$with_rcdir"
],[
    INSTALL_RCDIR="/usr/local/etc/rc.d"
])
AC_SUBST(INSTALL_RCDIR)

886 887 888 889 890 891 892 893
#
# Path to install apache config files in
#
AC_ARG_WITH(apache-config-dir,
[  --with-apache-config	Specify path to install apache config files (/usr/local/etc/apache default)],
[
    INSTALL_APACHE_CONFIG="$withval"
],[
Leigh B Stoller's avatar
Leigh B Stoller committed
894
    foo=`/usr/local/sbin/httpd -V | grep SERVER_CONFIG_FILE | grep 'apache2'`
895 896 897
    if test "$foo" = ""; then
        INSTALL_APACHE_CONFIG="/usr/local/etc/apache"
	APACHE_VERSION="1.3"
898
	APACHE_START_COMMAND="/usr/local/etc/rc.d/apache.sh"
899 900 901
    else
        INSTALL_APACHE_CONFIG="/usr/local/etc/apache22"
	APACHE_VERSION="22"
902
	APACHE_START_COMMAND="/usr/local/etc/rc.d/apache22"
903
    fi
904 905
])
AC_SUBST(INSTALL_APACHE_CONFIG)
906
AC_SUBST(APACHE_VERSION)
907
AC_SUBST(APACHE_START_COMMAND)
908

Timothy Stack's avatar
 
Timothy Stack committed
909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924
#
# Path to garcia installation
#
AC_ARG_WITH(brainstem,
[  --with-brainstem=<DIR> Specify the path to the brainstem installation.],
[
    if test x"$withval" != x""; then
	BRAINSTEM_DIR="$withval"
    else
	AC_MSG_ERROR([You must specify a brainstem directory]);
    fi
],[
    BRAINSTEM_DIR=""
])
AC_SUBST(BRAINSTEM_DIR)

925

926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944
#
# Optionally build with optimization or aggressive non-optimization
# (Actually three options: on, off or default.)
#
AC_ARG_ENABLE(debug,
[  --enable-debug        Build with debug flags (-g -DDEBUG)
  --disable-debug       Build with optimization flags (-O2 -DNDEBUG -UDEBUG)])

if test "$enable_debug" = "yes"; then
	OPT_CFLAGS="-g -DDEBUG";
else
	if test "$enable_debug" = "no"; then
		OPT_CFLAGS="-O2 -DNDEBUG -UDEBUG";
	else
		OPT_CFLAGS="-g -O";
	fi
fi
AC_SUBST(OPT_CFLAGS)

945
#
946
# Disable event system. Relies on Elvin. On by default.
Ryan Jackson's avatar
Ryan Jackson committed
947
#
948
AC_ARG_ENABLE(events,
949
[  --disable-events      Disable events (requires Elvin libraries)])
950

951 952 953 954
if test "$enable_events" = "no"; then
	eventfiles="";
        EVENTSYS=0;
else
955
	eventfiles="event/GNUmakefile clientside/lib/event/GNUmakefile \
956
		    event/etc/elvind-boss.conf event/etc/elvind-ops.conf \
957
		    event/etc/elvind-inetd.conf event/etc/GNUmakefile\
958
		    event/sched/GNUmakefile \
Ryan Jackson's avatar
Ryan Jackson committed
959
		    event/new_sched/GNUmakefile \
960
                    event/example/GNUmakefile event/example/tbsend.pl \
961
		    event/example/tbrecv.pl event/example/tbsend-short.pl \
962
                    event/example/tbsend.py event/example/tbrecv.py \
963
		    event/example/eventdebug.pl \
964