# Makefile for analib.a anapaw.o
#
# user defined variables
#
# set variable to check the root exist or not
PLATFORM := $(shell $(ROOTSYS)/bin/root-config --platform)
#@echo $(PLATFORM)
#
#
#-----------------------------------------------------------
# environment setting for ROOT output
#-----------------------------------------------------------
#
# enable ROOT output option 
#CXXFLAGS += -D__OUTPUT_ROOTFILE__

# add compile flags and extra libs for ROOT output
#CXXFLAGS += $(shell $(ROOTSYS)/bin/root-config --cflags)
#ROOTLIBS = $(shell $(ROOTSYS)/bin/root-config --glibs)
#EXTRALIBS += $(ROOTLIBS)
#CXXFLAGS += $(ROOTLIBS)
#
#-----------------------------------------------------------
FC = g77
FFLAGS = -O0 -fbounds-check -fno-f2c -funroll-loops -D_FILE_OFFSET_BITS=64 \
	 -D_LARGEFILE_SOURCE -DBABIRL
CFLAGS = -O0  -funroll-loops -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
	 -DBABIRL
CXXFLAGS = -O0  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DBABIRL
ifeq ($(PLATFORM), linux)
CXXFLAGS += -D__OUTPUT_ROOTFILE__
CXXFLAGS += $(shell $(ROOTSYS)/bin/root-config --cflags)
#@echo $(PLATFORM)
endif
LINKER = g77
CC = gcc34
CXX = g++34
#
# common variables (Do not change !) 
#
OBJ = anamnu.o ainit.o anaread.o astart.o astop.o anaact.o \
	anainit.o anafill.o anasub.o anasub2.o anaevent.o anabatch.o \
	ntuple_io.o anasubc.o bbsub.o \
	anasubplot.o anasubutil.o anaeff.o bbcpri.o bbxml.o
CCOBJ = $(patsubst %.cc, %.o, $(wildcard *.cc))
#CCOBJ = 	TArtDataFormat.o TArtDataSource.o TArtFileDataSource.o \
#	TArtRDF.o TArtRIDF.o \
#	TArtEventStore.o TArtSemaphore.o TArtSharedMemory.o \
#	TArtSharedMemoryDataSource.o
#getevt.o getblock.o \
#	TArtSharedMemoryDataSource.o
MAINOBJ = anapaw.o
LIB = libanalib.a
#
#TFocalPlaneDataDict.cc: TFocalPlaneData.h
#	rootcint -f TFocalPlaneDataDict.cc -c TFocalPlaneData.h
#
# Make all
#
all: depend $(LIB) $(MAINOBJ)
#	rootcint -f TFocalPlaneDataDict.cc -c TFocalPlaneData.h
#
#
$(LIB): $(OBJ) $(CCOBJ)
	ar r $@ $(OBJ) $(CCOBJ)
	ranlib $@
ainit.o: common.f
anaact.o: common.f
anabatch.o: common.f
anaeff.o: common.f
anaevent.o: common.f
anafill.o: common.f
anainit.o: common.f
anasub.o: common.f
anasubplot.o: common.f
astop.o: common.f
ntuple_io.o: common.f
#TFocalPlaneDataDict.cc: TFocalPlaneData.h
#	rootcint -f TFocalPlaneDataDict.cc -c TFocalPlaneData.h
#TMust2DataDict.cc: TMust2Data.h
#	rootcint -f TMust2DataDict.cc -c TMust2Data.h
#anamnu.o: anamnu.f
#	$(FC) $(FFLAGS) -c anamnu.f
#ainit.o: ainit.f
#	$(FC) $(FFLAGS) -c ainit.f
#anaread.o: anaread.f
#	$(FC) $(FFLAGS) -c anaread.f
#astart.o: astart.f
#	$(FC) $(FFLAGS) -c astart.f
#astop.o: astop.f
#	$(FC) $(FFLAGS) -c astop.f
#anaact.o: anaact.f
#	$(FC) $(FFLAGS) -c anaact.f
#anainit.o: anainit.f
#	$(FC) $(FFLAGS) -c anainit.f
#anafill.o: anafill.f
#	$(FC) $(FFLAGS) -c anafill.f
#anasub.o: anasub.f
#	$(FC) $(FFLAGS) -c anasub.f
#anasub2.o: anasub2.f
#	$(FC) $(FFLAGS) -c anasub2.f
#anasubplot.o: anasubplot.f
#	$(FC) $(FFLAGS) -c anasubplot.f
#anasubutil.o: anasubutil.f
#	$(FC) $(FFLAGS) -c anasubutil.f
#anaevent.o: anaevent.f
#	$(FC) $(FFLAGS) -c anaevent.f
#anabatch.o: anabatch.f
#	$(FC) $(FFLAGS) -c anabatch.f
#ntuple_io.o: ntuple_io.f
#	$(FC) $(FFLAGS) -c ntuple_io.f
#anaeff.o: anaeff.f
#	$(FC) $(FFLAGS) -c anaeff.f
#anasubc.o: anasubc.c
#	$(CC) $(CFLAGS) -c anasubc.c
#getevt.o: getevt.c
#	$(CC) $(CFLAGS) -c getevt.c
#getblock.o: getblock.c
#	$(CC) $(CFLAGS) -c getblock.c
#dumpdata.o: dumpdata.c
#	$(CC) $(CFLAGS) -c dumpdata.c
#bbcpri.o: bbcpri.c
#	$(CC) $(CFLAGS) -c bbcpri.c
#
anapaw.o: anapaw.f
	$(FC) $(FFLAGS) -c anapaw.f

#
#--- make viewana
#
viewana:
	make -C $(VIEWANA_SOURCE)
#
#--- make viewanaclean
#
viewanaclean:
	make -C $(VIEWANA_SOURCE) clean
#
#--- make install
#
install: $(MAINOBJ) $(LIB)
#	make viewana
	mv $(MAINOBJ) $(ANAPAW_LIB)/$(MAINOBJ)
	mv $(LIB) $(ANAPAW_LIB)/$(LIB)
#
#--- make anaclean
# 
anaclean:
	rm -f *~ *.o *.f~ *.c~ *.a $(ANAPAW_LIB)/$(MAINOBJ) \
	      $(ANAPAW_LIB)/$(LIB)
#
#--- make clean 
#
clean:
	make anaclean
	make -C $(VIEWANA_SOURCE) clean

.PHONY: depend
depend: $(CCOBJ:.o=.cc)
	@ $(RM) .depend.inc
	@ for i in $^; do\
		cpp -MM $$i | sed "s/\ [_a-zA-Z0-9][_a-zA-Z0-9]*\.cc//g" >> .depend.inc;\
	done

-include .depend.inc

