include ../../Configure
HOME 	=	$(ROOT)/src/kapa
PROGRAM =       kapa

default: $(PROGRAM)
CC      =       gcc -g

INC	=	$(HOME)/include
BIN	=	$(HOME)/bin
BDIR	=	$(HOME)/button
CDIR	=	$(HOME)/colorbar
EDIR	=	$(HOME)/event
MDIR	=	$(HOME)/misc
ODIR	=	$(HOME)/overlay
PDIR	=	$(HOME)/picture
GDIR	=	$(HOME)/graph
SDIR	=	$(HOME)/setup
ZDIR	=	$(HOME)/zoom
DESTBIN	=	$(LBIN)
DESTLIB	=	$(LLIB)
DESTINC	=	$(LINC)
DESTMAN	=	$(LMAN)
#
INCS	= 	-I$(INC) -I$(LINC) -I$(XINC)
#LIBS	= 	-L$(LLIB) $(XLIB) -lFITS -lohana -lX11 -lm
LIBS	= 	-L$(LLIB) $(XLIB) -lFITS -lohana -lX11 -lsocket -lnsl -lpng -lz -lm
CFLAGS  =	-o $*.$(ARCH).o $(INCS) 
CCFLAGS	=	$(INCS) $(LIBS) 

# local source / object files ########################
BOBJ = \
$(BDIR)/ButtonFunctions.$(ARCH).o         $(BDIR)/InButton.$(ARCH).o           \
$(BDIR)/CheckButtons.$(ARCH).o     	  $(BDIR)/InPicture.$(ARCH).o          \
$(BDIR)/DrawButton.$(ARCH).o       	  $(BDIR)/InvertButton.$(ARCH).o       \
$(BDIR)/FlashButton.$(ARCH).o      	  $(BDIR)/PSit.$(ARCH).o               \
$(SDIR)/DrawBitmap.$(ARCH).o               

EOBJ = \
$(EDIR)/CheckPipe.$(ARCH).o               $(EDIR)/Stop.$(ARCH).o               \
$(EDIR)/EventLoop.$(ARCH).o         	  $(EDIR)/Reconfig.$(ARCH).o           \
$(EDIR)/SetFont.$(ARCH).o           	  $(EDIR)/PositionPicture.$(ARCH).o\
$(EDIR)/InterpretKeys.$(ARCH).o     	  $(EDIR)/Refresh.$(ARCH).o		\
$(EDIR)/SetSection.$(ARCH).o		  $(EDIR)/FlushDisplay.$(ARCH).o	\
$(EDIR)/Resize.$(ARCH).o

GOBJ = \
$(GDIR)/DrawObjects.$(ARCH).o             $(GDIR)/DrawFrame.$(ARCH).o       	\
$(GDIR)/DrawText.$(ARCH).o		  $(GDIR)/LoadObject.$(ARCH).o		\
$(GDIR)/ErasePlot.$(ARCH).o		  $(GDIR)/LoadBox.$(ARCH).o		\
$(GDIR)/SetLimits.$(ARCH).o               $(GDIR)/PSObjects.$(ARCH).o		\
$(GDIR)/DrawLabels.$(ARCH).o              $(GDIR)/LoadLabels.$(ARCH).o		\
$(GDIR)/cursor.$(ARCH).o 		  $(GDIR)/PSFrame.$(ARCH).o		\
$(GDIR)/LoadPtext.$(ARCH).o		  $(GDIR)/DrawPtext.$(ARCH).o		\
$(GDIR)/PSLabels.$(ARCH).o		  $(GDIR)/PSPtext.$(ARCH).o		\
$(GDIR)/DrawRotString.$(ARCH).o        	  $(GDIR)/PNGit.$(ARCH).o \
$(GDIR)/PPMit.$(ARCH).o

SOBJ = \
$(SDIR)/CheckColors.$(ARCH).o             $(SDIR)/MakeGC.$(ARCH).o             \
$(SDIR)/CheckDisplayName.$(ARCH).o  	  $(SDIR)/MapWindow.$(ARCH).o          \
$(SDIR)/CheckFontName.$(ARCH).o     	  $(SDIR)/NameWindow.$(ARCH).o         \
$(SDIR)/CheckGeometry.$(ARCH).o     	  $(SDIR)/OpenDisplay.$(ARCH).o        \
$(SDIR)/CloseDisplay.$(ARCH).o      	  $(SDIR)/QuitX.$(ARCH).o              \
$(SDIR)/CreateWindow.$(ARCH).o      	  $(SDIR)/SetNormalHints.$(ARCH).o     \
$(SDIR)/DefineLayout.$(ARCH).o      	  $(SDIR)/SetUpDisplay.$(ARCH).o       \
$(SDIR)/SetUpWindow.$(ARCH).o        						\
$(SDIR)/GetColor.$(ARCH).o          	  $(SDIR)/SetWMHints.$(ARCH).o         \
$(SDIR)/LoadFont.$(ARCH).o          	  $(SDIR)/TopWindow.$(ARCH).o          \
$(SDIR)/MakeColormap.$(ARCH).o      	  $(SDIR)/Ximage.$(ARCH).o             \
$(SDIR)/MakeCursor.$(ARCH).o

OBJ  =  $(EOBJ) $(GOBJ) $(MOBJ) $(SOBJ) 

# dependancy rules for include files ########################
$(OBJ): $(INC)/Ximage.h \
	$(INC)/constants.h \
	$(INC)/structures.h \
	$(INC)/prototypes.h

#### nothing program-dependant below ####
# dependancy rules for binary code ##########################
$(PROGRAM): $(BIN)/$(PROGRAM).$(ARCH)

$(BIN)/$(PROGRAM).$(ARCH): $(OBJ)
	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
	$(CC) $(OBJ) -o $(BIN)/$(PROGRAM).$(ARCH) $(CCFLAGS)

install: $(DESTBIN)/$(PROGRAM)

$(DESTBIN)/$(PROGRAM): $(BIN)/$(PROGRAM).$(ARCH)
	@if [ ! -d $(DESTBIN) ]; then mkdir -p $(DESTBIN); fi
	rm -f $(DESTBIN)/$(PROGRAM)
	cp $(BIN)/$(PROGRAM).$(ARCH) $(DESTBIN)/$(PROGRAM)

# utilities #################################################
clean:
	rm -f $(BIN)/*.$(ARCH)
	rm -f `find . -name "*.o"`
	rm -f `find . -name "*~"`
	rm -f `find . -name "#*"`

dist: clean
	rm -f */*.*.o
	rm -f $(BIN)/$(PROGRAM).*

.SUFFIXES: .$(ARCH).o

.c.$(ARCH).o:
	$(CC) $(CFLAGS) -c $<


