Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 130 | f9daq | 1 | # Makefile tutorial: https://www.gnu.org/software/make/manual/html_node/index.html#SEC_Contents |
| 2 | |||
| 3 | # Make variables ---------------------------------------------------- |
||
| 4 | |||
| 5 | # ROOT include and libraries |
||
| 6 | ROOTINC=$(shell root-config --incdir) |
||
| 7 | ROOTLIB=$(shell root-config --libs) |
||
| 8 | GRROOTLIB=$(shell root-config --cflags --glibs) |
||
| 9 | |||
| 10 | # Source and debug directories |
||
| 11 | SRC=./src |
||
| 12 | DBG=./dbg |
||
| 13 | IDIR=./include |
||
| 14 | BIN=./bin |
||
| 15 | DICT=./dict |
||
| 16 | LDIR=./lib |
||
| 17 | |||
| 18 | # Includes and libraries |
||
| 19 | INC=-I. -I$(ROOTINC) |
||
| 20 | LIBS=$(ROOTLIB) -L. -lm |
||
| 21 | |||
| 22 | |||
| 23 | # Specific variables for the main program |
||
| 24 | TARGET=root_app |
||
| 25 | FILES=$(SRC)/root_app.C |
||
| 26 | HEADER=$(IDIR)/root_app.h $(IDIR)/root_include.h |
||
| 27 | |||
| 28 | # ------------------------------------------------------------------- |
||
| 29 | |||
| 30 | # Base rules -------------------------------------------------------- |
||
| 31 | |||
| 32 | # Make the main program and libraries |
||
| 33 | #all: libtest.so $(TARGET) |
||
| 34 | all: $(TARGET) |
||
| 35 | |||
| 36 | # Rules for making the main program |
||
| 37 | $(TARGET): $(FILES) |
||
| 38 | @echo "\n# Generating dictionary GuiDict.C ---------------------------" |
||
| 39 | rootcint -f $(DICT)/GuiDict.C -c -p $(INC) $(CPPFLAGS) $(IDIR)/root_app.h $(DICT)/GuiLinkDef.h |
||
| 40 | @echo "\n# Checking to see if bin directory already exists -----------" |
||
| 41 | if [ ! -d "$(BIN)" ];then mkdir $(BIN); fi |
||
| 42 | @echo "\n# Compiling main program ------------------------------------" |
||
| 43 | $(CXX) $(INC) -fPIC -g -Wall $(FILES) $(DICT)/GuiDict.C $(CPPFLAGS) -o ./bin/$(TARGET) $(GRROOTLIB) -lstdc++ |
||
| 44 | cp -f ./input/start.sh ./ |
||
| 45 | @echo "\n# Compilation successful ------------------------------------" |
||
| 46 | @echo "# Use ./start.sh to run the program -------------------------" |
||
| 47 | |||
| 48 | # ------------------------------------------------------------------- |
||
| 49 | |||
| 50 | # Cleaning rules ---------------------------------------------------- |
||
| 51 | |||
| 52 | # Rules for cleaning the installation |
||
| 53 | clean: |
||
| 54 | @echo "# Cleaning the installation directory -------------------------" |
||
| 55 | rm -fr $(DICT)/*Dict.C $(DICT)/*Dict.h ./bin ./lib start.sh $(SRC)/$(TARGET)_C.d $(SRC)/$(TARGET)_C.so *.o |
||
| 56 | |||
| 57 | # ------------------------------------------------------------------- |