include ../make.include
include ../make.pkgs

.NOTPARALLEL :

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

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

DIRS	= widget frame colorbar panner magnifier vector list fitsy++

SRC	= \
	saotk.C \
	smooth.C \
	util.C

INCLS	= \
	FlexLexer.h  \
	smooth.h \
	util.h

OBJS	= $(SRC:%.C=%.o)

OTHRS	= \
	widget/*.o \
	frame/*.o \
	colorbar/*.o \
	panner/*.o \
	magnifier/*.o \
	vector/*.o \
	list/*.o \
	fitsy++/*.o \
	../$(WCSSUBSDIR)/*.o \
	../$(SLADIR)/*.o \
	../$(ASTDIR)/*.o \
	../$(ZLIBDIR)/*.o \
	../$(FUNTOOLSDIR)/filter/*.o \
	../$(FUNTOOLSDIR)/fitsy/*.o \
	../$(FUNTOOLSDIR)/util/*.o

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

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

ifdef BUILD_SHARED
all	: $(LIB) $(SHARED) TAGS 
install	: all
	cp -f $(LIB) $(SHARED) ../lib/.
else
all	: $(LIB) TAGS
install	: all
	cp -f $(LIB) ../lib/.
endif

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

$(LIB)	: $(OBJS) $(DIRS)
	$(RM) $@
	$(LIBCMD) $@ $(OBJS) $(OTHRS)
	$(RANLIB) $@

$(SHARED): $(OBJS) $(DIRS)
	$(RM) $@
	$(SHCMD) $@ $(OBJS) $(OTHRS)

TAGS	: $(SRC) $(INCLS)
	$(ETAGS) $+

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)

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

distclean : FORCE
	rm -f TAGS core *~ *#
	rm -f *.o $(LIB) $(SHARED)
	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

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
