Newer
Older
Lecture_repo / Lectures_my / NumMet / 2016 / Lecture1 / Examples / ex1 / Makefile~
@mchrzasz mchrzasz on 12 Oct 2016 2 KB fixed small things
  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. RLIB= -L$(RPATH)lib -lCore -lHist -lGraf -lGraf3d -lGpad -lTree -lRooFitCore -lRooFit -lRooStats \
  11. -lRint -lPostscript -lMatrix -lPhysics -lm -ldl -lpthread -rdynamic -Wl,--no-as-needed $(ROOTGLIBS)
  12. #2) Niejawnie, przy uzyciu root-config
  13. #RLIB= `root-config --libs`
  14. #======================================================================
  15. # Nazwa biezacego katalogu
  16. DIRNAME = ./
  17. #======================================================================
  18. # Nazwa rdzeniowa modulu programu
  19. NAME1 = Add_variables
  20. # Pliki objectowe (po kompilacji)
  21. OBJT1 = $(NAME1).o
  22. # Pliki wykonawcze (po linkowaniu)
  23. EXEC1 = $(NAME1).x
  24. # Nazwa i opcje kompilatora
  25. CXX = g++
  26. # 1) Jawnie
  27. #CXXFLAGS = -O -Wall -pthread -I$(RPATH)include
  28. # 2) Przy uzyciu root-config
  29. CXXFLAGS = -O2 -Wall `root-config --cflags`
  30. # Nazwa i opcje linkera
  31. LD = $(CXX)
  32. LDFLAGS = `root-config --ldflags`
  33.  
  34.  
  35. CXXFLAGS += $(shell $(ROOTSYS)/bin/root-config --cflags)
  36. #EXTRALIBS += $(shell $(ROOTSYS)/bin/root-config --libs)
  37. LDFLAGS += $(shell $(ROOTSYS)/bin/root-config --libs)
  38. RLIB += $(shell $(ROOTSYS)/bin/root-config --libs)
  39.  
  40. #==============================================================================
  41. # Kompilacja dla modulow z plikami naglowkowymi
  42. %.o: %.cxx %.h
  43. $(CXX) $(CXXFLAGS) -c $<
  44. # Kompilacja dla modulow bez plikow naglowkowych
  45. %.o: %.cxx
  46. $(CXX) $(CXXFLAGS) -c $<
  47. #==============================================================================
  48. .PHONY: all run clean tar
  49. all: ${EXEC1}
  50. #==============================================================================
  51. # Linkowanie
  52. ${EXEC1}: ${OBJT1}
  53. $(LD) -o $@ $(LDFLAGS) $^ $(RLIB)
  54.  
  55. #==============================================================================
  56. # Uruchamianie
  57. run: ${EXEC1}
  58. ./${EXEC1}
  59. #==============================================================================
  60. clean:
  61. (rm -f *.o *.a *~ *.exe *.x core lmap *.dvi *.aux *.log a.out)
  62. #==============================================================================
  63. tar: clean
  64. (cd ../; tar -cvzf $(DIRNAME).tar.gz $(DIRNAME) )
  65. #==============================================================================
  66. # Wszelkie akcje jakie należy podjąć aby program zaprezentował swoje działanie:
  67. test: run
  68. @echo 'Test run finished'
  69. #==============================================================================
  70.