OStype = $(shell uname)

	CC = /usr/bin/g++
	COPTS = -g -D_REENTRANT

ifeq ($(OStype),OSF1)
	COPTS = -g -D_REENTRANT -DBASENAME_USE_BUILTIN
endif
ifeq ($(OStype),SunOS)
	CC = CC
        COPTS = -D_REENTRANT -DBASENAME_IN_LIBGEN
endif
ifeq ($(OStype),Darwin)
	CC = g++
        COPTS = -D_REENTRANT -DBASENAME_IN_LIBGEN
endif

ifndef BUILDS
 BUILDS = $(HALLD_HOME)/src/programs/Simulation
endif

XML_SOURCE = BarrelEMcal_HDDS.xml BeamLine_HDDS.xml CentralDC_HDDS.xml\
             CerenkovCntr_HDDS.xml ForwardDC_HDDS.xml ForwardEMcal_HDDS.xml\
             ForwardTOF_HDDS.xml Material_HDDS.xml Solenoid_HDDS.xml \
             StartCntr_HDDS.xml Target_HDDS.xml UpstreamEMveto_HDDS.xml \
	     Regions_HDDS.xml main_HDDS.xml

all: hddsGeant3.F hddsroot.C

install: hdds-geant hdds-root hdds-mcfast
	cp $^ $(HALLD_HOME)/bin/$(OSNAME)

hddsMCfast.db: hdds-mcfast $(XML_SOURCE)
	ln -sf $(MCFAST_DIR)/db db
	./hdds-mcfast main_HDDS.xml >$@
	rm db

hddsGeant3.F: hdds-geant $(XML_SOURCE)
	./hdds-geant main_HDDS.xml >$@

hddsroot.C: hdds-root $(XML_SOURCE)
	./hdds-root main_HDDS.xml >$@

hdds-geant: hdds-geant.cpp XParsers.cpp XParsers.hpp \
            XString.cpp XString.hpp hddsCommon.cpp hddsCommon.hpp
	$(CC) $(COPTS) -I$(XERCESCROOT)/include -o $@ hdds-geant.cpp \
	hddsCommon.cpp XParsers.cpp XString.cpp \
	-L$(XERCESCROOT)/lib -lxerces-c

hdds-root: hdds-root.cpp hdds-root.hpp XParsers.cpp XParsers.hpp \
           XString.cpp XString.hpp hddsCommon.cpp hddsCommon.hpp
	$(CC) $(COPTS) -I$(XERCESCROOT)/include -o $@ hdds-root.cpp \
	hddsCommon.cpp XParsers.cpp XString.cpp \
	-L$(XERCESCROOT)/lib -lxerces-c

hdds-mcfast: hdds-mcfast.cpp XParsers.cpp XParsers.hpp\
             XString.cpp XString.hpp
	$(CC) $(COPTS) -I$(XERCESCROOT)/include -o $@ hdds-mcfast.cpp \
	XParsers.cpp XString.cpp \
	-L$(XERCESCROOT)/lib -lxerces-c

clean:
	rm -f *.o core *.depend hdds-geant hdds-root hdds-mcfast