PAR: Makefile works on rebuild and has colors
authordberzano <dario.berzano@cern.ch>
Mon, 26 Jan 2015 11:37:33 +0000 (12:37 +0100)
committerdberzano <dario.berzano@cern.ch>
Thu, 29 Jan 2015 11:57:51 +0000 (12:57 +0100)
cmake/PARfiles/BUILD.sh.in
cmake/PARfiles/Makefile.in

index 666656a..2bc70e9 100644 (file)
@@ -1,2 +1,2 @@
 #!/bin/sh
-make
+exec make
index e806e6e..1e72420 100644 (file)
@@ -6,32 +6,48 @@ include Makefile.arch
 # Name of this module
 PAR_MODULE := @PARMODULE@
 
-# Get C++ flags from AliRoot's CMake, not ROOT -- append AliRoot/AliPhysics includes
+# Include paths
 PAR_INCLUDES = -I. -I$(ALICE_ROOT)/include -I$(ALICE_PHYSICS)/include -I$(ROOTSYS)/include
-PAR_CXXFLAGS = @CMAKE_CXX_FLAGS@ $(PAR_INCLUDES)
 
-# Get linker flags from AliRoot's CMake, not ROOT
-PAR_SOFLAGS = @CMAKE_SHARED_LINKER_FLAGS@
+# Get C++ flags form ROOT
+PAR_CXXFLAGS = $(CXXFLAGS) $(PAR_INCLUDES)
 
-SRCS = $(wildcard *.cxx)
-HDRS = $(SRCS:.cxx=.h)
-DHDR = @PARMODULE@LinkDef.h
+#¬†Get linker flags from ROOT
+PAR_SOFLAGS = $(SOFLAGS) $(LDFLAGS)
 
-SRCS += G__@PARMODULE@.cxx
-OBJS = $(SRCS:.cxx=.o)
+# Exclude generated dictionaries from the list of sources
+SRCS := $(filter-out $(wildcard G__*.cxx),$(wildcard *.cxx))
 
-# Compile sources into objects
+HDRS := $(SRCS:.cxx=.h)
+DHDR := $(PAR_MODULE)LinkDef.h
+
+SRCS += G__$(PAR_MODULE).cxx
+OBJS := $(SRCS:.cxx=.o)
+
+COLM := \033[35m
+COLC := \033[36m
+COLG := \033[32m
+COLZ := \033[m
+
+# Default rule (it's the first one, "all" is just a convention)
+all: lib$(PAR_MODULE).so
+       @echo -e "[$(COLM)$(PAR_MODULE)$(COLZ)] $(COLG)PARfile built successfully$(COLZ)"
+
+# Abstract rule to compile classes to objects
 %.o: %.cxx %.h
-       @CMAKE_CXX_COMPILER@ $(PAR_CXXFLAGS) -c $< -o $@
+       @echo -e "[$(COLM)$(PAR_MODULE)$(COLZ)] compiling $(COLC)$<$(COLZ)"
+       @$(CXX) $(PAR_CXXFLAGS) -c $< -o $@
 
 # Generate library from objects
-lib@PARMODULE@.so: $(OBJS)
-       @CMAKE_LINKER@ $(PAR_SOFLAGS) $^ -o $@ $(EXPLLINKLIBS)
+lib$(PAR_MODULE).so: $(OBJS)
+       @echo -e "[$(COLM)$(PAR_MODULE)$(COLZ)]" building shared library
+       @$(LD) $(PAR_SOFLAGS) $^ -o $@ $(EXPLLINKLIBS)
 
 # Generate dictionary
-G__@PARMODULE@.cxx G__@PARMODULE@.h: $(HDRS) $(DHDR)
-       rootcint -f $@ -c $(PAR_INCLUDES) $^
+G__$(PAR_MODULE).cxx G__$(PAR_MODULE).h: $(HDRS) $(DHDR)
+       @echo -e "[$(COLM)$(PAR_MODULE)$(COLZ)]" generating dictionary
+       @rootcint -f $@ -c $(PAR_INCLUDES) $^
 
 # Delete all
 clean:
-       rm -f $(OBJS) *.so G__@PARMODULE@.*
+       rm -f $(OBJS) *.so G__$(PAR_MODULE).*