# No imake file exists, only this Makefile
# and makefile.f2c

# define the default size of data arrays. This can be modified
# when the program is invoked (e.g. robot -arraysize 2000) or
# changed at any time with the robot command ARRAYSIZE

ARRAYSIZE = 4096

# define system utilities - i.e. mail and print
MAILER = /usr/ucb/mail
LPR = /usr/ucb/lpr


#determine which operating system we have
# ARCH :sh= uname

# define compilers
#CC = cc
CC = gcc
F77 = f77
# define compile options here if required, 
# e.g. debug 
# CFLAGS = -g
# or optimise (if you have enough swap space)
# CFLAGS = -O
# or nothing at all
 CFLAGS =

#Fortran compiler options - more debug work
 FFLAGS = 
# Check array boundaries
# FFLAGS = -C


# specify here the directory where the openwindow include
# files are kept
# INCLUDE = /usr/local/openwin/include
INCLUDE = $(OPENWINHOME)/include

# OPENWINDOWS libraries
OLLIBS =  $(OPENWINHOME)/lib/libxview.a \
          $(OPENWINHOME)/lib/libolgx.a
#F77 library (if needed)
F77LIB = -lF77

# location of the FITS library
FITSDIR = ../Fitsio/
FITSLIB = $(FITSDIR)libfits.a

# if USA is defined we make some attempt to use USA spellings
LANGUAGE = -DUSA
#LANGUAGE = -DUK


# This specifies the location of the graphics routines in
# the ARK directory
ARKDIR = ../ARK/
ARKLIB = $(ARKDIR)libark.a
# installation directory
# INSTDIR = /bulk/pkg/xray/bin
INSTDIR = /home/heasfs/corbet/bin
# place to put the robot.info file
HELPDIR = /home/heasfs/corbet/help

OBJS = robot.o subroutines.o subroutines2.o subroutines3.o \
user.o main.o rfitsf.o rfitsc.o fits3d.o york.o classify.o \
nr.o colors.o fitter.o browser.o about.o history.o axes.o zoom.o dnd.o \
specials.o split.o math.o text_editor.o canvas_menu.o sheet.o register.o


robot:  $(OBJS) Makefile FITSLIB ARKLIB
	$(F77) $(OBJS)\
  $(ARKLIB)\
  $(OLLIBS)\
  $(FLAG)\
  -lX11\
  $(F77LIB)\
  $(FITSLIB)\
  $(CFLAGS) -o robot

# For DEC Alpha machines
alpha:
	make robot "OS=-DSUNOS41" "FLAG=-nofor_main" \
	"OLLIBS=$(OPENWINHOME)/lib/libxview.so $(OPENWINHOME)/lib/libolgx.so" \
	"F77LIB = -lm"
# For Sun Solaris systems
solaris:
	make robot "F77LIB = -lc -L/usr/ucblib -lucb"\
	"OLLIBS=$(OPENWINHOME)/lib/libxview.so $(OPENWINHOME)/lib/libolgx.so" 

FITSLIB: 
	(cd $(FITSDIR); make libfits.a)
ARKLIB:
	(cd $(ARKDIR); make libark.a "OS=$(OS)" "LPR=$(LPR)")
robot.o: robot.f robcom msizcom fitcom
	$(F77)  -c -Nx300 $(CFLAGS) $(FFLAGS) robot.f
subroutines.o: subroutines.f robcom fitcom
	$(F77)  -c $(CFLAGS) $(FFLAGS) subroutines.f
subroutines2.o: subroutines2.f robcom msizcom fitcom
	$(F77)  -c $(CFLAGS) $(FFLAGS) subroutines2.f
subroutines3.o: subroutines3.f robcom msizcom
	$(F77)  -c $(CFLAGS) $(FFLAGS) subroutines3.f
nr.o: nr.f robcom
	$(F77)  -c $(CFLAGS) nr.f
main.o: main.c robot.h patchlevel.h
	$(CC) -c $(CFLAGS) main.c -I$(INCLUDE) $(LANGUAGE) $(OS) -DARRAYSIZE=$(ARRAYSIZE)
colors.o: colors.c
	$(CC) -c $(CFLAGS) colors.c -I$(INCLUDE) $(LANGUAGE) $(OS) 
fitter.o: fitter.c
	$(CC) -c $(CFLAGS) fitter.c -I$(INCLUDE) $(LANGUAGE) $(OS) 
browser.o: browser.c
	$(CC) -c $(CFLAGS) browser.c -I$(INCLUDE) $(LANGUAGE) $(OS)
about.o: about.c
	$(CC) -c $(CFLAGS) about.c -I$(INCLUDE) $(LANGUAGE) $(OS) -DMAILER=\"$(MAILER)\" 
history.o: history.c
	$(CC) -c $(CFLAGS) history.c -I$(INCLUDE) $(LANGUAGE) $(OS) 
canvas_menu.o: canvas_menu.c
	$(CC) -c $(CFLAGS) canvas_menu.c -I$(INCLUDE) $(LANGUAGE) $(OS)
text_editor.o: text_editor.c
	$(CC) -c $(CFLAGS) text_editor.c -I$(INCLUDE) $(LANGUAGE) $(OS)
axes.o: axes.c
	$(CC) -c $(CFLAGS) axes.c -I$(INCLUDE) $(LANGUAGE) $(OS) 
zoom.o: zoom.c
	$(CC) -c $(CFLAGS) zoom.c -I$(INCLUDE) $(LANGUAGE) $(OS) 
specials.o: specials.c
	$(CC) -c $(CFLAGS) specials.c -I$(INCLUDE) $(LANGUAGE) $(OS) 
split.o: split.c
	$(CC) -c $(CFLAGS) split.c -I$(INCLUDE) $(LANGUAGE) $(OS) 
sheet.o: sheet.c
	$(CC) -c $(CFLAGS) sheet.c -I$(INCLUDE) $(LANGUAGE) $(OS) 
register.o: register.c patchlevel.h robot.h
	$(CC) -c $(CFLAGS) register.c -I$(INCLUDE) $(LANGUAGE) $(OS) -DMAILER=\"$(MAILER)\" 
dnd.o: dnd.c
	$(CC) -c $(CFLAGS) dnd.c -I$(INCLUDE) $(LANGUAGE) $(OS)
math.o: math.c
	$(CC) -c $(CFLAGS) math.c
user.o: user.f
	$(F77) -c $(CFLAGS) user.f
york.o: york.f robcom
	$(F77) -c $(CFLAGS) york.f
rfitsf.o: rfitsf.f robcom
	$(F77) -c $(CFLAGS) rfitsf.f
rfitsc.o: rfitsc.c
	$(CC) -c $(CFLAGS) rfitsc.c
fits3d.o: fits3d.f robcom
	$(F77) -c $(CFLAGS) fits3d.f
classify.o: classify.c
	$(CC) -c $(CFLAGS) classify.c
.mfile:
	@echo "WARNING - SENDING MAIL TO corbet@astro.psu.edu"
	echo "Makefile" > .mfile
	cat patchlevel.h >> .mfile
	/bin/mail corbet@astro.psu.edu < .mfile
backup:
	cp $(INSTDIR)/robot $(INSTDIR)/robot.old
install:
	cp robot.info $(HELPDIR)/.
	(strip robot; mv robot $(INSTDIR))
bitclean:
	rm -f robot.o subroutines.o subroutines2.o subroutines3.o
	rm -f nr.o user.o rfitsf.o fits3d.o york.o
clean:
	rm -f *.o *% core robot.trace
veryclean:
	rm -f *.o *% core robot.trace robot
