################################## # Variable definitions ################################## # SLEPc include automatically loads PETSc definitions include ${SLEPC_DIR}/lib/slepc/conf/slepc_common CC = gcc CC_ALL_FLAGS = FF90 = mpif90 FF90_FLAGS = LIBDIR = PYTHON = python2.7 PYTHON-CONFIG = python2.7-config F2PY = f2py ################################## # Source files ################################## include file.list OBJ = $(MODFILES:%.f90=%.o)\ $(F90FILES:%.f90=%.o)\ $(F90CFILES:%.F90=%.o) ################################## # Build ################################## PYTHON_OBJECTS = fortranobject.o \ run_analysismodule.o default: all all: $(OBJ) # Compile any fortran source that needs it $(FLINKER) -c -o $(OBJ) $(SLEPC_EPS_LIB) # 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 $(OBJ) $(PYTHON_OBJECTS) $(SLEPC_EPS_LIB) -o run_analysis.so # Move new module to ../setup/ mv run_analysis.so ../setup/.