# top-level $(MAKE)file for the AmberTools suite of programs AMBERTOOLS=AmberTools18 CONFIG_FILE=config.h CONFIG_COMMAND=./configure PARALLEL_TOKEN=DMPI MIC_TOKEN=mmic MIC2_TOKEN=DMIC2 MIC_OFFLOAD_TOKEN=DMIC_offload PYINSTALL=PYTHONPATH=$(PYTHONPATH) $(PYTHON) setup.py install -f $(PYTHON_INSTALL) include $(CONFIG_FILE) .NOTPARALLEL:configured_serial THIRDPARTY install: $(INSTALLTYPE) utils: configured_serial THIRDPARTY @echo "Starting installation of ${AMBERTOOLS} serial at `date`". # utility routines and libraries: (cd ucpp-1.3 && $(MAKE) $(UCPP) ) (cd byacc && $(MAKE) install ) (cd arpack && $(MAKE) install ); (cd lapack && $(MAKE) $(LAPACK) ) (cd blas && $(MAKE) $(BLAS) ) (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) ) serial: configured_serial THIRDPARTY utils (cd pbsa && $(MAKE) install ) (cd gbnsr6 && $(MAKE) install ) (cd cifparse && $(MAKE) install ) # antechamber: (cd antechamber && $(MAKE) install ) (cd sqm && $(MAKE) install ) # miscellaneous: (cd reduce && $(MAKE) install ) # leap (cd leap && $(MAKE) install ) # old Amber programs (cd lib && $(MAKE) install) (cd addles && $(MAKE) install) (cd sander && $(MAKE) serial) (cd nmr_aux && $(MAKE) install) (cd nmode && $(MAKE) install) # cpptraj: $(MAKE) build_cpptraj $(MAKE) $(LIBCPPTRAJ) # nab: (cd sff && $(MAKE) install ) (cd pbsa && $(MAKE) libinstall ) (cd rism && $(MAKE) $(RISM) ) (cd nab && $(MAKE) install ) # (cd nss && $(MAKE) install ) (cd etc && $(MAKE) install ) # rism (if [ $(RISM) = "yes" ]; then \ cd rism && $(MAKE) rism3d.snglpnt$(SFX); \ fi;\ ) # mdgx: (cd mdgx && $(MAKE) $(MDGX) ) # xtalutil: (cd xtalutil && $(MAKE) install ) # saxs and saxs_md: (cd saxs && $(MAKE) $(MAKE_SAXS) ) # mm_pbsa (cd mm_pbsa && $(MAKE) install) # FEW (cd FEW && $(MAKE) install) # amberlite (cd amberlite && $(MAKE) install) # paramfit (cd paramfit && $(MAKE) install) # cphstats and cestats (cd cphstats && $(MAKE) install) # quick # (cd quick && $(MAKE) install) # nfe-umbrella-slice (cd nfe-umbrella-slice && $(MAKE) install) #Python code (if [ "$(SKIP_PYTHON)" = "no" ]; then \ $(MAKE) python_serial ;\ fi;\ ) @echo "" @echo "Installation of ${AMBERTOOLS} serial is complete at `date`." @echo "" # Serial install using cray compilers. Not working: # pbsa, gbnsr6, sander, nmr_aux, nss, etc, mmpbsa, amberlite, quick cray_serial: configured_serial THIRDPARTY @echo "Starting installation of ${AMBERTOOLS} serial (cray) at `date`". (cd ucpp-1.3 && $(MAKE) $(UCPP) ) (cd byacc && $(MAKE) install ) (cd arpack && $(MAKE) install ); (cd lapack && $(MAKE) $(LAPACK) ) (cd blas && $(MAKE) $(BLAS) ) (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) ) (cd cifparse && $(MAKE) install ) (cd antechamber && $(MAKE) install ) (cd sqm && $(MAKE) install ) (cd reduce && $(MAKE) install ) (cd leap && $(MAKE) install ) (cd lib && $(MAKE) install) (cd addles && $(MAKE) install) (cd nmode && $(MAKE) install) $(MAKE) build_cpptraj (cd sff && $(MAKE) install ) (cd rism && $(MAKE) $(RISM) ) (cd nab && $(MAKE) install ) (if [ $(RISM) = "yes" ]; then \ cd rism && $(MAKE) rism3d.snglpnt$(SFX); \ fi;\ ) (cd mdgx && $(MAKE) $(MDGX) ) (cd xtalutil && $(MAKE) install ) (cd saxs && $(MAKE) $(MAKE_SAXS) ) (cd FEW && $(MAKE) install) (cd paramfit && $(MAKE) install) (cd cphstats && $(MAKE) install) (if [ "$(SKIP_PYTHON)" = "no" ]; then \ $(MAKE) python_serial ;\ fi;\ ) @echo "" @echo "Installation of ${AMBERTOOLS} serial (cray) is complete at `date`." @echo "" cray_parallel: configured_parallel THIRDPARTY @echo "Starting installation of ${AMBERTOOLS} MPI (cray) at `date`". (cd etc && $(MAKE) parallel) (cd sff && $(MAKE) libsff_mpi ) (cd byacc && $(MAKE) install ) (cd ucpp-1.3 && $(MAKE) $(UCPP) ) (cd cifparse && $(MAKE) install ) (cd arpack && $(MAKE) install ); (cd lapack && $(MAKE) $(LAPACK) ) (cd blas && $(MAKE) $(BLAS) ) $(MAKE) build_cpptraj (cd mdgx && $(MAKE) $(MDGX) ) (cd nab && $(MAKE) install ) (if [ "$(RISM)" = "yes" ]; then \ cd rism && $(MAKE) librism_mpi && $(MAKE) rism3d.snglpnt.MPI$(SFX) ; \ fi; \ ) (if [ "$(SKIP_PYTHON)" = "no" ]; then \ $(MAKE) python_parallel ;\ fi;\ ) @echo "" @echo "Installation of ${AMBERTOOLS} MPI (cray) is complete at `date`." @echo "" cray_openmp: configured_serial THIRDPARTY (cd ucpp-1.3 && $(MAKE) $(UCPP) ) (cd byacc && $(MAKE) install ) (cd arpack && $(MAKE) install ); (cd lapack && $(MAKE) $(LAPACK) ) (cd blas && $(MAKE) $(BLAS) ) (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) ) (cd rism && $(MAKE) $(RISM) ) (cd cifparse && $(MAKE) install ) (cd sff && $(MAKE) install ) (cd nab && $(MAKE) install ) (if [ $(RISM) = "yes" ]; then \ cd rism && $(MAKE) rism3d.snglpnt$(SFX); \ fi;\ ) $(MAKE) build_cpptraj $(MAKE) $(PYTRAJ) (cd saxs && $(MAKE) $(MAKE_SAXS) ) (cd paramfit && $(MAKE) install ) @echo "" @echo "Installation of ${AMBERTOOLS} OpenMP (cray) is complete at `date`." @echo "" nabonly: configured_serial $(XBLAS) $(LIBDIR)/libfftw3.a # utility routines and libraries: (cd ucpp-1.3 && $(MAKE) $(UCPP) ) (cd byacc && $(MAKE) install ) (cd arpack && $(MAKE) install ); (cd lapack && $(MAKE) $(LAPACK) ) (cd blas && $(MAKE) $(BLAS) ) (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) ) (cd pbsa && $(MAKE) libinstall ) (cd rism && $(MAKE) $(RISM) ) (cd cifparse && $(MAKE) install ) (cd sff && $(MAKE) install ) (cd nab && $(MAKE) install ) # (cd nss && $(MAKE) install ) (if [ $(RISM) = "yes" ]; then \ cd rism && $(MAKE) rism3d.snglpnt$(SFX); \ fi;\ ) (cd leap && $(MAKE) install ) (cd reduce && $(MAKE) install ) @echo @echo "Completed installation of NAB" @echo openmp: THIRDPARTY nabonly math_libraries $(MAKE) build_cpptraj -$(MAKE) $(PYTRAJ) (cd saxs && $(MAKE) $(MAKE_SAXS) ) (cd paramfit && $(MAKE) install ) @echo "" @echo "Installation of ${AMBERTOOLS} OpenMP is complete at `date`." @echo "" .NOTPARALLEL:configured_parallel THIRDPARTY parallel: configured_parallel THIRDPARTY mpinab @echo "Starting installation of ${AMBERTOOLS} MPI at `date`". (cd etc && $(MAKE) parallel) # (cd pbsa && $(MAKE) install.parallel ) (cd pbsa && $(MAKE) libinstall ) (cd arpack && $(MAKE) install ); (cd lapack && $(MAKE) $(LAPACK) ) (cd blas && $(MAKE) $(BLAS) ) (cd mdgx && $(MAKE) $(MDGX) ) (cd addles && $(MAKE) install) (cd sander && $(MAKE) parallel) $(MAKE) build_cpptraj # (cd quick && $(MAKE) parallel) (if [ "$(SKIP_PYTHON)" = "no" ]; then \ $(MAKE) python_parallel ;\ fi;\ ) @echo "" @echo "Installation of ${AMBERTOOLS} MPI is complete at `date`." # @echo " (to install mpinab (if needed):" # @echo " cd ${AMBERHOME}/AmberTools/src; make mpinab )" @echo "" mpinab: (cd sff && $(MAKE) libsff_mpi ) (cd byacc && $(MAKE) install ) (cd ucpp-1.3 && $(MAKE) $(UCPP) ) (cd cifparse && $(MAKE) install ) (cd arpack && $(MAKE) install ); (cd nab && $(MAKE) install ) (if [ "$(RISM)" = "yes" ]; then \ cd rism && $(MAKE) librism_mpi && $(MAKE) rism3d.snglpnt.MPI$(SFX) ; \ fi; \ ) configured: @(if [ ! -f $(CONFIG_FILE) ] ; then \ echo "Error: $(CONFIG_COMMAND) must be executed before $(MAKE) !" ;\ exit 2 ;\ # $(CONFIG_COMMAND) ;\ fi ;\ ) configured_serial: configured @(if grep $(PARALLEL_TOKEN) $(CONFIG_FILE) > /dev/null ; then \ echo "Error: $(CONFIG_FILE) is of type parallel, not serial !" ;\ echo " Rerun $(CONFIG_COMMAND) without the -mpi flag." ;\ exit 2 ;\ fi ;\ ) configured_parallel: configured @(grep $(PARALLEL_TOKEN) $(CONFIG_FILE) > /dev/null || \ { echo "Error: $(CONFIG_FILE) is of type serial, not parallel !" ;\ echo " Rerun $(CONFIG_COMMAND) with the -mpi flag." ;\ exit 2 ;\ } ;\ ) configured_mic: configured @(grep $(MIC_TOKEN) $(CONFIG_FILE) > /dev/null || \ { echo "Error: $(CONFIG_FILE) is not of type mic_native !" ;\ echo "Rerun $(CONFIG_FILE) WITH THE -mic_native flag." ;\ exit 2 ;\ } ;\ ) configured_mic2: configured @(grep $(MIC2_TOKEN) $(CONFIG_FILE) > /dev/null || \ { echo "Error: $(CONFIG_FILE) is not of type mic2 !" ;\ echo "Rerun $(CONFIG_FILE) WITH THE -mic2 flag." ;\ exit 2 ;\ } ;\ ) configured_mic_offload: configured @(grep $(MIC_OFFLOAD_TOKEN) $(CONFIG_FILE) > /dev/null || \ { echo "Error: $(CONFIG_FILE) is not of type mic_offload !" ;\ echo "Rerun $(CONFIG_FILE) WITH THE -mic_offload flag." ;\ exit 2 ;\ } ;\ ) netcdf_uninstall: -(cd netcdf-4.3.0 && $(MAKE) uninstall) -(cd netcdf-fortran-4.2 && $(MAKE) uninstall) -/bin/rm -f netcdf_config.log ../lib/libnetcdf* ../include/netcdf.* \ $(BINDIR)/nf-config clean:: -(cd ucpp-1.3 && $(MAKE) clean ) -(cd byacc && $(MAKE) clean ) -(cd cifparse && $(MAKE) clean ) -(cd nab && $(MAKE) clean ) -(cd sff && $(MAKE) clean ) # -(cd nss && $(MAKE) clean ) -(cd leap && $(MAKE) clean ) -(cd arpack && $(MAKE) clean ) -(cd blas && $(MAKE) clean ) -(cd xblas && $(MAKE) clean ) -(cd lapack && $(MAKE) clean ) -(cd c9x-complex && $(MAKE) clean )no-setuptools -(cd etc && $(MAKE) clean ) -(cd chamber && $(MAKE) clean ) -(cd pbsa && $(MAKE) clean ) -(cd gbnsr6 && $(MAKE) clean ) -(cd antechamber && $(MAKE) clean ) -(cd sqm && $(MAKE) clean ) -(cd lib && $(MAKE) clean ) -(cd ptraj && $(MAKE) clean ) -(cd cpptraj && $(MAKE) clean) -(cd reduce && $(MAKE) clean ) -(cd mdgx && $(MAKE) clean ) -(cd xtalutil && $(MAKE) clean ) -(cd saxs && $(MAKE) clean ) -(cd amberlite && /bin/rm -fr build/) -(cd paramfit && $(MAKE) clean ) -(cd rism && $(MAKE) clean ) -(cd fftw-3.3 && $(MAKE) clean ) -($(RM) -f fftw-3.3/mpi/fftw3-mpi.f03 ) -(cd mmpbsa_py && /bin/rm -fr MMPBSA.py.MPI build/ mpi4py-1.2.2/) -(cd mm_pbsa && $(MAKE) clean ) -(cd FEW && $(MAKE) clean ) # -(cd packmol_memgen && /bin/rm -fr build/ && cd packmol_memgen && make clean) -(cd parmed && /bin/rm -fr build/ && $(PYTHON) setup.py clean) -(cd pysander && /bin/rm -fr build/) -(/bin/rm -rf pytraj/scripts/*.pyc) -(cd pytraj && /bin/rm -fr build/) -(cd pymdgx && /bin/rm -fr build/) -(cd pdb4amber && /bin/rm -fr build/) -(cd cphstats && $(MAKE) clean ) -(cd lib && $(MAKE) clean) -(cd addles && $(MAKE) clean) -(cd sander && $(MAKE) clean) -(cd nmr_aux && $(MAKE) clean) -(cd nmode && $(MAKE) clean) -(cd emil && $(MAKE) clean) -(cd sebomd && $(MAKE) clean) # -(cd quick && $(MAKE) clean) -(cd nfe-umbrella-slice && $(MAKE) clean) -(cd pymsmt && $(MAKE) clean) -(cd netcdf-4.3.0 && $(MAKE) clean) -(cd netcdf-fortran-4.2 && $(MAKE) clean) # uninstall Amber stuff, but leave behind (for example) files # created by configure_mpich, configure_python, configure_openmpi uninstall: netcdf_uninstall -(cd ucpp-1.3 && $(MAKE) uninstall ) -(cd byacc && $(MAKE) uninstall ) -(cd cifparse && $(MAKE) uninstall ) -(cd nab && $(MAKE) uninstall ) -(cd sff && $(MAKE) uninstall ) # -(cd nss && $(MAKE) uninstall ) -(cd leap && $(MAKE) uninstall ) -(cd arpack && $(MAKE) uninstall ) -(cd blas && $(MAKE) uninstall ) -($(RM) -f $(LIBDIR)/libxblas.a ) -(cd lapack && $(MAKE) uninstall ) -(cd c9x-complex && $(MAKE) uninstall ) -(cd etc && $(MAKE) uninstall ) -(cd chamber && $(MAKE) uninstall ) -(cd pbsa && $(MAKE) uninstall ) -(cd gbnsr6 && $(MAKE) uninstall ) -(cd antechamber && $(MAKE) uninstall ) -(cd sqm && $(MAKE) uninstall ) -(cd lib && $(MAKE) uninstall ) -(cd ptraj && $(MAKE) uninstall ) -(cd reduce && $(MAKE) uninstall ) -(cd mdgx && $(MAKE) uninstall ) -(cd xtalutil && $(MAKE) uninstall ) -(cd saxs && $(MAKE) uninstall ) -(cd paramfit && $(MAKE) uninstall ) -(cd rism && $(MAKE) uninstall ) -(cd fftw-3.3 && $(MAKE) uninstall) -(cd cpptraj && $(MAKE) uninstall) -(cd mmpbsa_py && $(MAKE) uninstall) -(cd mm_pbsa && $(MAKE) uninstall) -(cd FEW && $(MAKE) uninstall) # -(/bin/rm -fr $(BINDIR)/*parmed $(BINDIR)/pdb4amber $(BINDIR)/packmol-memgen\ # $(BINDIR)/packmol $(BINDIR)/memembed) -(cd amberlite && $(MAKE) uninstall ) -/bin/rm -f ../test/numprocs -/bin/rm -fr $(BINDIR)/ncmpidump $(BINDIR)/ncmpigen $(BINDIR)/ncvalid $(LIBDIR)/libnetcdf* -(cd $(BINDIR) && /bin/rm -f charmmlipid2amber.py cpinutil.py ceinutil.py \ mdout_analyzer.py finddgref.py fitpkaeo.py fixremdcouts.py genremdinputs.py softcore_setup.py -(cd $(LIBDIR) && /bin/rm -f libxblas-amb.a libfftw3_mpi.a libfftw3_mpi.la) -(cd $(LIBDIR) && /bin/rm -f libmdgx.so) -(cd $(LIBDIR) && /bin/rm -f libemil.a) -(cd $(LIBDIR) && /bin/rm -f libcpptraj.so) -(cd $(INCDIR) && /bin/rm -f fftw3-mpi.f03 fftw3-mpi.h) -(cd lib && $(MAKE) uninstall) -(cd addles && $(MAKE) uninstall) -(cd sander && $(MAKE) uninstall.serial uninstall.parallel) # -(cd quick && $(MAKE) uninstall) -(cd nfe-umbrella-slice && $(MAKE) uninstall) -(cd nmr_aux && $(MAKE) uninstall) -(cd nmode && $(MAKE) uninstall) -(cd cphstats && $(MAKE) uninstall) -(cd pymsmt && $(MAKE) uninstall) -(cd $(LIBDIR) && /bin/rm -fr python*/) -/bin/rm -f config.h ../../config.h $(LIBDIR)/libxblas-amb.a: (cd xblas && $(MAKE) -j 1 lib-amb && mv libxblas-amb.a $(LIBDIR) ) $(LIBDIR)/libfftw3.a $(LIBDIR)/libfftw3_mpi.a: cd fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install; THIRDPARTY: $(XBLAS) $(FFTW3) math_libraries: (cd arpack && $(MAKE) install ) (cd lapack && $(MAKE) $(LAPACK) ) (cd blas && $(MAKE) $(BLAS) ) cuda_serial: math_libraries (cd pbsa && $(MAKE) clean && $(MAKE) install ) $(MAKE) build_cpptraj @echo "AmberTools serial CUDA install complete." # quick # (cd quick && $(MAKE) cuda) cuda_parallel: math_libraries $(MAKE) build_cpptraj @echo "AmberTools parallel CUDA install complete." ompmpi: math_libraries $(MAKE) build_cpptraj @echo "AmberTools OpenMP/MPI install complete." mic2: configured_mic2 @echo "$(AMBERTOOLS) has no mic2-enabled components" mic: configured_mic @echo "$(AMBERTOOLS) has no mic-enabled components" mic_parallel: configured_mic configured_parallel @echo "$(AMBERTOOLS) has no mic-enabled components" mic_offload: configured_mic_offload @echo "$(AMBERTOOLS) has no mic-enabled components" #Rule for building python code #all_python: parmed pymsmt pytraj pysander #python_serial:: parmed mmpbsa_py pysander pymsmt $(PYTRAJ) pdb4amber packmol-memgen # $(PYTHON) fix_conda_fortran.py python_parallel:: parmed mmpbsa_py_parallel # Rule for building cpptraj build_cpptraj: $(FFTW3) (cd cpptraj && $(MAKE) install) # Rule for building libcpptraj libcpptraj: (cd cpptraj && $(MAKE) libcpptraj) # Add a rule to build chamber for anyone that wants to compile it easily chamber:: (cd chamber && $(MAKE) install ) # Experimental rule for ambermini ambermini:: (cd byacc && make install ) (cd cifparse && make install ) (cd xblas && make -j 1 lib-amb && mv libxblas-amb.a $(AMBER_PREFIX)/lib/) (cd leap && make install) (cd sqm && make install) (cd antechamber && make install) (cd reduce && make install) (cd paramfit && make install) # Python package standalone rules pytraj:: ifeq ($(INSTALLTYPE), openmp) (cd pytraj && AMBERHOME=$(AMBER_SOURCE) AMBER_PREFIX=$(AMBER_PREFIX) $(PYINSTALL)) else ifeq ($(INSTALLTYPE), serial) (cd pytraj && AMBERHOME=$(AMBER_SOURCE) AMBER_PREFIX=$(AMBER_PREFIX) $(PYINSTALL) --disable-openmp) endif no_pytraj: @echo "No python development headers installed; skipping pytraj." no_libcpptraj: @echo "Pytraj is not being installed. Skipping libcpptraj." #packmol-memgen:: #(if [ $(MEMEMBED) = "yes" ]; then \ # cd packmol_memgen && $(PYINSTALL) && cp packmol_memgen/lib/packmol/packmol #packmol_memgen/lib/memembed/bin/memembed $(BINDIR); \ #else \ # cd packmol_memgen && $(PYINSTALL) --no-memembed && cp packmol_memgen/lib/#packmol/packmol $(BINDIR); \ fi;\ ) parmed:: (cd parmed && $(PYINSTALL)) pymsmt:: (cd pymsmt && $(PYINSTALL)) pysander:: (cd pysander && $(MAKE) $(PYSANDER)) mmpbsa_py:: (cd mmpbsa_py && $(MAKE) install) mmpbsa_py_parallel:: (cd mmpbsa_py && $(MAKE) parallel) pymdgx:: (cd pymdgx && $(PYINSTALL)) pdb4amber:: (cd pdb4amber && $(PYINSTALL)) pdb4amber.develop:: # Install development version so you can edit file in source folder, run code without install again. # Note: if you install develop version, do not use "pip uninstall", you must use # make pdb4amber.develop_uninstall (cd pdb4amber && PYTHONPATH=$(PYTHONPATH) $(PYTHON) setup.py develop $(PYTHON_INSTALL)) pdb4amber.develop_uninstall: (cd pdb4amber && PYTHONPATH=$(PYTHONPATH) $(PYTHON) setup.py develop $(PYTHON_INSTALL) --uninstall)