diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000000000000000000000000000000000000..844dfaa9cbaa97678e40b96b90b3f9727aef061d
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,15 @@
+#######################################################################################
+#                                                                                     #
+* Mark A. Abramson (Mark.A.Abramson@boeing.com), The Boeing Company.
+
+* Charles Audet (www.gerad.ca/Charles.Audet), GERAD and Departement de
+mathematiques et de genie industriel, ecole Polytechnique de Montreal.
+
+* J.E. Dennis Jr. (www.caam.rice.edu/~dennis), Computational and Applied
+Mathematics Department, Rice University.
+
+* Sebastien Le Digabel (www.gerad.ca/Sebastien.Le.Digabel), GERAD and Departement
+de mathematiques et de genie industriel, ecole Polytechnique de Montreal.
+
+* Christophe Tribes, GERAD, Departement
+de mathematiques et de genie industriel, Department of mechanical engineering, ecole Polytechnique de Montreal.
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000000000000000000000000000000000000..72547d4f2a0f545200ccab6a32259fce7d035b06
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,38 @@
+#######################################################################################
+#                                                                                     #
+#            NOMAD - Nonsmooth Optimization by Mesh Adaptive Direct search            #
+#            V 3.6.1                                                                  #
+#            2013/05                                                                  #
+#                                                                                     #
+#	Copyright (C) 2001-2013                                                       #
+#                                                                                     #
+#                           Mark Abramson	 - the Boeing Company, Seattle        #
+#                           Charles Audet	 - Ecole Polytechnique, Montreal      #
+#                           Gilles Couture	 - Ecole Polytechnique, Montreal      #
+#                           John Dennis		 - Rice University, Houston           #
+#                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      #
+#                           Christophe Tribes    - Ecole Polytechnique, Montreal      #
+#                                                                                     #
+#-------------------------------------------------------------------------------------#
+#                                                                                     # 
+#	Contact information:                                                          #
+#    Ecole Polytechnique de Montreal - GERAD                                          #
+#    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  #
+#    e-mail: nomad@gerad.ca                                                           #
+#    phone : 1-514-340-6053 #6928                                                     #
+#    fax   : 1-514-340-5665                                                           #
+#                                                                                     #
+# This program is free software: you can redistribute it and/or modify it under the   #
+# terms of the GNU Lesser General Public License as published by the Free Software    #
+# Foundation, either version 3 of the License, or (at your option) any later          #
+# version.                                                                            #
+#                                                                                     #
+# This program 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 Lesser General Public License for more details.    #
+#                                                                                     #
+# You should have received a copy of the GNU Lesser General Public License along      #
+# with this program. If not, see <http://www.gnu.org/licenses/>.                      #
+#                                                                                     #
+# You can find information on the NOMAD software at www.gerad.ca/nomad                #
+#######################################################################################
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000000000000000000000000000000000000..6af6b2645499284e06c57227c21d5632d52d5738
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,14 @@
+2013-03: NOMAD 3.6
+	-ortho n+1
+2011-01: NOMAD 3.5
+	-Quadratic Models
+2010-05: NOMAD 3.4
+	-Parallelism
+2009-11: NOMAD 3.3
+	-Categorical variables
+2009-07: NOMAD 3.2
+	-VNS; Installers; Help features
+2009-02: NOMAD 3.1
+	-Bi-objective; types of variables
+2008-11: NOMAD 3.0
+	-New architecture
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000000000000000000000000000000000000..007e9396d0a2492cd2d6e17d42f359655dfe0b5e
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,370 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
+Inc.
+
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+   Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+   The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.
+
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package, generally using the just-built uninstalled binaries.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
+
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you can use GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+   By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved.  Use GNU `make'
+instead.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+   On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'.  It is recommended to use the following options:
+
+     ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS
+     KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf limitation.  Until the limitation is lifted, you can use
+this workaround:
+
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
+
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..d5286b3ae8ca6319d44abd2b1b97922304f6701a
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,3 @@
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = src
+EXTRA_DIST = autogen.sh
\ No newline at end of file
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000000000000000000000000000000000000..6ea9a078b622b42d4c94b748d0d8c8b738b3fe12
--- /dev/null
+++ b/NEWS
@@ -0,0 +1 @@
+2014: Use GNU autotools to build NOMAD.
diff --git a/README b/README
new file mode 100644
index 0000000000000000000000000000000000000000..96df2cf5b1780d15a5667ef47fc3758e112241ca
--- /dev/null
+++ b/README
@@ -0,0 +1,115 @@
+#######################################################################################
+#                                                                                     #
+#                                  README                                             #
+#                                                                                     #
+#######################################################################################
+#                                                                                     #
+#            NOMAD - Nonsmooth Optimization by Mesh Adaptive Direct search            #
+#            V 3.6.1                                                                  #
+#            2013/05                                                                  #
+#                                                                                     #
+#	Copyright (C) 2001-2013                                                       #
+#                                                                                     #
+#                           Mark Abramson	 - the Boeing Company, Seattle        #
+#                           Charles Audet	 - Ecole Polytechnique, Montreal      #
+#                           Gilles Couture	 - Ecole Polytechnique, Montreal      #
+#                           John Dennis		 - Rice University, Houston           #
+#                           Sebastien Le Digabel - Ecole Polytechnique, Montreal      #
+#                           Christophe Tribes    - Ecole Polytechnique, Montreal      #
+#                                                                                     #
+#-------------------------------------------------------------------------------------#
+#                                                                                     # 
+#	Contact information:                                                          #
+#    Ecole Polytechnique de Montreal - GERAD                                          #
+#    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada                  #
+#    e-mail: nomad@gerad.ca                                                           #
+#    phone : 1-514-340-6053 #6928                                                     #
+#    fax   : 1-514-340-5665                                                           #
+#                                                                                     #
+# This program is free software: you can redistribute it and/or modify it under the   #
+# terms of the GNU Lesser General Public License as published by the Free Software    #
+# Foundation, either version 3 of the License, or (at your option) any later          #
+# version.                                                                            #
+#                                                                                     #
+# This program 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 Lesser General Public License for more details.    #
+#                                                                                     #
+#
+# You should have received a copy of the GNU Lesser General Public License along      #
+# with this program. If not, see <http://www.gnu.org/licenses/>.                      #
+#                                                                                     #
+# You can find information on the NOMAD software at www.gerad.ca/nomad                #
+#######################################################################################
+
+
+     AUTHORS :
+
+* Mark A. Abramson (Mark.A.Abramson@boeing.com), The Boeing Company.
+
+* Charles Audet (www.gerad.ca/Charles.Audet), GERAD and Departement de
+mathematiques et de genie industriel, ecole Polytechnique de Montreal.
+
+* J.E. Dennis Jr. (www.caam.rice.edu/~dennis), Computational and Applied
+Mathematics Department, Rice University.
+
+* Sebastien Le Digabel (www.gerad.ca/Sebastien.Le.Digabel), GERAD and Departement
+de mathematiques et de genie industriel, ecole Polytechnique de Montreal.
+
+* Christophe Tribes, GERAD, Departement
+de mathematiques et de genie industriel, Department of mechanical engineering, ecole Polytechnique de Montreal.
+
+     DESCRIPTION :
+
+NOMAD is a C++ implementation of the Mesh Adaptive Direct Search (MADS) algorithm,
+designed for constrained optimization of black-box functions.
+
+The project started in 2001, and was funded in part by AFOSR, CRIAQ, FQRNT, LANL,
+NSERC, the Boeing Company, and ExxonMobil Upstream Research Company.
+
+
+     WEB PAGE :
+
+http://www.gerad.ca/nomad/
+
+
+     FURTHER INSTRUCTIONS :
+
+Please visit the web page for futher instruction on the following:
+
+  * Downloading, configuring, compiling, and installing NOMAD
+  * Using NOMAD and setting the parameters
+  * Reports on NOMAD
+  * How to report bugs and make enhancement requests
+  * And more...
+
+
+     BATCH OR LIBRARY MODE :
+
+NOMAD is designed to be used in two different modes : batch and library.
+The batch mode is intended for a basic ans simple usage of the MADS method,
+while the library mode allows more flexibility.
+For example, in batch mode, users must define their separate black-box program,
+that will be called with system calls by NOMAD.
+In library mode, users can define their black-box function as C++ code
+that will be directly called by NOMAD, without system calls and temporary files.
+
+
+     TYPES OF USE :
+
+There are two ways of using NOMAD, one can directly use an executable or compile
+the source code.
+
+NOMAD batch mode executable is located in directory $NOMAD_HOME/bin or %NOMAD_HOME%\bin.
+In order to avoid compiling the code, you can simply use this executable.
+
+
+     HOW TO EXECUTE NOMAD :
+
+For informations about the execution of NOMAD, please read the user guide :
+
+  $NOMAD_HOME/doc/user_guide.pdf or %NOMAD_HOME%\doc\user_guide.pdf
+
+or
+
+  http://www.gerad.ca/NOMAD/Downloads/user_guide.pdf
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000000000000000000000000000000000000..fd0be89cef47d1048a71342401986e5cb4fd2190
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+autoreconf --force --install -I config -I m4
diff --git a/m4/lx_find_mpi.m4 b/m4/lx_find_mpi.m4
new file mode 100644
index 0000000000000000000000000000000000000000..fbca314b4e9b2a775db99a4de08829fee32476a9
--- /dev/null
+++ b/m4/lx_find_mpi.m4
@@ -0,0 +1,203 @@
+#################################################################################################
+# Copyright (c) 2010, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory
+# Written by Todd Gamblin, tgamblin@llnl.gov.
+# LLNL-CODE-417602
+# All rights reserved.
+#
+# This file is part of Libra. For details, see http://github.com/tgamblin/libra.
+# Please also read the LICENSE file for further information.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+#  * Redistributions of source code must retain the above copyright notice, this list of
+#    conditions and the disclaimer below.
+#  * Redistributions in binary form must reproduce the above copyright notice, this list of
+#    conditions and the disclaimer (as noted below) in the documentation and/or other materials
+#    provided with the distribution.
+#  * Neither the name of the LLNS/LLNL nor the names of its contributors may be used to endorse
+#    or promote products derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+# LAWRENCE LIVERMORE NATIONAL SECURITY, LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#################################################################################################
+
+#
+# LX_FIND_MPI()
+#  ------------------------------------------------------------------------
+# This macro finds an MPI compiler and extracts includes and libraries from
+# it for use in automake projects.  The script exports the following variables:
+#
+# AC_DEFINE variables:
+#     HAVE_MPI         AC_DEFINE'd to 1 if we found MPI
+#
+# AC_SUBST variables:
+#     MPICC            Name of MPI compiler
+#     MPI_CFLAGS       Includes and defines for MPI C compilation
+#     MPI_CLDFLAGS     Libraries and library paths for linking MPI C programs
+#
+#     MPICXX           Name of MPI C++ compiler
+#     MPI_CXXFLAGS     Includes and defines for MPI C++ compilation
+#     MPI_CXXLDFLAGS   Libraries and library paths for linking MPI C++ programs
+#
+#     MPIF77           Name of MPI Fortran 77 compiler
+#     MPI_F77FLAGS     Includes and defines for MPI Fortran 77 compilation
+#     MPI_F77LDFLAGS   Libraries and library paths for linking MPI Fortran 77 programs
+#
+#     MPIFC            Name of MPI Fortran compiler
+#     MPI_FFLAGS       Includes and defines for MPI Fortran compilation
+#     MPI_FLDFLAGS     Libraries and library paths for linking MPI Fortran programs
+#
+# Shell variables output by this macro:
+#     have_C_mpi       'yes' if we found MPI for C, 'no' otherwise
+#     have_CXX_mpi     'yes' if we found MPI for C++, 'no' otherwise
+#     have_F77_mpi     'yes' if we found MPI for F77, 'no' otherwise
+#     have_F_mpi       'yes' if we found MPI for Fortran, 'no' otherwise
+#
+AC_DEFUN([LX_FIND_MPI],
+[
+     AC_LANG_CASE(
+     [C], [
+         AC_REQUIRE([AC_PROG_CC])
+         if [[ ! -z "$MPICC" ]]; then
+             LX_QUERY_MPI_COMPILER(MPICC, [$MPICC], C)
+         else
+             LX_QUERY_MPI_COMPILER(MPICC, [mpicc mpiicc mpixlc mpipgcc], C)
+         fi
+     ],
+     [C++], [
+         AC_REQUIRE([AC_PROG_CXX])
+         if [[ ! -z "$MPICXX" ]]; then
+             LX_QUERY_MPI_COMPILER(MPICXX, [$MPICXX], CXX)
+         else
+             LX_QUERY_MPI_COMPILER(MPICXX, [mpicxx mpiCC mpic++ mpig++ mpiicpc mpipgCC mpixlC], CXX)
+         fi
+     ],
+     [F77], [
+         AC_REQUIRE([AC_PROG_F77])
+         if [[ ! -z "$MPIF77" ]]; then
+             LX_QUERY_MPI_COMPILER(MPIF77, [$MPIF77], F77)
+         else
+             LX_QUERY_MPI_COMPILER(MPIF77, [mpif77 mpiifort mpixlf77 mpixlf77_r], F77)
+         fi
+     ],
+     [Fortran], [
+         AC_REQUIRE([AC_PROG_FC])
+         if [[ ! -z "$MPIFC" ]]; then
+             LX_QUERY_MPI_COMPILER(MPIFC, [$MPIFC], F)
+         else
+             mpi_default_fc="mpif95 mpif90 mpigfortran mpif2003"
+             mpi_intel_fc="mpiifort"
+             mpi_xl_fc="mpixlf95 mpixlf95_r mpixlf90 mpixlf90_r mpixlf2003 mpixlf2003_r"
+             mpi_pg_fc="mpipgf95 mpipgf90"
+             LX_QUERY_MPI_COMPILER(MPIFC, [$mpi_default_fc $mpi_intel_fc $mpi_xl_fc $mpi_pg_fc], F)
+         fi
+     ])
+])
+
+
+#
+# LX_QUERY_MPI_COMPILER([compiler-var-name], [compiler-names], [output-var-prefix])
+#  ------------------------------------------------------------------------
+# AC_SUBST variables:
+#     MPI_<prefix>FLAGS       Includes and defines for MPI compilation
+#     MPI_<prefix>LDFLAGS     Libraries and library paths for linking MPI C programs
+#
+# Shell variables output by this macro:
+#     found_mpi_flags         'yes' if we were able to get flags, 'no' otherwise
+#
+AC_DEFUN([LX_QUERY_MPI_COMPILER],
+[
+     # Try to find a working MPI compiler from the supplied names
+     AC_PATH_PROGS($1, [$2], [not-found])
+
+     # Figure out what the compiler responds to to get it to show us the compile
+     # and link lines.  After this part of the macro, we'll have a valid
+     # lx_mpi_command_line
+     echo -n "Checking whether $$1 responds to '-showme:compile'... "
+     lx_mpi_compile_line=`$$1 -showme:compile 2>/dev/null`
+     if [[ "$?" -eq 0 ]]; then
+         echo yes
+         lx_mpi_link_line=`$$1 -showme:link 2>/dev/null`
+     else
+         echo no
+         echo -n "Checking whether $$1 responds to '-showme'... "
+         lx_mpi_command_line=`$$1 -showme 2>/dev/null`
+         if [[ "$?" -ne 0 ]]; then
+             echo no
+             echo -n "Checking whether $$1 responds to '-compile-info'... "
+             lx_mpi_compile_line=`$$1 -compile-info 2>/dev/null`
+             if [[ "$?" -eq 0 ]]; then
+                 echo yes
+                 lx_mpi_link_line=`$$1 -link-info 2>/dev/null`
+             else
+                 echo no
+                 echo -n "Checking whether $$1 responds to '-show'... "
+                 lx_mpi_command_line=`$$1 -show 2>/dev/null`
+                 if [[ "$?" -eq 0 ]]; then
+                     echo yes
+                 else
+                     echo no
+                 fi
+             fi
+         else
+             echo yes
+         fi
+     fi
+
+     if [[ ! -z "$lx_mpi_compile_line" -a ! -z "$lx_mpi_link_line" ]]; then
+         lx_mpi_command_line="$lx_mpi_compile_line $lx_mpi_link_line"
+     fi
+
+     if [[ ! -z "$lx_mpi_command_line" ]]; then
+         # Now extract the different parts of the MPI command line.  Do these separately in case we need to
+         # parse them all out in future versions of this macro.
+         lx_mpi_defines=`    echo "$lx_mpi_command_line" | grep -o -- '\(^\| \)-D\([[^\"[:space:]]]\+\|\"[[^\"[:space:]]]\+\"\)'`
+         lx_mpi_includes=`   echo "$lx_mpi_command_line" | grep -o -- '\(^\| \)-I\([[^\"[:space:]]]\+\|\"[[^\"[:space:]]]\+\"\)'`
+         lx_mpi_link_paths=` echo "$lx_mpi_command_line" | grep -o -- '\(^\| \)-L\([[^\"[:space:]]]\+\|\"[[^\"[:space:]]]\+\"\)'`
+         lx_mpi_libs=`       echo "$lx_mpi_command_line" | grep -o -- '\(^\| \)-l\([[^\"[:space:]]]\+\|\"[[^\"[:space:]]]\+\"\)'`
+         lx_mpi_link_args=`  echo "$lx_mpi_command_line" | grep -o -- '\(^\| \)-Wl,\([[^\"[:space:]]]\+\|\"[[^\"[:space:]]]\+\"\)'`
+
+         # Create variables and clean up newlines and multiple spaces
+         MPI_$3FLAGS="$lx_mpi_defines $lx_mpi_includes"
+         MPI_$3LDFLAGS="$lx_mpi_link_paths $lx_mpi_libs $lx_mpi_link_args"
+         MPI_$3FLAGS=`  echo "$MPI_$3FLAGS"   | tr '\n' ' ' | sed 's/^[[ \t]]*//;s/[[ \t]]*$//' | sed 's/  +/ /g'`
+         MPI_$3LDFLAGS=`echo "$MPI_$3LDFLAGS" | tr '\n' ' ' | sed 's/^[[ \t]]*//;s/[[ \t]]*$//' | sed 's/  +/ /g'`
+
+         OLD_CPPFLAGS=$CPPFLAGS
+         OLD_LIBS=$LIBS
+         CPPFLAGS=$MPI_$3FLAGS
+         LIBS=$MPI_$3LDFLAGS
+
+         AC_TRY_LINK([#include <mpi.h>],
+                     [int rank, size;
+                      MPI_Comm_rank(MPI_COMM_WORLD, &rank);
+                      MPI_Comm_size(MPI_COMM_WORLD, &size);],
+                     [# Add a define for testing at compile time.
+                      AC_DEFINE([HAVE_MPI], [1], [Define to 1 if you have MPI libs and headers.])
+                      have_$3_mpi='yes'],
+                     [# zero out mpi flags so we don't link against the faulty library.
+                      MPI_$3FLAGS=""
+                      MPI_$3LDFLAGS=""
+                      have_$3_mpi='no'])
+
+         # AC_SUBST everything.
+         AC_SUBST($1)
+         AC_SUBST(MPI_$3FLAGS)
+         AC_SUBST(MPI_$3LDFLAGS)
+
+         LIBS=$OLD_LIBS
+         CPPFLAGS=$OLD_CPPFLAGS
+     else
+         echo Unable to find suitable MPI Compiler. Try setting $1.
+         have_$3_mpi='no'
+     fi
+])
diff --git a/m4/nomad.m4 b/m4/nomad.m4
new file mode 100644
index 0000000000000000000000000000000000000000..bd26c9efaa0f546797065e4217c5cfea25dc67f2
--- /dev/null
+++ b/m4/nomad.m4
@@ -0,0 +1,18 @@
+# nomad.m4 - nomad specific autoconf macros
+
+AC_DEFUN([NOMAD_ENABLE_MODULE],[
+AM_CONDITIONAL([$1],[test x$$2 = xtrue])
+eval $1_ENABLE_VAL="`eval test "$$2" = "true" && echo "ENABLED" || echo "DISABLED"`"
+])
+
+AC_DEFUN([NOMAD_ENABLE_MPI],
+[AC_ARG_ENABLE(
+  [mpi],
+  AC_HELP_STRING([--enable-mpi],[compile using MPI for supported codes [default=no]]),
+  [ case "${enableval}" in
+      yes) mpi=true;;
+      no)  mpi=false;;
+      *) AC_MSG_ERROR(bad value ${enableval} for --enable-mpi) ;;
+    esac
+  ], [ mpi=false ] )
+])
diff --git a/nomad.pc.in b/nomad.pc.in
new file mode 100644
index 0000000000000000000000000000000000000000..1a93446ef429093766500e6521951bb09202e3e5
--- /dev/null
+++ b/nomad.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: nomad
+Version: @VERSION@
+Description: NOMAD
+Libs: ${libdir}/libnomad.a -lc -lm
+Cflags: -I${includedir}
diff --git a/nomadmpi.pc.in b/nomadmpi.pc.in
new file mode 100644
index 0000000000000000000000000000000000000000..d813e8ffeabadb6981dae1a550b9cfb0d6d5fd95
--- /dev/null
+++ b/nomadmpi.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: nomad.mpi
+Version: @VERSION@
+Description: NOMAD
+Libs: ${libdir}/libnomadmpi.a -lc -lm
+Cflags: -I${includedir}
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..10468220d3699b4f1ac66e189675fb57a334f3da
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,63 @@
+lib_LIBRARIES = libnomad.a
+libnomad_a_SOURCES = Barrier.cpp Cache.cpp Cache_File_Point.cpp Cache_Point.cpp\
+	Cache_Search.cpp Clock.cpp Direction.cpp Directions.cpp Display.cpp\
+	Double.cpp Eval_Point.cpp Evaluator_Control.cpp Evaluator.cpp\
+	Exception.cpp Extended_Poll.cpp L_Curve.cpp LH_Search.cpp Mads.cpp\
+	Mesh.cpp Model_Sorted_Point.cpp Model_Stats.cpp Multi_Obj_Evaluator.cpp\
+	Parameter_Entries.cpp Parameter_Entry.cpp Parameters.cpp\
+	Pareto_Front.cpp Pareto_Point.cpp Phase_One_Evaluator.cpp\
+	Phase_One_Search.cpp Point.cpp Priority_Eval_Point.cpp Quad_Model.cpp\
+	Quad_Model_Evaluator.cpp Quad_Model_Search.cpp Random_Pickup.cpp\
+	RNG.cpp Signature.cpp Slave.cpp Speculative_Search.cpp Stats.cpp\
+	TGP_Model.cpp TGP_Model_Evaluator.cpp TGP_Model_Search.cpp\
+	TGP_Output_Model.cpp utils.cpp Variable_Group.cpp VNS_Search.cpp
+
+libnomadmpi_a_SOURCES = Barrier.cpp Cache.cpp Cache_File_Point.cpp Cache_Point.cpp\
+	Cache_Search.cpp Clock.cpp Direction.cpp Directions.cpp Display.cpp\
+	Double.cpp Eval_Point.cpp Evaluator_Control.cpp Evaluator.cpp\
+	Exception.cpp Extended_Poll.cpp L_Curve.cpp LH_Search.cpp Mads.cpp\
+	Mesh.cpp Model_Sorted_Point.cpp Model_Stats.cpp Multi_Obj_Evaluator.cpp\
+	Parameter_Entries.cpp Parameter_Entry.cpp Parameters.cpp\
+	Pareto_Front.cpp Pareto_Point.cpp Phase_One_Evaluator.cpp\
+	Phase_One_Search.cpp Point.cpp Priority_Eval_Point.cpp Quad_Model.cpp\
+	Quad_Model_Evaluator.cpp Quad_Model_Search.cpp Random_Pickup.cpp\
+	RNG.cpp Signature.cpp Slave.cpp Speculative_Search.cpp Stats.cpp\
+	TGP_Model.cpp TGP_Model_Evaluator.cpp TGP_Model_Search.cpp\
+	TGP_Output_Model.cpp utils.cpp Variable_Group.cpp VNS_Search.cpp
+	
+pkginclude_HEADERS = Cache_File_Point.hpp Cache.hpp Cache_Point.hpp\
+	Cache_Search.hpp Clock.hpp defines.hpp Direction.hpp Directions.hpp\
+	Display.hpp Double.hpp Eval_Point.hpp Evaluator_Control.hpp\
+	Evaluator.hpp Exception.hpp Extended_Poll.hpp Filter_Point.hpp\
+	L_Curve.hpp LH_Search.hpp Mads.hpp Mesh.hpp Model_Sorted_Point.hpp\
+	Model_Stats.hpp Multi_Obj_Evaluator.hpp\
+	Multi_Obj_Quad_Model_Evaluator.hpp nomad.hpp Parameter_Entries.hpp\
+	Parameter_Entry.hpp Parameters.hpp Pareto_Front.hpp Pareto_Point.hpp\
+	Phase_One_Evaluator.hpp Phase_One_Search.hpp Point.hpp\
+	Priority_Eval_Point.hpp Quad_Model_Evaluator.hpp Quad_Model.hpp\
+	Quad_Model_Search.hpp Random_Pickup.hpp RNG.hpp Search.hpp\
+	Set_Element.hpp Signature_Element.hpp Signature.hpp\
+	Single_Obj_Quad_Model_Evaluator.hpp Slave.hpp Speculative_Search.hpp\
+	Stats.hpp TGP_Model_Evaluator.hpp TGP_Model.hpp TGP_Model_Search.hpp\
+	TGP_Output_Model.hpp Uncopyable.hpp utils.hpp Variable_Group.hpp\
+	VNS_Search.hpp Barrier.hpp
+
+bin_PROGRAMS = nomad
+nomad_SOURCES = nomad.cpp
+nomad_LDADD = libnomad.a
+
+pkgconfigdir = $(libdir)/pkgconfig
+nodist_pkgconfig_DATA = ../nomad.pc
+nomad.pc: ../nomad.pc.in
+
+if MPI_ENABLED
+lib_LIBRARIES += libnomadmpi.a
+libnomadmpi_a_CXXFLAGS = -DUSE_MPI $(MPI_LDFLAGS) $(MPI_CXXFLAGS) $(AM_CXXFLAGS)
+nodist_pkgconfig_DATA += ../nomadmpi.pc
+nomadmpi.pc: ../nomadmpi.pc.in
+bin_PROGRAMS += nomad.mpi
+nomad_mpi_SOURCES = nomad.cpp
+nomad_mpi_LDADD = libnomadmpi.a
+nomad_mpi_CXXFLAGS = -DUSE_MPI $(MPI_CXXFLAGS) $(AM_CXXFLAGS)
+nomad_mpi_LDFLAGS = $(MPI_CXXLDFLAGS) $(AM_CXXLDFLAGS)
+endif
diff --git a/src/makefile b/src/makefile
deleted file mode 100644
index 9758c1d652abdf159ceca8a183204ac58d41c3c5..0000000000000000000000000000000000000000
--- a/src/makefile
+++ /dev/null
@@ -1,258 +0,0 @@
-EXE                    = ../bin/nomad
-EXE_MPI		           = ../bin/nomad.MPI
-LIB                    = ../lib/nomad.a
-LIB_MPI                = ../lib/nomad.MPI.a
-COMPILATOR             = g++
-COMPILATOR_MPI = mpic++
-SUNAME = $(shell uname)
-OSS=$(findstring MINGW32,$(SUNAME)) 
-ifneq "$(strip $(OSS))" ""
-COMPILATOR_MPI = g++
-EXE                    = ../bin/nomad.exe
-EXE_MPI		           = ../bin/nomad.MPI.exe
-endif
-
-BUILD_DIR_NO_MPI = ../builds/ObjsNoMPI 
-BUILD_DIR_MPI = ../builds/ObjsMPI
-BUILD_DIR = 
-# COMPILATOR_OPTIONS     = -O2 -ansi -Wall
-COMPILATOR_OPTIONS = -g -ansi -Wall 
-# COMPILATOR_OPTIONS_MPI  = $(COMPILATOR_OPTIONS) -DUSE_MPI
-COMPILATOR_OPTIONS_MPI = $(COMPILATOR_OPTIONS) -DUSE_MPI # -DMPICH_IGNORE_CXX_SEEK -DMPICH_SKIP_MPICXX
-LIBS                   = -lm
-LIBS_MPI               = $(LIBS) -lmpi
-INCLUDE                = -I.
-COMPILE                = 
-COMPILE_NO_MPI         = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-COMPILE_MPI            = $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
-OBJS_LIB               = $(BUILD_DIR)/Barrier.o $(BUILD_DIR)/Cache.o $(BUILD_DIR)/Cache_File_Point.o $(BUILD_DIR)/Cache_Point.o \
-                         $(BUILD_DIR)/Cache_Search.o $(BUILD_DIR)/Clock.o $(BUILD_DIR)/Direction.o $(BUILD_DIR)/Directions.o $(BUILD_DIR)/Display.o \
-                         $(BUILD_DIR)/Double.o $(BUILD_DIR)/Eval_Point.o $(BUILD_DIR)/Evaluator.o $(BUILD_DIR)/Evaluator_Control.o \
-                         $(BUILD_DIR)/Exception.o $(BUILD_DIR)/Extended_Poll.o $(BUILD_DIR)/L_Curve.o $(BUILD_DIR)/LH_Search.o $(BUILD_DIR)/Mads.o \
-                         $(BUILD_DIR)/Mesh.o $(BUILD_DIR)/Model_Sorted_Point.o $(BUILD_DIR)/Model_Stats.o $(BUILD_DIR)/Multi_Obj_Evaluator.o \
-                         $(BUILD_DIR)/Parameters.o $(BUILD_DIR)/Parameter_Entries.o $(BUILD_DIR)/Parameter_Entry.o \
-                         $(BUILD_DIR)/Pareto_Front.o $(BUILD_DIR)/Pareto_Point.o $(BUILD_DIR)/Phase_One_Evaluator.o \
-                         $(BUILD_DIR)/Phase_One_Search.o $(BUILD_DIR)/Point.o $(BUILD_DIR)/Priority_Eval_Point.o $(BUILD_DIR)/Quad_Model.o \
-                         $(BUILD_DIR)/Quad_Model_Evaluator.o $(BUILD_DIR)/Quad_Model_Search.o $(BUILD_DIR)/Random_Pickup.o \
-                         $(BUILD_DIR)/RNG.o $(BUILD_DIR)/Signature.o $(BUILD_DIR)/Slave.o $(BUILD_DIR)/Speculative_Search.o $(BUILD_DIR)/Stats.o \
-                         $(BUILD_DIR)/utils.o $(BUILD_DIR)/Variable_Group.o $(BUILD_DIR)/VNS_Search.o
-                         
-OBJS                   = $(BUILD_DIR)/nomad.o $(OBJS_LIB)
-
-
-all:
-	@mkdir -p $(BUILD_DIR_NO_MPI) 
-	$(MAKE) BUILD_DIR=$(BUILD_DIR_NO_MPI) COMPILE='$(COMPILE_NO_MPI)' $(EXE) $(LIB)
-	
-mpi:
-	@mkdir -p $(BUILD_DIR_MPI)
-	$(MAKE) BUILD_DIR=$(BUILD_DIR_MPI) COMPILE='$(COMPILE_MPI)' $(EXE_MPI) $(LIB_MPI)
-
-installAllNomad: all mpi
-	@echo "cleaning obj files and build directories"
-	@rm -rf $(BUILD_DIR_NO_MPI) $(BUILD_DIR_MPI)
-	
-clean:
-	@echo "cleaning obj files and build directories"
-	@rm -rf $(BUILD_DIR_NO_MPI) $(BUILD_DIR_MPI)
-	
-del: clean
-	@echo "cleaning trash files"
-	@rm -f core *~
-	@echo "cleaning exe file"
-	@rm -f $(EXE) $(EXE_MPI)
-	@echo "cleaning lib files"
-	@rm -f $(LIB) $(LIB_MPI)	
-	
-$(EXE): $(OBJS)
-	@echo "building the release version (no MPI)"
-	@echo "exe file: "$(EXE)
-	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip $(EXE)
-
-$(LIB): $(OBJS_LIB)	
-	@echo "building the library (no MPI)"
-	@echo "lib file: "$(LIB)
-	@rm -f $(LIB)
-	@ar -r $(LIB) $(OBJS_LIB)
-	@ranlib $(LIB)
- 
-$(EXE_MPI): $(OBJS)
-	@echo "building the release version (MPI)"
-	@echo "exe file: "$(EXE_MPI)
-	@$(COMPILATOR_MPI) -o $(EXE_MPI) $(OBJS) $(LIBS_MPI) $(COMPILATOR_OPTIONS_MPI)	
-	@strip $(EXE_MPI)
-
-$(LIB_MPI): $(OBJS_LIB)
-	@echo "building the MPI library"
-	@echo "lib file: "$(LIB_MPI)
-	@rm -f $(LIB_MPI)
-	@ar -r $(LIB_MPI) $(OBJS_LIB)
-	@ranlib $(LIB_MPI)
-	
-#$(BUILD_DIR)/%.o: %.cpp %.hpp
-#	$(COMPILE) $< -o $@
-	
-$(BUILD_DIR)/Barrier.o: Barrier.cpp Barrier.hpp Filter_Point.hpp Set_Element.hpp
-	$(COMPILE) Barrier.cpp -o $@
-
-$(BUILD_DIR)/Cache.o: Cache.cpp Cache.hpp
-	$(COMPILE) Cache.cpp -o $@
-
-$(BUILD_DIR)/Cache_File_Point.o: Cache_File_Point.cpp Cache_File_Point.hpp \
-                    Eval_Point.cpp Eval_Point.hpp Uncopyable.hpp
-	$(COMPILE) Cache_File_Point.cpp -o $@
-
-$(BUILD_DIR)/Cache_Point.o: Cache_Point.cpp Cache_Point.hpp
-	$(COMPILE) Cache_Point.cpp -o $@
-
-$(BUILD_DIR)/Cache_Search.o: Cache_Search.cpp Cache_Search.hpp Search.hpp
-	$(COMPILE) Cache_Search.cpp -o $@
-
-$(BUILD_DIR)/Clock.o: Clock.cpp Clock.hpp
-	$(COMPILE) Clock.cpp -o $@
-
-$(BUILD_DIR)/Direction.o: Direction.cpp Direction.hpp Point.hpp
-	$(COMPILE) Direction.cpp -o $@
-
-$(BUILD_DIR)/Directions.o: Directions.cpp Directions.hpp Mesh.hpp Random_Pickup.hpp RNG.hpp
-	$(COMPILE) Directions.cpp -o $@
-
-$(BUILD_DIR)/Display.o: Display.cpp Display.hpp utils.hpp
-	$(COMPILE) Display.cpp -o $@
-
-$(BUILD_DIR)/Double.o: Double.cpp Double.hpp Exception.hpp Display.hpp
-	$(COMPILE) Double.cpp -o $@
-
-$(BUILD_DIR)/Eval_Point.o: Eval_Point.cpp Eval_Point.hpp Parameters.hpp Cache_File_Point.hpp \
-              Set_Element.hpp
-	$(COMPILE) Eval_Point.cpp -o $@
-
-$(BUILD_DIR)/Evaluator.o: Evaluator.cpp Evaluator.hpp Priority_Eval_Point.hpp Stats.hpp
-	$(COMPILE) Evaluator.cpp -o $@
-
-$(BUILD_DIR)/Evaluator_Control.o: Evaluator_Control.cpp Evaluator_Control.hpp \
-            Barrier.hpp Pareto_Front.hpp Slave.hpp Quad_Model.hpp TGP_Model.hpp        
-	$(COMPILE) Evaluator_Control.cpp -o $@
-
-$(BUILD_DIR)/Exception.o: Exception.cpp Exception.hpp
-	$(COMPILE) Exception.cpp -o $@
-
-$(BUILD_DIR)/Extended_Poll.o: Extended_Poll.cpp Extended_Poll.hpp Signature_Element.hpp \
-                 Set_Element.hpp Mads.hpp
-	$(COMPILE) Extended_Poll.cpp -o $@
-
-$(BUILD_DIR)/L_Curve.o: L_Curve.cpp L_Curve.hpp Double.hpp Uncopyable.hpp
-	$(COMPILE) L_Curve.cpp -o $@
-
-$(BUILD_DIR)/LH_Search.o: LH_Search.cpp LH_Search.hpp Search.hpp Mads.hpp RNG.hpp Evaluator_Control.hpp
-	$(COMPILE) LH_Search.cpp -o $@
-
-$(BUILD_DIR)/Mads.o: Mads.cpp Mads.hpp Evaluator_Control.hpp L_Curve.hpp \
-        LH_Search.hpp LH_Search.cpp \
-        Speculative_Search.cpp Speculative_Search.hpp \
-        Extended_Poll.cpp Extended_Poll.hpp \
-        VNS_Search.hpp VNS_Search.cpp \
-        Quad_Model_Search.hpp Quad_Model_Search.cpp \
-        Cache_Search.hpp Cache_Search.cpp \
-        Phase_One_Search.cpp Phase_One_Search.hpp
-	$(COMPILE) Mads.cpp -o $@
-
-$(BUILD_DIR)/Mesh.o: Mesh.cpp Mesh.hpp Point.hpp
-	$(COMPILE) Mesh.cpp -o $@
-
-$(BUILD_DIR)/Multi_Obj_Evaluator.o: Multi_Obj_Evaluator.cpp Multi_Obj_Evaluator.hpp Phase_One_Evaluator.hpp
-	$(COMPILE) Multi_Obj_Evaluator.cpp -o $@
-
-$(BUILD_DIR)/Model_Sorted_Point.o: Model_Sorted_Point.cpp Model_Sorted_Point.hpp Point.hpp
-	$(COMPILE) Model_Sorted_Point.cpp -o $@
-
-$(BUILD_DIR)/Model_Stats.o: Model_Stats.cpp Model_Stats.hpp Double.hpp
-	$(COMPILE) Model_Stats.cpp -o $@
-
-$(BUILD_DIR)/nomad.o: nomad.cpp nomad.hpp  Mads.hpp
-	$(COMPILE) nomad.cpp -o $@
-
-$(BUILD_DIR)/Parameters.o: Parameters.cpp Parameters.hpp  Parameter_Entries.hpp Signature.hpp
-	$(COMPILE) Parameters.cpp -o $@
-
-$(BUILD_DIR)/Parameter_Entries.o: Parameter_Entries.cpp Parameter_Entries.hpp Parameter_Entry.hpp
-	$(COMPILE) Parameter_Entries.cpp -o $@
-
-$(BUILD_DIR)/Parameter_Entry.o: Parameter_Entry.hpp Parameter_Entry.cpp  Display.hpp Uncopyable.hpp
-	$(COMPILE) Parameter_Entry.cpp -o $@
-
-$(BUILD_DIR)/Pareto_Front.o: Pareto_Front.cpp Pareto_Front.hpp Pareto_Point.hpp
-	$(COMPILE) Pareto_Front.cpp -o $@
-
-$(BUILD_DIR)/Pareto_Point.o: Pareto_Point.cpp Pareto_Point.hpp Multi_Obj_Evaluator.hpp
-	$(COMPILE) Pareto_Point.cpp -o $@
-
-$(BUILD_DIR)/Phase_One_Evaluator.o: Phase_One_Evaluator.cpp Phase_One_Evaluator.hpp Evaluator.hpp
-	$(COMPILE) Phase_One_Evaluator.cpp -o $@
-
-$(BUILD_DIR)/Phase_One_Search.o: Phase_One_Search.cpp Phase_One_Search.hpp Mads.hpp \
-                    Search.hpp Evaluator_Control.hpp
-	$(COMPILE) Phase_One_Search.cpp -o $@
-
-$(BUILD_DIR)/Point.o: Point.cpp Point.hpp Double.hpp
-	$(COMPILE) Point.cpp -o $@
-
-$(BUILD_DIR)/Priority_Eval_Point.o: Priority_Eval_Point.cpp Priority_Eval_Point.hpp Eval_Point.hpp \
-                       Set_Element.hpp
-	$(COMPILE) Priority_Eval_Point.cpp -o $@
-
-$(BUILD_DIR)/Quad_Model.o: Quad_Model.cpp Quad_Model.hpp Cache.hpp Model_Sorted_Point.hpp
-	$(COMPILE) Quad_Model.cpp -o $@
-
-$(BUILD_DIR)/Quad_Model_Evaluator.o: Quad_Model_Evaluator.cpp Quad_Model_Evaluator.hpp \
-                        Evaluator.hpp Search.hpp
-	$(COMPILE) Quad_Model_Evaluator.cpp -o $@
-
-$(BUILD_DIR)/Quad_Model_Search.o: Quad_Model_Search.cpp Quad_Model_Search.hpp Mads.hpp \
-                     Quad_Model_Evaluator.hpp
-	$(COMPILE) Quad_Model_Search.cpp -o $@
-
-$(BUILD_DIR)/Random_Pickup.o: Random_Pickup.cpp Random_Pickup.hpp RNG.cpp RNG.hpp Uncopyable.hpp
-	$(COMPILE) Random_Pickup.cpp -o $@
-
-$(BUILD_DIR)/RNG.o: RNG.cpp RNG.hpp defines.hpp
-	$(COMPILE) RNG.cpp -o $@
-
-$(BUILD_DIR)/Signature.o: Signature.cpp Signature.hpp Variable_Group.hpp
-	$(COMPILE) Signature.cpp -o $@
-
-$(BUILD_DIR)/Slave.o: Slave.cpp Slave.hpp Evaluator.hpp
-	$(COMPILE) Slave.cpp -o $@
-
-$(BUILD_DIR)/Speculative_Search.o: Speculative_Search.cpp Speculative_Search.hpp Mads.hpp Search.hpp \
-                      Evaluator_Control.hpp
-	$(COMPILE) Speculative_Search.cpp -o $@
-
-$(BUILD_DIR)/Stats.o: Stats.cpp Stats.hpp  Clock.hpp Double.hpp Model_Stats.hpp
-	$(COMPILE) Stats.cpp -o $@
-
-TGP_Model.o: TGP_Model.cpp TGP_Model.hpp TGP_Output_Model.hpp Cache.hpp Model_Sorted_Point.hpp
-	$(COMPILE) TGP_Model.cpp
-
-TGP_Model_Evaluator.o: TGP_Model_Evaluator.cpp TGP_Model_Evaluator.hpp \
-                       Evaluator.hpp Search.hpp
-	$(COMPILE) TGP_Model_Evaluator.cpp
-
-TGP_Model_Search.o: TGP_Model_Search.cpp TGP_Model_Search.hpp \
-                    LH_Search.hpp TGP_Model_Evaluator.hpp
-	$(COMPILE) TGP_Model_Search.cpp
-
-TGP_Output_Model.o: TGP_Output_Model.cpp TGP_Output_Model.hpp Eval_Point.o $(LIB_TGP)
-	$(COMPILE) TGP_Output_Model.cpp
-
-$(BUILD_DIR)/utils.o: utils.cpp utils.hpp defines.hpp 
-	$(COMPILE) utils.cpp -o $@
-
-$(BUILD_DIR)/Variable_Group.o: Variable_Group.cpp Variable_Group.hpp  Directions.hpp
-	$(COMPILE) Variable_Group.cpp -o $@
-
-$(BUILD_DIR)/VNS_Search.o: VNS_Search.cpp VNS_Search.hpp Search.hpp Evaluator_Control.hpp
-	$(COMPILE) VNS_Search.cpp -o $@
-
-
diff --git a/src/makefile.TGP b/src/makefile.TGP
deleted file mode 100644
index 490218ea18a71f7345c7b094bd68c3083f325de9..0000000000000000000000000000000000000000
--- a/src/makefile.TGP
+++ /dev/null
@@ -1,218 +0,0 @@
-EXE                    = ../bin/nomad
-LIB                    = ../lib/nomad.a
-COMPILATOR             = g++
-COMPILATOR_OPTIONS     = -O2 -ansi -pedantic -Wall -DUSE_TGP
-LIB_TGP                = $(TGP_HOME)/src-x86_64/tgp.so
-LIBS                   = $(LIB_TGP) -lm
-INCLUDE                = -I$(TGP_HOME)/src-x86_64/ -I.
-COMPILE                = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
-OBJS_LIB               = Barrier.o Cache.o Cache_File_Point.o Cache_Point.o \
-                         Cache_Search.o Clock.o Direction.o Directions.o Display.o \
-                         Double.o Eval_Point.o Evaluator.o Evaluator_Control.o \
-                         Exception.o Extended_Poll.o L_Curve.o LH_Search.o Mads.o \
-                         Mesh.o Model_Sorted_Point.o Model_Stats.o Multi_Obj_Evaluator.o \
-                         Parameters.o Parameter_Entries.o Parameter_Entry.o \
-                         Pareto_Front.o Pareto_Point.o Phase_One_Evaluator.o \
-                         Phase_One_Search.o Point.o Priority_Eval_Point.o Quad_Model.o \
-                         Quad_Model_Evaluator.o Quad_Model_Search.o Random_Pickup.o RNG.o \
-                         Signature.o Slave.o Speculative_Search.o Stats.o TGP_Model.o \
-                         TGP_Model_Evaluator.o TGP_Model_Search.o TGP_Output_Model.o \
-                         utils.o Variable_Group.o VNS_Search.o
-OBJS                   = nomad.o $(OBJS_LIB)
-
-$(EXE): $(OBJS)
-	$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-
-all: clean $(OBJS)
-	@echo "building the release version (no MPI)"
-	@echo "exe file: "$(EXE)
-	@$(COMPILATOR) -o $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
-	@strip $(EXE)
-	@echo "building the library (no MPI)"
-	@echo "lib file: "$(LIB)
-	@ar -r $(LIB) $(OBJS_LIB)
-	@ranlib $(LIB)
-
-lib: clean $(OBJS)
-	@echo "building the library (no MPI)"
-	@echo "lib file: "$(LIB)
-	@ar -r $(LIB) $(OBJS_LIB)
-	@ranlib $(LIB)
-
-Barrier.o: Barrier.cpp Barrier.hpp Filter_Point.hpp Set_Element.hpp Eval_Point.o Cache.o
-	$(COMPILE) Barrier.cpp
-
-Cache.o: Cache.cpp Cache.hpp Cache_Point.o Clock.o
-	$(COMPILE) Cache.cpp
-
-Cache_File_Point.o: Cache_File_Point.cpp Cache_File_Point.hpp Display.o \
-                    Eval_Point.cpp Eval_Point.hpp Uncopyable.hpp
-	$(COMPILE) Cache_File_Point.cpp
-
-Cache_Point.o: Cache_Point.cpp Cache_Point.hpp Eval_Point.o
-	$(COMPILE) Cache_Point.cpp
-
-Cache_Search.o: Cache_Search.cpp Cache_Search.hpp Mads.o Search.hpp Evaluator_Control.o
-	$(COMPILE) Cache_Search.cpp
-
-Clock.o: Clock.cpp Clock.hpp
-	$(COMPILE) Clock.cpp
-
-Direction.o: Direction.cpp Direction.hpp Point.o
-	$(COMPILE) Direction.cpp
-
-Directions.o: Directions.cpp Directions.hpp Direction.o Mesh.o Random_Pickup.o RNG.o
-	$(COMPILE) Directions.cpp
-
-Display.o: Display.cpp Display.hpp utils.o
-	$(COMPILE) Display.cpp
-
-Double.o: Double.cpp Double.hpp Exception.o Display.o
-	$(COMPILE) Double.cpp
-
-Eval_Point.o: Eval_Point.cpp Eval_Point.hpp Parameters.o Cache_File_Point.o \
-              Set_Element.hpp
-	$(COMPILE) Eval_Point.cpp
-
-Evaluator.o: Evaluator.cpp Evaluator.hpp Priority_Eval_Point.o Stats.o
-	$(COMPILE) Evaluator.cpp
-
-Evaluator_Control.o: Evaluator_Control.cpp Evaluator_Control.hpp \
-                     Barrier.o Pareto_Front.o Slave.o Quad_Model.o TGP_Model.o
-	$(COMPILE) Evaluator_Control.cpp
-
-Exception.o: Exception.cpp Exception.hpp
-	$(COMPILE) Exception.cpp
-
-Extended_Poll.o: Extended_Poll.cpp Extended_Poll.hpp Mads.o Signature_Element.hpp \
-                 Set_Element.hpp
-	$(COMPILE) Extended_Poll.cpp
-
-L_Curve.o: L_Curve.cpp L_Curve.hpp Double.o Uncopyable.hpp
-	$(COMPILE) L_Curve.cpp
-
-LH_Search.o: LH_Search.cpp LH_Search.hpp Mads.o Search.hpp Evaluator_Control.o RNG.o
-	$(COMPILE) LH_Search.cpp
-
-Mads.o: Mads.cpp Mads.hpp Evaluator_Control.o L_Curve.o \
-        LH_Search.hpp LH_Search.cpp \
-        Speculative_Search.cpp Speculative_Search.hpp \
-        Extended_Poll.cpp Extended_Poll.hpp \
-        VNS_Search.hpp VNS_Search.cpp \
-        Quad_Model_Search.hpp Quad_Model_Search.cpp \
-        TGP_Model_Search.hpp TGP_Model_Search.cpp \
-        Cache_Search.hpp Cache_Search.cpp \
-        Phase_One_Search.cpp Phase_One_Search.hpp
-	$(COMPILE) Mads.cpp
-
-Mesh.o: Mesh.cpp Mesh.hpp Point.o
-	$(COMPILE) Mesh.cpp
-
-Multi_Obj_Evaluator.o: Multi_Obj_Evaluator.cpp Multi_Obj_Evaluator.hpp \
-                       Phase_One_Evaluator.o
-	$(COMPILE) Multi_Obj_Evaluator.cpp
-
-Model_Sorted_Point.o: Model_Sorted_Point.cpp Model_Sorted_Point.hpp Point.o
-	$(COMPILE) Model_Sorted_Point.cpp
-
-Model_Stats.o: Model_Stats.cpp Model_Stats.hpp Double.o
-	$(COMPILE) Model_Stats.cpp
-
-nomad.o: nomad.cpp nomad.hpp Mads.o
-	$(COMPILE) nomad.cpp
-
-Parameters.o: Parameters.cpp Parameters.hpp Parameter_Entries.o Signature.o
-	$(COMPILE) Parameters.cpp
-
-Parameter_Entries.o: Parameter_Entries.cpp Parameter_Entries.hpp Parameter_Entry.o
-	$(COMPILE) Parameter_Entries.cpp
-
-Parameter_Entry.o: Parameter_Entry.hpp Parameter_Entry.cpp Display.o Uncopyable.hpp
-	$(COMPILE) Parameter_Entry.cpp
-
-Pareto_Front.o: Pareto_Front.cpp Pareto_Front.hpp Pareto_Point.o
-	$(COMPILE) Pareto_Front.cpp
-
-Pareto_Point.o: Pareto_Point.cpp Pareto_Point.hpp Multi_Obj_Evaluator.o
-	$(COMPILE) Pareto_Point.cpp
-
-Phase_One_Evaluator.o: Phase_One_Evaluator.cpp Phase_One_Evaluator.hpp Evaluator.o
-	$(COMPILE) Phase_One_Evaluator.cpp
-
-Phase_One_Search.o: Phase_One_Search.cpp Phase_One_Search.hpp Mads.o \
-                    Search.hpp Evaluator_Control.o
-	$(COMPILE) Phase_One_Search.cpp
-
-Point.o: Point.cpp Point.hpp Double.o
-	$(COMPILE) Point.cpp
-
-Priority_Eval_Point.o: Priority_Eval_Point.cpp Priority_Eval_Point.hpp Eval_Point.o \
-                       Set_Element.hpp
-	$(COMPILE) Priority_Eval_Point.cpp
-
-Quad_Model.o: Quad_Model.cpp Quad_Model.hpp Cache.o Model_Sorted_Point.o
-	$(COMPILE) Quad_Model.cpp
-
-Quad_Model_Evaluator.o: Quad_Model_Evaluator.cpp Quad_Model_Evaluator.hpp \
-                        Evaluator.o Search.hpp
-	$(COMPILE) Quad_Model_Evaluator.cpp
-
-Quad_Model_Search.o: Quad_Model_Search.cpp Quad_Model_Search.hpp Mads.o \
-                     Quad_Model_Evaluator.o
-	$(COMPILE) Quad_Model_Search.cpp
-
-Random_Pickup.o: Random_Pickup.cpp Random_Pickup.hpp Uncopyable.hpp RNG.o
-	$(COMPILE) Random_Pickup.cpp
-
-RNG.o: RNG.cpp RNG.hpp defines.hpp
-	$(COMPILE) RNG.cpp
-
-Signature.o: Signature.cpp Signature.hpp Variable_Group.o
-	$(COMPILE) Signature.cpp
-
-Slave.o: Slave.cpp Slave.hpp Evaluator.o
-	$(COMPILE) Slave.cpp
-
-Speculative_Search.o: Speculative_Search.cpp Speculative_Search.hpp Mads.o Search.hpp \
-                      Evaluator_Control.o
-	$(COMPILE) Speculative_Search.cpp
-
-Stats.o: Stats.cpp Stats.hpp Clock.o Double.o Model_Stats.o
-	$(COMPILE) Stats.cpp
-
-TGP_Model.o: TGP_Model.cpp TGP_Model.hpp TGP_Output_Model.o Cache.o Model_Sorted_Point.o
-	$(COMPILE) TGP_Model.cpp
-
-TGP_Model_Evaluator.o: TGP_Model_Evaluator.cpp TGP_Model_Evaluator.hpp \
-                       Evaluator.o Search.hpp
-	$(COMPILE) TGP_Model_Evaluator.cpp
-
-TGP_Model_Search.o: TGP_Model_Search.cpp TGP_Model_Search.hpp \
-                    LH_Search.o TGP_Model_Evaluator.o
-	$(COMPILE) TGP_Model_Search.cpp
-
-TGP_Output_Model.o: TGP_Output_Model.cpp TGP_Output_Model.hpp Eval_Point.o $(LIB_TGP)
-	$(COMPILE) TGP_Output_Model.cpp
-
-utils.o: utils.cpp utils.hpp defines.hpp 
-	$(COMPILE) utils.cpp
-
-Variable_Group.o: Variable_Group.cpp Variable_Group.hpp Directions.o
-	$(COMPILE) Variable_Group.cpp
-
-VNS_Search.o: VNS_Search.cpp VNS_Search.hpp Mads.o Search.hpp Evaluator_Control.o
-	$(COMPILE) VNS_Search.cpp
-
-clean:
-	@echo "cleaning obj files"
-	@rm -f $(OBJS)
-
-del:
-	@echo "cleaning trash files"
-	@rm -f core *~
-	@echo "cleaning obj files"
-	@rm -f $(OBJS)
-	@echo "cleaning exe file"
-	@rm -f $(EXE)
-	@echo "cleaning lib files"
-	@rm -f $(LIB)
\ No newline at end of file