Index: trunk/Ohana/src/gastro/Makefile
===================================================================
--- trunk/Ohana/src/gastro/Makefile	(revision 2510)
+++ trunk/Ohana/src/gastro/Makefile	(revision 3303)
@@ -1,8 +1,9 @@
+default: gastro
+help:
+	@echo "make options: gastro (default)"
+
 include ../../Configure
+
 HOME 	=	$(ROOT)/src/gastro
-CONFIG  =	$(ROOT)/config
-
-default: gastro
-
 BIN	=	$(HOME)/bin
 INC	= 	$(HOME)/include
@@ -17,152 +18,72 @@
 INCS	= 	-I$(INC) -I$(LINC) -I$(XINC)
 LIBS	= 	-L$(LLIB) -lFITS -lohana -lm -lsocket -lnsl 
-CFLAGS	=	-o $*.$(ARCH).o $(INCS)
-CCFLAGS	=	$(INCS) $(LIBS) 
-
-OBJS	= \
-$(SRC)/get_stars.$(ARCH).o 		$(SRC)/delta.$(ARCH).o        \
-$(SRC)/line_fit.$(ARCH).o 		$(SRC)/ranges.$(ARCH).o       \
-$(SRC)/find_shift.$(ARCH).o 		
-
-# 
-# -----------------------
-EOBJ	= \
-$(SRC)/extract.$(ARCH).o 		$(SRC)/extract_catalog.$(ARCH).o \
-$(SRC)/precess.$(ARCH).o		$(SRC)/stats.$(ARCH).o
-
-
-$(EOBJ):  $(INC)/astro.h
-
-extract: $(BIN)/extract
-
-$(BIN)/extract: $(EOBJ)
-	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
-	$(CC) $(EOBJ) -o $(BIN)/extract $(CCFLAGS) 
-
-install.extract:
-	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
-	rm -f $(DESTBIN)/extract
-	cp $(BIN)/extract   $(DESTBIN)/
-# -----------------------
-SOBJ	= \
-$(SRC)/simulate.$(ARCH).o 		$(SRC)/gregions2.$(ARCH).o \
-$(SRC)/gcatalog.$(ARCH).o		$(SRC)/coordops.$(ARCH).o \
-$(SRC)/gproject.$(ARCH).o		$(SRC)/gaussian.$(ARCH).o
-
-$(SOBJ):  $(INC)/astro.h
-
-simulate: $(BIN)/simulate.$(ARCH)
-
-$(BIN)/simulate: $(SOBJ)
-	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
-	$(CC) $(SOBJ) -o $(BIN)/simulate.$(ARCH) $(CCFLAGS) 
-
-install.simulate:
-	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
-	rm -f $(DESTBIN)/simulate
-	cp $(BIN)/simulate.$(ARCH) $(DESTBIN)/simulate
+CFLAGS	=	$(INCS)
+LFLAGS	=	$(LIBS) 
 
 # -----------------------
-GOBJ	= \
-$(SRC)/gastro.$(ARCH).o 		$(SRC)/gstars.$(ARCH).o \
-$(SRC)/gargs.$(ARCH).o			$(SRC)/gregions2.$(ARCH).o \
-$(SRC)/gcatalog.$(ARCH).o		\
-$(SRC)/gcenter.$(ARCH).o		$(SRC)/granges.$(ARCH).o  \
-$(SRC)/gfit.$(ARCH).o			$(SRC)/rotate.$(ARCH).o   \
-$(SRC)/gproject.$(ARCH).o		$(SRC)/gheader.$(ARCH).o  \
+OBJ	= \
+$(SRC)/gastro.$(ARCH).o \
+$(SRC)/gstars.$(ARCH).o \
+$(SRC)/gargs.$(ARCH).o \
+$(SRC)/gregions2.$(ARCH).o \
+$(SRC)/gcatalog.$(ARCH).o \
+$(SRC)/gcenter.$(ARCH).o \
+$(SRC)/granges.$(ARCH).o \
+$(SRC)/gfit.$(ARCH).o \
+$(SRC)/rotate.$(ARCH).o \
+$(SRC)/gproject.$(ARCH).o \
+$(SRC)/gheader.$(ARCH).o \
 $(SRC)/ConfigInit.$(ARCH).o \
-$(SRC)/sort.$(ARCH).o			$(SRC)/gfitpoly.$(ARCH).o \
+$(SRC)/sort.$(ARCH).o \
+$(SRC)/gfitpoly.$(ARCH).o \
 $(SRC)/gaussj.$(ARCH).o \
 $(SRC)/get_region_coords.$(ARCH).o \
-$(SRC)/greference.$(ARCH).o		$(SRC)/getusno.$(ARCH).o	\
-$(SRC)/plotstuff.$(ARCH).o		$(SRC)/gptolemy.$(ARCH).o	\
-$(SRC)/g2mass.$(ARCH).o			$(SRC)/misc.$(ARCH).o
-
-$(GOBJ):  $(INC)/gastro.h
+$(SRC)/greference.$(ARCH).o \
+$(SRC)/getusno.$(ARCH).o \
+$(SRC)/plotstuff.$(ARCH).o \
+$(SRC)/gptolemy.$(ARCH).o \
+$(SRC)/g2mass.$(ARCH).o \
+$(SRC)/misc.$(ARCH).o
 
 gastro: $(BIN)/gastro.$(ARCH)
 
-$(BIN)/gastro.$(ARCH): $(GOBJ)
+$(BIN)/gastro.$(ARCH): $(OBJ)
+
+$(OBJ): $(INC)/gastro.h
+
+INSTALL = gastro
+
+# generic 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) $(GOBJ) -o $(BIN)/gastro.$(ARCH) $(CCFLAGS) 
+	$(CC) $^ -o $@ $(LFLAGS)
 
-install.gastro: $(DESTBIN)/gastro
+$(DESTBIN)/%: $(BIN)/%.$(ARCH)
+	@if [ ! -d $(DESTBIN) ]; then mkdir -p $(DESTBIN); fi
+	rm -f $(DESTBIN)/$*
+	cp $(BIN)/$*.$(ARCH) $(DESTBIN)/$*
 
-$(DESTBIN)/gastro: $(BIN)/gastro.$(ARCH)
-	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
-	rm -f $(DESTBIN)/gastro
-	cp $(BIN)/gastro.$(ARCH)   $(DESTBIN)/gastro
-# -----------------------
-DOBJ	= \
-$(SRC)/gscdump.$(ARCH).o 		$(SRC)/gstars.$(ARCH).o \
-$(SRC)/gargs.$(ARCH).o			$(SRC)/gregions2.$(ARCH).o \
-$(SRC)/gcatalog.$(ARCH).o		$(SRC)/coordops.$(ARCH).o \
-$(SRC)/gcenter.$(ARCH).o		$(SRC)/granges.$(ARCH).o  \
-$(SRC)/gfit.$(ARCH).o			$(SRC)/rotate.$(ARCH).o   \
-$(SRC)/gproject.$(ARCH).o		$(SRC)/gheader.$(ARCH).o  \
-$(SRC)/config.$(ARCH).o			$(SRC)/ConfigInit.$(ARCH).o \
-$(SRC)/sort.$(ARCH).o
+$(INSTALL) $(DEVEL): % : $(BIN)/%.$(ARCH)
 
-$(DOBJ):  $(INC)/gastro.h
+%.clean :
+	rm -f $(BIN)/$*.$(ARCH)
 
-gscdump: $(BIN)/gscdump.$(ARCH)
+%.install:
+	make $(DESTBIN)/$*
 
-$(BIN)/gscdump.$(ARCH): $(DOBJ)
-	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
-	$(CC) $(DOBJ) -o $(BIN)/gscdump.$(ARCH) $(CCFLAGS) 
+# utilities #################################################
 
-install.gscdump: $(DESTBIN)/gscdump
+install:
+	for i in $(INSTALL); do make $$i.install; done
 
-$(DESTBIN)/gscdump: $(BIN)/gscdump.$(ARCH)
-	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
-	rm -f $(DESTBIN)/gscdump
-	cp $(BIN)/gscdump.$(ARCH)   $(DESTBIN)/gscdump
-# -----------------------
-AOBJ	= $(OBJS) \
-$(SRC)/stats.$(ARCH).o 			$(SRC)/astro.$(ARCH).o \
-$(SRC)/get_catalog_stars.$(ARCH).o 	$(SRC)/extract_catalog.$(ARCH).o \
-$(SRC)/precess.$(ARCH).o		$(SRC)/alter_header.$(ARCH).o \
-$(SRC)/args.$(ARCH).o			
-
-$(AOBJ):  $(INC)/astro.h
-
-astro: $(BIN)/astro
-
-$(BIN)/astro: $(AOBJ)
-	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
-	$(CC) $(AOBJ) -o $(BIN)/astro $(CCFLAGS) 
-
-# -----------------------
-ROBJ	= $(OBJS) \
-$(SRC)/rastro.$(ARCH).o 		$(SRC)/ralter_header.$(ARCH).o \
-$(SRC)/rargs.$(ARCH).o			$(SRC)/get_argument.$(ARCH).o \
-$(SRC)/remove_argument.$(ARCH).o
-
-$(ROBJ):  $(INC)/astro.h
-
-rastro: $(BIN)/rastro
-
-$(BIN)/rastro: $(ROBJ)
-	@if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi
-	$(CC) $(ROBJ) -o $(BIN)/rastro $(CCFLAGS) 
-
-# -----------------------
-install: install.gastro
-
-clean:
+clean:	
 	rm -f $(BIN)/*.$(ARCH)
 	rm -f `find . -name "*.o"`
 	rm -f `find . -name "*~"`
 	rm -f `find . -name "#*"`
-
-dist: clean
-	rm -f $(BIN)/astro
-	rm -f $(BIN)/rastro
-
-
-.SUFFIXES: .$(ARCH).o
-
-.c.$(ARCH).o:
-	$(CC) $(CFLAGS) -c $<
-
-
