103 lines
4.7 KiB
Makefile
103 lines
4.7 KiB
Makefile
![]() |
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|||
|
# +
|
|||
|
# Hybrid Platform for Engineering and Research of Flows (HyperFlow) +
|
|||
|
# (C)Zhang Laiping and He Xin +
|
|||
|
# State Key Laboratory of Aerodynamics +
|
|||
|
# Computational Aerodynamics Institute +
|
|||
|
# China Aerodynamics Research and Development Center +
|
|||
|
# Since 2007 +
|
|||
|
# +
|
|||
|
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|||
|
#! @file Makefile
|
|||
|
#! @brief It defines the configuration options.
|
|||
|
#! @author Bell.
|
|||
|
|
|||
|
########## User input if the 3rdparty libraries have been changed: Start #####
|
|||
|
hdf5_version = 1.8.8-p1
|
|||
|
cgns_version = 3.3.0
|
|||
|
parmetis_version = 4.0.3
|
|||
|
metis_version = 5.0.1
|
|||
|
########## User input if the 3rdparty libraries have been changed: End #######
|
|||
|
|
|||
|
# Number of processor to parallel compiling.
|
|||
|
nProcessor = 64
|
|||
|
cc = mpicc
|
|||
|
cxx = mpicxx
|
|||
|
|
|||
|
# Basically envioment informations.
|
|||
|
cputype = $(shell uname -m | sed "s/\\ /_/g")
|
|||
|
systype = $(shell uname -s)
|
|||
|
PATH_MPICC = $(shell which mpicc)
|
|||
|
PATH_MPICXX = $(shell which mpicxx)
|
|||
|
PATH_MPIEXEC = $(shell which mpiexec)
|
|||
|
# Path for 3rdparty.
|
|||
|
PARMETISBUILDDIR = build/$(systype)-$(cputype)
|
|||
|
LIB_SOURCE_DIR = 3rdparty
|
|||
|
LIB_BINARY_DIR = $(LIB_SOURCE_DIR)/liblinux/$(systype)-$(cputype)
|
|||
|
LIB_HDF5_INCLUDE_DIR = $(LIB_SOURCE_DIR)/HDF5/include
|
|||
|
|
|||
|
define run-config
|
|||
|
# Important: the default path is the one of Makefile's, except for '&&' connectivity.
|
|||
|
# Boost/blitz/eigen
|
|||
|
cd $(LIB_SOURCE_DIR) && tar -xvf eigen.tar.gz
|
|||
|
|
|||
|
mkdir -p $(LIB_BINARY_DIR)
|
|||
|
mkdir -p $(LIB_HDF5_INCLUDE_DIR)
|
|||
|
|
|||
|
# Tecplot.
|
|||
|
# Tecplot lib could not been compiled, must be installed for different linux platform, so copy it directly.
|
|||
|
# it's supported only for Linux-aarch64 and Linux-x86_64 now.
|
|||
|
cd $(LIB_SOURCE_DIR) && cp libtecio-$(systype)-$(cputype).a $(CURDIR)/$(LIB_BINARY_DIR)/libtecio.a
|
|||
|
|
|||
|
# HDF5
|
|||
|
cd $(LIB_SOURCE_DIR) && tar -xvf hdf5-$(hdf5_version).tar.gz
|
|||
|
cd $(LIB_SOURCE_DIR)/hdf5-$(hdf5_version) && mkdir build && mkdir lib && cd build && cmake .. -DHDF5_ENABLE_LARGE_FILE=ON -DCMAKE_INSTALL_PREFIX=../lib -DHDF5_ENABLE_PARALLEL=ON && cmake .. -DMPI_COMPILER=$(PATH_MPICC) -DMPIEXEC=$(PATH_MPIEXEC) && make -j $(nProcessor) && make install
|
|||
|
cp $(CURDIR)/$(LIB_SOURCE_DIR)/hdf5-$(hdf5_version)/lib/lib/libhdf5.a $(CURDIR)/$(LIB_BINARY_DIR)
|
|||
|
|
|||
|
# CGNS
|
|||
|
cd $(LIB_SOURCE_DIR) && tar -xvf cgns-$(cgns_version).tar.gz
|
|||
|
cd $(LIB_SOURCE_DIR)/CGNS-$(cgns_version) && mkdir build && mkdir lib && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$(LIB_SOURCE_DIR)/CGNS-$(cgns_version)/lib -DCGNS_ENABLE_HDF5=ON -DHDF5_DIR=$(CURDIR)/$(LIB_SOURCE_DIR)/hdf5-$(hdf5_version)/build -DHDF5_NEED_MPI=ON -DMPIEXEC=$(PATH_MPIEXEC) -DMPI_COMPILER=$(PATH_MPICC) && make -j $(nProcessor) && make install && cp $(LIB_SOURCE_DIR)/CGNS-$(cgns_version)/lib/lib/libcgns.a $(CURDIR)/$(LIB_BINARY_DIR)
|
|||
|
|
|||
|
# Metis && Parmetis.
|
|||
|
cd $(LIB_SOURCE_DIR) && tar -xvf parmetis-$(parmetis_version).tar.gz
|
|||
|
cd $(LIB_SOURCE_DIR)/parmetis-$(parmetis_version) && make config prefix=$(LIB_SOURCE_DIR)/parmetis-$(parmetis_version)
|
|||
|
cd $(LIB_SOURCE_DIR)/parmetis-$(parmetis_version)/$(PARMETISBUILDDIR) && make -j $(nProcessor)
|
|||
|
cp $(LIB_SOURCE_DIR)/parmetis-$(parmetis_version)/$(PARMETISBUILDDIR)/libparmetis/libparmetis.a $(CURDIR)/$(LIB_BINARY_DIR)
|
|||
|
cd $(LIB_SOURCE_DIR) && tar -xvf metis-$(metis_version).tar.gz
|
|||
|
cd $(LIB_SOURCE_DIR)/metis-$(metis_version) && make config prefix=$(LIB_SOURCE_DIR)/metis-$(metis_version)
|
|||
|
cd $(LIB_SOURCE_DIR)/metis-$(metis_version)/$(PARMETISBUILDDIR) && make -j $(nProcessor)
|
|||
|
cp $(LIB_SOURCE_DIR)/metis-$(metis_version)/$(PARMETISBUILDDIR)/libmetis/libmetis.a $(CURDIR)/$(LIB_BINARY_DIR)
|
|||
|
|
|||
|
# Build PHengLEIv3d0
|
|||
|
mkdir build
|
|||
|
cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$(CURDIR)/build
|
|||
|
cd build && make -j$(nProcessor)
|
|||
|
endef
|
|||
|
|
|||
|
#all clean install:
|
|||
|
# @if [ ! -f $(BUILDDIR)/Makefile ]; then \
|
|||
|
# more BUILD.txt; \
|
|||
|
# else \
|
|||
|
# make -C $(BUILDDIR) $@ $(MAKEFLAGS); \
|
|||
|
# fi
|
|||
|
|
|||
|
#uninstall:
|
|||
|
# xargs rm < $(BUILDDIR)/install_manifest.txt
|
|||
|
|
|||
|
config:distclean
|
|||
|
$(run-config)
|
|||
|
|
|||
|
distclean:
|
|||
|
rm -rf $(LIB_SOURCE_DIR)/hdf5-$(hdf5_version)/build
|
|||
|
rm -rf $(LIB_SOURCE_DIR)/CGNS-$(cgns_version)/build
|
|||
|
rm -rf $(LIB_BINARY_DIR)
|
|||
|
|
|||
|
#remake:
|
|||
|
# find . -name CMakeLists.txt -exec touch {} ';'
|
|||
|
|
|||
|
#dist:
|
|||
|
# util/mkdist.sh $(PKGNAME)
|
|||
|
|
|||
|
|
|||
|
#.PHONY: config distclean dist all clean install uninstall remake
|