include ../../Configure
HOME 	=	$(ROOT)/src/misc

default: misc

BIN	=	$(HOME)/bin
LIB	= 	$(HOME)/lib
SRC	=	$(HOME)/src
INC	=	$(HOME)/include
MAN	=	$(HOME)/doc
DESTBIN	=	$(LBIN)
DESTLIB	=	$(LLIB)
DESTINC	=	$(LINC)
DESTMAN	=	$(LMAN)

#  
INCS	= 	-I$(LINC) -I$(XINC)
LIBS	= 	-L$(LLIB) -lFITS -lohana -lm
CFLAGS	=	$(INCS)
LFLAGS	=	$(LIBS)

PROGRAMS = gconfig mknames fhead ftable fields list_astro glockfile \
radec mktemp precess csystem fits_insert mkgauss \
medianfilter mefhead mkfringetable gtfringetable ckfits applyscat fiximg

misc: $(PROGRAMS)

FAKESRC = $(SRC)/fakestars.$(ARCH).o $(SRC)/random.$(ARCH).o

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

fakestars: $(DESTBIN)/fakestars

$(BIN)/cfhtlog.$(ARCH): $(SRC)/cfhtlog.c
	$(CC) -I/cfht/include -L/cfht/lib -o $(BIN)/cfhtlog.$(ARCH) $(SRC)/cfhtlog.c -lcfht 

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

cfhtlog:
	make $(DESTBIN)/cfhtlog

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

# 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)

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

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

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

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

install:
	for i in $(PROGRAMS); do make $$i.install || exit; done

clean:
	for i in $(PROGRAMS); do make $$i.clean; done
	rm -f */*~
	rm -f */#*
	rm -f *~
	rm -f #*

