include ../make.include

#--------------------------defines

CXXFLAGS = $(CXXOPT) -I../include -I$(X11INCLUDE)/X11

SRC	= saotk.C \
	  util.C

TAGS	= $(SRC) *.h

DIRS	= widget frame colorbar panner magnifier vector list \
	  fitsy++ wcs ast fitsy filter hal
OBJS	= saotk.o util.o widget/*.o frame/*.o colorbar/*.o panner/*.o \
	  magnifier/*.o vector/*.o list/*.o fitsy++/*.o wcs/*.o \
	  ast/*.o fitsy/*.o filter/*.o hal/*.o

LIB	= libsaotk.a
SHARED	= libsaotk.$(SHEXT)

#--------------------------build

all	: saotk.o util.o $(DIRS) tags

ifdef BUILD_SHARED
  install : all lib shared
else
  install : all lib
endif

#--------------------------items

shared	: $(SHARED)
	cp $(SHARED) ../lib/.

lib	: $(LIB)
	cp $(LIB) ../lib/.

$(SHARED): FORCE
	$(RM) $@
	$(SHCMD) $@ $(OBJS)

$(LIB)	: FORCE
	$(RM) $@
	$(LIBCMD) $@ $(OBJS)
	$(RANLIB) $@

frame : FORCE
	cd frame; $(MAKE)

colorbar: FORCE
	cd colorbar; $(MAKE)

panner	: FORCE
	cd panner; $(MAKE)

magnifier: FORCE
	cd magnifier; $(MAKE)

widget	: FORCE
	cd widget; $(MAKE)

vector	: FORCE
	cd vector; $(MAKE)

list	: FORCE
	cd list; $(MAKE)

fitsy++	: FORCE
	cd fitsy++; $(MAKE)

wcs	: FORCE
	cd wcs; $(MAKE)

ast	: FORCE
	cd ast; $(MAKE)

fitsy	: FORCE
	cd fitsy; $(MAKE) CC=$(CC)

filter	: FORCE
	cd filter; $(MAKE) CC=$(CC)

hal	: FORCE
	cd hal; $(MAKE)

clean	: FORCE
	rm -f core *~ *#
	cd frame; $(MAKE) clean
	cd colorbar; $(MAKE) clean
	cd panner; $(MAKE) clean
	cd magnifier; $(MAKE) clean
	cd widget; $(MAKE) clean
	cd vector; $(MAKE) clean
	cd list; $(MAKE) clean
	cd fitsy++; $(MAKE) clean
	cd ast; $(MAKE) clean
	cd fitsy; $(MAKE) clean
	cd filter; $(MAKE) clean
	cd hal; $(MAKE) clean

distclean : FORCE
	rm -f TAGS core *~ *#
	rm -f *.o *.$(SHEXT) *.a
	cd frame; $(MAKE) distclean
	cd colorbar; $(MAKE) distclean
	cd panner; $(MAKE) distclean
	cd magnifier; $(MAKE) distclean
	cd widget; $(MAKE) distclean
	cd vector; $(MAKE) distclean
	cd list; $(MAKE) distclean
	cd fitsy++; $(MAKE) distclean
	cd wcs; $(MAKE) distclean
	cd ast; $(MAKE) distclean
	cd fitsy; $(MAKE) distclean
	cd filter; $(MAKE) distclean
	cd hal; $(MAKE) distclean

TAGS	: $(TAGS)
	etags $+

tags	: TAGS FORCE
	cd frame; $(MAKE) TAGS
	cd colorbar; $(MAKE) TAGS
	cd panner; $(MAKE) TAGS
	cd magnifier; $(MAKE) TAGS
	cd widget; $(MAKE) TAGS
	cd vector; $(MAKE) TAGS
	cd list; $(MAKE) TAGS
	cd fitsy++; $(MAKE) TAGS
	cd wcs; $(MAKE) TAGS
	cd ast; $(MAKE) TAGS
	cd hal; $(MAKE) TAGS

parsers	: FORCE
	cd frame; $(MAKE) parsers
	cd colorbar; $(MAKE) parsers
	cd panner; $(MAKE) parsers
	cd magnifier; $(MAKE) parsers
	cd fitsy++; $(MAKE) parsers

FORCE	:

ifndef DEPENDS
%.d: %.C
	set -e; $(CXX) -MM $(CXXFLAGS) $< \
	| sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
	[ -s $@ ] || rm -f $@

include $(SRC:.C=.d)
endif
