default: psphot
help:
	@echo "USAGE: make psphot"

CC      =       gcc -g -Wall
SRC     =       src
BIN     =       bin

DESTBIN =       /home/eugene/src/bin/$(ARCH)

LPSLIB  :=      $(shell pslib-config --libs)
IPSLIB  :=      $(shell pslib-config --cflags)

INCS	= 	$(IPSLIB)
LIBS	= 	-lpsmodule $(LPSLIB)
CFLAGS	=	$(INCS) -std=c99
LFLAGS	=	$(LIBS)

PSPHOT = \
$(SRC)/psphot.$(ARCH).o \
$(SRC)/pspsf.$(ARCH).o \
$(SRC)/psphot-utils.$(ARCH).o \
$(SRC)/psPolynomials.$(ARCH).o \
$(SRC)/psUtils.$(ARCH).o

psphot: $(BIN)/psphot.$(ARCH)

$(BIN)/psphot.$(ARCH) : $(PSPHOT)

# $(PSPHOT): $(INC)/psphot.h

PSTEST = \
$(SRC)/pstest.$(ARCH).o

pstest: $(BIN)/pstest.$(ARCH)

$(BIN)/pstest.$(ARCH) : $(PSTEST)

MODELTEST = \
$(SRC)/modeltest.$(ARCH).o \
$(SRC)/psUtils.$(ARCH).o

modeltest: $(BIN)/modeltest.$(ARCH)

$(BIN)/modeltest.$(ARCH) : $(MODELTEST)

POLYTEST = \
$(SRC)/polytest.$(ARCH).o \
$(SRC)/psUtils.$(ARCH).o

polytest: $(BIN)/polytest.$(ARCH)

$(BIN)/polytest.$(ARCH) : $(POLYTEST)

POLY2DTEST = \
$(SRC)/poly2dtest.$(ARCH).o \
$(SRC)/psUtils.$(ARCH).o

poly2dtest: $(BIN)/poly2dtest.$(ARCH)

$(BIN)/poly2dtest.$(ARCH) : $(POLY2DTEST)

INSTALL = psphot

# dependancy rules for binary code #########################
.PRECIOUS: %.$(ARCH).o
.PRECIOUS: $(BIN)/%.$(ARCH)

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

$(BIN)/%.$(ARCH) : $(SRC)/%.$(ARCH).o
	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
	$(CC) $^ -o $@ $(LFLAGS)
	@echo "done with $@"

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

$(INSTALL): % : $(BIN)/%.$(ARCH)

%.clean :
	rm -f $(BIN)/$*.$(ARCH)
	rm -f $(SRC)/*.$(ARCH).o

%.install:
	make $(DESTBIN)/$*

# utilities #################################################

install:
	for i in $(INSTALL); do make $$i.install; done

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