configure.ac 51.1 KB
Newer Older
Leigh B. Stoller's avatar
Leigh B. Stoller committed
1
#
2
# Copyright (c) 2000-2018 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

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

86
PYTHON_VERSION=`${PYTHON} -V 2>&1 | cut -d ' ' -f 2 | cut -d '.' -f 1,2 | head -1`
87
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(MOBILESUPPORT)
248
AC_SUBST(ELVIN_COMPAT)
249 250
AC_SUBST(ISOLATEADMINS)
AC_SUBST(DYNAMICROOTPASSWORDS)
251
AC_SUBST(TPM)
252
AC_SUBST(REMOTEWIKIDOCS)
Leigh B. Stoller's avatar
Leigh B. Stoller committed
253
AC_SUBST(PROTOGENI_SUPPORT)
254 255 256
AC_SUBST(PROTOGENI_WEBSITE)
AC_SUBST(PROTOGENI_ISCLEARINGHOUSE)
AC_SUBST(PROTOGENI_EMAIL)
Leigh B. Stoller's avatar
Leigh B. Stoller committed
257
AC_SUBST(PROTOGENI_DOMAIN)
258 259
AC_SUBST(PROTOGENI_RPCPORT)
AC_SUBST(PROTOGENI_RPCNAME)
260
AC_SUBST(PROTOGENI_LOCALUSER)
261
AC_SUBST(PROTOGENI_MAXSERVERLOAD)
262
AC_SUBST(PROTOGENI_GENIWEBLOGIN)
263
AC_SUBST(PROTOGENI_NONFSMOUNTS)
264
AC_SUBST(GENI_PUBRPCPORT)
265
AC_SUBST(PROTOGENI_URL)
266
AC_SUBST(PROTOGENI_GENIRACK)
Gary Wong's avatar
Gary Wong committed
267
AC_SUBST(PROTOGENI_NICKNAME)
268
AC_SUBST(STANDALONE_CLEARINGHOUSE)
269 270
AC_SUBST(CONFIG_TARGETSYS)
AC_SUBST(TARGETSYS_TARGET)
271
AC_SUBST(GMAP_API_KEY)
272
AC_SUBST(NODE_USAGE_SUPPORT)
273
AC_SUBST(NOSTACKMIB)
274
AC_SUBST(EXP_VIS_SUPPORT)
275
AC_SUBST(NOSHAREDFS)
276
AC_SUBST(IMPORT_TMPDIR)
277
AC_SUBST(SELFLOADER_DATA)
278
AC_SUBST(TBUSEDBI)
279
AC_SUBST(BIGDB)
280
AC_SUBST(NEEDMCQUERIER)
281 282
AC_SUBST(OPSVM_ENABLE)
AC_SUBST(OPSVM_MOUNTPOINT)
283 284
AC_SUBST(PORTAL_ENABLE)
AC_SUBST(PORTAL_ISPRIMARY)
285
AC_SUBST(CLOUDLAB_FEDERATED)
286
AC_SUBST(LINUX_FSNODE)
287 288
AC_SUBST(VPUBADDR_BASE)
AC_SUBST(VPUBADDR_BITLEN)
289 290 291 292
AC_SUBST(WINDOWS_ORGNAME)
AC_SUBST(WINDOWS_OWNER)
AC_SUBST(WINDOWS_TIMEZONE)
AC_SUBST(WINDOWS_KEY_7PRO_X86)
293 294 295 296
AC_SUBST(FIREWALL_BOSS)
AC_SUBST(FIREWALL_OPS)
AC_SUBST(FIREWALL_BOSS_LOCALRULETMPL)
AC_SUBST(FIREWALL_OPS_LOCALRULETMPL)
297
AC_SUBST(SPEWFROMOPS)
298
AC_SUBST(NOSITECHECKIN)
299
AC_SUBST(EC2META_ENABLE)
300
AC_SUBST(BROWSER_CONSOLE_ENABLE)
Gary Wong's avatar
Gary Wong committed
301 302
AC_SUBST(IPV6_ENABLED)
AC_SUBST(IPV6_SUBNET_PREFIX)
303
AC_SUBST(NFSMAPTOUSER)
304
AC_SUBST(IMAGEPROVENANCE)
Leigh B Stoller's avatar
Leigh B Stoller committed
305
AC_SUBST(IMAGEDIRECTORIES)
306
AC_SUBST(IMAGEDELTAS)
307
AC_SUBST(IMAGEUPLOADTOFS)
308
AC_SUBST(PROFILEVERSIONS)
309
AC_SUBST(NOVIRTNFSMOUNTS)
310 311 312 313 314
AC_SUBST(WITHZFS)
AC_SUBST(ZFS_ROOT)
AC_SUBST(ZFS_QUOTA_USER)
AC_SUBST(ZFS_QUOTA_PROJECT)
AC_SUBST(ZFS_QUOTA_GROUP)
315 316 317
AC_SUBST(ZFS_QUOTA_USER_X)
AC_SUBST(ZFS_QUOTA_PROJECT_X)
AC_SUBST(ZFS_QUOTA_GROUP_X)
318
AC_SUBST(ZFS_NOEXPORT)
319
AC_SUBST(INCREMENTAL_MOUNTD)
320 321
AC_SUBST(WITHAMD)
AC_SUBST(AMD_ROOT)
Mike Hibler's avatar
Mike Hibler committed
322
AC_SUBST(NFSMFS_ROOT)
323
AC_SUBST(BS_IQN_PREFIX)
324
AC_SUBST(ATTENUATOR)
325
AC_SUBST(CLUSTER_PORTAL)
326 327
AC_SUBST(CLUSTER_PUBSUBD_SSLPORT)
AC_SUBST(CLUSTER_PUBSUBD_ALTPORT)
328
AC_SUBST(EXPIRE_PASSWORDS)
329 330
AC_SUBST(SDCOLLECTD_DOSTATS)
AC_SUBST(SDCOLLECTD_USE_RRDTOOL)
331
AC_SUBST(BOOTINFO_EVENTS)
332

333 334 335 336 337 338
#
# 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)
339 340
AC_SUBST(TBROBOCOPSEMAIL)
AC_SUBST(TBROBOCOPSEMAIL_NOSLASH)
341 342 343 344 345 346 347 348 349 350 351 352
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)
353 354
AC_SUBST(TBAUTOMAILEMAIL)
AC_SUBST(TBAUTOMAILEMAIL_NOSLASH)
355 356 357 358
AC_SUBST(TBACTIVEARCHIVE)
AC_SUBST(TBACTIVEARCHIVE_NOSLASH)
AC_SUBST(TBUSERSARCHIVE)
AC_SUBST(TBUSERSARCHIVE_NOSLASH)
Leigh B. Stoller's avatar
Leigh B. Stoller committed
359 360
AC_SUBST(TBERRORSEMAIL)
AC_SUBST(TBERRORSEMAIL_NOSLASH)
361

362 363 364 365 366
#
# For snmpit support of Arista switch.
#
AC_SUBST(ARISTA_SWITCH_XMLRPCPORT)

367 368
#
# Defaults for for above variables.
Ryan Jackson's avatar
Ryan Jackson committed
369
#
370
TBERRORLOGDBNAME="errorlog"
371
TBADMINGROUP="flux"
372 373 374
CLIENT_ETCDIR="/etc/emulab"
CLIENT_BINDIR="/usr/local/etc/emulab"
CLIENT_VARDIR="/var/emulab"
375
CLIENT_MANDIR="/usr/local/man"
376 377
TBSECURECOOKIES=1
TBMAINSITE=0
378
TBUSEDBI=0
379
BIGDB=0
380
FANCYBANNER=0
381 382 383 384
VIRTNODE_NETWORK=172.16.0.0
VIRTNODE_NETMASK=255.240.0.0
JAILIPBASE=$VIRTNODE_NETWORK
JAILIPMASK=$VIRTNODE_NETMASK
385
IPBASE=10
386
SFSSUPPORT=0
387
ELABINELAB=0
388 389 390
OUTERBOSS_NODENAME=""
OUTERBOSS_XMLRPCPORT=3069
OUTERBOSS_SSLCERTNAME="/etc/outer_emulab.pem"
Ryan Jackson's avatar
Ryan Jackson committed
391
SUBBOSS_SSLCERTNAME="/etc/subboss.pem"
392
PLABSUPPORT=0
Kevin Atkinson's avatar
 
Kevin Atkinson committed
393
PUBSUPPORT=0
394
WIKISUPPORT=0
395
BUGDBSUPPORT=0
396
OPSDBSUPPORT=0
397
MAILMANSUPPORT=0
398
WINSUPPORT=0
Mike Hibler's avatar
Mike Hibler committed
399
NSVERIFY=1
400
CVSSUPPORT=0
401
TRACSUPPORT=0
402
CHATSUPPORT=0
403
STAMPS=0
404
ARCHIVESUPPORT=0
Timothy Stack's avatar
Timothy Stack committed
405
NFSTRACESUPPORT=0
406
TBLOGFACIL="local5"
407
BOSSEVENTPORT=16505
408
NTPSERVER="ops"
409 410 411 412 413
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"
414
UNIFIED_BOSS_AND_OPS=0
415 416
DISABLE_NAMED_INSTALL=0
DISABLE_DHCPD_INSTALL=0
417
DISABLE_NAMED_SETUP=0
418 419
FRISEBEEMCASTADDR="234.5.6"
FRISEBEEMCASTPORT=3564
420
FRISEBEENUMPORTS=0
421 422
MIN_UNIX_UID=10000
MIN_UNIX_GID=6000
423
DELAYTHRESH=2
424
PELABSUPPORT=0
425
MOBILESUPPORT=0
426
ELVIN_COMPAT=0
427 428
ISOLATEADMINS=1
DYNAMICROOTPASSWORDS=1
429
TPM=0
430
REMOTEWIKIDOCS=1
Leigh B. Stoller's avatar
Leigh B. Stoller committed
431
PROTOGENI_SUPPORT=0
432 433 434
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
435
PROTOGENI_DOMAIN="unknown"
436 437
PROTOGENI_RPCPORT=12369
PROTOGENI_RPCNAME=""
438 439
PROTOGENI_LOCALUSER=0
PROTOGENI_GENIWEBLOGIN=0
440
PROTOGENI_MAXSERVERLOAD=12
441
PROTOGENI_NONFSMOUNTS=0
442
GENI_PUBRPCPORT=12370
443
PROTOGENI_GENIRACK=0
444 445
CONFIG_TARGETSYS=0
TARGETSYS_TARGET=""
Gary Wong's avatar
Gary Wong committed
446
PROTOGENI_NICKNAME="unknown"
447
STANDALONE_CLEARINGHOUSE=0
448
NODE_USAGE_SUPPORT=0
449
EXP_VIS_SUPPORT=0
450
NOSTACKMIB=0
451
NOSHAREDFS=0
452
IMPORT_TMPDIR="/q"
453
NFSRACY=1
454
SELFLOADER_DATA=""
455
NEEDMCQUERIER=0
456 457
OPSVM_ENABLE=0
OPSVM_MOUNTPOINT="/ops"
458
OURTIMEZONE="America/Denver"
459
NODECONSOLE="sio"
460
MFSVERSION=""
461 462
PORTAL_ENABLE=0
PORTAL_ISPRIMARY=0
463
CLOUDLAB_FEDERATED=0
464
LINUX_FSNODE=0
465
DHCPD_EXTRAIFS=""
466 467
VPUBADDR_BASE="none"
VPUBADDR_BITLEN="none"
468
ARISTA_SWITCH_XMLRPCPORT=80
469 470 471 472
FIREWALL_BOSS=0
FIREWALL_OPS=0
FIREWALL_BOSS_LOCALRULETMPL=""
FIREWALL_OPS_LOCALRULETMPL=""
473
SPEWFROMOPS=0
474
NOSITECHECKIN=0
475
EC2META_ENABLE=0
476
BROWSER_CONSOLE_ENABLE=0
477 478
IPV6_ENABLED=0
IPV6_SUBNET_PREFIX=""
479 480 481
MANAGEMENT_NETWORK="10.249.249.0"
MANAGEMENT_NETMASK="255.255.255.0"
MANAGEMENT_ROUTER="10.249.249.253"
482
NFSMAPTOUSER="root"
483
IMAGEPROVENANCE=0
Leigh B Stoller's avatar
Leigh B Stoller committed
484
IMAGEDIRECTORIES=0
485
IMAGEDELTAS=0
486
IMAGEUPLOADTOFS=0
487
PROFILEVERSIONS=0
488
NOVIRTNFSMOUNTS=0
489 490 491 492 493
WITHZFS=0
ZFS_ROOT=z
ZFS_QUOTA_USER="1G"
ZFS_QUOTA_PROJECT="100G"
ZFS_QUOTA_GROUP="10G"
494 495 496
ZFS_QUOTA_USER_X="1.0"
ZFS_QUOTA_PROJECT_X="1.0"
ZFS_QUOTA_GROUP_X="1.0"
497
ZFS_NOEXPORT=0
498
INCREMENTAL_MOUNTD=0
499 500
WITHAMD=0
AMD_ROOT=/.amd_mnt
Mike Hibler's avatar
Mike Hibler committed
501
NFSMFS_ROOT=""
502
BS_IQN_PREFIX=iqn.2000-10.net.emulab
503
ATTENUATOR=""
504
CLUSTER_PORTAL=""
505 506
CLUSTER_PUBSUBD_ALTPORT=""
CLUSTER_PUBSUBD_SSLPORT=""
507
EXPIRE_PASSWORDS=1
508 509
SDCOLLECTD_DOSTATS=0
SDCOLLECTD_USE_RRDTOOL=0
510
BOOTINFO_EVENTS=1
511

512 513 514 515 516 517 518 519 520 521
#
# 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
522 523 524 525 526 527
#
# Flag as full Emulab build (for clientside). 
#
WITH_EMULAB=1
AC_SUBST(WITH_EMULAB)

528 529 530
#
# Okay, I know this is improper usage of --with. Too bad.
#
531 532
AC_ARG_WITH(TBDEFS,
[  --with-TBDEFS=name	Specify definitions file (defs-default default)],
533 534
[
    if test "$withval" = "yes"; then
535
	AC_MSG_ERROR([Invalid TBDEFS - Must specify the value])
536
    fi
537
    TBDEFS="$withval"
538
    TBPATH=`dirname $withval`
539
],[
540 541 542
    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.
543 544
Copy and modify the defs-example file for your Emulab installation.
defs-default has values for Utah, including client-side image compilations.])
545
])
546 547 548 549 550

if test -f $TBDEFS; then
    #
    # Remove the comments and newlines.  Really, that's what it does.
    #
551 552
    OLDPATH=$PATH
    PATH="$TBPATH:$PATH"
553
    . $TBDEFS
554
    PATH=$OLDPATH
555 556 557
else
	AC_MSG_ERROR([Definitions file $TBDEFS was not found.])
fi
558

559 560 561 562 563
# 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
564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597
# 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";;
598 599
    *washington.edu) PROTOGENI_NICKNAME="uwashington-ig";;
    *rnet.missouri.edu) PROTOGENI_NICKNAME="missouri-ig";;
Gary Wong's avatar
Gary Wong committed
600 601 602
    *pks2.sdn.uky.edu) PROTOGENI_NICKNAME="ukypks2-ig";;
    *colorado.edu) PROTOGENI_NICKNAME="colorado-ig";;
    *cenic.net) PROTOGENI_NICKNAME="cenic-ig";;
603
    *vt.edu) PROTOGENI_NICKNAME="vt-ig";;
604
    *stitch.geniracks.net) PROTOGENI_NICKNAME="utah-stitch";;
Gary Wong's avatar
Gary Wong committed
605 606 607
    esac
fi

608 609 610 611 612 613
#
# 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!
#
614
if test x"$prefix" = x"NONE"; then
615
    AC_DEFINE_UNQUOTED(TBROOT, "/usr/testbed", [FS base for Emulab files])
616
else
617 618
    AC_DEFINE_UNQUOTED(TBROOT, "$prefix", [FS base for Emulab files])
fi
Leigh B Stoller's avatar
Leigh B Stoller committed
619
AC_DEFINE_UNQUOTED(TBMAINSITE, $TBMAINSITE, [The Mothership])
620 621 622 623 624 625 626 627 628 629 630 631 632
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])
633
if test -n "$FSNODE_IP"; then
634
	AC_DEFINE_UNQUOTED(FSNODE_IP, "$FSNODE_IP", [IPv4 address of fs node to be used by nodes])
635
elif test "$USERNODE" = "$FSNODE"; then
636
	AC_DEFINE_UNQUOTED(FSNODE_IP, "$USERNODE_IP", [IPv4 address of fs node to be used by nodes])
637
elif test "$BOSSNODE" = "$FSNODE"; then
638 639 640 641 642 643 644 645 646 647 648 649 650
	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])
651
if test -n "$FSDIR_SHARE"; then
652
    AC_DEFINE_UNQUOTED(FSDIR_SHARE, "$FSDIR_SHARE", [Mount point of 'share' filesystem on fs node])
653
fi
654
if test -n "$FSDIR_SCRATCH"; then
655
    AC_DEFINE_UNQUOTED(FSDIR_SCRATCH, "$FSDIR_SCRATCH", [Mount point of 'scratch' filesystem on fs node])
656
fi
657 658 659 660
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])
661

662 663 664 665 666 667
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])
668

669 670 671
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])
672

673
if test $OPSDBSUPPORT -eq 1; then
674
    AC_DEFINE_UNQUOTED(OPSDBSUPPORT, 1, [Obsolete])
675 676
fi

677
if test $ELVIN_COMPAT -eq 1; then
678
    AC_DEFINE_UNQUOTED(ELVIN_COMPAT, 1, [Obsolete])
679 680
fi

681
if test $ELABINELAB -eq 1; then
682
    AC_DEFINE_UNQUOTED(ELABINELAB, 1, [For an Emulab-in-Emulab configuration])
683
fi
684

685
if test $ISOLATEADMINS -eq 1; then
686
    AC_DEFINE_UNQUOTED(ISOLATEADMINS, 1, [Do not allow admins and non-admins in same project])
687 688
fi
if test $DYNAMICROOTPASSWORDS -eq 1; then
689
    AC_DEFINE_UNQUOTED(DYNAMICROOTPASSWORDS, 1, [Per-node root passwords])
690
fi
691
if test $TPM -eq 1; then
692
    AC_DEFINE_UNQUOTED(TPM, 1, [Something about TPM])
693
fi
694
if test $NOSHAREDFS -eq 1; then
695
    AC_DEFINE_UNQUOTED(NOSHAREDFS, 1, [Do not allow NFS-shared filesystems])
696 697
fi
if test $NFSRACY -eq 1; then
698
    AC_DEFINE_UNQUOTED(NFSRACY, 1, [NFS server has race])
699
fi
700
if test $OPSVM_ENABLE -eq 1; then
701 702
    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])
703
fi
704
if test $SPEWFROMOPS -eq 1; then
705
    AC_DEFINE_UNQUOTED(SPEWFROMOPS, 1, [Server rpm/tarballs from ops rather than boss])
706
fi
707
if test $PROTOGENI_SUPPORT -eq 1; then
708
    AC_DEFINE_UNQUOTED(PROTOGENI_SUPPORT, 1, [Support Protogeni])
709 710
fi
if test $PROTOGENI_GENIRACK -eq 1; then
711
    AC_DEFINE_UNQUOTED(PROTOGENI_GENIRACK, 1, [Support Protogeni rack])
712
fi
713
if test $IMAGEPROVENANCE -eq 1; then
714
    AC_DEFINE_UNQUOTED(IMAGEPROVENANCE, 1, [Support image versioning])
715 716
fi
if test $IMAGEDELTAS -eq 1; then
717
    AC_DEFINE_UNQUOTED(IMAGEDELTAS, 1, [Support imagezip delta images])
718
fi
719 720 721
if test $IMAGEUPLOADTOFS -eq 1; then
    AC_DEFINE_UNQUOTED(IMAGEUPLOADTOFS, 1, [Support image uploading to fs node])
fi
722
if test $NOVIRTNFSMOUNTS -eq 1; then
723
    AC_DEFINE_UNQUOTED(NOVIRTNFSMOUNTS, 1, [Do not use NFS mounts on virtual nodes])
724 725
fi
if test $WITHZFS -eq 1; then
726
    AC_DEFINE_UNQUOTED(WITHZFS, 1, [Use ZFS on FS node for shared filesystems])
727
fi
728
if test $WITHAMD -eq 1; then
729
    AC_DEFINE_UNQUOTED(WITHAMD, 1, [Run AMD on boss node to handle shared FS mounts])
Mike Hibler's avatar
Mike Hibler committed
730
    AC_DEFINE_UNQUOTED(AMD_ROOT, "$AMD_ROOT", [Actual FS mount directory for AMD])
731
fi
732 733 734
if test $PROTOGENI_LOCALUSER -eq 1; then
    AC_DEFINE_UNQUOTED(PROTOGENI_LOCALUSER, 1, [Map geni users to local users,projects,groups])
fi
735
AC_DEFINE_UNQUOTED(IMPORT_TMPDIR, "$IMPORT_TMPDIR", [Directory to use for imported images])
736

737
LOG_TESTBED=`echo "LOG_$TBLOGFACIL" | tr a-z A-Z`
738
AC_DEFINE_UNQUOTED(LOG_TESTBED, $LOG_TESTBED, [Syslog log facility for Emulab daemons])
739 740
AC_SUBST(LOG_TESTBED)

741 742 743 744
#
# 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
745
#
746 747
if test "$PRIVATE_NETWORK" != "$CONTROL_NETWORK"; then
    DHCPD_CONTROLNET_DECL="subnet $PRIVATE_NETWORK netmask $PRIVATE_NETMASK {}"
748 749
fi

750
#
751 752
# The email addresses need to be be munged for perl scripts. But,
# php needs them un-escaped
753
#
754
TBOPSEMAIL_NOSLASH="$TBOPSEMAIL"
755
TBOPSEMAIL="`echo $TBOPSEMAIL | sed -e 's/@/\\\@/'`"
756 757
TBROBOCOPSEMAIL_NOSLASH="$TBROBOCOPSEMAIL"
TBROBOCOPSEMAIL="`echo $TBROBOCOPSEMAIL | sed -e 's/@/\\\@/'`"
758
TBLOGSEMAIL_NOSLASH="$TBLOGSEMAIL"
759
TBLOGSEMAIL="`echo $TBLOGSEMAIL | sed -e 's/@/\\\@/'`"
760
TBAUDITEMAIL_NOSLASH="$TBAUDITEMAIL"
761
TBAUDITEMAIL="`echo $TBAUDITEMAIL | sed -e 's/@/\\\@/'`"
762 763 764 765
TBWWWEMAIL_NOSLASH="$TBWWWEMAIL"
TBWWWEMAIL="`echo $TBWWWEMAIL | sed -e 's/@/\\\@/'`"
TBAPPROVALEMAIL_NOSLASH="$TBAPPROVALEMAIL"
TBAPPROVALEMAIL="`echo $TBAPPROVALEMAIL | sed -e 's/@/\\\@/'`"
766 767 768 769
TBSTATEDEMAIL_NOSLASH="$TBSTATEDEMAIL_NOSLASH"
TBSTATEDEMAIL="`echo $TBSTATEDEMAIL | sed -e 's/@/\\\@/'`"
TBTESTSUITEEMAIL_NOSLASH="$TBTESTSUITEEMAIL_NOSLASH"
TBTESTSUITEEMAIL="`echo $TBTESTSUITEEMAIL | sed -e 's/@/\\\@/'`"
770

771
if test -n "$TBAUTOMAILEMAIL"; then
772
    TBAUTOMAILEMAIL_NOSLASH="$TBAUTOMAILEMAIL"
773 774 775 776 777
    TBAUTOMAILEMAIL="`echo $TBAUTOMAILEMAIL | sed -e 's/@/\\\@/'`"
else
    TBAUTOMAILEMAIL_NOSLASH="$TBLOGSEMAIL_NOSLASH"
    TBAUTOMAILEMAIL="$TBLOGSEMAIL"
fi
778
if test -n "$TBACTIVEARCHIVE"; then
779
    TBACTIVEARCHIVE_NOSLASH="$TBACTIVEARCHIVE"
780 781
    TBACTIVEARCHIVE="`echo $TBACTIVEARCHIVE | sed -e 's/@/\\\@/'`"
else
782
    TBACTIVEARCHIVE_NOSLASH="$TBOPSEMAIL_NOSLASH"
783 784 785
    TBACTIVEARCHIVE="$TBOPSEMAIL"
fi
if test -n "$TBUSERSARCHIVE"; then
786
    TBUSERSARCHIVE_NOSLASH="$TBUSERSARCHIVE"
787 788
    TBUSERSARCHIVE="`echo $TBUSERSARCHIVE | sed -e 's/@/\\\@/'`"
else
789
    TBUSERSARCHIVE_NOSLASH="$TBOPSEMAIL_NOSLASH"
790 791
    TBUSERSARCHIVE="$TBOPSEMAIL"
fi
Leigh B. Stoller's avatar
Leigh B. Stoller committed
792 793 794 795 796 797 798
if test -n "$TBERRORSEMAIL"; then
    TBERRORSEMAIL_NOSLASH="$TBERRORSEMAIL"
    TBERRORSEMAIL="`echo $TBERRORSEMAIL | sed -e 's/@/\\\@/'`"
else
    TBERRORSEMAIL_NOSLASH="$TBOPSEMAIL_NOSLASH"
    TBERRORSEMAIL="$TBOPSEMAIL"
fi
799 800 801
if test -n "$PROTOGENI_EMAIL"; then
    PROTOGENI_EMAIL="`echo $PROTOGENI_EMAIL | sed -e 's/@/\\\@/'`"
fi
802

803 804 805 806 807 808 809 810 811 812
# 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
813
AC_DEFINE_UNQUOTED(OURDOMAIN, "$OURDOMAIN", [Domain name of Emulab site])
814

815 816 817 818 819 820 821 822 823 824 825 826
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
827 828 829 830 831 832
if test -z "$FSNODE_IP"; then
    FSNODE_IP=$USERNODE_IP
fi
if test -z "$EXTERNAL_FSNODE_IP"; then
    EXTERNAL_FSNODE_IP=$FSNODE_IP
fi
833 834 835 836
if test -z "$TBAUTHDOMAIN"; then
    TBAUTHDOMAIN=".$OURDOMAIN"
fi
if test -z "$TBAUTHTIMEOUT"; then
837
    TBAUTHTIMEOUT="86400"
838 839 840 841 842 843 844 845 846 847 848 849 850
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
851
AC_DEFINE_UNQUOTED(TBBASE, "$TBBASE", [Base URL for Emulab files])
852

853 854 855
if test -z "$THISHOMEBASE"; then
    THISHOMEBASE="Emulab.Net"
fi
856
if test -z "$EVENTSERVER"; then
857
    EVENTSERVER="event-server"
858
fi
859
AC_DEFINE_UNQUOTED(EVENTSERVER, "$EVENTSERVER", [Emulab event server node])
Mike Hibler's avatar
Mike Hibler committed
860
AC_DEFINE_UNQUOTED(BS_IQN_PREFIX, "$BS_IQN_PREFIX", [IQN prefix for blockstores])
861

862 863 864 865 866
#
# 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.
#
867
AC_DEFINE_UNQUOTED(SELFLOADER_DATA, "$SELFLOADER_DATA", [Need perl SelfLoader hack])
868

869 870 871
#
# LEDA library path
#
872
AC_ARG_WITH(LEDA,
873
[  --with-LEDA		Specify LEDA path (/usr/testbed default)],
874 875 876 877 878 879 880
[
    if test "$withval" = "yes"; then
        LEDA="$ac_default_prefix/LEDA/LEDA-4.0"
    else
        LEDA="$withval"
    fi
],[
881 882 883 884 885
    if test -d "$ac_default_prefix/LEDA/LEDA-4.0"; then
        LEDA="$ac_default_prefix/LEDA/LEDA-4.0"
    else
        LEDA=""
    fi
886 887 888
])
AC_SUBST(LEDA)

889 890 891
#
# Override LEDA with assign binary.
#
892 893
AC_ARG_WITH(assignbinary,
[  --with-assignbinary	Specify assign binary (overrides LEDA, default on)],
894 895 896 897 898 899 900 901 902
[
    if test "$withval" = "yes"; then
        ASSIGN="assign.bin"
        LEDA=""
    else
        ASSIGN="$withval"
        LEDA=""
    fi
],[
903 904 905 906 907
    if test "$LEDA" = ""; then
        ASSIGN="assign.bin"
    else
        ASSIGN=""
    fi
908 909 910
])
AC_SUBST(ASSIGN)

Robert Ricci's avatar
Robert Ricci committed
911 912 913
#
# Arguments to ssh to disable strict host key checking, etc
#
Kirk Webb's avatar
 
Kirk Webb committed
914
AC_ARG_WITH(ssh-args,
Robert Ricci's avatar
Robert Ricci committed
915 916 917 918
[  --with-ssh-args	Specify ssh arguments when running from testbed scripts ],
[
    SSH_ARGS="$withval"
],[
Kirk Webb's avatar
 
Kirk Webb committed
919
    SSH_ARGS="-q -o BatchMode=yes -o StrictHostKeyChecking=no"
Robert Ricci's avatar
Robert Ricci committed
920 921 922
])
AC_SUBST(SSH_ARGS)

923