Skip to content

Instantly share code, notes, and snippets.

@ryanolson
Created July 17, 2015 16:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryanolson/e201432faec0aef01a0c to your computer and use it in GitHub Desktop.
Save ryanolson/e201432faec0aef01a0c to your computer and use it in GitHub Desktop.
Building NWChem 6.5 with the DMAPP-based GA from ryanolson/ga
modules:
- load:
- PrgEnv-gnu
- craype-haswell
- craype-hugepages8M
- perftools
environment:
- setenv:
- FC: ftn
- CC: cc
- CXX: CC
- NWCHEM_TOP: ${PWD}
- NWCHEM_TARGET: LINUX64
- NWCHEM_MODULES: qm
- USE_MPI: "y"
- USE_MPIF: "y"
- USE_MPIF4: "y"
- USE_SCALAPACK: "y"
- USE_64TO32: "y"
- LIBMPI: " "
- ARMCI_NETWORK: DMAPP
- BLASOPT: -lsci_gnu
- BLAS_LIB: -lsci_gnu
- LAPACK_LIB: -lsci_gnu
- SCALAPACK_LIB: -lsci_gnu
- SCALAPACK: "${SCALAPACK_LIB}"
script:
- cd src
- make nwchem_config
- make 64_to_32
- BUILDR_ENABLED=True make FC=ftn GA_DIR=ga ARMCI_NETWORK=DMAPP DMAPP_INCLUDE=$CRAY_DMAPP_INCLUDE_OPTS DMAPP_LIB=$CRAY_DMAPP_POST_LINK_OPTS
#!/bin/bash
svn checkout https://svn.pnl.gov/svn/nwchem/branches/release-6-5-patches nwchem-6.5
cd nwchem-6.5/src/tools
git clone https://github.com/ryanolson/ga.git ga-github
ln -s ga-github ga
#
# This makefile has to be processed by GNU make
#
include ../config/makefile.h
SHELL = /bin/sh
ifdef OLD_GA
#
# GNUmakefile-based build of GA
#
export ARMCI_DIR_NAME := armci
ifeq ($(ARMCI_NETWORK),PORTALS)
export ARMCI_DIR_NAME := armci-portals
endif
ifdef NWCHEM_TARGET_CPU
TARGET_CPU = $(NWCHEM_TARGET_CPU)
endif
MAKESUBDIRS = for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit 1 ; done
SUBDIRS = ma global tcgmsg-mpi LinAlg/lapack+blas tcgmsg $(ARMCI_DIR_NAME)/src pario
ifndef USE_MPI
EXTRA_INC = "TCG_INCLUDE=../../include"
EXTRA = "MSG_COMMS=TCGMSG"
MP_VER = TCG
else
MP_VER = MPI
endif
GA_VER = O
ifndef TARGET
info:
@echo ''
@echo '*** This is the Global Arrays package ****'
@echo "*** you need to define TARGET machine, for example"
@echo "*** setenv TARGET SUN"
@echo "*** or "
@echo "*** make TARGET=SUN"
@echo ''
endif
export TARGET TARGET_CPU BINDIR
tools: $(STAMP) lib/$(TARGET) include
@echo ''
@echo '*** Building Parallel Tools ****'
@echo ''
@echo '>>> making Memory Allocator (MA) library <<< '
(cd ./ma; $(MAKE))
ifdef USE_MPI
@echo '>>> making TCGMSG library on top of MPI <<< '
(cd ./tcgmsg-mpi; $(MAKE) MACHINE=$(TARGET) )
else
@echo '>>> making TCGMSG library <<<'
(cd ./tcgmsg; $(MAKE) MACHINE=$(TARGET))
endif
@echo '>>> making Linear Algebra utility libraries <<< '
(cd ./LinAlg/lapack+blas; $(MAKE))
@echo '>>> making ARMCI remote memory copy library <<< '
(cd ./$(ARMCI_DIR_NAME)/src; \
$(MAKE) LIB_DISTRIB=../../lib $(EXTRA) $(EXTRA_INC) )
@echo '>>> making Global Arrays library <<< '
(cd ./global; $(MAKE) DIAG=PAR )
(cd ./pario; $(MAKE))
(../util/util_ga_version.bash ga-4-3)
lib/$(TARGET):
$(MKDIR) -p $@
include:
$(MKDIR) -p $@
include_stamp: tools
clean:
$(MAKESUBDIRS) $^
$(RM) -r include/* *.stamp
(cd ./$(ARMCI_DIR_NAME)/src; $(MAKE) LIB_DISTRIB=../../lib clean )
STAMP = $(TARGET)-$(MP_VER)-$(GA_VER).stamp
$(STAMP):
$(MAKE) clean
echo "" > $(STAMP)
realclean: clean
else
#
# GNU Autotools-based build of GA
#
# Conversion of ARMCI env vars to configure options
ifeq ($(ARMCI_NETWORK),OPENIB)
OPENIB_COMBINED =
ifneq ($(IB_INCLUDE),)
OPENIB_COMBINED += $(IB_INCLUDE)
endif
ifneq ($(IB_LIB),)
OPENIB_COMBINED += $(IB_LIB)
endif
ifneq ($(IB_LIB_NAME),)
OPENIB_COMBINED += $(IB_LIB_NAME)
endif
ifeq ($(strip $(OPENIB_COMBINED)),)
MAYBE_ARMCI = --with-openib
else
MAYBE_ARMCI = --with-openib="$(strip $(OPENIB_COMBINED))"
endif
endif # OPENIB
ifneq ($(findstring BGML,$(ARMCI_NETWORK)),)
BGML_COMBINED =
ifneq ($(BGML_INCLUDE),)
BGML_COMBINED += $(BGML_INCLUDE)
endif
ifneq ($(BGMLMPI_INCLUDE),)
BGML_COMBINED += $(BGMLMPI_INCLUDE)
endif
ifneq ($(BGML_LIB),)
BGML_COMBINED += $(BGML_LIB)
endif
ifneq ($(BGMLMPI_LIB),)
BGML_COMBINED += $(BGMLMPI_LIB)
endif
ifneq ($(BGML_LIB_NAME),)
BGML_COMBINED += $(BGML_LIB_NAME)
endif
ifneq ($(BGMLMPI_LIB_NAME),)
BGML_COMBINED += $(BGMLMPI_LIB_NAME)
endif
BGML_COMBINED := $(strip $(BGML_COMBINED))
ifeq ($(BGML_COMBINED),)
MAYBE_ARMCI = --with-bgml
else
MAYBE_ARMCI = --with-bgml="$(BGML_COMBINED)"
endif
endif # BGML
ifneq ($(findstring DCMF,$(ARMCI_NETWORK)),)
DCMF_COMBINED =
ifneq ($(DCMF_INCLUDE),)
DCMF_COMBINED += $(DCMF_INCLUDE)
endif
ifneq ($(DCMFMPI_INCLUDE),)
DCMF_COMBINED += $(DCMFMPI_INCLUDE)
endif
ifneq ($(DCMF_LIB),)
DCMF_COMBINED += $(DCMF_LIB)
endif
ifneq ($(DCMFMPI_LIB),)
DCMF_COMBINED += $(DCMFMPI_LIB)
endif
ifneq ($(DCMF_LIB_NAME),)
DCMF_COMBINED += $(DCMF_LIB_NAME)
endif
ifneq ($(DCMFMPI_LIB_NAME),)
DCMF_COMBINED += $(DCMFMPI_LIB_NAME)
endif
DCMF_COMBINED := $(strip $(DCMF_COMBINED))
ifeq ($(DCMF_COMBINED),)
MAYBE_ARMCI = --with-dcmf
else
MAYBE_ARMCI = --with-dcmf="$(DCMF_COMBINED)"
endif
endif # DCMF
ifeq ($(ARMCI_NETWORK),GEMINI)
GEMINI_COMBINED =
ifneq ($(GEMINI_INCLUDE),)
GEMINI_COMBINED += $(GEMINI_INCLUDE)
endif
ifneq ($(GEMINI_LIB),)
GEMINI_COMBINED += $(GEMINI_LIB)
endif
ifneq ($(GEMINI_LIB_NAME),)
GEMINI_COMBINED += $(GEMINI_LIB_NAME)
endif
GEMINI_COMBINED := $(strip $(GEMINI_COMBINED))
ifeq ($(GEMINI_COMBINED),)
MAYBE_ARMCI = --with-gemini
else
MAYBE_ARMCI = --with-gemini="$(GEMINI_COMBINED)"
endif
endif # GEMINI
ifeq ($(ARMCI_NETWORK),DMAPP)
DMAPP_COMBINED =
ifneq ($(CRAY_DMAPP_INCLUDE_OPTS),)
DMAPP_COMBINED += $(CRAY_DMAPP_INCLUDE_OPTS)
endif
ifneq ($(CRAY_DMAPP_POST_LINK_OPTS),)
DMAPP_COMBINED += $(CRAY_DMAPP_POST_LINK_OPTS)
endif
ifneq ($(DMAPP_INCLUDE),)
DMAPP_COMBINED += $(DMAPP_INCLUDE)
endif
ifneq ($(DMAPP_LIB),)
DMAPP_COMBINED += $(DMAPP_LIB)
endif
ifneq ($(DMAPP_LIB_NAME),)
DMAPP_COMBINED += $(DMAPP_LIB_NAME)
endif
DMAPP_COMBINED := $(strip $(DMAPP_COMBINED))
ifeq ($(DMAPP_COMBINED),)
MAYBE_ARMCI = --with-dmapp
else
MAYBE_ARMCI = --with-dmapp="$(DMAPP_COMBINED)"
endif
endif # DMAPP used for Gemini and Aries Cray Networks
ifeq ($(ARMCI_NETWORK),PORTALS)
PORTALS_COMBINED =
ifneq ($(PORTALS_INCLUDE),)
PORTALS_COMBINED += $(PORTALS_INCLUDE)
endif
ifneq ($(PORTALS_LIB),)
PORTALS_COMBINED += $(PORTALS_LIB)
endif
ifneq ($(PORTALS_LIB_NAME),)
PORTALS_COMBINED += $(PORTALS_LIB_NAME)
endif
PORTALS_COMBINED := $(strip $(PORTALS_COMBINED))
ifeq ($(PORTALS_COMBINED),)
MAYBE_ARMCI = --with-portals
else
MAYBE_ARMCI = --with-portals="$(PORTALS_COMBINED)"
endif
endif # PORTALS
ifeq ($(ARMCI_NETWORK),GM)
GM_COMBINED =
ifneq ($(GM_INCLUDE),)
GM_COMBINED += $(GM_INCLUDE)
endif
ifneq ($(GM_LIB),)
GM_COMBINED += $(GM_LIB)
endif
ifneq ($(GM_LIB_NAME),)
GM_COMBINED += $(GM_LIB_NAME)
endif
GM_COMBINED := $(strip $(GM_COMBINED))
ifeq ($(GM_COMBINED),)
MAYBE_ARMCI = --with-gm
else
MAYBE_ARMCI = --with-gm="$(GM_COMBINED)"
endif
endif # GM
ifeq ($(ARMCI_NETWORK),VIA)
VIA_COMBINED =
ifneq ($(VIA_INCLUDE),)
VIA_COMBINED += $(VIA_INCLUDE)
endif
ifneq ($(VIA_LIB),)
VIA_COMBINED += $(VIA_LIB)
endif
ifneq ($(VIA_LIB_NAME),)
VIA_COMBINED += $(VIA_LIB_NAME)
endif
VIA_COMBINED := $(strip $(VIA_COMBINED))
ifeq ($(VIA_COMBINED),)
MAYBE_ARMCI = --with-via
else
MAYBE_ARMCI = --with-via="$(VIA_COMBINED)"
endif
endif # VIA
ifeq ($(ARMCI_NETWORK),MELLANOX)
MELLANOX_COMBINED =
ifneq ($(IB_INCLUDE),)
MELLANOX_COMBINED += $(IB_INCLUDE)
endif
ifneq ($(IB_LIB),)
MELLANOX_COMBINED += $(IB_LIB)
endif
ifneq ($(IB_LIB_NAME),)
MELLANOX_COMBINED += $(IB_LIB_NAME)
endif
MELLANOX_COMBINED := $(strip $(MELLANOX_COMBINED))
ifeq ($(MELLANOX_COMBINED),)
MAYBE_ARMCI = --with-openib
else
MAYBE_ARMCI = --with-openib="$(MELLANOX_COMBINED)"
endif
endif # MELLANOX
ifeq ($(ARMCI_NETWORK),QUADRICS)
endif # QUADRICS
ifeq ($(ARMCI_NETWORK),ELAN3)
endif # ELAN3
ifeq ($(ARMCI_NETWORK),ELAN4)
endif # ELAN4
ifeq ($(ARMCI_NETWORK),LAPI)
LAPI_COMBINED =
ifneq ($(LAPI_INCLUDE),)
LAPI_COMBINED += $(LAPI_INCLUDE)
endif
ifneq ($(LAPI_LIB),)
LAPI_COMBINED += $(LAPI_LIB)
endif
ifneq ($(LAPI_LIB_NAME),)
LAPI_COMBINED += $(LAPI_LIB_NAME)
endif
LAPI_COMBINED := $(strip $(LAPI_COMBINED))
ifeq ($(LAPI_COMBINED),)
MAYBE_ARMCI = --with-lapi
else
MAYBE_ARMCI = --with-lapi="$(LAPI_COMBINED)"
endif
endif # LAPI
# ARMCI over MPI using MPI-Spawn to create the extra data server process
ifeq ($(ARMCI_NETWORK),MPI-SPAWN)
MAYBE_ARMCI = --with-mpi-spawn
endif # MPI-SPAWN
# ARMCI with progress thread
ifeq ($(ARMCI_NETWORK),MPI-PT)
MAYBE_ARMCI = --with-mpi-pt
endif # MPI-PT
# ARMCI over Multi-threaded MPI
ifeq ($(ARMCI_NETWORK),MPI-MT)
MAYBE_ARMCI = --with-mpi-mt
endif # MPI-MT
# ARMCI over MPI-1 with progress rank
ifeq ($(ARMCI_NETWORK),MPI-PR)
MAYBE_ARMCI = --with-mpi-pr
endif # MPI-PR
# ARMCI over MPI without data server
#ifeq ($(ARMCI_NETWORK),$(findstring $(ARMCI_NETWORK),MPI_TS MPI-TS))
# my mac barf's on this for some reason...removing findstring...EJB
ifeq ($(ARMCI_NETWORK),MPI_TS)
MAYBE_ARMCI = --with-mpi-ts
endif # MPI_TS
ifeq ($(ARMCI_NETWORK),MPI-TS)
MAYBE_ARMCI = --with-mpi-ts
endif # MPI-TS
ifeq ($(ARMCI_NETWORK),ARMCI)
ifdef EXTERNAL_ARMCI_PATH
MAYBE_ARMCI = --with-armci=$(EXTERNAL_ARMCI_PATH)
else
MAYBE_ARMCI = --with-armci
endif
endif # ARMCIARMCI
ifeq ($(ARMCI_NETWORK),OFA)
MAYBE_ARMCI = --with-ofa
endif # OFAOFA
ifeq ($(ARMCI_NETWORK),SOCKETS)
MAYBE_ARMCI = --with-sockets
endif # SOCKETS
ifdef USE_MPI
MPI_COMBINED =
ifneq ($(MPI_INCLUDE),)
MPI_COMBINED += $(patsubst -I-I%,-I%,-I${MPI_INCLUDE})
endif
ifneq ($(MPI_LIB),)
MPI_COMBINED += $(patsubst -L-L%,-L%,-L${MPI_LIB})
endif
ifneq ($(LIBMPI),)
MPI_COMBINED += $(LIBMPI)
endif
ifneq ($(MPI_LOC),)
MPI_COMBINED += $(MPI_LOC)
endif
MPI_COMBINED := $(strip $(MPI_COMBINED))
ifeq ($(MPI_COMBINED),)
MAYBE_MPI = --with-mpi
ifeq ($(MPICC),)
ifneq ($(CC),)
MAYBE_MPICC = MPICC="$(strip $(CC))"
endif
else
MAYBE_MPICC = MPICC="$(strip $(MPICC))"
endif
ifeq ($(MPIF77),)
ifneq ($(FC),)
MAYBE_MPIF77 = MPIF77="$(strip $(FC))"
else
ifneq ($(F77),)
MAYBE_MPIF77 = MPIF77="$(strip $(F77))"
endif
endif
else
MAYBE_MPIF77 = MPIF77="$(strip $(MPIF77))"
endif
ifneq ($(MPIFC),)
MAYBE_MPIF77 = MPIF77="$(strip $(MPIFC))"
endif
else
MAYBE_MPI = --with-mpi="$(MPI_COMBINED)"
endif
else # USE_MPI
#old MAYBE_MPI = --without-mpi
nompierror:
@echo " "
@echo " " You must set USE_MPI and
@echo " " have a working MPI installation
@echo " " to compile NWChem
@echo
@exit 1
endif # USE_MPI
ifneq ($(CC),)
MAYBE_CC = CC="$(strip $(CC))"
endif
ifneq ($(FC),)
MAYBE_F77 = F77="$(strip $(FC))"
else
ifneq ($(F77),)
MAYBE_F77 = F77="$(strip $(F77))"
endif
endif
# There really is too much logic here. Overall the aim is that if
# BLASOPT is set to something sensible, i.e. not "" or " " then
# that value should be used, otherwise if BLAS_LIB is set to something
# sensible that value should be used, and otherwise do without an
# external BLAS library and build the internal source code version
# instead. HvD.
ifneq ($(BLASOPT),)
ifneq ($(BLAS_LIB),)
ifeq ($(BLAS_SIZE),4)
MAYBE_BLAS = --with-blas4="$(strip $(BLAS_LIB))"
else
MAYBE_BLAS = --with-blas8="$(strip $(BLAS_LIB))"
endif
else
ifeq ($(strip $(BLASOPT)),)
MAYBE_BLAS = --without-blas
else
ifeq ($(BLAS_SIZE),4)
MAYBE_BLAS = --with-blas4="$(strip $(BLASOPT))"
else
MAYBE_BLAS = --with-blas8="$(strip $(BLASOPT))"
endif
endif
endif
else
ifneq ($(BLAS_LIB),)
ifeq ($(BLAS_SIZE),4)
MAYBE_BLAS = --with-blas4="$(strip $(BLAS_LIB))"
else
MAYBE_BLAS = --with-blas8="$(strip $(BLAS_LIB))"
endif
else
MAYBE_BLAS = --without-blas
endif
endif
ifneq ($(LAPACK_LIB),)
ifeq ($(LAPACK_SIZE),4)
MAYBE_LAPACK = --with-lapack="$(strip $(LAPACK_LIB))"
else
MAYBE_LAPACK = --with-lapack="$(strip $(LAPACK_LIB))"
endif
else
MAYBE_LAPACK = --without-lapack
endif
ifneq ($(SCALAPACK_LIB),)
ifeq ($(SCALAPACK_SIZE),4)
MAYBE_SCALAPACK = --with-scalapack="$(strip $(SCALAPACK_LIB))"
else
MAYBE_SCALAPACK = --with-scalapack8="$(strip $(SCALAPACK_LIB))"
endif
endif
ifneq ($(SCALAPACK),)
ifeq ($(SCALAPACK_SIZE),8)
MAYBE_SCALAPACK = --with-scalapack8="$(strip $(SCALAPACK))"
else
MAYBE_SCALAPACK = --with-scalapack="$(strip $(SCALAPACK))"
endif
endif
ifeq ($(SCALAPACK_LIB),)
ifeq ($(SCALAPACK),)
MAYBE_SCALAPACK = --without-scalapack
endif
endif
ifeq ($(TARGET),BGP)
MAYBE_HOST = --host=powerpc-bgp-linux
FFLAGS="-g"
CFLAGS="-g"
CXXFLAGS="-g"
endif
ifdef USE_GPROF
FFLAGS="-pg"
CFLAGS="-pg"
CXXFLAGS="-pg"
FFLAGS_FORGA+="-pg"
CFLAGS_FORGA+="-pg"
CXXFLAGS_FORGA+="-pg"
endif
ifdef USE_OFFLOAD
MAYBE_OFFLOAD= INTEL_64ALIGN=1
endif
MAYBE_SYSVSHMEM= "ARMCI_DEFAULT_SHMMAX_UBOUND=131072"
GOTCGWIN32= $(shell $(CC) -dM -E - </dev/null 2> /dev/null |grep CYGWIN32|cut -c22)
GOTMINGW32= $(shell $(CC) -dM -E - </dev/null 2> /dev/null |grep MINGW32|cut -c21)
ifeq ($(GOTCGWIN32),1)
# weak pragmas not working with cygwin
MAYBE_OFFLOAD += --disable-weak
endif
ifeq ($(GOTMINGW32),1)
# weak pragmas not working with cygwin
MAYBE_OFFLOAD += --disable-weak
endif
ifdef FFLAGS_FORGA
MAYBE_FFLAGS=FFLAGS="$(FFLAGS_FORGA)"
endif
ifdef CFLAGS_FORGA
MAYBE_CFLAGS=CFLAGS="$(CFLAGS_FORGA)"
endif
ifdef CXXFLAGS_FORGA
MAYBE_CXXFLAGS=CXXFLAGS="$(CXXFLAGS_FORGA)"
endif
# End conversion of env vars to configure options
ifdef DEV_GA
GA_DIR = ga-dev
else
ifdef EXP_GA
GA_DIR = ga-exp1
else
GA_DIR = ga-5-3
endif
endif
GA_DIR = ga
ifndef ARMCI_NETWORK
ARMCI_NETWORK=MPI-TS
MAYBE_ARMCI = --with-mpi-ts
endif
#
# Apparently weak bindings do not work with CYGWIN64 at the moment. There seems
# to be an issue with the COFF object format that gets in the way (with ELF
# this is apparently not a problem). Some details can be found at
# http://cygwin.com/ml/cygwin-developers/2013-04/msg00008.html
# Anyway, I found when using weak bindings the code fails to link as the weak
# symbols cannot be found. HVD (2014 Nov 4).
#
ifeq ($(TARGET),CYGWIN64)
MAYBE_ARMCI += --disable-weak
endif # CYGWIN64
BUILDDIR = build
INSTALLDIR = install
CONFIGURE_PATH = ../$(GA_DIR)/configure
TOOLDIR = $(shell pwd)
CONFIGURE_ARGS = --prefix=$(TOOLDIR)/$(INSTALLDIR) $(MAYBE_HOST) --with-tcgmsg $(MAYBE_MPI) --enable-peigs --enable-underscoring --disable-mpi-tests $(MAYBE_SCALAPACK) $(MAYBE_LAPACK) $(MAYBE_BLAS) $(MAYBE_ARMCI) $(MAYBE_CC) $(MAYBE_MPICC) $(MAYBE_F77) $(MAYBE_MPIF77) $(MAYBE_FFLAGS) $(MAYBE_CFLAGS) $(MAYBE_CXXFLAGS) $(MAYBE_OFFLOAD) $(MAYBE_SYSVSHMEM) --host=x86_64-unknown-linux
SPACE :=
SPACE +=
STAMP_FC = $(subst /,-,$(subst $(SPACE),-,$(strip $(FC))).FC.stamp)
STAMP_CC = $(subst /,-,$(subst $(SPACE),-,$(strip $(CC))).CC.stamp)
STAMP_DIR = $(subst $(SPACE),-,$(strip $(GA_DIR))).DIR.stamp
$(INSTALLDIR)/lib/libga.a: $(BUILDDIR)/.libs/libga.a
@echo ''
@echo '*** Installing Parallel Tools ****'
@echo ''
@(cd $(BUILDDIR) && $(MAKE) install) || exit 1
$(BUILDDIR)/.libs/libga.a: $(BUILDDIR)/Makefile $(BUILDDIR)/armci/Makefile
@echo ''
@echo '*** Building Parallel Tools ****'
@echo ''
@(cd $(BUILDDIR) && $(MAKE)) || exit 1
configure_ga: $(BUILDDIR)/Makefile
$(BUILDDIR)/Makefile: $(GA_DIR)/Makefile.in $(BUILDDIR)/config.status
cd $(BUILDDIR) && $(SHELL) ./config.status
$(BUILDDIR)/armci/Makefile: $(GA_DIR)/armci/Makefile.in $(BUILDDIR)/armci/config.status
cd $(BUILDDIR)/armci && $(SHELL) ./config.status
$(BUILDDIR)/armci/config.status: $(BUILDDIR)/config.status
$(BUILDDIR)/config.status: $(GA_DIR)/configure $(STAMP_FC) $(STAMP_CC) $(STAMP_DIR)
@echo ''
@echo '*** Configuring Parallel Tools ****'
@echo ''
@(../util/util_ga_version.bash $(GA_DIR))
@(test -d $(BUILDDIR)) || mkdir $(BUILDDIR);
@(cd $(BUILDDIR) && echo $(CONFIGURE_PATH) $(CONFIGURE_ARGS) && BUILDR_ENABLED=False $(CONFIGURE_PATH) $(CONFIGURE_ARGS)) || exit 1
ifndef DONTCARE
$(GA_DIR)/Makefile.in:
@echo "No Global Arrays found: Attempting running ./get-tools"
./get-tools
$(GA_DIR)/configure: $(GA_DIR)/Makefile.in
@echo "No Global Arrays found: Attempting running ./get-tools"
./get-tools
touch $(GA_DIR)/configure
#$(GA_DIR)/armci/Makefile.in: $(GA_DIR)/configure
# @echo "No Global Arrays found: Attempting running ./get-tools"
# ./get-tools
# touch $(GA_DIR)/armci/Makefile.in
$(GA_DIR)/armci/configure: $(GA_DIR)/armci/Makefile.in
@echo "No Global Arrays found: Attempting running ./get-tools"
./get-tools
touch $(GA_DIR)/armci/configure
endif # DONTCARE
$(STAMP_FC):
rm -f ./*.FC.stamp
echo "" > $(STAMP_FC)
$(STAMP_CC):
rm -f ./*.CC.stamp
echo "" > $(STAMP_CC)
$(STAMP_DIR):
rm -rf $(BUILDDIR) $(INSTALLDIR)
rm -f ./*.DIR.stamp
echo "" > $(STAMP_DIR)
clean:
@test -e $(BUILDDIR)/Makefile && { cd $(BUILDDIR) && $(MAKE) clean; } || echo "Not configured"
realclean:
@rm -rf $(BUILDDIR) $(INSTALLDIR)
endif
#
# Common targets shared between GNUmakefile's and automake Makefiles
#
.PHONY: cleanF
cleanF:
@echo Not done here
.PHONY: cleanDEP
cleanDEP:
@echo Not done here
source:
depend:
@echo No dependency analysis here
sngl_to_dbl dbl_to_sngl 64_to_32 32_to_64:
@echo No blas conversion done here
#
# This is a convenience target that will make the TAGS file for current
# checked out source tree. This is only useful if you know something
# about emacs. Note: find, grep and etags must be in your path.
#
tags_file:
find . \( -name "*.[cfFh]" -o -name "*.fh" \) -print | grep -v "\./include" | grep -v "\./tools/include" | etags -
tags_clean:
find . -name TAGS -print -exec rm -f "{}" ";"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment