#
# stdhep examples makefile
#
UNAME = $(shell uname)
ifeq "$(UNAME)" "AIX"
    CC=cc
    CPP = /lib/cpp
    AR=ar
    F77=xlf
    CFLAGS= -I$(STDHEP_DIR)/src/inc
    FFLAGS=-qextname
    KPPFLAGS= -C -P -DAIX -DUNIX
endif
ifeq "$(UNAME)" "IRIX"
    IRIX6 = $(findstring 6,$(shell uname -r))
    CC=cc
    CPP = /lib/cpp
    AR=ar
    F77=f77
    KPPFLAGS= -C -P -DIRIX -DUNIX
    ifeq "$(IRIX6)" "6"
      CFLAGS= -n32 -I$(STDHEP_DIR)/src/inc
      FFLAGS= -n32
    else
      CFLAGS= -I$(STDHEP_DIR)/src/inc
      FFLAGS=
    endif
endif
ifeq "$(UNAME)" "IRIX64"
    CC=cc
    CPP = /lib/cpp
    AR=ar
    F77=f77
    CFLAGS= -n32 -I$(STDHEP_DIR)/src/inc
    FFLAGS= -n32
    KPPFLAGS= -C -P -DIRIX -DUNIX
endif
ifeq "$(UNAME)" "Linux"
    CC=gcc
    CPP=gcc -E
    F77=g77
    AR=ar
    CFLAGS= -I$(STDHEP_DIR)/src/inc
    FFLAGS= -fno-second-underscore
    KPPFLAGS= -C -P -DLinux -DUNIX
endif
ifeq "$(UNAME)" "OSF1"
    CC=cc
    CPP = cpp
    F77=f77
    AR=ar
    CFLAGS= -I$(STDHEP_DIR)/src/inc
    FFLAGS=
    KPPFLAGS= -C -P -DOSF1 -DUNIX
endif
ifeq "$(UNAME)" "SunOS"
    CC=/opt/SUNWspro/bin/cc
    CPP = /usr/ccs/lib/cpp
    F77=f77
    AR=ar
    CFLAGS= -I$(STDHEP_DIR)/src/inc
    FFLAGS=
    KPPFLAGS= -C -P -DSunOS -DUNIX
    LOCAL= -lnsl -lsocket
endif
ifeq "$(UNAME)" "HP-UX"
    AR=ar
    CC=cc
    CPP = /lib/cpp
    F77=f77
    CFLAGS= -I$(STDHEP_DIR)/src/inc -Aa -D_HPUX_SOURCE
    FFLAGS=+ppu
    KPPFLAGS= -C -P -DUNIX
endif

INCS = -I$(STDHEP_DIR)/src/inc -I$(LUND_DIR)/src/inc -I$(HERWIG_DIR)/src \
       -I$(QQ_DIR)/src/inc

#------------------------------------------

all: stdtst stdtsth stdtsti stdtstj stdtstp stdlistj stdtstq \
     stdtstio stdtstiom stdtstiox stdtstxin stdtstxout testpdg

stdtst: stdtst.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o stdtst stdtst.o $(STDHEP_DIR)/lib/libstdhep.a 

stdtsth: stdtsth.o testhst.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o stdtsth stdtsth.o testhst.o \
		$(HERWIG_DIR)/lib/hwudat.o \
		$(STDHEP_DIR)/lib/libstdhep.a \
		$(STDHEP_DIR)/lib/libFmcfio.a \
		-L$(HERWIG_DIR)/lib -lherwig -lherdum \
		$(CRNLIB)/libpacklib.a $(LOCAL)

stdtsti: stdtsti.o testhst.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o stdtsti stdtsti.o testhst.o \
		$(STDHEP_DIR)/lib/libstdhep.a \
		$(STDHEP_DIR)/lib/libFmcfio.a \
		$(ISAJET_DIR)/isajet.a \
		$(CRNLIB)/libpacklib.a $(LOCAL)

stdtstio: stdtstio.o testhst.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o stdtstio stdtstio.o testhst.o \
		$(STDHEP_DIR)/lib/libstdhep.a \
		$(STDHEP_DIR)/lib/libFmcfio.a \
		$(CRNLIB)/libpacklib.a $(LOCAL)

stdtstiom: stdtstiom.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o stdtstiom stdtstiom.o \
		$(STDHEP_DIR)/lib/libstdhep.a \
		$(STDHEP_DIR)/lib/libFmcfio.a \
		$(CRNLIB)/libpacklib.a $(LOCAL)

stdtstiox: stdtstiox.o testhst.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -g -o stdtstiox stdtstiox.o testhst.o \
		$(STDHEP_DIR)/lib/libstdhep.a \
		$(STDHEP_DIR)/lib/libFmcfio.a \
		$(CRNLIB)/libpacklib.a $(LOCAL)

stdtstj: stdtstj.o testhst.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o stdtstj stdtstj.o testhst.o \
		$(LULIB)/pydata.o \
		$(STDHEP_DIR)/lib/libstdhep.a $(LULIB)/liblund.a \
		$(STDHEP_DIR)/lib/libFmcfio.a \
		$(CRNLIB)/libpacklib.a $(LOCAL)

stdlistj: stdlistj.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o stdlistj stdlistj.o \
		$(LULIB)/pydata.o \
		$(STDHEP_DIR)/lib/libstdhep.a $(LULIB)/liblund.a \
		$(STDHEP_DIR)/lib/libFmcfio.a \
		$(CRNLIB)/libpacklib.a $(LOCAL)

stdtstp: stdtstp.o  $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o stdtstp stdtstp.o \
		$(LULIB)/pydata.o $(LULIB)/pdfdum.o \
		$(STDHEP_DIR)/lib/libstdhep.a $(LULIB)/liblund.a \
		$(STDHEP_DIR)/lib/libFmcfio.a \
		$(CRNLIB)/libpacklib.a $(LOCAL)

stdtstq: stdtstq.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o stdtstq stdtstq.o \
		$(QQ_DIR)/lib/ranp.o \
		$(STDHEP_DIR)/lib/libstdhep.a \
		$(QQLIB) $(TYPSCN) \
		$(CRNLIB)/libpacklib.a $(LOCAL)

stdtstxin: stdtstxin.o $(STDHEP_DIR)/lib/libstdhepC.a
	$(CC) $(CFLAGS) -g -o stdtstxin stdtstxin.o \
		$(STDHEP_DIR)/lib/libstdhepC.a \
		$(STDHEP_DIR)/lib/libFmcfio.a $(LOCAL)

stdtstxout: stdtstxout.o $(STDHEP_DIR)/lib/libstdhepC.a
	$(CC) $(CFLAGS) -g -o stdtstxout stdtstxout.o \
		$(STDHEP_DIR)/lib/libstdhepC.a \
		$(STDHEP_DIR)/lib/libFmcfio.a $(LOCAL)

stdtst_dpm:     stdtst_dpm.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o $@  stdtst_dpm.o \
		$(DPMJET_DIR)/lib/libdpmjet.a \
		$(DPMJET_DIR)/lib/jetset74.o \
		$(DPMJET_DIR)/lib/lepto2.o \
		$(DPMJET_DIR)/lib/pythia61.o \
		$(STDHEP_DIR)/lib/libstdhep.a \
		$(STDHEP_DIR)/lib/libFmcfio.a \
		-L$(CRNLIB) -lmathlib -lpacklib $(LOCAL)

testpdg:     testpdgtran.o $(STDHEP_DIR)/lib/libstdhep.a
	$(F77) $(FFLAGS) -o $@  testpdgtran.o \
		$(STDHEP_DIR)/lib/libstdhep.a

clean:
	rm -f *.o

realclean:
	rm -f stdtst stdtsth stdtsti stdtstj stdtstp stdtstq stdlistj
	rm -f stdtstio stdtstiom stdtstiox stdtstxin stdtstxout
	rm -f testpdg stdtst_dpm
	rm -f *.bak *.o

#------------------------------------------

.SUFFIXES : 
.SUFFIXES : .o .c .F .inc .h

.F.o:
	$(CPP) $(KPPFLAGS) $(INCS) $< > $*.f 
	$(F77) $(FFLAGS) -c $*.f
	rm -f $*.f
