include ../../../Configure

HOME    =       $(ROOT)/src/opihi
BIN     =       $(HOME)/bin
LIB     =       $(HOME)/lib
INC     =       $(HOME)/include
SDIR    =       $(HOME)/pantasks
#
DESTBIN =       $(LBIN)
DESTLIB =       $(LLIB)
DESTINC =       $(LINC)
DESTMAN =       $(LMAN)
DESTHLP =       $(LHLP)/pantasks

#  compile flags
INCS    =       -I$(INC) -I$(LINC) -I$(XINC)
CFLAGS  =       $(INCS) -DHELPDIR_DEFAULT=$(DESTHLP)

# link flags 
LIBS    = 	-L$(LIB) -L$(LLIB) -L$(XLIB)
LIBS1   =       -lsocket -lnsl -lreadline $(TLIB) -ldvo -lkapa -lFITS -lohana -lX11 -lpthread -lm
LIBS2   =       -lbasiccmd -ldatacmd -lastrocmd -lshell -ldata 
LFLAGS  =       $(LIBS) $(LIBS2) $(LIBS1) 

# sched user commands and support functions ########################

single = \
$(SDIR)/pantasks.$(ARCH).o

funcs = \
$(SDIR)/init.$(ARCH).o \
$(SDIR)/CheckJobs.$(ARCH).o \
$(SDIR)/CheckSystem.$(ARCH).o \
$(SDIR)/CheckController.$(ARCH).o \
$(SDIR)/CheckTasks.$(ARCH).o \
$(SDIR)/CheckTimeRanges.$(ARCH).o \
$(SDIR)/ControllerOps.$(ARCH).o \
$(SDIR)/LocalJob.$(ARCH).o \
$(SDIR)/JobOps.$(ARCH).o \
$(SDIR)/JobIDOps.$(ARCH).o \
$(SDIR)/TaskOps.$(ARCH).o

cmds = \
$(SDIR)/run.$(ARCH).o \
$(SDIR)/stop.$(ARCH).o \
$(SDIR)/pulse.$(ARCH).o \
$(SDIR)/status.$(ARCH).o \
$(SDIR)/kill.$(ARCH).o \
$(SDIR)/delete.$(ARCH).o \
$(SDIR)/server.$(ARCH).o \
$(SDIR)/verbose.$(ARCH).o \
$(SDIR)/controller.$(ARCH).o \
$(SDIR)/controller_host.$(ARCH).o \
$(SDIR)/controller_exit.$(ARCH).o \
$(SDIR)/controller_check.$(ARCH).o \
$(SDIR)/controller_status.$(ARCH).o \
$(SDIR)/controller_output.$(ARCH).o \
$(SDIR)/controller_pulse.$(ARCH).o \
$(SDIR)/task.$(ARCH).o \
$(SDIR)/task_host.$(ARCH).o \
$(SDIR)/task_nmax.$(ARCH).o \
$(SDIR)/task_macros.$(ARCH).o \
$(SDIR)/task_trange.$(ARCH).o \
$(SDIR)/task_periods.$(ARCH).o \
$(SDIR)/task_command.$(ARCH).o \
$(SDIR)/version.$(ARCH).o

client = \
$(SDIR)/pantasks_client.$(ARCH).o \
$(SDIR)/client_shell.$(ARCH).o \
$(SDIR)/invalid.$(ARCH).o \
$(SDIR)/init_client.$(ARCH).o

server = \
$(SDIR)/pantasks_server.$(ARCH).o \
$(SDIR)/ListenClients.$(ARCH).o \
$(SDIR)/CheckPassword.$(ARCH).o

libs = \
$(DESTLIB)/libshell.a \
$(DESTLIB)/libdata.a \
$(DESTLIB)/libbasiccmd.a \
$(DESTLIB)/libastrocmd.a \
$(DESTLIB)/libdatacmd.a

pantasks: $(BIN)/pantasks.$(ARCH)
$(BIN)/pantasks.$(ARCH) : $(single) $(funcs) $(cmds) $(libs)

pantasks_client: $(BIN)/pantasks_client.$(ARCH)
$(BIN)/pantasks_client.$(ARCH) : $(client) $(libs)

pantasks_server: $(BIN)/pantasks_server.$(ARCH)
$(BIN)/pantasks_server.$(ARCH) : $(server) $(funcs) $(cmds) $(libs)
	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
	$(CC) -o $@ $^ $(LFLAGS)

pantasks_client.install: $(DESTBIN)/pantasks_client
pantasks_server.install: $(DESTBIN)/pantasks_server

install: $(DESTBIN)/pantasks $(DESTBIN)/pantasks_client $(DESTBIN)/pantasks_server help

help: cmd.basic.help cmd.data.help cmd.astro.help pantasks.help

.PHONY: pantasks pantasks_client pantasks_server

include ../Makefile.Common
