Document that generate-minimax-by-Remez.gp has issues.

/*
  Attempts to find a minimax polynomial of degree n for f via Remez
  algorithm. The Remez algorithm appears to be slightly shot, but
  the initial step of approximating by Chebyshev nodes works, and
  is usually good enough.
 */

{ chebyshev_node(a, b, k, n) = my(p, m, c);
        p = (b + a)/2;
        m = (b - a)/2;
        c = cos(Pi * (2*k - 1)/(2*n));
        return(p + m*c);
}

{ remez_step(f, n, a, b, x) = my(M, xx, bvec, k);
        M = matrix(n + 2, n + 2);
        bvec = vector(n + 2);
        for (k = 1, n + 2,
                xx = x[k];
                for (j = 1, n + 1,
                        M[k,j] = xx^(j - 1);
                );
                M[k, n + 2] = (-1)^k;
                bvec[k] = f(xx);
        );
        return(mattranspose(M^-1 * mattranspose(bvec)));
}

{ p_eval(n, v, x) = my(s, k);
        s = 0;
        for (k = 1, n + 1,
                s = s + v[k]*x^(k - 1)
        );

        return(s);
}

{ err(f, n, v, x) =
        return(abs(f(x) - p_eval(n, v, x)));
}

{ find_M(f, n, v, a, b, depth) = my(X, gran, l, lnext, len, xprev, xcur, xnext, yprev, ycur, ynext, thisa, thisb, k, j);
        gran = 10000 * depth;
        l = listcreate();

        xprev = a - (b - a)/gran;
        yprev = err(f, n, v, xprev);

        xcur = a;
        ycur = err(f, n, v, xprev);

        xnext = a + (b - a)/gran;
        ynext = err(f, n, v, xprev);

        for (k = 2, gran,
                xprev = xcur;
                yprev = ycur;

                xcur = xnext;
                ycur = ynext;

                xnext = a + k*(b - a)/gran;
                ynext = err(f, n, v, xnext);

                if(ycur > yprev && ycur > ynext, listput(l, [xcur, abs(ycur)]),);
        );

        vecsort(l, 2);
        if(length(l) < n + 2 || l[1][2] < 2^(-2000), return("q"),);
        len = length(l);

        lnext = listcreate();
        for(j = 1, n + 2,
                thisa = l[j][1] - (b-a)/gran;
                thisb = l[j][1] + (b-a)/gran;

                xprev = thisa - (thisb - a)/gran;
                yprev = err(f, n, v, xprev);

                xcur = thisa;
                ycur = err(f, n, v, xprev);

                xnext = thisa + (thisb - thisa)/gran;
                ynext = err(f, n, v, xprev);

                for (k = 2, gran,
                        xprev = xcur;
                        yprev = ycur;

                        xcur = xnext;
                        ycur = ynext;

                        xnext = thisa + k*(thisb - thisa)/gran;
                        ynext = abs(f(xnext) - p_eval(n, v, xnext));

                        if(ycur > yprev && ycur > ynext, listput(lnext, xcur),);
                );
        );
        vecsort(lnext, cmp);
        listkill(l);
        X = vector(n + 2);
        for (k = 1, min(n + 2, length(lnext)), X[k] = lnext[k]);
        listkill(lnext);
        vecsort(X);
        return(X);
}

{ find_minimax(f, n, a, b) = my(c, k, j);
        c = vector(n + 2);
        for (k = 1, n + 2,
                c[k] = chebyshev_node(a, b, k, n + 2);
        );
        for(j = 1, 100,
                v = remez_step(f, n, a, b, c);
                print("v = ", v);
                c = find_M(f, n, v, a, b, j);
                if(c == "q", return,);
                print("c = ", c);
        );
}

{ sinoverx(x) =
        return(if(x == 0, 1, sin(x)/x));
}

{ tanoverx(x) =
        return(if(x == 0, 1, tan(x)/x));
}

{ cotx(x) =
        return(1/tanoverx(x));
}

print("\n");
print("Minimaxing sin(x) / x, degree 6, on [-Pi/(4 * 256), Pi/(4 * 256)]:");
find_minimax(sinoverx, 6, -Pi/1024, Pi/1024)
print("\n");
print("(You'll need to add a 0x0 at the beginning to make a degree 7...\n");
print("\n");
print("---\n");
print("\n");
print("Minimaxing cos(x), degree 7, on [-Pi/(4 * 256), Pi/(4 * 256)]:");
find_minimax(cos, 7, -Pi/1024, Pi/1024)
print("\n");
print("---\n");
print("\n");
print("Minmimaxing tan(x) / x, degree 6, on [-Pi/(4 * 256), Pi/(4 * 256)]:");
find_minimax(tanoverx, 6, -Pi/1024, Pi/1024)
print("\n");
print("(You'll need to add a 0x0 at the beginning to make a degree 7...\n");
print("\n");
print("---\n");
print("\n");
print("Minmimaxing x*cot(x), degree 8, on [-Pi/(4 * 256), Pi/(4 * 256)]:");
find_minimax(cotx, 8, -Pi/1024, Pi/1024)
print("\n");
print("(Take the first v, and remember to divide by x)\n");
print("\n");
print("---\n");
print("\n");
print("Minmimaxing tan(x) / x, degree 10, on [0, 15.5/256]:");
find_minimax(tanoverx, 10, 0, 15.5/256)
print("\n");
print("(You'll need to add a 0x0 at the beginning to make a degree 11...\n");
print("\n");
print("---\n");
print("Remember that there's that extra, ugly E term at the end of the vector that you want to lop off.\n");

/*
  Attempts to find a minimax polynomial of degree n for f via Remez
  algorithm.
 */

{ chebyshev_node(a, b, k, n) = my(p, m, c);
        p = (b + a)/2;
        m = (b - a)/2;
        c = cos(Pi * (2*k - 1)/(2*n));
        return(p + m*c);
}

{ remez_step(f, n, a, b, x) = my(M, xx, bvec, k);
        M = matrix(n + 2, n + 2);
        bvec = vector(n + 2);
        for (k = 1, n + 2,
                xx = x[k];
                for (j = 1, n + 1,
                        M[k,j] = xx^(j - 1);
                );
                M[k, n + 2] = (-1)^k;
                bvec[k] = f(xx);
        );
        return(mattranspose(M^-1 * mattranspose(bvec)));
}

{ p_eval(n, v, x) = my(s, k);
        s = 0;
        for (k = 1, n + 1,
                s = s + v[k]*x^(k - 1)
        );

        return(s);
}

{ err(f, n, v, x) =
        return(abs(f(x) - p_eval(n, v, x)));
}

{ find_M(f, n, v, a, b, depth) = my(X, gran, l, lnext, len, xprev, xcur, xnext, yprev, ycur, ynext, thisa, thisb, k, j);
        gran = 10000 * depth;
        l = listcreate();

        xprev = a - (b - a)/gran;
        yprev = err(f, n, v, xprev);

        xcur = a;
        ycur = err(f, n, v, xprev);

        xnext = a + (b - a)/gran;
        ynext = err(f, n, v, xprev);

        for (k = 2, gran,
                xprev = xcur;
                yprev = ycur;

                xcur = xnext;
                ycur = ynext;

                xnext = a + k*(b - a)/gran;
                ynext = err(f, n, v, xnext);

                if(ycur > yprev && ycur > ynext, listput(l, [xcur, abs(ycur)]),);
        );

        vecsort(l, 2);
        if(length(l) < n + 2 || l[1][2] < 2^(-2000), return("q"),);
        len = length(l);

        lnext = listcreate();
        for(j = 1, n + 2,
                thisa = l[j][1] - (b-a)/gran;
                thisb = l[j][1] + (b-a)/gran;

                xprev = thisa - (thisb - a)/gran;
                yprev = err(f, n, v, xprev);

                xcur = thisa;
                ycur = err(f, n, v, xprev);

                xnext = thisa + (thisb - thisa)/gran;
                ynext = err(f, n, v, xprev);

                for (k = 2, gran,
                        xprev = xcur;
                        yprev = ycur;

                        xcur = xnext;
                        ycur = ynext;

                        xnext = thisa + k*(thisb - thisa)/gran;
                        ynext = abs(f(xnext) - p_eval(n, v, xnext));

                        if(ycur > yprev && ycur > ynext, listput(lnext, xcur),);
                );
        );
        vecsort(lnext, cmp);
        listkill(l);
        X = vector(n + 2);
        for (k = 1, min(n + 2, length(lnext)), X[k] = lnext[k]);
        listkill(lnext);
        vecsort(X);
        return(X);
}

{ find_minimax(f, n, a, b) = my(c, k, j);
        c = vector(n + 2);
        for (k = 1, n + 2,
                c[k] = chebyshev_node(a, b, k, n + 2);
        );
        for(j = 1, 100,
                v = remez_step(f, n, a, b, c);
                print("v = ", v);
                c = find_M(f, n, v, a, b, j);
                if(c == "q", return,);
                print("c = ", c);
        );
}

{ sinoverx(x) =
        return(if(x == 0, 1, sin(x)/x));
}

{ tanoverx(x) =
        return(if(x == 0, 1, tan(x)/x));
}

{ cotx(x) =
        return(1/tanoverx(x));
}

print("\n");
print("Minimaxing sin(x) / x, degree 6, on [-Pi/(4 * 256), Pi/(4 * 256)]:");
find_minimax(sinoverx, 6, -Pi/1024, Pi/1024)
print("\n");
print("(You'll need to add a 0x0 at the beginning to make a degree 7...\n");
print("\n");
print("---\n");
print("\n");
print("Minimaxing cos(x), degree 7, on [-Pi/(4 * 256), Pi/(4 * 256)]:");
find_minimax(cos, 7, -Pi/1024, Pi/1024)
print("\n");
print("---\n");
print("\n");
print("Minmimaxing tan(x) / x, degree 6, on [-Pi/(4 * 256), Pi/(4 * 256)]:");
find_minimax(tanoverx, 6, -Pi/1024, Pi/1024)
print("\n");
print("(You'll need to add a 0x0 at the beginning to make a degree 7...\n");
print("\n");
print("---\n");
print("\n");
print("Minmimaxing x*cot(x), degree 8, on [-Pi/(4 * 256), Pi/(4 * 256)]:");
find_minimax(cotx, 8, -Pi/1024, Pi/1024)
print("\n");
print("(Take the first v, and remember to divide by x)\n");
print("\n");
print("---\n");
print("\n");
print("Minmimaxing tan(x) / x, degree 10, on [0, 15.5/256]:");
find_minimax(tanoverx, 10, 0, 15.5/256)
print("\n");
print("(You'll need to add a 0x0 at the beginning to make a degree 11...\n");
print("\n");
print("---\n");
print("Remember that there's that extra, ugly E term at the end of the vector that you want to lop off.\n");


add support for Mac OS X specific settings via USE_MACOSX=yes; drop unused USE_LINUX

git-svn-id: 4e7379b20b57f8e3dde5a0b7363f233184647162@883 4e380d45-d1fd-0310-85a7-d18ec86df0ad

# This -*- Makefile -*- is intended for processing with GNU make.

TOPDIR	?= $(error TOPDIR not defined) # DO NOT CHANGE! This is set elsewhere.

# Change this file according to your paths.

# Instead of modifying this file, you could also set your modified variables
# in make.settings.local (needs to be created first).
-include $(TOPDIR)/make.settings.local

USE_BOOST	?= no	# set 'yes' to use Boost libraries or 'no' to not use Boost libraries
USE_MACOSX	?= no	# set 'yes' if you run Mac OS X, 'no' otherwise
USE_MCSTL	?= no	# will be overriden from main Makefile
USE_ICPC	?= no	# will be overriden from main Makefile

STXXL_ROOT	?= $(HOME)/work/stxxl

ifeq ($(strip $(USE_ICPC)),yes)
COMPILER_ICPC	?= icpc
COMPILER	?= $(COMPILER_ICPC)
#ICPC_GCC	?= gcc-x.y    # override the gcc/g++ used to find headers and libraries
WARNINGS	?= -Wall -w1 -openmp-report0 -vec-report0
endif

ifeq ($(strip $(USE_MCSTL)),yes)
COMPILER_GCC	?= g++-4.2.3
LIBNAME		?= mcstxxl
# the root directory of your MCSTL installation
MCSTL_ROOT	?= $(HOME)/work/mcstl
endif

#BOOST_ROOT	?= /usr/local/boost-1.34.1

COMPILER_GCC	?= g++
COMPILER	?= $(COMPILER_GCC)
LINKER		?= $(COMPILER)
OPT		?= -O3 # compiler optimization level
WARNINGS	?= -W -Wall
DEBUG		?= # put here -g option to include the debug information into the binaries

LIBNAME		?= stxxl

# Hint: for g++-4.3 with c++0x support, enable the following:
#STXXL_SPECIFIC	+= -std=c++0x

#### TROUBLESHOOTING
#
# For automatical checking of order of the output elements in
# the sorters: stxxl::stream::sort, stxxl::stream::merge_runs,
# stxxl::sort, and stxxl::ksort use
#
#STXXL_SPECIFIC	+= -DSTXXL_CHECK_ORDER_IN_SORTS
#
# If your program aborts with message "read/write: wrong parameter"
# or "Invalid argument"
# this could be that your kernel does not support direct I/O
# then try to set it off recompiling the libs and your code with option
#
#STXXL_SPECIFIC	+= -DSTXXL_DIRECT_IO_OFF
#
# But for the best performance it is strongly recommended
# to reconfigure the kernel for the support of the direct I/O.
#
# FIXME: documentation needed
#
#STXXL_SPECIFIC += -DSTXXL_DEBUGMON

#### You usually shouldn't need to change the sections below #####

#### STXXL CONFIGURATION #########################################

# check, whether stxxl has been configured
ifeq (,$(strip $(wildcard $(STXXL_ROOT)/include/stxxl.h)))
$(warning *** WARNING: STXXL has not been configured correctly)
ifeq (,$(strip $(wildcard $(CURDIR)/make.settings.local)))
ifneq (,$(strip $(wildcard $(CURDIR)/include/stxxl.h)))
$(warning *** WARNING: trying autoconfiguration for STXXL_ROOT=$(CURDIR:$(HOME)%=$$(HOME)%))
$(warning *** WARNING: you did not have a make.settings.local file -- creating ...)
$(shell echo 'STXXL_ROOT	 = $(CURDIR:$(HOME)%=$$(HOME)%)' >> $(CURDIR)/make.settings.local)
MCSTL_ROOT	?= $(HOME)/work/mcstl
$(shell echo '#MCSTL_ROOT	 = $(MCSTL_ROOT:$(HOME)%=$$(HOME)%)' >> $(CURDIR)/make.settings.local)
$(shell echo '#COMPILER_GCC	 = g++-4.2.3' >> $(CURDIR)/make.settings.local)
$(shell echo '#COMPILER_ICPC	 = icpc' >> $(CURDIR)/make.settings.local)
$(shell echo '#USE_MACOSX	 = no' >> $(CURDIR)/make.settings.local)
$(error ERROR: Please check make.settings.local and try again)
endif
else
$(warning *** WARNING: Please check make.settings.local)
endif
$(error ERROR: could not find a STXXL installation in STXXL_ROOT=$(STXXL_ROOT))
endif

# in the top dir, check whether STXXL_ROOT points to ourselves
ifneq (,$(wildcard make.settings))
stat1	 = $(shell stat -L -c '%d:%i' ./)
stat2	 = $(shell stat -L -c '%d:%i' $(STXXL_ROOT)/)

ifneq ($(stat1),$(stat2))
$(error ERROR: STXXL_ROOT=$(STXXL_ROOT) points to a different STXXL installation)
endif
endif

##################################################################

#### STXXL OPTIONS ###############################################

ifeq ($(strip $(USE_MACOSX)),yes)
PTHREAD_FLAG	?=
endif

PTHREAD_FLAG	?= -pthread

STXXL_SPECIFIC	+= \
	$(PTHREAD_FLAG) \
	$(CPPFLAGS_ARCH) \
	-DSORT_OPTIMAL_PREFETCHING \
	-DUSE_MALLOC_LOCK \
	-DCOUNT_WAIT_TIME \
	-I$(strip $(STXXL_ROOT))/include \
	-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE \
	$(POSIX_MEMALIGN) $(XOPEN_SOURCE)

STXXL_LDFLAGS	+= $(PTHREAD_FLAG)
STXXL_LDLIBS	+= -L$(strip $(STXXL_ROOT))/lib -l$(LIBNAME)

STXXL_LIBDEPS	+= $(strip $(STXXL_ROOT))/lib/lib$(LIBNAME).$(LIBEXT)

UNAME_M		:= $(shell uname -m)
CPPFLAGS_ARCH	+= $(CPPFLAGS_$(UNAME_M))
CPPFLAGS_i686	?= -march=i686

##################################################################

#### ICPC OPTIONS ################################################

ifeq ($(strip $(USE_ICPC)),yes)

OPENMPFLAG	?= -openmp

ICPC_CPPFLAGS	+= $(if $(ICPC_GCC),-gcc-name=$(strip $(ICPC_GCC)))
ICPC_LDFLAGS	+= $(if $(ICPC_GCC),-gcc-name=$(strip $(ICPC_GCC)))

STXXL_SPECIFIC	+= -include bits/intel_compatibility.h

endif

##################################################################

#### MCSTL OPTIONS ###############################################

ifeq ($(strip $(USE_MCSTL)),yes)

OPENMPFLAG	?= -fopenmp

ifeq (,$(strip $(wildcard $(strip $(MCSTL_ROOT))/c++/mcstl.h)))
$(error ERROR: could not find a MCSTL installation in MCSTL_ROOT=$(MCSTL_ROOT))
endif

MCSTL_CPPFLAGS		+= $(OPENMPFLAG) -D__MCSTL__ $(MCSTL_INCLUDES_PREPEND) -I$(MCSTL_ROOT)/c++
MCSTL_LDFLAGS		+= $(OPENMPFLAG)

MCSTL_INCLUDES_PREPEND	+= $(if $(findstring 4.3,$(COMPILER)),-I$(MCSTL_ROOT)/c++/mod_stl/gcc-4.3)

endif

##################################################################

#### BOOST OPTIONS ###############################################

BOOST_COMPILER_OPTIONS	 = \
	-DSTXXL_BOOST_TIMESTAMP \
	-DSTXXL_BOOST_CONFIG \
	-DSTXXL_BOOST_FILESYSTEM \
	-DSTXXL_BOOST_THREADS \
	-DSTXXL_BOOST_RANDOM \
	$(if $(strip $(BOOST_ROOT)),-I$(strip $(BOOST_ROOT)))

BOOST_LIB_COMPILER_SUFFIX	?=
BOOST_LIB_MT_SUFFIX		?= -mt
BOOST_LINKER_OPTIONS		 = \
	-lboost_thread$(BOOST_LIB_COMPILER_SUFFIX)$(BOOST_LIB_MT_SUFFIX) \
	-lboost_date_time$(BOOST_LIB_COMPILER_SUFFIX)$(BOOST_LIB_MT_SUFFIX) \
	-lboost_iostreams$(BOOST_LIB_COMPILER_SUFFIX)$(BOOST_LIB_MT_SUFFIX) \
	-lboost_filesystem$(BOOST_LIB_COMPILER_SUFFIX)$(BOOST_LIB_MT_SUFFIX)

##################################################################

#### CPPUNIT OPTIONS #############################################

CPPUNIT_COMPILER_OPTIONS	+=

CPPUNIT_LINKER_OPTIONS		+= -lcppunit -ldl

##################################################################

#### DEPENDENCIES ################################################

HEADER_FILES_BITS	+= namespace.h noncopyable.h version.h
HEADER_FILES_BITS	+= compat_hash_map.h compat_hash_set.h
HEADER_FILES_BITS	+= compat_auto_ptr.h

HEADER_FILES_COMMON	+= aligned_alloc.h mutex.h rand.h semaphore.h state.h
HEADER_FILES_COMMON	+= timer.h utils.h gprof.h simple_vector.h
HEADER_FILES_COMMON	+= switch.h tmeta.h log.h exceptions.h debug.h tuple.h
HEADER_FILES_COMMON	+= types.h utils_ledasm.h settings.h seed.h

HEADER_FILES_IO		+= completion_handler.h io.h iobase.h iostats.h
HEADER_FILES_IO		+= mmap_file.h simdisk_file.h syscall_file.h
HEADER_FILES_IO		+= ufs_file.h wincall_file.h wfs_file.h boostfd_file.h

HEADER_FILES_MNG	+= adaptor.h async_schedule.h block_prefetcher.h
HEADER_FILES_MNG	+= buf_istream.h buf_ostream.h buf_writer.h mng.h
HEADER_FILES_MNG	+= write_pool.h prefetch_pool.h

HEADER_FILES_CONTAINERS	+= pager.h stack.h vector.h priority_queue.h queue.h
HEADER_FILES_CONTAINERS	+= map.h deque.h

HEADER_FILES_CONTAINERS_BTREE	+= btree.h iterator_map.h leaf.h node_cache.h
HEADER_FILES_CONTAINERS_BTREE	+= root_node.h node.h btree_pager.h iterator.h

HEADER_FILES_ALGO	+= adaptor.h inmemsort.h intksort.h run_cursor.h sort.h
HEADER_FILES_ALGO	+= async_schedule.h interleaved_alloc.h ksort.h
HEADER_FILES_ALGO	+= losertree.h scan.h stable_ksort.h random_shuffle.h

HEADER_FILES_STREAM	+= stream.h sort_stream.h

HEADER_FILES_UTILS	+= malloc.h

###################################################################

#### MISC #########################################################

DEPEXT	 = $(LIBNAME).d # extension of dependency files
OBJEXT	 = $(LIBNAME).o	# extension of object files
IIEXT	 = $(LIBNAME).ii
LIBEXT	 = a		# static library file extension
EXEEXT	 = $(LIBNAME).bin # executable file extension
RM	 = rm -f	# remove file command
LIBGEN	 = ar cr	# library generation
OUT	 = -o		# output file option for the compiler and linker

d	?= $(strip $(DEPEXT))
o	?= $(strip $(OBJEXT))
ii	?= $(strip $(IIEXT))
bin	?= $(strip $(EXEEXT))

###################################################################

#### COMPILE/LINK RULES ###########################################

DEPS_MAKEFILES	:= $(wildcard ../Makefile.subdir.gnu ../make.settings ../make.settings.local GNUmakefile Makefile.local)
%.$o: %.cpp $(DEPS_MAKEFILES)
	@$(RM) $@ $*.$d
	$(COMPILER) $(STXXL_COMPILER_OPTIONS) -MD -MF $*.$dT -c $(OUTPUT_OPTION) $< && mv $*.$dT $*.$d

%.$(ii): %.cpp $(DEPS_MAKEFILES)
	$(COMPILER) $(STXXL_COMPILER_OPTIONS) -E $(OUTPUT_OPTION) $<

LINK_STXXL	 = $(LINKER) $1 $(STXXL_LINKER_OPTIONS) -o $@

%.$(bin): %.$o $(STXXL_LIBDEPS)
	$(call LINK_STXXL, $<)

###################################################################

ifeq ($(strip $(USE_ICPC)),yes)
STXXL_CPPFLAGS_CXX	+= $(ICPC_CPPFLAGS)
STXXL_LDLIBS_CXX	+= $(ICPC_LDFLAGS)
endif

STXXL_COMPILER_OPTIONS	+= $(STXXL_CPPFLAGS_CXX)
STXXL_COMPILER_OPTIONS	+= $(STXXL_SPECIFIC)
STXXL_COMPILER_OPTIONS	+= $(OPT) $(DEBUG) $(WARNINGS)
STXXL_LINKER_OPTIONS	+= $(STXXL_LDLIBS_CXX)
STXXL_LINKER_OPTIONS	+= $(DEBUG)
STXXL_LINKER_OPTIONS	+= $(STXXL_LDFLAGS)
STXXL_LINKER_OPTIONS	+= $(STXXL_LDLIBS)

ifeq ($(strip $(USE_MCSTL)),yes)
STXXL_COMPILER_OPTIONS	+= $(MCSTL_CPPFLAGS)
STXXL_LINKER_OPTIONS	+= $(MCSTL_LDFLAGS)
endif

ifeq ($(strip $(USE_BOOST)),yes)
STXXL_COMPILER_OPTIONS	+= $(BOOST_COMPILER_OPTIONS)
STXXL_LINKER_OPTIONS	+= $(BOOST_LINKER_OPTIONS)
endif

STXXL_COMPILER_OPTIONS	+= $(CPPFLAGS)

# vim: syn=make

# This -*- Makefile -*- is intended for processing with GNU make.

TOPDIR	?= $(error TOPDIR not defined) # DO NOT CHANGE! This is set elsewhere.

# Change this file according to your paths.

# Instead of modifying this file, you could also set your modified variables
# in make.settings.local (needs to be created first).
-include $(TOPDIR)/make.settings.local

USE_BOOST	?= no	# set 'yes' to use Boost libraries or 'no' to not use Boost libraries
USE_LINUX	?= yes	# set 'yes' if you run Linux, 'no' otherwise
USE_MCSTL	?= no	# will be overriden from main Makefile
USE_ICPC	?= no	# will be overriden from main Makefile

STXXL_ROOT	?= $(HOME)/work/stxxl

ifeq ($(strip $(USE_ICPC)),yes)
COMPILER_ICPC	?= icpc
COMPILER	?= $(COMPILER_ICPC)
#ICPC_GCC	?= gcc-x.y    # override the gcc/g++ used to find headers and libraries
WARNINGS	?= -Wall -w1 -openmp-report0 -vec-report0
endif

ifeq ($(strip $(USE_MCSTL)),yes)
COMPILER_GCC	?= g++-4.2.3
LIBNAME		?= mcstxxl
# the root directory of your MCSTL installation
MCSTL_ROOT	?= $(HOME)/work/mcstl
endif

#BOOST_ROOT	?= /usr/local/boost-1.34.1

COMPILER_GCC	?= g++
COMPILER	?= $(COMPILER_GCC)
LINKER		?= $(COMPILER)
OPT		?= -O3 # compiler optimization level
WARNINGS	?= -W -Wall
DEBUG		?= # put here -g option to include the debug information into the binaries

LIBNAME		?= stxxl

# Hint: for g++-4.3 with c++0x support, enable the following:
#STXXL_SPECIFIC	+= -std=c++0x

#### TROUBLESHOOTING
#
# For automatical checking of order of the output elements in
# the sorters: stxxl::stream::sort, stxxl::stream::merge_runs,
# stxxl::sort, and stxxl::ksort use
#
#STXXL_SPECIFIC	+= -DSTXXL_CHECK_ORDER_IN_SORTS
#
# If your program aborts with message "read/write: wrong parameter"
# or "Invalid argument"
# this could be that your kernel does not support direct I/O
# then try to set it off recompiling the libs and your code with option
#
#STXXL_SPECIFIC	+= -DSTXXL_DIRECT_IO_OFF
#
# But for the best performance it is strongly recommended
# to reconfigure the kernel for the support of the direct I/O.
#
# FIXME: documentation needed
#
#STXXL_SPECIFIC += -DSTXXL_DEBUGMON

#### You usually shouldn't need to change the sections below #####

#### STXXL OPTIONS ###############################################

# check, whether stxxl has been configured
ifeq (,$(strip $(wildcard $(STXXL_ROOT)/include/stxxl.h)))
$(warning *** WARNING: STXXL has not been configured correctly)
ifeq (,$(strip $(wildcard $(CURDIR)/make.settings.local)))
ifneq (,$(strip $(wildcard $(CURDIR)/include/stxxl.h)))
$(warning *** WARNING: trying autoconfiguration for STXXL_ROOT=$(CURDIR:$(HOME)%=$$(HOME)%))
$(warning *** WARNING: you did not have a make.settings.local file -- creating ...)
$(shell echo 'STXXL_ROOT	 = $(CURDIR:$(HOME)%=$$(HOME)%)' >> $(CURDIR)/make.settings.local)
MCSTL_ROOT	?= $(HOME)/work/mcstl
$(shell echo '#MCSTL_ROOT	 = $(MCSTL_ROOT:$(HOME)%=$$(HOME)%)' >> $(CURDIR)/make.settings.local)
$(shell echo '#COMPILER_GCC	 = g++-4.2.3' >> $(CURDIR)/make.settings.local)
$(shell echo '#COMPILER_ICPC	 = icpc' >> $(CURDIR)/make.settings.local)
$(error ERROR: Please check make.settings.local and try again)
endif
else
$(warning *** WARNING: Please check make.settings.local)
endif
$(error ERROR: could not find a STXXL installation in STXXL_ROOT=$(STXXL_ROOT))
endif

# in the top dir, check whether STXXL_ROOT points to ourselves
ifneq (,$(wildcard make.settings))
stat1	 = $(shell stat -L -c '%d:%i' ./)
stat2	 = $(shell stat -L -c '%d:%i' $(STXXL_ROOT)/)

ifneq ($(stat1),$(stat2))
$(error ERROR: STXXL_ROOT=$(STXXL_ROOT) points to a different STXXL installation)
endif
endif

PTHREAD_FLAG	?= -pthread

STXXL_SPECIFIC	+= \
	$(PTHREAD_FLAG) \
	$(CPPFLAGS_ARCH) \
	-DSORT_OPTIMAL_PREFETCHING \
	-DUSE_MALLOC_LOCK \
	-DCOUNT_WAIT_TIME \
	-I$(strip $(STXXL_ROOT))/include \
	-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE \
	$(POSIX_MEMALIGN) $(XOPEN_SOURCE)

STXXL_LDFLAGS	+= $(PTHREAD_FLAG)
STXXL_LDLIBS	+= -L$(strip $(STXXL_ROOT))/lib -l$(LIBNAME)

STXXL_LIBDEPS	+= $(strip $(STXXL_ROOT))/lib/lib$(LIBNAME).$(LIBEXT)

UNAME_M		:= $(shell uname -m)
CPPFLAGS_ARCH	+= $(CPPFLAGS_$(UNAME_M))
CPPFLAGS_i686	?= -march=i686

##################################################################

#### ICPC OPTIONS ################################################

ifeq ($(strip $(USE_ICPC)),yes)

OPENMPFLAG	?= -openmp

ICPC_CPPFLAGS	+= $(if $(ICPC_GCC),-gcc-name=$(strip $(ICPC_GCC)))
ICPC_LDFLAGS	+= $(if $(ICPC_GCC),-gcc-name=$(strip $(ICPC_GCC)))

STXXL_SPECIFIC	+= -include bits/intel_compatibility.h

endif

##################################################################

#### MCSTL OPTIONS ###############################################

ifeq ($(strip $(USE_MCSTL)),yes)

OPENMPFLAG	?= -fopenmp

ifeq (,$(strip $(wildcard $(strip $(MCSTL_ROOT))/c++/mcstl.h)))
$(error ERROR: could not find a MCSTL installation in MCSTL_ROOT=$(MCSTL_ROOT))
endif

MCSTL_CPPFLAGS		+= $(OPENMPFLAG) -D__MCSTL__ $(MCSTL_INCLUDES_PREPEND) -I$(MCSTL_ROOT)/c++
MCSTL_LDFLAGS		+= $(OPENMPFLAG)

MCSTL_INCLUDES_PREPEND	+= $(if $(findstring 4.3,$(COMPILER)),-I$(MCSTL_ROOT)/c++/mod_stl/gcc-4.3)

endif

##################################################################

#### BOOST OPTIONS ###############################################

BOOST_COMPILER_OPTIONS	 = \
	-DSTXXL_BOOST_TIMESTAMP \
	-DSTXXL_BOOST_CONFIG \
	-DSTXXL_BOOST_FILESYSTEM \
	-DSTXXL_BOOST_THREADS \
	-DSTXXL_BOOST_RANDOM \
	$(if $(strip $(BOOST_ROOT)),-I$(strip $(BOOST_ROOT)))

BOOST_LIB_COMPILER_SUFFIX	?=
BOOST_LIB_MT_SUFFIX		?= -mt
BOOST_LINKER_OPTIONS		 = \
	-lboost_thread$(BOOST_LIB_COMPILER_SUFFIX)$(BOOST_LIB_MT_SUFFIX) \
	-lboost_date_time$(BOOST_LIB_COMPILER_SUFFIX)$(BOOST_LIB_MT_SUFFIX) \
	-lboost_iostreams$(BOOST_LIB_COMPILER_SUFFIX)$(BOOST_LIB_MT_SUFFIX) \
	-lboost_filesystem$(BOOST_LIB_COMPILER_SUFFIX)$(BOOST_LIB_MT_SUFFIX)

##################################################################

#### CPPUNIT OPTIONS ############################################

CPPUNIT_COMPILER_OPTIONS	+=

CPPUNIT_LINKER_OPTIONS		+= -lcppunit -ldl

##################################################################

#### DEPENDENCIES ################################################

HEADER_FILES_BITS	+= namespace.h noncopyable.h version.h
HEADER_FILES_BITS	+= compat_hash_map.h compat_hash_set.h
HEADER_FILES_BITS	+= compat_auto_ptr.h

HEADER_FILES_COMMON	+= aligned_alloc.h mutex.h rand.h semaphore.h state.h
HEADER_FILES_COMMON	+= timer.h utils.h gprof.h simple_vector.h
HEADER_FILES_COMMON	+= switch.h tmeta.h log.h exceptions.h debug.h tuple.h
HEADER_FILES_COMMON	+= types.h utils_ledasm.h settings.h seed.h

HEADER_FILES_IO		+= completion_handler.h io.h iobase.h iostats.h
HEADER_FILES_IO		+= mmap_file.h simdisk_file.h syscall_file.h
HEADER_FILES_IO		+= ufs_file.h wincall_file.h wfs_file.h boostfd_file.h

HEADER_FILES_MNG	+= adaptor.h async_schedule.h block_prefetcher.h
HEADER_FILES_MNG	+= buf_istream.h buf_ostream.h buf_writer.h mng.h
HEADER_FILES_MNG	+= write_pool.h prefetch_pool.h

HEADER_FILES_CONTAINERS	+= pager.h stack.h vector.h priority_queue.h queue.h
HEADER_FILES_CONTAINERS	+= map.h deque.h

HEADER_FILES_CONTAINERS_BTREE	+= btree.h iterator_map.h leaf.h node_cache.h
HEADER_FILES_CONTAINERS_BTREE	+= root_node.h node.h btree_pager.h iterator.h

HEADER_FILES_ALGO	+= adaptor.h inmemsort.h intksort.h run_cursor.h sort.h
HEADER_FILES_ALGO	+= async_schedule.h interleaved_alloc.h ksort.h
HEADER_FILES_ALGO	+= losertree.h scan.h stable_ksort.h random_shuffle.h

HEADER_FILES_STREAM	+= stream.h sort_stream.h

HEADER_FILES_UTILS	+= malloc.h

###################################################################

#### MISC #########################################################

DEPEXT	 = $(LIBNAME).d # extension of dependency files
OBJEXT	 = $(LIBNAME).o	# extension of object files
IIEXT	 = $(LIBNAME).ii
LIBEXT	 = a		# static library file extension
EXEEXT	 = $(LIBNAME).bin # executable file extension
RM	 = rm -f	# remove file command
LIBGEN	 = ar cr	# library generation
OUT	 = -o		# output file option for the compiler and linker

d	?= $(strip $(DEPEXT))
o	?= $(strip $(OBJEXT))
ii	?= $(strip $(IIEXT))
bin	?= $(strip $(EXEEXT))

###################################################################

#### COMPILE/LINK RULES ###########################################

DEPS_MAKEFILES	:= $(wildcard ../Makefile.subdir.gnu ../make.settings ../make.settings.local GNUmakefile Makefile.local)
%.$o: %.cpp $(DEPS_MAKEFILES)
	@$(RM) $@ $*.$d
	$(COMPILER) $(STXXL_COMPILER_OPTIONS) -MD -MF $*.$dT -c $(OUTPUT_OPTION) $< && mv $*.$dT $*.$d

%.$(ii): %.cpp $(DEPS_MAKEFILES)
	$(COMPILER) $(STXXL_COMPILER_OPTIONS) -E $(OUTPUT_OPTION) $<

LINK_STXXL	 = $(LINKER) $1 $(STXXL_LINKER_OPTIONS) -o $@

%.$(bin): %.$o $(STXXL_LIBDEPS)
	$(call LINK_STXXL, $<)

###################################################################

ifeq ($(strip $(USE_ICPC)),yes)
STXXL_CPPFLAGS_CXX	+= $(ICPC_CPPFLAGS)
STXXL_LDLIBS_CXX	+= $(ICPC_LDFLAGS)
endif

STXXL_COMPILER_OPTIONS	+= $(STXXL_CPPFLAGS_CXX)
STXXL_COMPILER_OPTIONS	+= $(STXXL_SPECIFIC)
STXXL_COMPILER_OPTIONS	+= $(OPT) $(DEBUG) $(WARNINGS)
STXXL_LINKER_OPTIONS	+= $(STXXL_LDLIBS_CXX)
STXXL_LINKER_OPTIONS	+= $(DEBUG)
STXXL_LINKER_OPTIONS	+= $(STXXL_LDFLAGS)
STXXL_LINKER_OPTIONS	+= $(STXXL_LDLIBS)

ifeq ($(strip $(USE_MCSTL)),yes)
STXXL_COMPILER_OPTIONS	+= $(MCSTL_CPPFLAGS)
STXXL_LINKER_OPTIONS	+= $(MCSTL_LDFLAGS)
endif

ifeq ($(strip $(USE_BOOST)),yes)
STXXL_COMPILER_OPTIONS	+= $(BOOST_COMPILER_OPTIONS)
STXXL_LINKER_OPTIONS	+= $(BOOST_LINKER_OPTIONS)
endif

STXXL_COMPILER_OPTIONS	+= $(CPPFLAGS)

# vim: syn=make


Clarify labels in Y axes

Clarify labels in Y axes

set terminal 'pngcairo' size 1920, 1080
set output 'timesvsthreads.png'
set datafile separator ','
set font "Helvetica, 14"
set title "Average response time vs. concurrency" font "Helvetica, 24"
set xlabel 'Concurrency level (number of simultaneous users)' font "Helvetica, 14"
set ylabel 'y1: Average response time (ms.)' font "Helvetica, 14"
set y2label 'y2: Number of requests handled per second.' font "Helvetica, 14"
set style line 1 lc rgb '#0060ad' lt 1 lw 2 pt 7 pi -1 ps 1.5
set style line 2 lc rgb '#44A4FF'
set style line 3 lc rgb '#60ad00' lt 1 lw 2 pt 7 pi -1 ps 1.5
set style line 4 lc rgb '#A4FF44'
set style line 5 lc rgb '#ad0060' lt 1 lw 2 pt 7 pi -1 ps 1.5
set style line 6 lc rgb '#FF44A4'
set pointintervalbox 3
set grid
set xrange [10:280]
set yrange [10:15000]
set ytics 1000
set xtics (0,20,40,60,80,100,120,140,160,180,200,220,240,260,280)
set y2range [0:250]
set y2tics 10
f(x) = a*x**b;
fit f(x) "averages.csv" using 2:1 via a, b
g(x) = u*x**v;
fit g(x) "reqspersecond.csv" using 2:1 via u, v
h(x) = l*x**m;
fit h(x) "failcount.csv" using 2:1 via l, m
plot "averages.csv" using 2:1 with linespoints ls 1 title 'Average response time measured (y1)' axes x1y1, \
  "reqspersecond.csv" using 2:1 with linespoints ls 3 title 'Transactions per second (y2)' axes x1y2, \
  "failcount.csv" using 2:1 with linespoints ls 5 title 'Failed transactions per second (y2)' axes x1y2, \
  f(x) smooth csplines ls 2 title 'Average response time trendline (y1)', \
  g(x) smooth csplines ls 4 title 'Transactions per seconds trend (y2)' axes x1y2, \
  h(x) smooth csplines ls 6 title 'Failed transactions per second trend (y2)' axes x1y2

set terminal 'pngcairo' size 1920, 1080
set output 'timesvsthreads.png'
set datafile separator ','
set font "Helvetica, 14"
set title "Average response time vs. concurrency" font "Helvetica, 24"
set xlabel 'Concurrency level (number of simultaneous users)' font "Helvetica, 14"
set ylabel 'Average response time (ms.)' font "Helvetica, 14"
set y2label 'Number of requests handled per second.' font "Helvetica, 14"
set style line 1 lc rgb '#0060ad' lt 1 lw 2 pt 7 pi -1 ps 1.5
set style line 2 lc rgb '#44A4FF'
set style line 3 lc rgb '#60ad00' lt 1 lw 2 pt 7 pi -1 ps 1.5
set style line 4 lc rgb '#A4FF44'
set style line 5 lc rgb '#ad0060' lt 1 lw 2 pt 7 pi -1 ps 1.5
set style line 6 lc rgb '#FF44A4'
set pointintervalbox 3
set grid
set xrange [10:280]
set yrange [10:15000]
set ytics 1000
set xtics (0,20,40,60,80,100,120,140,160,180,200,220,240,260,280)
set y2range [0:250]
set y2tics 10
f(x) = a*x**b;
fit f(x) "averages.csv" using 2:1 via a, b
g(x) = u*x**v;
fit g(x) "reqspersecond.csv" using 2:1 via u, v
h(x) = l*x**m;
fit h(x) "failcount.csv" using 2:1 via l, m
plot "averages.csv" using 2:1 with linespoints ls 1 title 'Average response time measured (y1)' axes x1y1, \
  "reqspersecond.csv" using 2:1 with linespoints ls 3 title 'Transactions per second (y2)' axes x1y2, \
  "failcount.csv" using 2:1 with linespoints ls 5 title 'Failed transactions per second (y2)' axes x1y2, \
  f(x) smooth csplines ls 2 title 'Average response time trendline (y1)', \
  g(x) smooth csplines ls 4 title 'Transactions per seconds trend (y2)' axes x1y2, \
  h(x) smooth csplines ls 6 title 'Failed transactions per second trend (y2)' axes x1y2


Clean up xtics format

Clean up xtics format

set terminal png size 400,300 enhanced
set output '/dev/stdout'
set xdata time
set timefmt '%Y-%m-%d %H:%M:%S'
set format x '%d/%m %H:%M'
set datafile separator ','
set xtics rotate
plot '< cat -' using 1:2 notitle smooth csplines

set terminal png size 400,300 enhanced
set output '/dev/stdout'
set xdata time
set timefmt '%Y-%m-%d %H:%M:%S'
set datafile separator ','
set xtics rotate
plot '< cat -' using 1:2 notitle smooth csplines


Add vd:named_args_unify/5 test with repeated fields


sfsas

sfsas

set terminal png  transparent enhanced  fontscale 1.0 size 500, 350
# set output 'contours.17.png'
set view 60, 30, 0.85, 1.1
set samples 25, 25
set isosamples 26, 26
set contour base
set cntrparam bspline
set title "3D gnuplot demo - contour of Sinc function"
set xlabel "Xx axis"
set ylabel "Y axis"
set zlabel "Z axis"
set zlabel  offset character 1, 0, 0 font "" textcolor lt -1 norotate
splot [-5:5.01] [-5:5.01] sin(sqrt(x**2+y**2)) / sqrt(x**2+y**2)

set terminal png  transparent enhanced  fontscale 1.0 size 500, 350
# set output 'contours.17.png'
set view 60, 30, 0.85, 1.1
set samples 25, 25
set isosamples 26, 26
set contour base
set cntrparam bspline
set title "3D gnuplot demo - contour of Sinc function"
set xlabel "X axis"
set ylabel "Y axis"
set zlabel "Z axis"
set zlabel  offset character 1, 0, 0 font "" textcolor lt -1 norotate
splot [-5:5.01] [-5:5.01] sin(sqrt(x**2+y**2)) / sqrt(x**2+y**2)


graph11

#!/usr/bin/env gnuplot

# graph of CPU temperature

# datafiles
ifnameh = "/tmp/lnxdiagd/mysql4gnuplot/sql11h.csv"
ifnamed = "/tmp/lnxdiagd/mysql4gnuplot/sql11d.csv"
ifnamew = "/tmp/lnxdiagd/mysql4gnuplot/sql11w.csv"
set output "/tmp/lnxdiagd/site/img/day11.png"

# ******************************************************* General settings *****
set terminal png enhanced font "Vera,9" size 1280,320
set datafile separator ';'
set datafile missing "NaN"    # Ignore missing values
set grid
tz_offset = utc_offset / 3600 # GNUplot only works with UTC. Need to compensate
                              # for timezone ourselves.
if (GPVAL_VERSION == 4.6) {epoch_compensate = 946684800} else {if (GPVAL_VERSION == 5.0) {epoch_compensate = 0}}
# Positions of split between graphs
LMARG = 0.06
LMPOS = 0.40
MRPOS = 0.73
RMARG = 0.94

min(x,y) = (x < y) ? x : y
max(x,y) = (x > y) ? x : y

# ********************************************************* Statistics (R) *****
# stats to be calculated here of column 2 (UX-epoch)
stats ifnameh using 1 name "X" nooutput

Xh_min = X_min + utc_offset - epoch_compensate
Xh_max = X_max + utc_offset - epoch_compensate

# stats to be calculated here for Y-axes
stats ifnameh using 2 name "Yh" nooutput

# ********************************************************* Statistics (M) *****
# stats to be calculated here of column 2 (UX-epoch)
stats ifnamed using 1 name "X" nooutput

Xd_min = X_min + utc_offset - epoch_compensate
Xd_max = X_max + utc_offset - epoch_compensate

# stats to be calculated here for Y-axes
stats ifnamed using 3 name "Yd" nooutput

# ********************************************************* Statistics (L) *****
# stats to be calculated here of column 2 (UX-epoch)
stats ifnamew using 1 name "X" nooutput
Xw_min = X_min + utc_offset - epoch_compensate
Xw_max = X_max + utc_offset - epoch_compensate

# stats for Y-axis
stats ifnamew using 3 name "Yw" nooutput

Ymax = max(max(Yd_max, Yh_max), Yw_max) +1
Ymin = min(min(Yd_min, Yh_min), Yw_min) -1

set multiplot layout 1, 3 title "CPU Temperature ".strftime("( %Y-%m-%dT%H:%M:%S )", time(0)+utc_offset)

# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#                                                       LEFT PLOT: past week
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

# ***************************************************************** X-axis *****
set xlabel "past week"       # X-axis label
set xdata time               # Data on X-axis should be interpreted as time
set timefmt "%s"             # Time in log-file is given in Unix format
set format x "%a %d"            # Display time in 24 hour notation on the X axis
set xrange [ Xw_min : Xw_max ]

# ***************************************************************** Y-axis *****
set ylabel "Temperature [degC]"
set yrange [ Ymin : Ymax ]

# ***************************************************************** Legend *****
set key inside top left horizontal box
set key samplen 1
set key reverse Left

# ***************************************************************** Output *****
# set arrow from graph 0,graph 0 to graph 0,graph 1 nohead lc rgb "red" front
# set arrow from graph 1,graph 0 to graph 1,graph 1 nohead lc rgb "green" front
#set object 1 rect from screen 0,0 to screen 1,1 behind
#set object 1 rect fc rgb "#eeeeee" fillstyle solid 1.0 noborder
#set object 2 rect from graph 0,0 to graph 1,1 behind
#set object 2 rect fc rgb "#ffffff" fillstyle solid 1.0 noborder

set lmargin at screen LMARG
set rmargin at screen LMPOS

# ***** PLOT *****
plot ifnamew \
      using ($1+utc_offset):3 title " Temperature [degC]" with points pt 5 ps 0.2 fc rgb "#ccbb0000" \

# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#                                                     MIDDLE PLOT:  past day
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

# ***************************************************************** X-axis *****
set xlabel "past day"       # X-axis label
set xdata time               # Data on X-axis should be interpreted as time
set timefmt "%s"             # Time in log-file is given in Unix format
set format x "%R"            # Display time in 24 hour notation on the X axis
set xrange [ Xd_min : Xd_max ]

# ***************************************************************** Y-axis *****
set ylabel " "
set ytics format " "
set yrange [ Ymin : Ymax ]

# ***************************************************************** Legend *****
unset key

# ***************************************************************** Output *****
set lmargin at screen LMPOS+0.001
set rmargin at screen MRPOS

# ***** PLOT *****
plot ifnamed \
      using ($1+utc_offset):3 with points pt 5 ps 0.2 fc rgb "#ccbb0000" \

# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#                                                      RIGHT PLOT: past hour
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

# ***************************************************************** X-axis *****
set xlabel "past hour"       # X-axis label
set xdata time               # Data on X-axis should be interpreted as time
set timefmt "%s"             # Time in log-file is given in Unix format
set format x "%R"            # Display time in 24 hour notation on the X axis
set xrange [ Xh_min : Xh_max ]
set xtics textcolor rgb "red"

# ***************************************************************** Y-axis *****
set ylabel " "
set ytics format " "
set yrange [ Ymin : Ymax ]

# ***************************************************************** Legend *****
unset key

# ***************************************************************** Output *****
set lmargin at screen MRPOS+0.001
set rmargin at screen RMARG

# ***** PLOT *****
plot ifnameh \
      using ($1+utc_offset):3 with points pt 5 ps 0.2 fc rgb "#ccbb0000" \

# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#                                                                 FINALIZING
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

unset multiplot

#!/usr/bin/env gnuplot

# graph of CPU temperature

# datafiles
ifnameh = "/tmp/lnxdiagd/mysql4gnuplot/sql11h.csv"
ifnamed = "/tmp/lnxdiagd/mysql4gnuplot/sql11d.csv"
ifnamew = "/tmp/lnxdiagd/mysql4gnuplot/sql11w.csv"
set output "/tmp/lnxdiagd/site/img/day11.png"

# ******************************************************* General settings *****
set terminal png enhanced font "Vera,9" size 1280,320
set datafile separator ';'
set datafile missing "NaN"    # Ignore missing values
set grid
tz_offset = utc_offset / 3600 # GNUplot only works with UTC. Need to compensate
                              # for timezone ourselves.
if (GPVAL_VERSION == 4.6) {epoch_compensate = 946684800} else {if (GPVAL_VERSION == 5.0) {epoch_compensate = 0}}
# Positions of split between graphs
LMARG = 0.06
LMPOS = 0.40
MRPOS = 0.73
RMARG = 0.94

min(x,y) = (x < y) ? x : y
max(x,y) = (x > y) ? x : y

# ********************************************************* Statistics (R) *****
# stats to be calculated here of column 2 (UX-epoch)
stats ifnameh using 2 name "X" nooutput

Xh_min = X_min + utc_offset - epoch_compensate
Xh_max = X_max + utc_offset - epoch_compensate

# stats to be calculated here for Y-axes
stats ifnameh using 4 name "Yh" nooutput

# ********************************************************* Statistics (M) *****
# stats to be calculated here of column 2 (UX-epoch)
stats ifnamed using 2 name "X" nooutput

Xd_min = X_min + utc_offset - epoch_compensate
Xd_max = X_max + utc_offset - epoch_compensate

# stats to be calculated here for Y-axes
stats ifnamed using 4 name "Yd" nooutput

# ********************************************************* Statistics (L) *****
# stats to be calculated here of column 2 (UX-epoch)
stats ifnamew using 2 name "X" nooutput
Xw_min = X_min + utc_offset - epoch_compensate
Xw_max = X_max + utc_offset - epoch_compensate

# stats for Y-axis
stats ifnamew using 4 name "Yw" nooutput

Ymax = max(max(Yd_max, Yh_max), Yw_max) +1
Ymin = min(min(Yd_min, Yh_min), Yw_min) -1

set multiplot layout 1, 3 title "CPU Temperature ".strftime("( %Y-%m-%dT%H:%M:%S )", time(0)+utc_offset)

# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#                                                       LEFT PLOT: past week
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

# ***************************************************************** X-axis *****
set xlabel "past week"       # X-axis label
set xdata time               # Data on X-axis should be interpreted as time
set timefmt "%s"             # Time in log-file is given in Unix format
set format x "%a %d"            # Display time in 24 hour notation on the X axis
set xrange [ Xw_min : Xw_max ]

# ***************************************************************** Y-axis *****
set ylabel "Temperature [degC]"
set yrange [ Ymin : Ymax ]

# ***************************************************************** Legend *****
set key inside top left horizontal box
set key samplen 1
set key reverse Left

# ***************************************************************** Output *****
# set arrow from graph 0,graph 0 to graph 0,graph 1 nohead lc rgb "red" front
# set arrow from graph 1,graph 0 to graph 1,graph 1 nohead lc rgb "green" front
#set object 1 rect from screen 0,0 to screen 1,1 behind
#set object 1 rect fc rgb "#eeeeee" fillstyle solid 1.0 noborder
#set object 2 rect from graph 0,0 to graph 1,1 behind
#set object 2 rect fc rgb "#ffffff" fillstyle solid 1.0 noborder

set lmargin at screen LMARG
set rmargin at screen LMPOS

# ***** PLOT *****
plot ifnamew \
      using ($2+utc_offset):4 title " Temperature [degC]" with points pt 5 ps 0.2 fc rgb "#ccbb0000" \

# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#                                                     MIDDLE PLOT:  past day
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

# ***************************************************************** X-axis *****
set xlabel "past day"       # X-axis label
set xdata time               # Data on X-axis should be interpreted as time
set timefmt "%s"             # Time in log-file is given in Unix format
set format x "%R"            # Display time in 24 hour notation on the X axis
set xrange [ Xd_min : Xd_max ]

# ***************************************************************** Y-axis *****
set ylabel " "
set ytics format " "
set yrange [ Ymin : Ymax ]

# ***************************************************************** Legend *****
unset key

# ***************************************************************** Output *****
set lmargin at screen LMPOS+0.001
set rmargin at screen MRPOS

# ***** PLOT *****
plot ifnamed \
      using ($2+utc_offset):4 with points pt 5 ps 0.2 fc rgb "#ccbb0000" \

# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#                                                      RIGHT PLOT: past hour
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

# ***************************************************************** X-axis *****
set xlabel "past hour"       # X-axis label
set xdata time               # Data on X-axis should be interpreted as time
set timefmt "%s"             # Time in log-file is given in Unix format
set format x "%R"            # Display time in 24 hour notation on the X axis
set xrange [ Xh_min : Xh_max ]
set xtics textcolor rgb "red"

# ***************************************************************** Y-axis *****
set ylabel " "
set ytics format " "
set yrange [ Ymin : Ymax ]

# ***************************************************************** Legend *****
unset key

# ***************************************************************** Output *****
set lmargin at screen MRPOS+0.001
set rmargin at screen RMARG

# ***** PLOT *****
plot ifnameh \
      using ($2+utc_offset):4 with points pt 5 ps 0.2 fc rgb "#ccbb0000" \

# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#                                                                 FINALIZING
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

unset multiplot


title update

title update


Hector.gnu was the previous UK academic top tier system. It was a cray XC30, I think, and has now been replaced by ARCHER. If we need it again we may refer to branches/legacy-machinefiles-2946-jdas/

git-svn-id: 06aac1f7aa6783202dd435920b98a457d633d0b0@2952 a9e16012-fd73-49ee-95cb-036de7809213

#!/bin/bash
#
# $Id$
#
# Define variables.
# Do not override existing definitions.
# Put any comments between the first block starting with '# KEEP THIS'
# and ending with '# END KEEP THIS'
#
######################################################################

# KEEP THIS
if ! modulecmd bash list 2>&1 | grep PrgEnv-gnu 1>/dev/null 2>&1; then
  echo Wrong programming environment. Should be PrgEnv-gnu.
  exit
fi
case $UQMAILHOST in
  franklin)
    SYSTEM_HDF5_PAR_DIR=${SYSTEM_HDF5_PAR_DIR:-"/opt/cray/hdf5-parallel/1.8.3.1/hdf5-parallel-gnu"}
    ;;
  hopper)
    ATLAS_BUILDS=NONE
    SYSTEM_HDF5_PAR_DIR=${SYSTEM_HDF5_PAR_DIR:-"/opt/cray/hdf5-parallel/1.8.6/gnu/46"}
    SYSTEM_HDF5_SER_DIR=/opt/cray/hdf5/1.8.6/gnu/46
#    SYSTEM_BLAS_PYCSH_LIB=${BLAS_PYCSH_LIB:-"/opt/acml/default/gfortran64/lib/libacml.so"}
#    SYSTEM_LAPACK_PYCSH_LIB=${LAPACK_PYCSH_LIB:-"/opt/acml/default/gfortran64/lib/libacml.so"}
    ;;
esac
# END KEEP THIS

# Serial compilers
# FC should be a compiler that compiles F77 or F90 but takes free format.
# F77 should be a compiler that compiles F77 or F90 but takes fixed format.
# Typically this means that both are the F90 compiler, and they figure out the
# format from the file suffix.  The exception is the XL suite, where xlf
# compiles F77 or F90, and expects fixed format, while xlf9x ignores
# the suffix and looks for the -qfixed flag or else fails on fixed format.
CC=${CC:-"gcc"}
CXX=${CXX:-"g++"}
FC=${FC:-"gfortran"}
F77=${F77:-"gfortran"}

# Python builds -- much use gcc for consistency.
PYC_CC=${PYC_CC:-"gcc"}
PYC_CXX=${PYC_CXX:-"g++"}
PYC_FC=${PYC_FC:-"gfortran"}
PYC_F77=${PYC_F77:-"gfortran"}

# Backend compilers:
# BENCC=${BENCC:-""}
# BENCXX=${BENCXX:-""}
# BENFC=${BENFC:-""}
# BENF77=${BENF77:-""}

# Parallel compilers:
MPICC=${MPICC:-"cc"}
MPICXX=${MPICXX:-"CC"}
MPIFC=${MPIFC:-"ftn"}
MPIF77=${MPIF77:-"ftn"}

# Compilation flags:
# Do not set optimization flags as packages should add good defaults
# pic flags are added later

# Serial
CFLAGS=${CFLAGS:-"-O2 -DMPICH_IGNORE_CXX_SEEK"}
CXXFLAGS=${CXXFLAGS:-"-O2 -DMPICH_IGNORE_CXX_SEEK"}
FCFLAGS=${FCFLAGS:-"-O2 -DMPICH_IGNORE_CXX_SEEK"}
FFLAGS=${FFLAGS:-"-O2 -DMPICH_IGNORE_CXX_SEEK"}

# PYC flags:
# PYC_LDFLAGS is for creating an executable.
# PYC_MODFLAGS is for creating a module.
# PYC_CFLAGS=${PYC_CFLAGS:-""}
# PYC_CXXFLAGS=${PYC_CXXFLAGS:-""}
# PYC_FCFLAGS=${PYC_FCFLAGS:-""}
# PYC_FFLAGS=${PYC_FFLAGS:-""}
# PYC_LDFLAGS=${PYC_LDFLAGS:-""}
# PYC_MODFLAGS=${PYC_MODFLAGS:-""}
# PYC_LD_LIBRARY_PATH=${PYC_LD_LIBRARY_PATH:-""}
# PYC_LD_RUN_PATH=${PYC_LD_RUN_PATH:-""}

# Parallel
# MPI_CFLAGS=${MPI_CFLAGS:-""}
# MPI_CXXFLAGS=${MPI_CXXFLAGS:-""}
# MPI_FCFLAGS=${MPI_FCFLAGS:-""}
# MPI_FFLAGS=${MPI_FFLAGS:-""}

# Linear algebra libraries:
# All should be a full path to the library.
# SER versions are for front-end nodes.
# BEN versions are for back-end nodes if different.
# PYC versions are for front-end nodes.
SYSTEM_BLAS_SER_LIB=${SYSTEM_BLAS_SER_LIB:-"/opt/acml/default/gfortran64/lib/libacml.a"}
# SYSTEM_BLAS_PYCSH_LIB=${SYSTEM_BLAS_PYCSH_LIB:-""}
# SYSTEM_BLAS_BEN_LIB=${SYSTEM_BLAS_BEN_LIB:-""}
SYSTEM_LAPACK_SER_LIB=${SYSTEM_LAPACK_SER_LIB:-"/opt/acml/default/gfortran64/lib/libacml.a"}
# SYSTEM_LAPACK_PYCSH_LIB=${SYSTEM_LAPACK_PYCSH_LIB:-""}
# SYSTEM_LAPACK_BEN_LIB=${SYSTEM_LAPACK_BEN_LIB:-""}

# IO directories:
# SYSTEM_HDF5_SER_DIR=${SYSTEM_HDF5_SER_DIR:-""}
# SYSTEM_HDF5_PAR_DIR=${SYSTEM_HDF5_PAR_DIR:-""}
# SYSTEM_NETCDF_SER_DIR=${SYSTEM_NETCDF_SER_DIR:-""}
# SYSTEM_NETCDF_PAR_DIR=${SYSTEM_NETCDF_PAR_DIR:-""}

# Java options
# export _JAVA_OPTIONS=

# Choose preferred buildsystem
# PREFER_CMAKE=${PREFER_CMAKE:-""}

# Variables for the packages, .
# All variables override defaults in files in bilder/packages.
# <PKG>_BLDRVERSION contains the version to be built.
# <PKG>_BUILDS contains the desired builds. Use of NOBUILD is deprecated.
# <PKG>_<BUILD>_OTHER_ARGS contains the other configuration arguments
#   for build <BUILD>.  If a package could have a cmake or an autotools
#   build, then the variables are <PKG>_<BUILD>_CMAKE_OTHER_ARGS
#   and <PKG>_<BUILD>_CONFIG_OTHER_ARGS

# ADIOS_BLDRVERSION=${ADIOS_BLDRVERSION:-""}
# ADIOS_BUILDS=${ADIOS_BUILDS:-""}
# ADIOS_SER_OTHER_ARGS=${ADIOS_SER_OTHER_ARGS:-""}

# ADOLC_BLDRVERSION=${ADOLC_BLDRVERSION:-""}
# ADOLC_BUILDS=${ADOLC_BUILDS:-""}
# ADOLC_SER_OTHER_ARGS=${ADOLC_SER_OTHER_ARGS:-""}

# ARPREC_BLDRVERSION=${ARPREC_BLDRVERSION:-""}
# ARPREC_BUILDS=${ARPREC_BUILDS:-""}
# ARPREC_SER_OTHER_ARGS=${ARPREC_SER_OTHER_ARGS:-""}

# ATLAS_BLDRVERSION=${ATLAS_BLDRVERSION:-""}
# ATLAS_BUILDS=${ATLAS_BUILDS:-""}
# ATLAS_PYCSH_OTHER_ARGS=${ATLAS_PYCSH_OTHER_ARGS:-""}
# ATLAS_CLP_OTHER_ARGS=${ATLAS_CLP_OTHER_ARGS:-""}
# ATLAS_SER_OTHER_ARGS=${ATLAS_SER_OTHER_ARGS:-""}

# AUTOCONF_BLDRVERSION=${AUTOCONF_BLDRVERSION:-""}
# AUTOCONF_BUILDS=${AUTOCONF_BUILDS:-""}
# AUTOCONF_SER_OTHER_ARGS=${AUTOCONF_SER_OTHER_ARGS:-""}

# AUTOMAKE_BLDRVERSION=${AUTOMAKE_BLDRVERSION:-""}
# AUTOMAKE_BUILDS=${AUTOMAKE_BUILDS:-""}
# AUTOMAKE_SER_OTHER_ARGS=${AUTOMAKE_SER_OTHER_ARGS:-""}

# AUTOTOOLS_BLDRVERSION=${AUTOTOOLS_BLDRVERSION:-""}
# AUTOTOOLS_BUILDS=${AUTOTOOLS_BUILDS:-""}
# AUTOTOOLS_FAKE_OTHER_ARGS=${AUTOTOOLS_FAKE_OTHER_ARGS:-""}

# BABEL_BLDRVERSION=${BABEL_BLDRVERSION:-""}
BABEL_BUILDS=${BABEL_BUILDS:-"static"}
# BABEL_SHARED_OTHER_ARGS=${BABEL_SHARED_OTHER_ARGS:-""}
BABEL_STATIC_OTHER_ARGS=${BABEL_STATIC_OTHER_ARGS:-"--with-F90-vendor=GNU cross_compiling=yes --target=x86_64-cray-cnl CPP_BABEL='gcc -E -I/opt/mpt/3.1.0/xt/mpich2-pgi/include'"}

# BHSSOLVER_BLDRVERSION=${BHSSOLVER_BLDRVERSION:-""}
# BHSSOLVER_BUILDS=${BHSSOLVER_BUILDS:-""}
# BHSSOLVER_BEN_OTHER_ARGS=${BHSSOLVER_BEN_OTHER_ARGS:-""}
# BHSSOLVER_SER_OTHER_ARGS=${BHSSOLVER_SER_OTHER_ARGS:-""}

# BINUTILS_BLDRVERSION=${BINUTILS_BLDRVERSION:-""}
# BINUTILS_BUILDS=${BINUTILS_BUILDS:-""}
# BINUTILS_SER_OTHER_ARGS=${BINUTILS_SER_OTHER_ARGS:-""}

# BOOST_BLDRVERSION=${BOOST_BLDRVERSION:-""}
# BOOST_BUILDS=${BOOST_BUILDS:-""}
# BOOST_SER_OTHER_ARGS=${BOOST_SER_OTHER_ARGS:-""}

# BOTAN_BLDRVERSION=${BOTAN_BLDRVERSION:-""}
# BOTAN_BUILDS=${BOTAN_BUILDS:-""}
# BOTAN_PYCSH_OTHER_ARGS=${BOTAN_PYCSH_OTHER_ARGS:-""}
# BOTAN_SERSH_OTHER_ARGS=${BOTAN_SERSH_OTHER_ARGS:-""}

# BZIP2_BLDRVERSION=${BZIP2_BLDRVERSION:-""}
# BZIP2_BUILDS=${BZIP2_BUILDS:-""}
# BZIP2_SER_OTHER_ARGS=${BZIP2_SER_OTHER_ARGS:-""}

# CFITSIO_BLDRVERSION=${CFITSIO_BLDRVERSION:-""}
# CFITSIO_BUILDS=${CFITSIO_BUILDS:-""}
# CFITSIO_SER_OTHER_ARGS=${CFITSIO_SER_OTHER_ARGS:-""}

# CGMA_BLDRVERSION=${CGMA_BLDRVERSION:-""}
# CGMA_BUILDS=${CGMA_BUILDS:-""}
# CGMA_SER_OTHER_ARGS=${CGMA_SER_OTHER_ARGS:-""}

# CHEFLIBS_BLDRVERSION=${CHEFLIBS_BLDRVERSION:-""}
# CHEFLIBS_BUILDS=${CHEFLIBS_BUILDS:-""}
# CHEFLIBS_PAR_OTHER_ARGS=${CHEFLIBS_PAR_OTHER_ARGS:-""}
# CHEFLIBS_SER_OTHER_ARGS=${CHEFLIBS_SER_OTHER_ARGS:-""}

# CHOMBO_BLDRVERSION=${CHOMBO_BLDRVERSION:-""}
# CHOMBO_BUILDS=${CHOMBO_BUILDS:-""}
# CHOMBO_PAR2D_OTHER_ARGS=${CHOMBO_PAR2D_OTHER_ARGS:-""}
# CHOMBO_PAR2DDBG_OTHER_ARGS=${CHOMBO_PAR2DDBG_OTHER_ARGS:-""}
# CHOMBO_PAR3D_OTHER_ARGS=${CHOMBO_PAR3D_OTHER_ARGS:-""}
# CHOMBO_PAR3DDBG_OTHER_ARGS=${CHOMBO_PAR3DDBG_OTHER_ARGS:-""}
# CHOMBO_SER2D_OTHER_ARGS=${CHOMBO_SER2D_OTHER_ARGS:-""}
# CHOMBO_SER2DDBG_OTHER_ARGS=${CHOMBO_SER2DDBG_OTHER_ARGS:-""}
# CHOMBO_SER3D_OTHER_ARGS=${CHOMBO_SER3D_OTHER_ARGS:-""}
# CHOMBO_SER3DDBG_OTHER_ARGS=${CHOMBO_SER3DDBG_OTHER_ARGS:-""}

# CHRPATH_BLDRVERSION=${CHRPATH_BLDRVERSION:-""}
# CHRPATH_BUILDS=${CHRPATH_BUILDS:-""}
# CHRPATH_SER_OTHER_ARGS=${CHRPATH_SER_OTHER_ARGS:-""}

# CLAPACK_CMAKE_BLDRVERSION=${CLAPACK_CMAKE_BLDRVERSION:-""}
# CLAPACK_CMAKE_BUILDS=${CLAPACK_CMAKE_BUILDS:-""}
# CLAPACK_CMAKE_PYCSH_OTHER_ARGS=${CLAPACK_CMAKE_PYCSH_OTHER_ARGS:-""}
# CLAPACK_CMAKE_SER_OTHER_ARGS=${CLAPACK_CMAKE_SER_OTHER_ARGS:-""}

# CMAKE_BLDRVERSION=${CMAKE_BLDRVERSION:-""}
# CMAKE_BUILDS=${CMAKE_BUILDS:-""}
# CMAKE_SER_OTHER_ARGS=${CMAKE_SER_OTHER_ARGS:-""}

# COIN_BLDRVERSION=${COIN_BLDRVERSION:-""}
# COIN_BUILDS=${COIN_BUILDS:-""}
# COIN_PYCSH_OTHER_ARGS=${COIN_PYCSH_OTHER_ARGS:-""}

# CORRCALC_BLDRVERSION=${CORRCALC_BLDRVERSION:-""}
# CORRCALC_BUILDS=${CORRCALC_BUILDS:-""}
# CORRCALC_PAR_OTHER_ARGS=${CORRCALC_PAR_OTHER_ARGS:-""}
# CORRCALC_SER_OTHER_ARGS=${CORRCALC_SER_OTHER_ARGS:-""}

# COSML_BLDRVERSION=${COSML_BLDRVERSION:-""}
# COSML_BUILDS=${COSML_BUILDS:-""}
# COSML_PYCSH_OTHER_ARGS=${COSML_PYCSH_OTHER_ARGS:-""}

# COSML_LITE_BLDRVERSION=${COSML_LITE_BLDRVERSION:-""}
# COSML_LITE_BUILDS=${COSML_LITE_BUILDS:-""}
# COSML_LITE_PYCSH_OTHER_ARGS=${COSML_LITE_PYCSH_OTHER_ARGS:-""}

# CPPUNIT_BLDRVERSION=${CPPUNIT_BLDRVERSION:-""}
# CPPUNIT_BUILDS=${CPPUNIT_BUILDS:-""}
# CPPUNIT_SER_OTHER_ARGS=${CPPUNIT_SER_OTHER_ARGS:-""}

# CURL_BLDRVERSION=${CURL_BLDRVERSION:-""}
# CURL_BUILDS=${CURL_BUILDS:-""}
# CURL_SER_OTHER_ARGS=${CURL_SER_OTHER_ARGS:-""}

# CUSP_BLDRVERSION=${CUSP_BLDRVERSION:-""}
# CUSP_BUILDS=${CUSP_BUILDS:-""}
# CUSP_GPU_OTHER_ARGS=${CUSP_GPU_OTHER_ARGS:-""}

# CYTHON_BLDRVERSION=${CYTHON_BLDRVERSION:-""}
# CYTHON_BUILDS=${CYTHON_BUILDS:-""}
# CYTHON_PYCSH_OTHER_ARGS=${CYTHON_PYCSH_OTHER_ARGS:-""}

# DAKOTA_BLDRVERSION=${DAKOTA_BLDRVERSION:-""}
# DAKOTA_BUILDS=${DAKOTA_BUILDS:-""}
# DAKOTA_PAR_OTHER_ARGS=${DAKOTA_PAR_OTHER_ARGS:-""}
# DAKOTA_SER_OTHER_ARGS=${DAKOTA_SER_OTHER_ARGS:-""}

# DDSFLOW_BLDRVERSION=${DDSFLOW_BLDRVERSION:-""}
# DDSFLOW_BUILDS=${DDSFLOW_BUILDS:-""}
# DDSFLOW_SER_OTHER_ARGS=${DDSFLOW_SER_OTHER_ARGS:-""}

# DOCUTILS_BLDRVERSION=${DOCUTILS_BLDRVERSION:-""}
# DOCUTILS_BUILDS=${DOCUTILS_BUILDS:-""}
# DOCUTILS_PYCSH_OTHER_ARGS=${DOCUTILS_PYCSH_OTHER_ARGS:-""}

# DOXYGEN_BLDRVERSION=${DOXYGEN_BLDRVERSION:-""}
# DOXYGEN_BUILDS=${DOXYGEN_BUILDS:-""}
# DOXYGEN_SER_OTHER_ARGS=${DOXYGEN_SER_OTHER_ARGS:-""}

# EIGEN3_BLDRVERSION=${EIGEN3_BLDRVERSION:-""}
# EIGEN3_BUILDS=${EIGEN3_BUILDS:-""}
# EIGEN3_SER_OTHER_ARGS=${EIGEN3_SER_OTHER_ARGS:-""}

# EQCODES_BLDRVERSION=${EQCODES_BLDRVERSION:-""}
# EQCODES_BUILDS=${EQCODES_BUILDS:-""}
# EQCODES_BEN_OTHER_ARGS=${EQCODES_BEN_OTHER_ARGS:-""}
# EQCODES_SER_OTHER_ARGS=${EQCODES_SER_OTHER_ARGS:-""}

# EXODUSII_BLDRVERSION=${EXODUSII_BLDRVERSION:-""}
# EXODUSII_BUILDS=${EXODUSII_BUILDS:-""}
# EXODUSII_SER_OTHER_ARGS=${EXODUSII_SER_OTHER_ARGS:-""}

# FACETS_BLDRVERSION=${FACETS_BLDRVERSION:-""}
# FACETS_BUILDS=${FACETS_BUILDS:-""}
# FACETS_DEVELDOCS_OTHER_ARGS=${FACETS_DEVELDOCS_OTHER_ARGS:-""}
# FACETS_PAR_OTHER_ARGS=${FACETS_PAR_OTHER_ARGS:-""}
# FACETS_PARTAU_OTHER_ARGS=${FACETS_PARTAU_OTHER_ARGS:-""}
# FACETS_SER_OTHER_ARGS=${FACETS_SER_OTHER_ARGS:-""}

# FACETSIFC_BLDRVERSION=${FACETSIFC_BLDRVERSION:-""}
# FACETSIFC_BUILDS=${FACETSIFC_BUILDS:-""}
# FACETSIFC_SER_OTHER_ARGS=${FACETSIFC_SER_OTHER_ARGS:-""}

# FCIOWRAPPERS_BLDRVERSION=${FCIOWRAPPERS_BLDRVERSION:-""}
# FCIOWRAPPERS_BUILDS=${FCIOWRAPPERS_BUILDS:-""}
# FCIOWRAPPERS_PAR_OTHER_ARGS=${FCIOWRAPPERS_PAR_OTHER_ARGS:-""}
# FCIOWRAPPERS_SER_OTHER_ARGS=${FCIOWRAPPERS_SER_OTHER_ARGS:-""}

# FCTESTS_BLDRVERSION=${FCTESTS_BLDRVERSION:-""}
# FCTESTS_BUILDS=${FCTESTS_BUILDS:-""}
# FCTESTS_ALL_OTHER_ARGS=${FCTESTS_ALL_OTHER_ARGS:-""}

# FFTW_BLDRVERSION=${FFTW_BLDRVERSION:-""}
# FFTW_BUILDS=${FFTW_BUILDS:-""}
# FFTW_BEN_OTHER_ARGS=${FFTW_BEN_OTHER_ARGS:-""}
# FFTW_PAR_OTHER_ARGS=${FFTW_PAR_OTHER_ARGS:-""}
# FFTW_SER_OTHER_ARGS=${FFTW_SER_OTHER_ARGS:-""}

# FFTW3_BLDRVERSION=${FFTW3_BLDRVERSION:-""}
# FFTW3_BUILDS=${FFTW3_BUILDS:-""}
# FFTW3_BEN_OTHER_ARGS=${FFTW3_BEN_OTHER_ARGS:-""}
# FFTW3_PAR_OTHER_ARGS=${FFTW3_PAR_OTHER_ARGS:-""}
# FFTW3_SER_OTHER_ARGS=${FFTW3_SER_OTHER_ARGS:-""}

# FGTESTS_BLDRVERSION=${FGTESTS_BLDRVERSION:-""}
# FGTESTS_BUILDS=${FGTESTS_BUILDS:-""}
# FGTESTS_ALL_OTHER_ARGS=${FGTESTS_ALL_OTHER_ARGS:-""}

# FLUXGRID_BLDRVERSION=${FLUXGRID_BLDRVERSION:-""}
# FLUXGRID_BUILDS=${FLUXGRID_BUILDS:-""}
# FLUXGRID_SER_OTHER_ARGS=${FLUXGRID_SER_OTHER_ARGS:-""}

# FMCFM_BLDRVERSION=${FMCFM_BLDRVERSION:-""}
# FMCFM_BUILDS=${FMCFM_BUILDS:-""}
# FMCFM_PAR_OTHER_ARGS=${FMCFM_PAR_OTHER_ARGS:-""}
# FMCFM_SER_OTHER_ARGS=${FMCFM_SER_OTHER_ARGS:-""}

# FMTESTS_BLDRVERSION=${FMTESTS_BLDRVERSION:-""}
# FMTESTS_BUILDS=${FMTESTS_BUILDS:-""}
# FMTESTS_ALL_OTHER_ARGS=${FMTESTS_ALL_OTHER_ARGS:-""}

# FORTHON_BLDRVERSION=${FORTHON_BLDRVERSION:-""}
# FORTHON_BUILDS=${FORTHON_BUILDS:-""}
# FORTHON_PYCSH_OTHER_ARGS=${FORTHON_PYCSH_OTHER_ARGS:-""}

# FREECAD_BLDRVERSION=${FREECAD_BLDRVERSION:-""}
# FREECAD_BUILDS=${FREECAD_BUILDS:-""}
# FREECAD_SER_OTHER_ARGS=${FREECAD_SER_OTHER_ARGS:-""}

# FREETYPE_BLDRVERSION=${FREETYPE_BLDRVERSION:-""}
# FREETYPE_BUILDS=${FREETYPE_BUILDS:-""}
# FREETYPE_PYCSH_OTHER_ARGS=${FREETYPE_PYCSH_OTHER_ARGS:-""}

# FTGL_BLDRVERSION=${FTGL_BLDRVERSION:-""}
# FTGL_BUILDS=${FTGL_BUILDS:-""}
# FTGL_SER_OTHER_ARGS=${FTGL_SER_OTHER_ARGS:-""}

# FUSION_MACHINE_BLDRVERSION=${FUSION_MACHINE_BLDRVERSION:-""}
# FUSION_MACHINE_BUILDS=${FUSION_MACHINE_BUILDS:-""}
# FUSION_MACHINE_PYCSH_OTHER_ARGS=${FUSION_MACHINE_PYCSH_OTHER_ARGS:-""}

# GA_TRANSPORT_BLDRVERSION=${GA_TRANSPORT_BLDRVERSION:-""}
# GA_TRANSPORT_BUILDS=${GA_TRANSPORT_BUILDS:-""}
# GA_TRANSPORT_PAR_OTHER_ARGS=${GA_TRANSPORT_PAR_OTHER_ARGS:-""}
# GA_TRANSPORT_SER_OTHER_ARGS=${GA_TRANSPORT_SER_OTHER_ARGS:-""}

# GACODE_BLDRVERSION=${GACODE_BLDRVERSION:-""}
# GACODE_BUILDS=${GACODE_BUILDS:-""}
# GACODE_PAR_OTHER_ARGS=${GACODE_PAR_OTHER_ARGS:-""}
# GACODE_SER_OTHER_ARGS=${GACODE_SER_OTHER_ARGS:-""}

# GELUS_BLDRVERSION=${GELUS_BLDRVERSION:-""}
# GELUS_BUILDS=${GELUS_BUILDS:-""}
# GELUS_SER_OTHER_ARGS=${GELUS_SER_OTHER_ARGS:-""}

# GENRAY_BLDRVERSION=${GENRAY_BLDRVERSION:-""}
# GENRAY_BUILDS=${GENRAY_BUILDS:-""}
# GENRAY_PAR_OTHER_ARGS=${GENRAY_PAR_OTHER_ARGS:-""}
# GENRAY_SER_OTHER_ARGS=${GENRAY_SER_OTHER_ARGS:-""}

# GKEYLL_BLDRVERSION=${GKEYLL_BLDRVERSION:-""}
# GKEYLL_BUILDS=${GKEYLL_BUILDS:-""}
# GKEYLL_PAR_OTHER_ARGS=${GKEYLL_PAR_OTHER_ARGS:-""}
# GKEYLL_SER_OTHER_ARGS=${GKEYLL_SER_OTHER_ARGS:-""}

# GOTOBLAS2_BLDRVERSION=${GOTOBLAS2_BLDRVERSION:-""}
# GOTOBLAS2_BUILDS=${GOTOBLAS2_BUILDS:-""}
# GOTOBLAS2_SER_OTHER_ARGS=${GOTOBLAS2_SER_OTHER_ARGS:-""}

# GPERF_BLDRVERSION=${GPERF_BLDRVERSION:-""}
# GPERF_BUILDS=${GPERF_BUILDS:-""}
# GPERF_SER_OTHER_ARGS=${GPERF_SER_OTHER_ARGS:-""}
# GPERF_SERSH_OTHER_ARGS=${GPERF_SERSH_OTHER_ARGS:-""}

# GPULIB_BLDRVERSION=${GPULIB_BLDRVERSION:-""}
# GPULIB_BUILDS=${GPULIB_BUILDS:-""}
# GPULIB_GPU_OTHER_ARGS=${GPULIB_GPU_OTHER_ARGS:-""}

# GSL_BLDRVERSION=${GSL_BLDRVERSION:-""}
# GSL_BUILDS=${GSL_BUILDS:-""}
# GSL_SER_OTHER_ARGS=${GSL_SER_OTHER_ARGS:-""}

# GTEST_BLDRVERSION=${GTEST_BLDRVERSION:-""}
# GTEST_BUILDS=${GTEST_BUILDS:-""}
# GTEST_SER_OTHER_ARGS=${GTEST_SER_OTHER_ARGS:-""}

HDF5_BLDRVERSION=${HDF5_BLDRVERSION:-"1.8.6"}
HDF5_BUILDS=${HDF5_BUILDS:-"pycsh"}
# HDF5_PYCSH_OTHER_ARGS=${HDF5_PYCSH_OTHER_ARGS:-""}
# HDF5_PAR_OTHER_ARGS=${HDF5_PAR_OTHER_ARGS:-""}
# HDF5_PARSH_OTHER_ARGS=${HDF5_PARSH_OTHER_ARGS:-""}
# HDF5_SER_OTHER_ARGS=${HDF5_SER_OTHER_ARGS:-""}
# HDF5_SERSH_OTHER_ARGS=${HDF5_SERSH_OTHER_ARGS:-""}

# HTTPLIB2_BLDRVERSION=${HTTPLIB2_BLDRVERSION:-""}
# HTTPLIB2_BUILDS=${HTTPLIB2_BUILDS:-""}
# HTTPLIB2_PYCSH_OTHER_ARGS=${HTTPLIB2_PYCSH_OTHER_ARGS:-""}

# HWLOC_BLDRVERSION=${HWLOC_BLDRVERSION:-""}
# HWLOC_BUILDS=${HWLOC_BUILDS:-""}
# HWLOC_SER_OTHER_ARGS=${HWLOC_SER_OTHER_ARGS:-""}

# HYPRE_BLDRVERSION=${HYPRE_BLDRVERSION:-""}
# HYPRE_BUILDS=${HYPRE_BUILDS:-""}
# HYPRE_PAR_OTHER_ARGS=${HYPRE_PAR_OTHER_ARGS:-""}
# HYPRE_PARSH_OTHER_ARGS=${HYPRE_PARSH_OTHER_ARGS:-""}

# IMAGING_BLDRVERSION=${IMAGING_BLDRVERSION:-""}
# IMAGING_BUILDS=${IMAGING_BUILDS:-""}
# IMAGING_PYCSH_OTHER_ARGS=${IMAGING_PYCSH_OTHER_ARGS:-""}

# IPS_BLDRVERSION=${IPS_BLDRVERSION:-""}
# IPS_BUILDS=${IPS_BUILDS:-""}
# IPS_PYCSH_OTHER_ARGS=${IPS_PYCSH_OTHER_ARGS:-""}

# IPYTHON_BLDRVERSION=${IPYTHON_BLDRVERSION:-""}
# IPYTHON_BUILDS=${IPYTHON_BUILDS:-""}
# IPYTHON_PYCSH_OTHER_ARGS=${IPYTHON_PYCSH_OTHER_ARGS:-""}

# JSMATH_BLDRVERSION=${JSMATH_BLDRVERSION:-""}
# JSMATH_BUILDS=${JSMATH_BUILDS:-""}
# JSMATH_PYCSH_OTHER_ARGS=${JSMATH_PYCSH_OTHER_ARGS:-""}

# LAPACK_BLDRVERSION=${LAPACK_BLDRVERSION:-""}
LAPACK_BUILDS=${LAPACK_BUILDS:-"pycsh"}
# LAPACK_BEN_OTHER_ARGS=${LAPACK_BEN_OTHER_ARGS:-""}
# LAPACK_PYCSH_OTHER_ARGS=${LAPACK_PYCSH_OTHER_ARGS:-""}
# LAPACK_SER_OTHER_ARGS=${LAPACK_SER_OTHER_ARGS:-""}
# LAPACK_SERSH_OTHER_ARGS=${LAPACK_SERSH_OTHER_ARGS:-""}

# LIBPNG_BLDRVERSION=${LIBPNG_BLDRVERSION:-""}
# LIBPNG_BUILDS=${LIBPNG_BUILDS:-""}
# LIBPNG_PYCSH_OTHER_ARGS=${LIBPNG_PYCSH_OTHER_ARGS:-""}

# LIBTOOL_BLDRVERSION=${LIBTOOL_BLDRVERSION:-""}
# LIBTOOL_BUILDS=${LIBTOOL_BUILDS:-""}
# LIBTOOL_SER_OTHER_ARGS=${LIBTOOL_SER_OTHER_ARGS:-""}

# LIBXML2_BLDRVERSION=${LIBXML2_BLDRVERSION:-""}
# LIBXML2_BUILDS=${LIBXML2_BUILDS:-""}
# LIBXML2_SER_OTHER_ARGS=${LIBXML2_SER_OTHER_ARGS:-""}

# LP_SOLVE_BLDRVERSION=${LP_SOLVE_BLDRVERSION:-""}
# LP_SOLVE_BUILDS=${LP_SOLVE_BUILDS:-""}
# LP_SOLVE_SER_OTHER_ARGS=${LP_SOLVE_SER_OTHER_ARGS:-""}

# LUA_BLDRVERSION=${LUA_BLDRVERSION:-""}
# LUA_BUILDS=${LUA_BUILDS:-""}
# LUA_SER_OTHER_ARGS=${LUA_SER_OTHER_ARGS:-""}

# LUABIND_BLDRVERSION=${LUABIND_BLDRVERSION:-""}
# LUABIND_BUILDS=${LUABIND_BUILDS:-""}
# LUABIND_SER_OTHER_ARGS=${LUABIND_SER_OTHER_ARGS:-""}

# M4_BLDRVERSION=${M4_BLDRVERSION:-""}
# M4_BUILDS=${M4_BUILDS:-""}
# M4_SER_OTHER_ARGS=${M4_SER_OTHER_ARGS:-""}

# MAGMA_BLDRVERSION=${MAGMA_BLDRVERSION:-""}
# MAGMA_BUILDS=${MAGMA_BUILDS:-""}
# MAGMA_GPU_OTHER_ARGS=${MAGMA_GPU_OTHER_ARGS:-""}

# MAKO_BLDRVERSION=${MAKO_BLDRVERSION:-""}
# MAKO_BUILDS=${MAKO_BUILDS:-""}
# MAKO_PYCSH_OTHER_ARGS=${MAKO_PYCSH_OTHER_ARGS:-""}

# MATHJAX_BLDRVERSION=${MATHJAX_BLDRVERSION:-""}
# MATHJAX_BUILDS=${MATHJAX_BUILDS:-""}
# MATHJAX_FULL_OTHER_ARGS=${MATHJAX_FULL_OTHER_ARGS:-""}
# MATHJAX_LITE_OTHER_ARGS=${MATHJAX_LITE_OTHER_ARGS:-""}

# MATPLOTLIB_BLDRVERSION=${MATPLOTLIB_BLDRVERSION:-""}
# MATPLOTLIB_BUILDS=${MATPLOTLIB_BUILDS:-""}
# MATPLOTLIB_PYCSH_OTHER_ARGS=${MATPLOTLIB_PYCSH_OTHER_ARGS:-""}

# MERCURIAL_BLDRVERSION=${MERCURIAL_BLDRVERSION:-""}
# MERCURIAL_BUILDS=${MERCURIAL_BUILDS:-""}
# MERCURIAL_PYCSH_OTHER_ARGS=${MERCURIAL_PYCSH_OTHER_ARGS:-""}

# MESA_BLDRVERSION=${MESA_BLDRVERSION:-""}
# MESA_BUILDS=${MESA_BUILDS:-""}
# MESA_MGL_OTHER_ARGS=${MESA_MGL_OTHER_ARGS:-""}
# MESA_OS_OTHER_ARGS=${MESA_OS_OTHER_ARGS:-""}

# METATAU_BLDRVERSION=${METATAU_BLDRVERSION:-""}
# METATAU_BUILDS=${METATAU_BUILDS:-""}
METATAU_PAR_OTHER_ARGS=${METATAU_PAR_OTHER_ARGS:-"-arch=craycnl -pdt_c++=g++"}

# METIS_BLDRVERSION=${METIS_BLDRVERSION:-""}
# METIS_BUILDS=${METIS_BUILDS:-""}
# METIS_SER_OTHER_ARGS=${METIS_SER_OTHER_ARGS:-""}
# METIS_SERSH_OTHER_ARGS=${METIS_SERSH_OTHER_ARGS:-""}

# MPE2_BLDRVERSION=${MPE2_BLDRVERSION:-""}
# MPE2_BUILDS=${MPE2_BUILDS:-""}
# MPE2_NODL_OTHER_ARGS=${MPE2_NODL_OTHER_ARGS:-""}

# MPI4PY_BLDRVERSION=${MPI4PY_BLDRVERSION:-""}
# MPI4PY_BUILDS=${MPI4PY_BUILDS:-""}
# MPI4PY_PYCSH_OTHER_ARGS=${MPI4PY_PYCSH_OTHER_ARGS:-""}

# MPICH2_BLDRVERSION=${MPICH2_BLDRVERSION:-""}
# MPICH2_BUILDS=${MPICH2_BUILDS:-""}
# MPICH2_STATIC_OTHER_ARGS=${MPICH2_STATIC_OTHER_ARGS:-""}

# MUPARSER_BLDRVERSION=${MUPARSER_BLDRVERSION:-""}
# MUPARSER_BUILDS=${MUPARSER_BUILDS:-""}
# MUPARSER_SER_OTHER_ARGS=${MUPARSER_SER_OTHER_ARGS:-""}
# MUPARSER_SERSH_OTHER_ARGS=${MUPARSER_SERSH_OTHER_ARGS:-""}

# MXML_BLDRVERSION=${MXML_BLDRVERSION:-""}
# MXML_BUILDS=${MXML_BUILDS:-""}
# MXML_SER_OTHER_ARGS=${MXML_SER_OTHER_ARGS:-""}

# NCURSES_BLDRVERSION=${NCURSES_BLDRVERSION:-""}
# NCURSES_BUILDS=${NCURSES_BUILDS:-""}
# NCURSES_SER_OTHER_ARGS=${NCURSES_SER_OTHER_ARGS:-""}

# NE7SSH_BLDRVERSION=${NE7SSH_BLDRVERSION:-""}
# NE7SSH_BUILDS=${NE7SSH_BUILDS:-""}
# NE7SSH_PYCSH_OTHER_ARGS=${NE7SSH_PYCSH_OTHER_ARGS:-""}
# NE7SSH_SERSH_OTHER_ARGS=${NE7SSH_SERSH_OTHER_ARGS:-""}

# NETCDF_BLDRVERSION=${NETCDF_BLDRVERSION:-""}
# NETCDF_BUILDS=${NETCDF_BUILDS:-""}
# NETCDF_BEN_OTHER_ARGS=${NETCDF_BEN_OTHER_ARGS:-""}
# NETCDF_PYCSH_OTHER_ARGS=${NETCDF_PYCSH_OTHER_ARGS:-""}
# NETCDF_PAR_OTHER_ARGS=${NETCDF_PAR_OTHER_ARGS:-""}
# NETCDF_SER_OTHER_ARGS=${NETCDF_SER_OTHER_ARGS:-""}

# NETLIB_LITE_BLDRVERSION=${NETLIB_LITE_BLDRVERSION:-""}
# NETLIB_LITE_BUILDS=${NETLIB_LITE_BUILDS:-""}
# NETLIB_LITE_BEN_OTHER_ARGS=${NETLIB_LITE_BEN_OTHER_ARGS:-""}
# NETLIB_LITE_SER_OTHER_ARGS=${NETLIB_LITE_SER_OTHER_ARGS:-""}

# NIMDEVEL_BLDRVERSION=${NIMDEVEL_BLDRVERSION:-""}
# NIMDEVEL_BUILDS=${NIMDEVEL_BUILDS:-""}
NIMDEVEL_PAR_OTHER_ARGS=${NIMDEVEL_PAR_OTHER_ARGS:-"SUPERLU_DIST_LIBS='-L/usr/common/acts/SuperLU/SuperLU_DIST_2.3/cray-xt4_O/lib -lsuperlu_dist_2.3 -L/usr/common/usg/parmetis/3.1 -lparmetis -lmetis'"}
# NIMDEVEL_PARDBG_OTHER_ARGS=${NIMDEVEL_PARDBG_OTHER_ARGS:-""}
# NIMDEVEL_PARSURF_OTHER_ARGS=${NIMDEVEL_PARSURF_OTHER_ARGS:-""}
# NIMDEVEL_PARTAU_OTHER_ARGS=${NIMDEVEL_PARTAU_OTHER_ARGS:-""}
# NIMDEVEL_SER_OTHER_ARGS=${NIMDEVEL_SER_OTHER_ARGS:-""}
# NIMDEVEL_SERDBG_OTHER_ARGS=${NIMDEVEL_SERDBG_OTHER_ARGS:-""}
# NIMDEVEL_SERSURF_OTHER_ARGS=${NIMDEVEL_SERSURF_OTHER_ARGS:-""}

# NIMTESTS_BLDRVERSION=${NIMTESTS_BLDRVERSION:-""}
# NIMTESTS_BUILDS=${NIMTESTS_BUILDS:-""}
# NIMTESTS_ALL_OTHER_ARGS=${NIMTESTS_ALL_OTHER_ARGS:-""}

# NTCC_TRANSPORT_BLDRVERSION=${NTCC_TRANSPORT_BLDRVERSION:-""}
# NTCC_TRANSPORT_BUILDS=${NTCC_TRANSPORT_BUILDS:-""}
# NTCC_TRANSPORT_PAR_OTHER_ARGS=${NTCC_TRANSPORT_PAR_OTHER_ARGS:-""}
# NTCC_TRANSPORT_SER_OTHER_ARGS=${NTCC_TRANSPORT_SER_OTHER_ARGS:-""}

# NUBEAM_BLDRVERSION=${NUBEAM_BLDRVERSION:-""}
# NUBEAM_BUILDS=${NUBEAM_BUILDS:-""}
NUBEAM_PAR_OTHER_ARGS=${NUBEAM_PAR_OTHER_ARGS:-"--disable-shared --enable-static cross_compiling=yes"}
NUBEAM_SER_OTHER_ARGS=${NUBEAM_SER_OTHER_ARGS:-"--disable-shared --enable-static"}

# NUMEXPR_BLDRVERSION=${NUMEXPR_BLDRVERSION:-""}
# NUMEXPR_BUILDS=${NUMEXPR_BUILDS:-""}
# NUMEXPR_PYCSH_OTHER_ARGS=${NUMEXPR_PYCSH_OTHER_ARGS:-""}

# NUMPY_BLDRVERSION=${NUMPY_BLDRVERSION:-""}
# NUMPY_BUILDS=${NUMPY_BUILDS:-""}
# NUMPY_PYCSH_OTHER_ARGS=${NUMPY_PYCSH_OTHER_ARGS:-""}

# OCE_BLDRVERSION=${OCE_BLDRVERSION:-""}
# OCE_BUILDS=${OCE_BUILDS:-""}
# OCE_SER_OTHER_ARGS=${OCE_SER_OTHER_ARGS:-""}

# OPENMPI_BLDRVERSION=${OPENMPI_BLDRVERSION:-""}
# OPENMPI_BUILDS=${OPENMPI_BUILDS:-""}
# OPENMPI_NODL_OTHER_ARGS=${OPENMPI_NODL_OTHER_ARGS:-""}
# OPENMPI_STATIC_OTHER_ARGS=${OPENMPI_STATIC_OTHER_ARGS:-""}

# OPENSPLICE_BLDRVERSION=${OPENSPLICE_BLDRVERSION:-""}
# OPENSPLICE_BUILDS=${OPENSPLICE_BUILDS:-""}
# OPENSPLICE_SER_OTHER_ARGS=${OPENSPLICE_SER_OTHER_ARGS:-""}

# PANDAS_BLDRVERSION=${PANDAS_BLDRVERSION:-""}
# PANDAS_BUILDS=${PANDAS_BUILDS:-""}
# PANDAS_PYCSH_OTHER_ARGS=${PANDAS_PYCSH_OTHER_ARGS:-""}

# PARAMIKO_BLDRVERSION=${PARAMIKO_BLDRVERSION:-""}
# PARAMIKO_BUILDS=${PARAMIKO_BUILDS:-""}
# PARAMIKO_PYCSH_OTHER_ARGS=${PARAMIKO_PYCSH_OTHER_ARGS:-""}

# PARMETIS_BLDRVERSION=${PARMETIS_BLDRVERSION:-""}
# PARMETIS_BUILDS=${PARMETIS_BUILDS:-""}
# PARMETIS_PAR_OTHER_ARGS=${PARMETIS_PAR_OTHER_ARGS:-""}
# PARMETIS_PARSH_OTHER_ARGS=${PARMETIS_PARSH_OTHER_ARGS:-""}

# PCRE_BLDRVERSION=${PCRE_BLDRVERSION:-""}
# PCRE_BUILDS=${PCRE_BUILDS:-""}
# PCRE_SER_OTHER_ARGS=${PCRE_SER_OTHER_ARGS:-""}

# PETSC_BLDRVERSION=${PETSC_BLDRVERSION:-""}
# PETSC_BUILDS=${PETSC_BUILDS:-""}
PETSC_PAR_OTHER_ARGS=${PETSC_PAR_OTHER_ARGS:-"--with-blas-lapack-lib='-L/opt/acml/default/gfortran64/lib -lacml -lacml_mv' --with-mpiexec=/usr/common/acts/PETSc/3.0.0/bin/mpiexec.aprun"}
# PETSC_PARCPLX_OTHER_ARGS=${PETSC_PARCPLX_OTHER_ARGS:-""}
# PETSC_PARCPLXDBG_OTHER_ARGS=${PETSC_PARCPLXDBG_OTHER_ARGS:-""}
# PETSC_PARDBG_OTHER_ARGS=${PETSC_PARDBG_OTHER_ARGS:-""}
PETSC_SER_OTHER_ARGS=${PETSC_SER_OTHER_ARGS:-"--with-blas-lapack-lib='-L/opt/acml/default/gfortran64/lib -lacml -lacml_mv'"}
# PETSC_SERCPLX_OTHER_ARGS=${PETSC_SERCPLX_OTHER_ARGS:-""}

# PETSC33_BLDRVERSION=${PETSC33_BLDRVERSION:-""}
# PETSC33_BUILDS=${PETSC33_BUILDS:-""}
# PETSC33_PAR_OTHER_ARGS=${PETSC33_PAR_OTHER_ARGS:-""}
# PETSC33_PARCPLX_OTHER_ARGS=${PETSC33_PARCPLX_OTHER_ARGS:-""}
# PETSC33_SER_OTHER_ARGS=${PETSC33_SER_OTHER_ARGS:-""}
# PETSC33_SERCPLX_OTHER_ARGS=${PETSC33_SERCPLX_OTHER_ARGS:-""}

# PETSC4PY_BLDRVERSION=${PETSC4PY_BLDRVERSION:-""}
# PETSC4PY_BUILDS=${PETSC4PY_BUILDS:-""}
# PETSC4PY_PYCSH_OTHER_ARGS=${PETSC4PY_PYCSH_OTHER_ARGS:-""}

# PETSCREPO_BLDRVERSION=${PETSCREPO_BLDRVERSION:-""}
# PETSCREPO_BUILDS=${PETSCREPO_BUILDS:-""}
# PETSCREPO_PAR_OTHER_ARGS=${PETSCREPO_PAR_OTHER_ARGS:-""}
# PETSCREPO_PARCPLX_OTHER_ARGS=${PETSCREPO_PARCPLX_OTHER_ARGS:-""}
# PETSCREPO_SER_OTHER_ARGS=${PETSCREPO_SER_OTHER_ARGS:-""}
# PETSCREPO_SERCPLX_OTHER_ARGS=${PETSCREPO_SERCPLX_OTHER_ARGS:-""}

# PLASMA_STATE_BLDRVERSION=${PLASMA_STATE_BLDRVERSION:-""}
# PLASMA_STATE_BUILDS=${PLASMA_STATE_BUILDS:-""}
# PLASMA_STATE_BEN_OTHER_ARGS=${PLASMA_STATE_BEN_OTHER_ARGS:-""}
# PLASMA_STATE_SER_OTHER_ARGS=${PLASMA_STATE_SER_OTHER_ARGS:-""}

# PSPLINE_BLDRVERSION=${PSPLINE_BLDRVERSION:-""}
# PSPLINE_BUILDS=${PSPLINE_BUILDS:-""}
# PSPLINE_PAR_OTHER_ARGS=${PSPLINE_PAR_OTHER_ARGS:-""}
# PSPLINE_SER_OTHER_ARGS=${PSPLINE_SER_OTHER_ARGS:-""}

# PTK_BLDRVERSION=${PTK_BLDRVERSION:-""}
# PTK_BUILDS=${PTK_BUILDS:-""}
# PTK_SER_OTHER_ARGS=${PTK_SER_OTHER_ARGS:-""}

# PYDAP_BLDRVERSION=${PYDAP_BLDRVERSION:-""}
# PYDAP_BUILDS=${PYDAP_BUILDS:-""}
# PYDAP_PYCSH_OTHER_ARGS=${PYDAP_PYCSH_OTHER_ARGS:-""}

# PYDDS_BLDRVERSION=${PYDDS_BLDRVERSION:-""}
# PYDDS_BUILDS=${PYDDS_BUILDS:-""}
# PYDDS_SER_OTHER_ARGS=${PYDDS_SER_OTHER_ARGS:-""}

# PYGMENTS_BLDRVERSION=${PYGMENTS_BLDRVERSION:-""}
# PYGMENTS_BUILDS=${PYGMENTS_BUILDS:-""}
# PYGMENTS_PYCSH_OTHER_ARGS=${PYGMENTS_PYCSH_OTHER_ARGS:-""}

# PYNETCDF4_BLDRVERSION=${PYNETCDF4_BLDRVERSION:-""}
# PYNETCDF4_BUILDS=${PYNETCDF4_BUILDS:-""}
# PYNETCDF4_PYCSH_OTHER_ARGS=${PYNETCDF4_PYCSH_OTHER_ARGS:-""}

# PYPARSING_BLDRVERSION=${PYPARSING_BLDRVERSION:-""}
# PYPARSING_BUILDS=${PYPARSING_BUILDS:-""}
# PYPARSING_PYCSH_OTHER_ARGS=${PYPARSING_PYCSH_OTHER_ARGS:-""}

# PYQT_BLDRVERSION=${PYQT_BLDRVERSION:-""}
# PYQT_BUILDS=${PYQT_BUILDS:-""}
# PYQT_PYCSH_OTHER_ARGS=${PYQT_PYCSH_OTHER_ARGS:-""}

# PYREADLINE_BLDRVERSION=${PYREADLINE_BLDRVERSION:-""}
# PYREADLINE_BUILDS=${PYREADLINE_BUILDS:-""}
# PYREADLINE_PYCSH_OTHER_ARGS=${PYREADLINE_PYCSH_OTHER_ARGS:-""}

# PYSYNTHDIAG_BLDRVERSION=${PYSYNTHDIAG_BLDRVERSION:-""}
# PYSYNTHDIAG_BUILDS=${PYSYNTHDIAG_BUILDS:-""}
# PYSYNTHDIAG_PYCSH_OTHER_ARGS=${PYSYNTHDIAG_PYCSH_OTHER_ARGS:-""}

# PYTHON_BLDRVERSION=${PYTHON_BLDRVERSION:-""}
# PYTHON_BUILDS=${PYTHON_BUILDS:-""}
PYTHON_PYCSH_OTHER_ARGS=${PYTHON_PYCSH_OTHER_ARGS:-"--enable-static"}

# PYTHONOCC_BLDRVERSION=${PYTHONOCC_BLDRVERSION:-""}
# PYTHONOCC_BUILDS=${PYTHONOCC_BUILDS:-""}
# PYTHONOCC_PYCSH_OTHER_ARGS=${PYTHONOCC_PYCSH_OTHER_ARGS:-""}

# PYZMQ_BLDRVERSION=${PYZMQ_BLDRVERSION:-""}
# PYZMQ_BUILDS=${PYZMQ_BUILDS:-""}
# PYZMQ_PYCSH_OTHER_ARGS=${PYZMQ_PYCSH_OTHER_ARGS:-""}

# QD_BLDRVERSION=${QD_BLDRVERSION:-""}
# QD_BUILDS=${QD_BUILDS:-""}
# QD_SER_OTHER_ARGS=${QD_SER_OTHER_ARGS:-""}

# QDSTESTS_BLDRVERSION=${QDSTESTS_BLDRVERSION:-""}
# QDSTESTS_BUILDS=${QDSTESTS_BUILDS:-""}
# QDSTESTS_SER_OTHER_ARGS=${QDSTESTS_SER_OTHER_ARGS:-""}

# QHULL_BLDRVERSION=${QHULL_BLDRVERSION:-""}
# QHULL_BUILDS=${QHULL_BUILDS:-""}
# QHULL_SER_OTHER_ARGS=${QHULL_SER_OTHER_ARGS:-""}

# QSCINTILLA_BLDRVERSION=${QSCINTILLA_BLDRVERSION:-""}
# QSCINTILLA_BUILDS=${QSCINTILLA_BUILDS:-""}
# QSCINTILLA_SER_OTHER_ARGS=${QSCINTILLA_SER_OTHER_ARGS:-""}

# QT_BLDRVERSION=${QT_BLDRVERSION:-""}
# QT_BUILDS=${QT_BUILDS:-""}
# QT_SER_OTHER_ARGS=${QT_SER_OTHER_ARGS:-""}

# QT3D_BLDRVERSION=${QT3D_BLDRVERSION:-""}
# QT3D_BUILDS=${QT3D_BUILDS:-""}
# QT3D_SER_OTHER_ARGS=${QT3D_SER_OTHER_ARGS:-""}

# QUIDS_BLDRVERSION=${QUIDS_BLDRVERSION:-""}
# QUIDS_BUILDS=${QUIDS_BUILDS:-""}
# QUIDS_SER_OTHER_ARGS=${QUIDS_SER_OTHER_ARGS:-""}

# R_BLDRVERSION=${R_BLDRVERSION:-""}
# R_BUILDS=${R_BUILDS:-""}
# R_SER_OTHER_ARGS=${R_SER_OTHER_ARGS:-""}

# READLINE_BLDRVERSION=${READLINE_BLDRVERSION:-""}
# READLINE_BUILDS=${READLINE_BUILDS:-""}
# READLINE_SER_OTHER_ARGS=${READLINE_SER_OTHER_ARGS:-""}

# RPY2_BLDRVERSION=${RPY2_BLDRVERSION:-""}
# RPY2_BUILDS=${RPY2_BUILDS:-""}
# RPY2_PYCSH_OTHER_ARGS=${RPY2_PYCSH_OTHER_ARGS:-""}

# RST2PDF_BLDRVERSION=${RST2PDF_BLDRVERSION:-""}
# RST2PDF_BUILDS=${RST2PDF_BUILDS:-""}
# RST2PDF_PYCSH_OTHER_ARGS=${RST2PDF_PYCSH_OTHER_ARGS:-""}

# SCIPY_BLDRVERSION=${SCIPY_BLDRVERSION:-""}
# SCIPY_BUILDS=${SCIPY_BUILDS:-""}
# SCIPY_PYCSH_OTHER_ARGS=${SCIPY_PYCSH_OTHER_ARGS:-""}

# SCITOOLS_BLDRVERSION=${SCITOOLS_BLDRVERSION:-""}
# SCITOOLS_BUILDS=${SCITOOLS_BUILDS:-""}
# SCITOOLS_PYCSH_OTHER_ARGS=${SCITOOLS_PYCSH_OTHER_ARGS:-""}

# SETUPTOOLS_BLDRVERSION=${SETUPTOOLS_BLDRVERSION:-""}
# SETUPTOOLS_BUILDS=${SETUPTOOLS_BUILDS:-""}
# SETUPTOOLS_PYCSH_OTHER_ARGS=${SETUPTOOLS_PYCSH_OTHER_ARGS:-""}

# SHIBOKEN_BLDRVERSION=${SHIBOKEN_BLDRVERSION:-""}
# SHIBOKEN_BUILDS=${SHIBOKEN_BUILDS:-""}
# SHIBOKEN_SER_OTHER_ARGS=${SHIBOKEN_SER_OTHER_ARGS:-""}

# SHTOOL_BLDRVERSION=${SHTOOL_BLDRVERSION:-""}
# SHTOOL_BUILDS=${SHTOOL_BUILDS:-""}
# SHTOOL_SER_OTHER_ARGS=${SHTOOL_SER_OTHER_ARGS:-""}

# SIMD_BLDRVERSION=${SIMD_BLDRVERSION:-""}
# SIMD_BUILDS=${SIMD_BUILDS:-""}
# SIMD_SER_OTHER_ARGS=${SIMD_SER_OTHER_ARGS:-""}

# SIMPLEJSON_BLDRVERSION=${SIMPLEJSON_BLDRVERSION:-""}
# SIMPLEJSON_BUILDS=${SIMPLEJSON_BUILDS:-""}
# SIMPLEJSON_PYCSH_OTHER_ARGS=${SIMPLEJSON_PYCSH_OTHER_ARGS:-""}

# SIMYAN_BLDRVERSION=${SIMYAN_BLDRVERSION:-""}
# SIMYAN_BUILDS=${SIMYAN_BUILDS:-""}
# SIMYAN_PYCSH_OTHER_ARGS=${SIMYAN_PYCSH_OTHER_ARGS:-""}

# SIP_BLDRVERSION=${SIP_BLDRVERSION:-""}
# SIP_BUILDS=${SIP_BUILDS:-""}
# SIP_PYCSH_OTHER_ARGS=${SIP_PYCSH_OTHER_ARGS:-""}

# SLEPC_BLDRVERSION=${SLEPC_BLDRVERSION:-""}
# SLEPC_BUILDS=${SLEPC_BUILDS:-""}
# SLEPC_PAR_OTHER_ARGS=${SLEPC_PAR_OTHER_ARGS:-""}
# SLEPC_PARCPLX_OTHER_ARGS=${SLEPC_PARCPLX_OTHER_ARGS:-""}
# SLEPC_PARCPLXDBG_OTHER_ARGS=${SLEPC_PARCPLXDBG_OTHER_ARGS:-""}
# SLEPC_PARDBG_OTHER_ARGS=${SLEPC_PARDBG_OTHER_ARGS:-""}
# SLEPC_SER_OTHER_ARGS=${SLEPC_SER_OTHER_ARGS:-""}
# SLEPC_SERCPLX_OTHER_ARGS=${SLEPC_SERCPLX_OTHER_ARGS:-""}

# SOQT_BLDRVERSION=${SOQT_BLDRVERSION:-""}
# SOQT_BUILDS=${SOQT_BUILDS:-""}
# SOQT_PYCSH_OTHER_ARGS=${SOQT_PYCSH_OTHER_ARGS:-""}

# SPARSKIT_BLDRVERSION=${SPARSKIT_BLDRVERSION:-""}
# SPARSKIT_BUILDS=${SPARSKIT_BUILDS:-""}
# SPARSKIT_SER_OTHER_ARGS=${SPARSKIT_SER_OTHER_ARGS:-""}

# SPHINX_BLDRVERSION=${SPHINX_BLDRVERSION:-""}
# SPHINX_BUILDS=${SPHINX_BUILDS:-""}
# SPHINX_PYCSH_OTHER_ARGS=${SPHINX_PYCSH_OTHER_ARGS:-""}

# SPHINX_NUMFIG_BLDRVERSION=${SPHINX_NUMFIG_BLDRVERSION:-""}
# SPHINX_NUMFIG_BUILDS=${SPHINX_NUMFIG_BUILDS:-""}
# SPHINX_NUMFIG_PYCSH_OTHER_ARGS=${SPHINX_NUMFIG_PYCSH_OTHER_ARGS:-""}

# SQLITE_BLDRVERSION=${SQLITE_BLDRVERSION:-""}
# SQLITE_BUILDS=${SQLITE_BUILDS:-""}
# SQLITE_SER_OTHER_ARGS=${SQLITE_SER_OTHER_ARGS:-""}

# SQUISH_BLDRVERSION=${SQUISH_BLDRVERSION:-""}
# SQUISH_BUILDS=${SQUISH_BUILDS:-""}
# SQUISH_SER_OTHER_ARGS=${SQUISH_SER_OTHER_ARGS:-""}

# SUBVERSION_BLDRVERSION=${SUBVERSION_BLDRVERSION:-""}
# SUBVERSION_BUILDS=${SUBVERSION_BUILDS:-""}
# SUBVERSION_SER_OTHER_ARGS=${SUBVERSION_SER_OTHER_ARGS:-""}

# SUNDIALS_BLDRVERSION=${SUNDIALS_BLDRVERSION:-""}
# SUNDIALS_BUILDS=${SUNDIALS_BUILDS:-""}
# SUNDIALS_BEN_OTHER_ARGS=${SUNDIALS_BEN_OTHER_ARGS:-""}
# SUNDIALS_PAR_OTHER_ARGS=${SUNDIALS_PAR_OTHER_ARGS:-""}
# SUNDIALS_SER_OTHER_ARGS=${SUNDIALS_SER_OTHER_ARGS:-""}

# SUPERLU_BLDRVERSION=${SUPERLU_BLDRVERSION:-""}
# SUPERLU_BUILDS=${SUPERLU_BUILDS:-""}
# SUPERLU_SER_OTHER_ARGS=${SUPERLU_SER_OTHER_ARGS:-""}
# SUPERLU_SERSH_OTHER_ARGS=${SUPERLU_SERSH_OTHER_ARGS:-""}

# SUPERLU_DIST_BLDRVERSION=${SUPERLU_DIST_BLDRVERSION:-""}
# SUPERLU_DIST_BUILDS=${SUPERLU_DIST_BUILDS:-""}
# SUPERLU_DIST_PAR_OTHER_ARGS=${SUPERLU_DIST_PAR_OTHER_ARGS:-""}
# SUPERLU_DIST_PARCOMM_OTHER_ARGS=${SUPERLU_DIST_PARCOMM_OTHER_ARGS:-""}
# SUPERLU_DIST_PARCOMMSH_OTHER_ARGS=${SUPERLU_DIST_PARCOMMSH_OTHER_ARGS:-""}
# SUPERLU_DIST_PARSH_OTHER_ARGS=${SUPERLU_DIST_PARSH_OTHER_ARGS:-""}

# SWIG_BLDRVERSION=${SWIG_BLDRVERSION:-""}
# SWIG_BUILDS=${SWIG_BUILDS:-""}
# SWIG_SER_OTHER_ARGS=${SWIG_SER_OTHER_ARGS:-""}

# SWIMGUI_BLDRVERSION=${SWIMGUI_BLDRVERSION:-""}
# SWIMGUI_BUILDS=${SWIMGUI_BUILDS:-""}
# SWIMGUI_SER_OTHER_ARGS=${SWIMGUI_SER_OTHER_ARGS:-""}

# SYNERGIA2_BLDRVERSION=${SYNERGIA2_BLDRVERSION:-""}
# SYNERGIA2_BUILDS=${SYNERGIA2_BUILDS:-""}
# SYNERGIA2_SER_OTHER_ARGS=${SYNERGIA2_SER_OTHER_ARGS:-""}

# TABLES_BLDRVERSION=${TABLES_BLDRVERSION:-""}
# TABLES_BUILDS=${TABLES_BUILDS:-""}
# TABLES_PYCSH_OTHER_ARGS=${TABLES_PYCSH_OTHER_ARGS:-""}

# TEASPINK_BLDRVERSION=${TEASPINK_BLDRVERSION:-""}
# TEASPINK_BUILDS=${TEASPINK_BUILDS:-""}
# TEASPINK_SER_OTHER_ARGS=${TEASPINK_SER_OTHER_ARGS:-""}

# THRUST_BLDRVERSION=${THRUST_BLDRVERSION:-""}
# THRUST_BUILDS=${THRUST_BUILDS:-""}
# THRUST_SER_OTHER_ARGS=${THRUST_SER_OTHER_ARGS:-""}

# TINKERER_BLDRVERSION=${TINKERER_BLDRVERSION:-""}
# TINKERER_BUILDS=${TINKERER_BUILDS:-""}
# TINKERER_PYCSH_OTHER_ARGS=${TINKERER_PYCSH_OTHER_ARGS:-""}

# TORIC_BLDRVERSION=${TORIC_BLDRVERSION:-""}
# TORIC_BUILDS=${TORIC_BUILDS:-""}
# TORIC_PAR_OTHER_ARGS=${TORIC_PAR_OTHER_ARGS:-""}
# TORIC_SER_OTHER_ARGS=${TORIC_SER_OTHER_ARGS:-""}

# TORNADO_BLDRVERSION=${TORNADO_BLDRVERSION:-""}
# TORNADO_BUILDS=${TORNADO_BUILDS:-""}
# TORNADO_PYCSH_OTHER_ARGS=${TORNADO_PYCSH_OTHER_ARGS:-""}

TRILINOS_BLDRVERSION=${TRILINOS_BLDRVERSION:-"10.8.3"}
TRILINOS_BUILDS=${TRILINOS_BUILDS:-"ser,sersh,par"}
# TRILINOS_PARBARE_OTHER_ARGS=${TRILINOS_PARBARE_OTHER_ARGS:-""}
# TRILINOS_PARBARESH_OTHER_ARGS=${TRILINOS_PARBARESH_OTHER_ARGS:-""}
# TRILINOS_PARCOMM_OTHER_ARGS=${TRILINOS_PARCOMM_OTHER_ARGS:-""}
# TRILINOS_PARCOMMSH_OTHER_ARGS=${TRILINOS_PARCOMMSH_OTHER_ARGS:-""}
# TRILINOS_PARFULL_OTHER_ARGS=${TRILINOS_PARFULL_OTHER_ARGS:-""}
# TRILINOS_PARFULLSH_OTHER_ARGS=${TRILINOS_PARFULLSH_OTHER_ARGS:-""}
# TRILINOS_SERBARE_OTHER_ARGS=${TRILINOS_SERBARE_OTHER_ARGS:-""}
# TRILINOS_SERBARESH_OTHER_ARGS=${TRILINOS_SERBARESH_OTHER_ARGS:-""}
# TRILINOS_SERCOMM_OTHER_ARGS=${TRILINOS_SERCOMM_OTHER_ARGS:-""}
# TRILINOS_SERCOMMSH_OTHER_ARGS=${TRILINOS_SERCOMMSH_OTHER_ARGS:-""}
# TRILINOS_SERFULL_OTHER_ARGS=${TRILINOS_SERFULL_OTHER_ARGS:-""}
# TRILINOS_SERFULLSH_OTHER_ARGS=${TRILINOS_SERFULLSH_OTHER_ARGS:-""}

# TSTESTS_BLDRVERSION=${TSTESTS_BLDRVERSION:-""}
# TSTESTS_BUILDS=${TSTESTS_BUILDS:-""}
# TSTESTS_ALL_OTHER_ARGS=${TSTESTS_ALL_OTHER_ARGS:-""}

# TUTORIAL_PYTHON_BLDRVERSION=${TUTORIAL_PYTHON_BLDRVERSION:-""}
# TUTORIAL_PYTHON_BUILDS=${TUTORIAL_PYTHON_BUILDS:-""}
# TUTORIAL_PYTHON_PYCSH_OTHER_ARGS=${TUTORIAL_PYTHON_PYCSH_OTHER_ARGS:-""}

# TVMET_BLDRVERSION=${TVMET_BLDRVERSION:-""}
# TVMET_BUILDS=${TVMET_BUILDS:-""}
# TVMET_SER_OTHER_ARGS=${TVMET_SER_OTHER_ARGS:-""}

# TXBASE_BLDRVERSION=${TXBASE_BLDRVERSION:-""}
# TXBASE_BUILDS=${TXBASE_BUILDS:-""}
# TXBASE_PYCSH_OTHER_ARGS=${TXBASE_PYCSH_OTHER_ARGS:-""}
# TXBASE_PAR_OTHER_ARGS=${TXBASE_PAR_OTHER_ARGS:-""}
# TXBASE_PARSH_OTHER_ARGS=${TXBASE_PARSH_OTHER_ARGS:-""}
TXBASE_SER_OTHER_ARGS=${TXBASE_SER_OTHER_ARGS:-"--disable-shared --enable-static cross_compling=yes"}
# TXBASE_SERSH_OTHER_ARGS=${TXBASE_SERSH_OTHER_ARGS:-""}

# TXBTESTS_BLDRVERSION=${TXBTESTS_BLDRVERSION:-""}
TXBTESTS_BUILDS=${TXBTESTS_BUILDS:-"NONE"}
# TXBTESTS_ALL_OTHER_ARGS=${TXBTESTS_ALL_OTHER_ARGS:-""}

# TXGEOM_BLDRVERSION=${TXGEOM_BLDRVERSION:-""}
# TXGEOM_BUILDS=${TXGEOM_BUILDS:-""}
# TXGEOM_PAR_OTHER_ARGS=${TXGEOM_PAR_OTHER_ARGS:-""}
# TXGEOM_SER_OTHER_ARGS=${TXGEOM_SER_OTHER_ARGS:-""}

# TXPHYSICS_BLDRVERSION=${TXPHYSICS_BLDRVERSION:-""}
# TXPHYSICS_BUILDS=${TXPHYSICS_BUILDS:-""}
# TXPHYSICS_BEN_OTHER_ARGS=${TXPHYSICS_BEN_OTHER_ARGS:-""}
TXPHYSICS_SER_OTHER_ARGS=${TXPHYSICS_SER_OTHER_ARGS:-"--disable-shared --enable-static cross_compiling=yes"}
# TXPHYSICS_SERSH_OTHER_ARGS=${TXPHYSICS_SERSH_OTHER_ARGS:-""}

# TXSSH_BLDRVERSION=${TXSSH_BLDRVERSION:-""}
# TXSSH_BUILDS=${TXSSH_BUILDS:-""}
# TXSSH_PYCSH_OTHER_ARGS=${TXSSH_PYCSH_OTHER_ARGS:-""}
# TXSSH_SER_OTHER_ARGS=${TXSSH_SER_OTHER_ARGS:-""}
# TXSSH_SERSH_OTHER_ARGS=${TXSSH_SERSH_OTHER_ARGS:-""}

# UEDGE_BLDRVERSION=${UEDGE_BLDRVERSION:-""}
UEDGE_BUILDS=${UEDGE_BUILDS:-"ser,par"}
# UEDGE_NOPETSC_OTHER_ARGS=${UEDGE_NOPETSC_OTHER_ARGS:-""}
UEDGE_PAR_OTHER_ARGS=${UEDGE_PAR_OTHER_ARGS:-"--disable-shared --enable-static"}
# UEDGE_PARTAU_OTHER_ARGS=${UEDGE_PARTAU_OTHER_ARGS:-""}
UEDGE_SER_OTHER_ARGS=${UEDGE_SER_OTHER_ARGS:-"--disable-shared --enable-static"}

# UETESTS_BLDRVERSION=${UETESTS_BLDRVERSION:-""}
# UETESTS_BUILDS=${UETESTS_BUILDS:-""}
# UETESTS_ALL_OTHER_ARGS=${UETESTS_ALL_OTHER_ARGS:-""}

# VALGRIND_BLDRVERSION=${VALGRIND_BLDRVERSION:-""}
# VALGRIND_BUILDS=${VALGRIND_BUILDS:-""}
# VALGRIND_SER_OTHER_ARGS=${VALGRIND_SER_OTHER_ARGS:-""}

# VISIT_BLDRVERSION=${VISIT_BLDRVERSION:-""}
# VISIT_BUILDS=${VISIT_BUILDS:-""}
# VISIT_PAR_OTHER_ARGS=${VISIT_PAR_OTHER_ARGS:-""}
# VISIT_SER_OTHER_ARGS=${VISIT_SER_OTHER_ARGS:-""}

# VISIT_VTK_BLDRVERSION=${VISIT_VTK_BLDRVERSION:-""}
# VISIT_VTK_BUILDS=${VISIT_VTK_BUILDS:-""}
# VISIT_VTK_SER_OTHER_ARGS=${VISIT_VTK_SER_OTHER_ARGS:-""}

# VTK_BLDRVERSION=${VTK_BLDRVERSION:-""}
# VTK_BUILDS=${VTK_BUILDS:-""}
# VTK_SER_OTHER_ARGS=${VTK_SER_OTHER_ARGS:-""}

# WALLPSI_BLDRVERSION=${WALLPSI_BLDRVERSION:-""}
# WALLPSI_BUILDS=${WALLPSI_BUILDS:-""}
# WALLPSI_BEN_OTHER_ARGS=${WALLPSI_BEN_OTHER_ARGS:-""}
# WALLPSI_SER_OTHER_ARGS=${WALLPSI_SER_OTHER_ARGS:-""}

# WALLPSITESTS_BLDRVERSION=${WALLPSITESTS_BLDRVERSION:-""}
# WALLPSITESTS_BUILDS=${WALLPSITESTS_BUILDS:-""}
# WALLPSITESTS_ALL_OTHER_ARGS=${WALLPSITESTS_ALL_OTHER_ARGS:-""}

# XDMF_BLDRVERSION=${XDMF_BLDRVERSION:-""}
# XDMF_BUILDS=${XDMF_BUILDS:-""}
# XDMF_SER_OTHER_ARGS=${XDMF_SER_OTHER_ARGS:-""}

# XERCESC_BLDRVERSION=${XERCESC_BLDRVERSION:-""}
# XERCESC_BUILDS=${XERCESC_BUILDS:-""}
# XERCESC_SER_OTHER_ARGS=${XERCESC_SER_OTHER_ARGS:-""}

# XZ_BLDRVERSION=${XZ_BLDRVERSION:-""}
# XZ_BUILDS=${XZ_BUILDS:-""}
# XZ___OTHER_ARGS=${XZ___OTHER_ARGS:-""}

# ZEROMQ_BLDRVERSION=${ZEROMQ_BLDRVERSION:-""}
# ZEROMQ_BUILDS=${ZEROMQ_BUILDS:-""}
# ZEROMQ_PYCSH_OTHER_ARGS=${ZEROMQ_PYCSH_OTHER_ARGS:-""}

# ZLIB_BLDRVERSION=${ZLIB_BLDRVERSION:-""}
# ZLIB_BUILDS=${ZLIB_BUILDS:-""}
# ZLIB_SER_OTHER_ARGS=${ZLIB_SER_OTHER_ARGS:-""}
# ZLIB_SERSH_OTHER_ARGS=${ZLIB_SERSH_OTHER_ARGS:-""}