configure.ac 51.3 KB
Newer Older
Leigh B. Stoller's avatar
Leigh B. Stoller committed
1
#
2
# Copyright (c) 2000-2019 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
AC_SUBST(PROJECTMAILLISTS)
195 196 197 198 199
AC_SUBST(EXTERNAL_NTPSERVER1)
AC_SUBST(EXTERNAL_NTPSERVER2)
AC_SUBST(EXTERNAL_NTPSERVER3)
AC_SUBST(EXTERNAL_NTPSERVER4)
AC_SUBST(NTPDRIFTFILE)
200
AC_SUBST(TBLOGFACIL)
201
AC_SUBST(TESTBED_NETWORK)
202
AC_SUBST(EXTERNAL_TESTBED_NETWORK)
203
AC_SUBST(TESTBED_NETMASK)
204
AC_SUBST(EXTERNAL_TESTBED_NETMASK)
205
AC_SUBST(BOSSNODE_IP)
206
AC_SUBST(EXTERNAL_BOSSNODE_IP)
207
AC_SUBST(USERNODE_IP)
208
AC_SUBST(EXTERNAL_USERNODE_IP)
209 210
AC_SUBST(FSNODE_IP)
AC_SUBST(EXTERNAL_FSNODE_IP)
211 212 213 214 215 216 217 218 219
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)
220 221 222
AC_SUBST(MANAGEMENT_NETWORK)
AC_SUBST(MANAGEMENT_NETMASK)
AC_SUBST(MANAGEMENT_ROUTER)
223 224
AC_SUBST(VIRTNODE_NETWORK)
AC_SUBST(VIRTNODE_NETMASK)
225
AC_SUBST(DHCPD_DYNRANGE)
226
AC_SUBST(DHCPD_EXTRAIFS)
227
AC_SUBST(DHCPD_CONTROLNET_DECL)
228
AC_SUBST(NAMED_FORWARDERS)
229
AC_SUBST(NAMED_ALSONOTIFY)
230 231 232 233
AC_SUBST(SSLCERT_COUNTRY)
AC_SUBST(SSLCERT_STATE)
AC_SUBST(SSLCERT_LOCALITY)
AC_SUBST(SSLCERT_ORGNAME)
234 235
AC_SUBST(FRISEBEEMCASTADDR)
AC_SUBST(FRISEBEEMCASTPORT)
236
AC_SUBST(FRISEBEENUMPORTS)
237
AC_SUBST(WINSUPPORT)
Mike Hibler's avatar
Mike Hibler committed
238
AC_SUBST(NSVERIFY)
239
AC_SUBST(CVSSUPPORT)
240
AC_SUBST(TRACSUPPORT)
241
AC_SUBST(CHATSUPPORT)
242
AC_SUBST(STAMPS)
243
AC_SUBST(ARCHIVESUPPORT)
244 245
AC_SUBST(MIN_UNIX_UID)
AC_SUBST(MIN_UNIX_GID)
246
AC_SUBST(DELAYTHRESH)
247
AC_SUBST(PELABSUPPORT)
248
AC_SUBST(MOBILESUPPORT)
249
AC_SUBST(ELVIN_COMPAT)
250 251
AC_SUBST(ISOLATEADMINS)
AC_SUBST(DYNAMICROOTPASSWORDS)
252
AC_SUBST(TPM)
253
AC_SUBST(REMOTEWIKIDOCS)
Leigh B. Stoller's avatar
Leigh B. Stoller committed
254
AC_SUBST(PROTOGENI_SUPPORT)
255 256 257
AC_SUBST(PROTOGENI_WEBSITE)
AC_SUBST(PROTOGENI_ISCLEARINGHOUSE)
AC_SUBST(PROTOGENI_EMAIL)
Leigh B. Stoller's avatar
Leigh B. Stoller committed
258
AC_SUBST(PROTOGENI_DOMAIN)
259 260
AC_SUBST(PROTOGENI_RPCPORT)
AC_SUBST(PROTOGENI_RPCNAME)
261
AC_SUBST(PROTOGENI_LOCALUSER)
262
AC_SUBST(PROTOGENI_MAXSERVERLOAD)
263
AC_SUBST(PROTOGENI_GENIWEBLOGIN)
264
AC_SUBST(PROTOGENI_NONFSMOUNTS)
265
AC_SUBST(GENI_PUBRPCPORT)
266
AC_SUBST(PROTOGENI_URL)
267
AC_SUBST(PROTOGENI_GENIRACK)
Gary Wong's avatar
Gary Wong committed
268
AC_SUBST(PROTOGENI_NICKNAME)
269
AC_SUBST(STANDALONE_CLEARINGHOUSE)
270 271
AC_SUBST(CONFIG_TARGETSYS)
AC_SUBST(TARGETSYS_TARGET)
272
AC_SUBST(GMAP_API_KEY)
273
AC_SUBST(NODE_USAGE_SUPPORT)
274
AC_SUBST(NOSTACKMIB)
275
AC_SUBST(EXP_VIS_SUPPORT)
276
AC_SUBST(NOSHAREDFS)
277
AC_SUBST(IMPORT_TMPDIR)
278
AC_SUBST(SELFLOADER_DATA)
279
AC_SUBST(TBUSEDBI)
280
AC_SUBST(BIGDB)
281
AC_SUBST(NEEDMCQUERIER)
282 283
AC_SUBST(OPSVM_ENABLE)
AC_SUBST(OPSVM_MOUNTPOINT)
284 285
AC_SUBST(PORTAL_ENABLE)
AC_SUBST(PORTAL_ISPRIMARY)
286
AC_SUBST(CLOUDLAB_FEDERATED)
287
AC_SUBST(LINUX_FSNODE)
288 289
AC_SUBST(VPUBADDR_BASE)
AC_SUBST(VPUBADDR_BITLEN)
290 291 292 293
AC_SUBST(WINDOWS_ORGNAME)
AC_SUBST(WINDOWS_OWNER)
AC_SUBST(WINDOWS_TIMEZONE)
AC_SUBST(WINDOWS_KEY_7PRO_X86)
294 295 296 297
AC_SUBST(FIREWALL_BOSS)
AC_SUBST(FIREWALL_OPS)
AC_SUBST(FIREWALL_BOSS_LOCALRULETMPL)
AC_SUBST(FIREWALL_OPS_LOCALRULETMPL)
298
AC_SUBST(SPEWFROMOPS)
299
AC_SUBST(NOSITECHECKIN)
300
AC_SUBST(EC2META_ENABLE)
301
AC_SUBST(BROWSER_CONSOLE_ENABLE)
Gary Wong's avatar
Gary Wong committed
302 303
AC_SUBST(IPV6_ENABLED)
AC_SUBST(IPV6_SUBNET_PREFIX)
304
AC_SUBST(NFSMAPTOUSER)
305
AC_SUBST(IMAGEPROVENANCE)
Leigh B Stoller's avatar
Leigh B Stoller committed
306
AC_SUBST(IMAGEDIRECTORIES)
307
AC_SUBST(IMAGEDELTAS)
308
AC_SUBST(IMAGEUPLOADTOFS)
309
AC_SUBST(PROFILEVERSIONS)
310
AC_SUBST(NOVIRTNFSMOUNTS)
311 312 313 314 315
AC_SUBST(WITHZFS)
AC_SUBST(ZFS_ROOT)
AC_SUBST(ZFS_QUOTA_USER)
AC_SUBST(ZFS_QUOTA_PROJECT)
AC_SUBST(ZFS_QUOTA_GROUP)
316 317 318
AC_SUBST(ZFS_QUOTA_USER_X)
AC_SUBST(ZFS_QUOTA_PROJECT_X)
AC_SUBST(ZFS_QUOTA_GROUP_X)
319
AC_SUBST(ZFS_NOEXPORT)
320
AC_SUBST(INCREMENTAL_MOUNTD)
321 322
AC_SUBST(WITHAMD)
AC_SUBST(AMD_ROOT)
Mike Hibler's avatar
Mike Hibler committed
323
AC_SUBST(NFSMFS_ROOT)
324
AC_SUBST(BS_IQN_PREFIX)
325
AC_SUBST(ATTENUATOR)
326
AC_SUBST(CLUSTER_PORTAL)
327 328
AC_SUBST(CLUSTER_PUBSUBD_SSLPORT)
AC_SUBST(CLUSTER_PUBSUBD_ALTPORT)
329
AC_SUBST(EXPIRE_PASSWORDS)
330 331
AC_SUBST(SDCOLLECTD_DOSTATS)
AC_SUBST(SDCOLLECTD_USE_RRDTOOL)
332
AC_SUBST(BOOTINFO_EVENTS)
333

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

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

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

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

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

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

561 562 563 564 565
# 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
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 598 599
# 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";;
600 601
    *washington.edu) PROTOGENI_NICKNAME="uwashington-ig";;
    *rnet.missouri.edu) PROTOGENI_NICKNAME="missouri-ig";;
Gary Wong's avatar
Gary Wong committed
602 603 604
    *pks2.sdn.uky.edu) PROTOGENI_NICKNAME="ukypks2-ig";;
    *colorado.edu) PROTOGENI_NICKNAME="colorado-ig";;
    *cenic.net) PROTOGENI_NICKNAME="cenic-ig";;
605
    *vt.edu) PROTOGENI_NICKNAME="vt-ig";;
606
    *stitch.geniracks.net) PROTOGENI_NICKNAME="utah-stitch";;
Gary Wong's avatar
Gary Wong committed
607 608 609
    esac
fi

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

664 665 666 667 668 669
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])
670

671 672 673
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])
674

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

925 926 927 928 929 930 931 932 933 934 935 936
#
# 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)

937 938 939 940 941 942 943 944
#
# 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
945
    foo=`/usr/local/sbin/httpd -V | grep SERVER_CONFIG_FILE | grep 'apache2'`
946 947 948
    if test "$foo" = ""; then
        INSTALL_APACHE_CONFIG="/usr/local/etc/apache"
	APACHE_VERSION="1.3"
949
	APACHE_START_COMMAND="/usr/local/etc/rc.d/apache.sh"
950
    else
951 952 953 954 955 956 957 958 959 960
        foo=`/usr/local/sbin/httpd -V | grep SERVER_CONFIG_FILE | grep 'apache24'`
	if test "$foo" = ""; then
	    INSTALL_APACHE_CONFIG="/usr/local/etc/apache22"
	    APACHE_VERSION="22"
	    APACHE_START_COMMAND="/usr/local/etc/rc.d/apache22"
	else
	    INSTALL_APACHE_CONFIG="/usr/local/etc/apache24"
	    APACHE_VERSION="24"
	    APACHE_START_COMMAND="/usr/local/etc/rc.d/apache24"
	fi
961
    fi
962 963
])
AC_SUBST(INSTALL_APACHE_CONFIG)
964
AC_SUBST(APACHE_VERSION)
965
AC_SUBST(APACHE_START_COMMAND)
966

Timothy Stack's avatar
 
Timothy Stack committed
967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982
#
# 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)

983

984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002
#
# 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)

1003
#
1004
# Disable event system. Relies on Elvin. On by default.
Ryan Jackson's avatar
Ryan Jackson committed
1005
#
1006
AC_ARG_ENABLE(events,
1007
[  --disable-events      Disable events (requires Elvin libraries)])
1008

1009 1010 1011 1012
if test "$enable_events" = "no"; then
	eventfiles="";
        EVENTSYS=0;
else
1013
	eventfiles="event/GNUmakefile clientside/lib/event/GNUmakefile \
1014
		    event/etc/elvind-boss.conf event/etc/elvind-ops.conf \
1015
		    event/etc/elvind-inetd.conf event/etc/GNUmakefile\
1016
		    event/sched/GNUmakefile \
Ryan Jackson's avatar
Ryan Jackson committed
1017
		    event/new_sched/GNUmakefile \
1018
                    event/example/GNUmakefile event/example/tbsend.pl \
1019
		    event/example/tbrecv.pl event/example/tbsend-short.pl \
1020
                    event/example/tbsend.py event/example/tbrecv.py \
1021
		    event/example/eventdebug.pl \
1022
		    event/proxy/GNUmakefile \
Gary Wong's avatar
Gary Wong committed
1023
		    event/monitoring/GNUmakefile \		    
1024
		    event/nsetrafgen/GNUmakefile \
1025
		    event/nsetrafgen/nseinput.tcl \
1026
		    event/nsetrafgen/nse-makepatch \
1027
		    event/stated/waitForState \
1028
		    event/stated/GNUmakefile event/stated/stated"
1029

1030
	optional_subdirs="$optional_subdirs event";
1031
        EVENTSYS=1;
1032
fi
1033
AC_SUBST(EVENTSYS)
1034

1035 1036 1037 1038 1039 1040
#
# Quickie pelab support.
#
if test $PELABSUPPORT -eq 0; then
	pelabfiles="";
else
1041 1042 1043
	pelabfiles="pelab/GNUmakefile pelab/db/GNUmakefile \
		    pelab/bgmon/GNUmakefile ";
	optional_subdirs="$optional_subdirs pelab";
1044 1045
fi

1046 1047 1048 1049 1050 1051
#
# Mobile networking support.
#
if test $MOBILESUPPORT -eq 0; then
	mobilefiles="";
else