Newer
Older
Lecture_repo / Lectures_my / MC_2016 / exam / Makefile
@mchrzasz mchrzasz on 5 Jun 2016 2 KB finished exam quesions algorithm
  1. #----------------------------------------------------------------------
  2. # Przyklad linkowania bibliotek systemu ROOT z wlasnym programem
  3. #----------------------------------------------------------------------
  4. .SUFFIXES: .o .c .cxx .cpp .C .f .l .s .sh .h .a .cc
  5. #======================================================================
  6. # Biblioteki ROOTa dla linkera
  7. # 1) Jawnie:
  8. ## Sciezka to systemu ROOT - nalezy ja ustawic odpowiednio
  9. #RPATH = /home/mchrzasz/ROOT/root/
  10. RPATH = /cvmfs/lhcb.cern.ch/lib/lcg/releases/ROOT/6.04.02-a6f71/x86_64-slc6-gcc48-opt/
  11. #-lCint
  12. RLIB= -L$(RPATH)lib -lCore -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lm -ldl -lpthread -rdynamic -Wl,--no-as-needed $(ROOTGLIBS)
  13. #2) Niejawnie, przy uzyciu root-config
  14. #RLIB= `root-config --libs`
  15. #======================================================================
  16. # Nazwa biezacego katalogu
  17. DIRNAME = ./
  18. #======================================================================
  19. # Nazwa rdzeniowa modulu programu
  20. #NAME1 = anal_toy
  21. #NAME2 = Moments_gen_raw
  22. NAME1 = judment_day
  23. #NAME0 = Err_prop
  24. # Pliki objectowe (po kompilacji)
  25. #OBJT0 = $(NAME0).o
  26. OBJT1 = $(NAME1).o
  27. #OBJT2 = $(NAME2).o
  28. # Pliki wykonawcze (po linkowaniu)
  29. #EXEC0 = $(NAME0).x
  30. EXEC1 = $(NAME1).x
  31. # Nazwa i opcje kompilatora
  32. CXX = g++
  33. # 1) Jawnie
  34. #CXXFLAGS = -O -Wall -pthread -I$(RPATH)include
  35. # 2) Przy uzyciu root-config
  36. CXXFLAGS = -O2 -Wall `root-config --cflags`
  37. # Nazwa i opcje linkera
  38. LD = $(CXX)
  39. LDFLAGS = `root-config --ldflags`
  40.  
  41.  
  42. CXXFLAGS += $(shell $(ROOTSYS)/bin/root-config --cflags)
  43. #EXTRALIBS += $(shell $(ROOTSYS)/bin/root-config --libs)
  44. LDFLAGS += $(shell $(ROOTSYS)/bin/root-config --libs)
  45. RLIB += $(shell $(ROOTSYS)/bin/root-config --libs)
  46.  
  47. #==============================================================================
  48. # Kompilacja dla modulow z plikami naglowkowymi
  49. %.o: %.cxx %.h
  50. $(CXX) $(CXXFLAGS) -c $<
  51. # Kompilacja dla modulow bez plikow naglowkowych
  52. %.o: %.cxx
  53. $(CXX) $(CXXFLAGS) -c $<
  54. #==============================================================================
  55. .PHONY: all run clean tar
  56. all: ${EXEC1}
  57. #==============================================================================
  58. # Linkowanie
  59. ${EXEC1}: ${OBJT1}
  60. $(LD) -o $@ $(LDFLAGS) $^ $(RLIB)
  61.  
  62. #==============================================================================
  63. # Uruchamianie
  64. run: ${EXEC1}
  65. ./${EXEC1}
  66. #==============================================================================
  67. clean:
  68. (rm -f *.o *.a *~ *.exe *.x core lmap *.dvi *.aux *.log a.out)
  69. #==============================================================================
  70. tar: clean
  71. (cd ../; tar -cvzf $(DIRNAME).tar.gz $(DIRNAME) )
  72. #==============================================================================
  73. # Wszelkie akcje jakie należy podjąć aby program zaprezentował swoje działanie:
  74. test: run
  75. @echo 'Test run finished'
  76. #==============================================================================