Skip to content
Snippets Groups Projects
Select Git revision
  • f354993ea9630d77678aef45ab407d3a7be5081d
  • main default protected
  • hpc_school
  • energy
  • openacc
  • mpi_bugfix
6 results

Makefile

Blame
  • Makefile 3.15 KiB
    #######################################################################
    # Author: David Goz (david.goz@inaf.it)                               #
    # June  2024                                                          #
    #######################################################################
    #
    # To see all the compilation options
    # $ make info
    #######################################################################
    
    # make.def defines how the application is compiled
    include make.def
    #######################################################################
    
    .PHONY: info serial omp valgrind_memcheck valgrind_callgrind valgrind_cachegrind debug clean 
    
    info:
    	@echo ' '
    	@echo '--------------------------------------------------------------------------------------------'
    	@echo '$$ make serial                 ---> compile the serial application                          '
    	@echo '$$ make omp                    ---> compile the omp application                             '
    	@echo '$$ make debug                  ---> debug the omp application                               '
    	@echo '$$ make valgrind_memcheck      ---> run the omp application using Valgrind under Memcheck   '
    	@echo '$$ make valgrind_callgrind     ---> run the omp application using Valgrind under Callgrind  '
    	@echo '$$ make valgrind_cachegrind    ---> run the omp application using Valgrind under Cachegrind '
    	@echo '$$ make clean                  ---> clean up all                                            '
    	@echo '$$ make info                   ---> get make info                                           '
    	@echo '--------------------------------------------------------------------------------------------'
    	@echo ' '
    
    serial: $(PROG)
    
    omp: $(PROG_OMP)
    
    debug: $(PROG_DEBUG)
    	@echo 'OOOooo... debugging ...oooOOO'
    	gdb --args ./$<
    	@echo 'OOOooo... debugging ... oooOOO'
    
    valgrind_memcheck: $(PROG_MEMCHECK)
    	@echo 'oooOOO... valgrind_memcheck ...OOOooo'
    	valgrind --tool=memcheck -s --leak-check=full --show-leak-kinds=all --track-origins=yes --read-var-info=yes --log-file=valgrind_memcheck_log_%p.txt ./$< 10 10 2
    	@echo 'oooOOO... valgrind_memcheck ...OOOooo'
    
    valgrind_callgrind: $(PROG_CALLGRIND)
    	@echo 'oooOOO... valgrind_callgrind ...OOOooo'
    	valgrind --tool=callgrind --dump-instr=yes --collect-jumps=yes --log-file=valgrind_callgrind_log_.%p.txt ./$< 128 128 2
    	@echo ' '
    	@echo 'To generate a function-by-function summary from the profile data file:'
    	@echo '$$ callgrind_annotate --auto=yes callgrind.out.<pid> | less'
    	@echo '(kcachegrind is required in order to visualize the output using the GUI)'
    
    valgrind_cachegrind: $(PROG_CACHEGRIND)
    	@echo 'oooOOO... valgrind_cachegrind ...OOOooo'
    	valgrind --tool=cachegrind --log-file=valgrind_cachegrind_log_.%p.txt ./$< 128 128 2
    	@echo '$$ cg_annotate --auto=yes cachegrind.out.<pid> | less'
    	@echo '(kcachegrind is required in order to visualize the output using the GUI)'
    	@echo 'oooOOO... valgrind_cachegrind ...OOOooo'
    
    clean:
    	rm -f *~ .*~ ./src/*~ ./src/*# ./include/*~ ./include/*# *~
    	rm -f $(PROG) $(PROG_OMP) $(PROG_DEBUG) $(PROG_MEMCHECK) $(PROG_CALLGRIND) $(PROG_CACHEGRIND)
    	rm -f valgrind_*.txt
    	rm -f cachegrind.out.*
    	rm -f callgrind.*
    	rm -f *bin
    	rm -f jacobi_*