#
# This is a make for GRAPE-DR.
# For other architectures, set GARCH and HIB as follows:
#
#          GRAPE-DR   GRAPE-7   GRAPE-6BX     GRAPE-6A   Phantom-GRAPE-5
# GARCH    gdr        g7        g6bx          g6a        pg5
# HIB      hib        hib       g6bxhib       -          -
#
# For architectures other than GRAPE-6A and Phantom-GRAPE-5, set HIBLIB
# and LINKHIB as follows:
#
# HIBLIB   = $(LIBPATH)/lib$(HIB).a
# LINKHIB  = -l$(HIB)
#
# For Phantom-GRAPE-5 with OpenMP enabled, set LDFLAGS and CFLAGS as follows:
#
# LDFLAGS += -fopenmp
# CFLAGS += -fopenmp
#
# cf. An architecuture-independent makefile can be found at Makefile.generic.
#

GARCH     = gdr
HIB       = hib
INCPATH   = ../../include
LIBPATH   = ../../lib
CC        = cc
CFLAGS    = -O3 -I$(INCPATH)
LDFLAGS   = -L$(LIBPATH)
SRC       = sticky9.c cpu.c force.c
OBJECT    = $(patsubst %.c,%.o,$(SRC))
AOBJECT   = sticky9a.o cpu.o force.o animation.o ksort.o Xtc.o
NOBJECT   = sticky9.o cpu.o force.o force_grape_nnb.o

HIBLIB  = $(LIBPATH)/lib$(HIB).a
LINKHIB = -l$(HIB)

s9_$(GARCH):	$(OBJECT) $(LIBPATH)/lib$(GARCH)5.a $(HIBLIB)
		$(CC) $(LDFLAGS) $(OBJECT) -o $@ -l$(GARCH)5 $(LINKHIB) -lm 

s9a_$(GARCH):	$(AOBJECT) $(LIBPATH)/lib$(GARCH)5.a $(HIBLIB)
		$(CC) $(LDFLAGS) $(AOBJECT) -o $@ -l$(GARCH)5 $(LINKHIB) -lm -lX11

s9nnb_$(GARCH):	$(NOBJECT) $(LIBPATH)/lib$(GARCH)5.a $(HIBLIB)
		$(CC) $(LDFLAGS) $(NOBJECT) -o $@ -l$(GARCH)5 $(LINKHIB) -lm

sticky9a.o:	sticky9.c
		$(CC) $(CFLAGS) -DANIMATION -c -o $@ sticky9.c


clean: 
	rm -f *.o s9_$(GARCH) s9a_$(GARCH) s9_* *~

bak:
	tar cvfz s9.tar.gz ./Makefile ./*.[ch]
