270 lines
9.2 KiB
Makefile
270 lines
9.2 KiB
Makefile
# -*- Makefile -*-
|
|
# Generic makefile for IMSL, MKL, blas/lapack, and FORTRAN libraries
|
|
# Generic makefile Tao's and Daniel's C routines
|
|
# Generic makefile for various machines
|
|
# All output is to OUT_DIR
|
|
|
|
# MACHINE
|
|
STANDALONE_HB = STANDALONE_HB
|
|
#MACOSX = MACOSX
|
|
|
|
# LIBRARIES
|
|
USE_TAO = USE_TAO
|
|
#USE_MKL = USE_MKL
|
|
#USE_IMSL = USE_IMSL
|
|
USE_LAPACK = USE_LAPACK
|
|
USE_FORTRAN = USE_FORTRAN
|
|
USE_MATH = USE_MATH
|
|
USE_GSL = USE_GSL
|
|
#USE_GSL_CBLAS = USE_GSL_CBLAS
|
|
|
|
|
|
WORK_DIR = .
|
|
OUT_DIR = ../bin
|
|
|
|
CFLAGS = -g -DINTELCMATHLIBRARY -ansi
|
|
|
|
# MACHINE DEPENDENT DIRECTORIES
|
|
|
|
# LAPTOP
|
|
ifdef USE_LAPTOP
|
|
WORK_DIR =/home/kalagman/Documents/InternshipJob/Dynare/
|
|
OUT_DIR = /home/kalagman/Documents/InternshipJob/Dynare/work/
|
|
|
|
CC = /usr/bin/gcc-4.3.2
|
|
CXX = g++
|
|
FC = gfortran
|
|
CFLAGS := $(CFLAGS) -static
|
|
|
|
TAO_DIR = $(WORK_DIR)/utilities/TZCcode
|
|
IMSL_BASE_DIR = /opt/vni/CTT6.0
|
|
|
|
GSL_INCLUDE_DIR = /usr/include/gsl
|
|
GSL_LIBS_DIR = /usr/lib
|
|
|
|
MKL_BASE_DIR = /usr
|
|
MKL_LIBS_DIR = $(MKL_BASE_DIR)/lib
|
|
MKL_LIBS = -llapack -lblas
|
|
|
|
NPSOL_DIR = /home/f1dfw14/data/npsol-5.0
|
|
|
|
FORTRAN_LIBS = /usr/lib/gcc/i586-manbo-linux-gnu/4.3.2/libgfortran.a
|
|
endif
|
|
|
|
ifdef USE_MICHEL_LAPTOP
|
|
|
|
CC = gcc
|
|
CXX = g++
|
|
#CC = /opt/intel/Compiler/11.0/074/bin/intel64/icc -no-multibyte-chars
|
|
FC = gfortran
|
|
CFLAGS := $(CFLAGS) -static
|
|
|
|
TAO_DIR = $(WORK_DIR)/utilities/TZCcode
|
|
|
|
GSL_INCLUDE_DIR = /usr/include/gsl
|
|
GSL_LIBS_DIR = /usr/lib
|
|
|
|
INTEL_LIBS_DIR = /opt/intel/Compiler/11.0/074/lib/intel64
|
|
INTEL_LIBS = -lguide
|
|
MKL_BASE_DIR = /opt/intel/Compiler/11.0/074/mkl
|
|
MKL_LIBS_DIR = $(MKL_BASE_DIR)/lib/em64t
|
|
MKL_LIBS = -lmkl_lapack -lmkl_em64t
|
|
|
|
endif
|
|
|
|
|
|
ifdef STANDALONE_HB
|
|
CC = gcc
|
|
CXX = g++
|
|
FC = gfortran
|
|
|
|
GSL_INCLUDE_DIR = /usr/local64/include/gsl
|
|
GSL_LIBS_DIR = /usr/local64/lib
|
|
|
|
TAO_DIR = $(WORK_DIR)/utilities/TZCcode
|
|
endif
|
|
|
|
#ifdef MACOSX
|
|
#MAC_LIBS = #-framework Accelerate #-lmx -lmex -lmat -lstdc++ -L/Applications/MATLAB_R2009b.app/bin/maci64/ -lmwblas -lmwlapack
|
|
#CFLAGS := $(CFLAGS) -DMACOSX
|
|
#endif
|
|
|
|
|
|
#################################################################################
|
|
VPATH =
|
|
INCLUDE_DIR = -I/Applications/MATLAB_R2010b.app/extern/include
|
|
LIBS_DIR =
|
|
LIBS = $(MAC_LIBS)
|
|
OBJS =
|
|
#################################################################################
|
|
|
|
### TAO'S FILES #################################################################
|
|
# TAO_DIR MUST be defined
|
|
ifdef USE_TAO
|
|
VPATH := $(VPATH) $(TAO_DIR)
|
|
INCLUDE_DIR := $(INCLUDE_DIR) -I$(TAO_DIR)
|
|
endif
|
|
#################################################################################
|
|
|
|
### GLS #########################################################################
|
|
# GSL_LIBS_DIR and GSL_INCLUDE_DIR muste be defined
|
|
ifdef USE_GSL
|
|
INCLUDE_DIR := $(INCLUDE_DIR) -I$(GSL_INCLUDE_DIR)
|
|
LIBS_DIR := $(LIBS_DIR) -L$(GSL_LIBS_DIR)
|
|
LIBS := $(LIBS) -lgsl
|
|
endif
|
|
#################################################################################
|
|
|
|
### GLS CBLAS ###################################################################
|
|
# GSL_LIBS_DIR and GSL_INCLUDE_DIR muste be defined
|
|
ifdef USE_GSL_CBLAS
|
|
ifndef USE_GSL
|
|
INCLUDE_DIR := $(INCLUDE_DIR) -I$(GSL_INCLUDE_DIR)
|
|
LIBS_DIR := $(LIBS_DIR) -L$(GSL_LIBS_DIR)
|
|
endif
|
|
LIBS := $(LIBS) -lgslcblas
|
|
endif
|
|
#################################################################################
|
|
|
|
### IMSL ########################################################################
|
|
# IMSL_BASE_DIR must be defined
|
|
ifdef USE_IMSL
|
|
USE_PTHREAD = USE_PTHREAD
|
|
IMSL_LIBS_DIR =$(IMSL_BASE_DIR)/lib/lib.linux_icc
|
|
INCLUDE_DIR := $(INCLUDE_DIR) -I$(IMSL_BASE_DIR)/include
|
|
LIBS_DIR := $(LIBS_DIR) -L$(IMSL_LIBS_DIR)
|
|
LIBS := $(LIBS) $(IMSL_LIBS_DIR)/libimslcmath.a $(IMSL_LIBS_DIR)/libimslcstat.a
|
|
endif
|
|
#################################################################################
|
|
|
|
### NPSOL #######################################################################
|
|
ifdef USE_NPSOL
|
|
NPSOL_LIBS = -lnpsol_f77 -llssol_f77
|
|
LIBS_DIR := $(LIBS_DIR) -L$(NPSOL_DIR)
|
|
LIBS := $(LIBS) $(NPSOL_LIBS)
|
|
endif
|
|
#################################################################################
|
|
|
|
### MKL #########################################################################
|
|
# MKL_BASE_DIR and MKL_LIBS must be defined
|
|
ifdef USE_MKL
|
|
USE_PTHREAD = USE_PTHREAD
|
|
INCLUDE_DIR := $(INCLUDE_DIR) -I$(MKL_BASE_DIR)/include
|
|
LIBS_DIR := $(LIBS_DIR) -Wl,-rpath=$(MKL_LIBS_DIR) -L$(MKL_LIBS_DIR) -L $(INTEL_LIBS_DIR)
|
|
LIBS := $(LIBS) $(MKL_LIBS) $(INTEL_LIBS)
|
|
endif
|
|
#################################################################################
|
|
|
|
### BLAS / LAPACK LIBRARIES #####################################################
|
|
ifdef USE_LAPACK
|
|
ifndef USE_MKL
|
|
USE_FORTRAN = USE_FORTRAN
|
|
ifdef LAPACK_LIBS_DIR
|
|
LIBS_DIR := $(LIBS_DIR) -L$(LAPACK_LIBS_DIR)
|
|
endif
|
|
LIBS := $(LIBS) -llapack -lblas
|
|
endif
|
|
endif
|
|
#################################################################################
|
|
|
|
### FORTRAN #####################################################################
|
|
# FORTRAN_LIBS should be defined
|
|
ifdef USE_FORTRAN
|
|
ifdef FORTRAN_LIBS_DIR
|
|
LIBS_DIR := $(LIBS_DIR) -L$(FORTRAN_LIBS_DIR)
|
|
endif
|
|
LIBS := $(LIBS) $(FORTRAN_LIBS)
|
|
endif
|
|
#################################################################################
|
|
|
|
### PTHREAD #####################################################################
|
|
ifdef USE_PTHREAD
|
|
LIBS := $(LIBS) -lpthread
|
|
endif
|
|
#################################################################################
|
|
|
|
### MATH LIBRARY ################################################################
|
|
ifdef USE_MATH
|
|
LIBS := $(LIBS) -lm
|
|
endif
|
|
#################################################################################
|
|
|
|
### DW FILES ####################################################################
|
|
MATRIX_DIR = $(WORK_DIR)/utilities/DWCcode/matrix
|
|
ERROR_DIR = $(WORK_DIR)/utilities/DWCcode/error
|
|
ARRAY_DIR = $(WORK_DIR)/utilities/DWCcode/arrays
|
|
ASCII_DIR = $(WORK_DIR)/utilities/DWCcode/ascii
|
|
HIST_DIR = $(WORK_DIR)/utilities/DWCcode/histogram
|
|
STAT_DIR = $(WORK_DIR)/utilities/DWCcode/stat
|
|
SPHERICAL_DIR = $(WORK_DIR)/utilities/DWCcode/spherical
|
|
SORT_DIR = $(WORK_DIR)/utilities/DWCcode/sort
|
|
SWITCH_DIR = $(WORK_DIR)/sbvar/switching
|
|
VAR_DIR = $(WORK_DIR)/sbvar/var
|
|
#################################################################################
|
|
|
|
# DW FILES
|
|
INCLUDE_DIR := -I$(MATRIX_DIR) -I$(ERROR_DIR) -I$(ARRAY_DIR) -I$(ASCII_DIR) -I$(HIST_DIR) -I$(STAT_DIR) -I$(SPHERICAL_DIR) -I$(SORT_DIR) -I$(SWITCH_DIR) -I$(VAR_DIR) $(INCLUDE_DIR)
|
|
VPATH := $(VPATH) $(MATRIX_DIR) $(ERROR_DIR) $(ARRAY_DIR) $(ASCII_DIR) $(HIST_DIR) $(STAT_DIR) $(SPHERICAL_DIR) $(SORT_DIR) $(SWITCH_DIR) $(VAR_DIR)
|
|
OBJS := $(OBJS) bmatrix.o swzmatrix.o dw_error.o dw_rand.o dw_matrix_rand.o dw_array.o dw_matrix_array.o dw_matrix_sort.o dw_ascii.o dw_parse_cmd.o dw_histogram.o
|
|
|
|
# MEX
|
|
INCLUDE_DIR := -I$(WORK_DIR)/mex $(INCLUDE_DIR)
|
|
VPATH := $(VPATH) $(WORK_DIR)/mex
|
|
OBJS := $(OBJS) modify_for_mex.o
|
|
|
|
# TAO FILES
|
|
OBJS := $(OBJS)
|
|
|
|
# PROJECT FILE
|
|
INCLUDE_DIR := $(INCLUDE_DIR)
|
|
VPATH := $(VPATH)
|
|
OBJS_DRAWS := $(OBJS) PrintDraws.o switch.o switchio.o VARbase.o VARio.o command_line_VAR.o
|
|
OBJS_TAO := tzmatlab.o mathlib.o cstz_dw.o
|
|
OBJS_ESTIM := $(OBJS) $(OBJS_TAO) estimate.o VARbase.o VARio.o command_line_VAR.o switch.o switchio.o switch_opt.o csminwel.o
|
|
OBJS_INIT := $(OBJS) create_init_file.o switch.o switchio.o VARbase.o VARio.o VARio_matlab.o
|
|
OBJS_MHM_1 := $(OBJS) mhm_VAR_main_1.o mhm_VAR.o VARbase.o VARio.o command_line_VAR.o switch.o switchio.o
|
|
OBJS_MHM_2 := $(OBJS) mhm_VAR_main_2.o spherical.o VARbase.o VARio.o switch.o switchio.o mhm_VAR.o
|
|
OBJS_PROBA := $(OBJS) probabilities.o switch.o switchio.o VARbase.o VARio.o command_line_VAR.o
|
|
OBJS_FORECAST := $(OBJS) forecast.o switch.o switchio.o VARbase.o VARio.o command_line_VAR.o
|
|
|
|
|
|
#################################################################################
|
|
# OUTPUT
|
|
|
|
all: $(OUT_DIR)/sbvar_draws $(OUT_DIR)/sbvar_estimation $(OUT_DIR)/sbvar_init_file $(OUT_DIR)/sbvar_mhm_1 $(OUT_DIR)/sbvar_mhm_2 $(OUT_DIR)/sbvar_probabilities $(OUT_DIR)/sbvar_forecast
|
|
|
|
|
|
$(OUT_DIR)/sbvar_draws: $(OBJS_DRAWS)
|
|
$(CXX) $(CFLAGS) $^ $(LIBS_DIR) $(LIBS) -o $(OUT_DIR)/sbvar_draws
|
|
|
|
$(OUT_DIR)/sbvar_estimation: $(OBJS_ESTIM)
|
|
$(CXX) $(CFLAGS) $^ $(LIBS_DIR) $(LIBS) -o $(OUT_DIR)/sbvar_estimation
|
|
|
|
$(OUT_DIR)/sbvar_init_file: $(OBJS_INIT)
|
|
$(CXX) $(CFLAGS) $^ $(LIBS_DIR) $(LIBS) -o $(OUT_DIR)/sbvar_init_file
|
|
|
|
$(OUT_DIR)/sbvar_mhm_1: $(OBJS_MHM_1)
|
|
$(CXX) $(CFLAGS) $^ $(LIBS_DIR) $(LIBS) -o $(OUT_DIR)/sbvar_mhm_1
|
|
|
|
$(OUT_DIR)/sbvar_mhm_2: $(OBJS_MHM_2)
|
|
$(CXX) $(CFLAGS) $^ $(LIBS_DIR) $(LIBS) -o $(OUT_DIR)/sbvar_mhm_2
|
|
|
|
$(OUT_DIR)/sbvar_probabilities: $(OBJS_PROBA)
|
|
$(CXX) $(CFLAGS) $^ $(LIBS_DIR) $(LIBS) -o $(OUT_DIR)/sbvar_probabilities
|
|
|
|
$(OUT_DIR)/sbvar_forecast: $(OBJS_FORECAST)
|
|
$(CXX) $(CFLAGS) $^ $(LIBS_DIR) $(LIBS) -o $(OUT_DIR)/sbvar_forecast
|
|
|
|
%.o : %.c
|
|
$(CC) $(CFLAGS) $(INCLUDE_DIR) -fexceptions -c $< -o $@
|
|
|
|
%.o : %.cc
|
|
$(CXX) $(CFLAGS) $(INCLUDE_DIR) -fexceptions -c $< -o $@
|
|
|
|
#
|
|
#################################################################################
|
|
clean:
|
|
rm -f $(OUT_DIR)/*.o *.o ; rm -f ../bin/*
|
|
#
|
|
#################################################################################
|