# ===== Variable definitions ===== # SLEPc include automatically loads PETSc definitions include ${SLEPC_DIR}/lib/slepc/conf/slepc_common CC = gcc CC_ALL_FLAGS = FF90 = gfortran FF90_FLAGS = LIBDIR = PYTHON = python2.7 PYTHON-CONFIG = python2.7-config F2PY = f2py # LINKER_ALL_FLAGS = $(FF90_FLAGS) -L$(LIBDIR) -lwarpustruct $(PETSC_LINKER_FLAGS) $(LINKER_FLAGS) $(CGNS_LINKER_FLAGS) # LINKER_ALL_FLAGS = $(FF90_FLAGS) $(FLINKER) PYTHON_OBJECTS = fortranobject.o \ run_analysismodule.o default: all all: # Generate Python inlude directory $(eval PYTHON_INCLUDES = $(shell $(PYTHON-CONFIG) --includes)) @echo "#------------------------------------------------------#" @echo Python Include Flags $(PYTHON_INCLUDES) @echo "#------------------------------------------------------#" # Generate Numpy inlude directory $(eval NUMPY_INCLUDES = $(shell $(PYTHON) -c 'import numpy; print numpy.get_include()')) @echo "#------------------------------------------------------#" @echo Numpy Include Directory: $(NUMPY_INCLUDES) @echo "#------------------------------------------------------#" # Generate f2py root directory # $(eval F2PY_ROOT = $(shell $(PYTHON) get_f2py.py)) # Manually define f2py root directory $(eval F2PY_ROOT = /Users/Austin/anaconda/envs/py27/lib/python2.7/site-packages/numpy/f2py) @echo "#------------------------------------------------------#" @echo f2py root directory: $(F2PY_ROOT) @echo "#------------------------------------------------------#" # Generate .pyf file f2py run_analysis.f90 -m run_analysis -h run_analysis.pyf --overwrite-signature --wrap-functions # Generate .c file f2py run_analysis.pyf @echo " " $(CC) $(CC_ALL_FLAGS) $(PYTHON_INCLUDES) -I$(NUMPY_INCLUDES) \ -I$(F2PY_ROOT)/src -c run_analysismodule.c $(CC) $(CC_ALL_FLAGS) $(PYTHON_INCLUDES) -I$(NUMPY_INCLUDES) -c \ $(F2PY_ROOT)/src/fortranobject.c -o fortranobject.o $(FF90) -undefined dynamic_lookup -shared $(PYTHON_OBJECTS) $(SLEPC_EPS_LIB) -o run_analysis_final.so