Index: /trunk/Ohana/src/getstar/Makefile
===================================================================
--- /trunk/Ohana/src/getstar/Makefile	(revision 15539)
+++ /trunk/Ohana/src/getstar/Makefile	(revision 15540)
@@ -20,8 +20,8 @@
 getstar.install: $(DESTBIN)/getstar
 
-dvoImageOverlaps: $(BIN)/dvoImageOverlaps.$(ARCH)
+dvoImageOverlaps: $(BIN)/dvoImageOverlaps.$(ARCH) $(DVO_LIBS)
 dvoImageOverlaps.install: $(DESTBIN)/dvoImageOverlaps
 
-dvoImageExtract: $(BIN)/dvoImageExtract.$(ARCH)
+dvoImageExtract: $(BIN)/dvoImageExtract.$(ARCH) $(DVO_LIBS)
 dvoImageExtract.install: $(DESTBIN)/dvoImageExtract
 
@@ -30,13 +30,17 @@
 
 GETSTAR = \
-$(SRC)/getstar.$(ARCH).o 	 \
-$(SRC)/args.$(ARCH).o		 \
-$(SRC)/ConfigInit.$(ARCH).o 	 \
-$(SRC)/Shutdown.$(ARCH).o	 \
-$(SRC)/SetSignals.$(ARCH).o	 \
-$(SRC)/select_by_region.$(ARCH).o
+$(SRC)/getstar.$(ARCH).o 	  \
+$(SRC)/args.$(ARCH).o		  \
+$(SRC)/ConfigInit.$(ARCH).o 	  \
+$(SRC)/Shutdown.$(ARCH).o	  \
+$(SRC)/SetSignals.$(ARCH).o	  \
+$(SRC)/select_by_region.$(ARCH).o \
+$(SRC)/write_catalog.$(ARCH).o    \
+$(SRC)/write_getstar_ps1_dev_0.$(ARCH).o \
+$(SRC)/write_getstar_ps1_dev_1.$(ARCH).o \
+$(SRC)/write_getstar_ps1_dev_2.$(ARCH).o 
 
-$(GETSTAR): $(INC)/getstar.h
-$(BIN)/getstar.$(ARCH): $(GETSTAR)
+$(GETSTAR): $(INC)/getstar.h $(DVO_INCS)
+$(BIN)/getstar.$(ARCH): $(GETSTAR) $(DVO_LIBS)
 
 OVERLAPS = \
@@ -54,6 +58,6 @@
 $(SRC)/MatchImages.$(ARCH).o
 
-$(OVERLAPS): $(INC)/dvoImageOverlaps.h
-$(BIN)/dvoImageOverlaps.$(ARCH): $(OVERLAPS)
+$(OVERLAPS): $(INC)/dvoImageOverlaps.h $(DVO_INCS)
+$(BIN)/dvoImageOverlaps.$(ARCH): $(OVERLAPS) $(DVO_LIBS)
 
 EXTRACT = \
@@ -67,4 +71,4 @@
 $(SRC)/SelectImages.$(ARCH).o       
 
-$(EXTRACT): $(INC)/dvoImageExtract.h
-$(BIN)/dvoImageExtract.$(ARCH): $(EXTRACT)
+$(EXTRACT): $(INC)/dvoImageExtract.h $(DVO_INCS)
+$(BIN)/dvoImageExtract.$(ARCH): $(EXTRACT) $(DVO_LIBS)
Index: /trunk/Ohana/src/getstar/include/getstar.h
===================================================================
--- /trunk/Ohana/src/getstar/include/getstar.h	(revision 15539)
+++ /trunk/Ohana/src/getstar/include/getstar.h	(revision 15540)
@@ -19,4 +19,5 @@
 
 char OUTPUT[256];
+char OUTFORMAT[256];
 char GSCFILE[256];
 char CATDIR[256];
@@ -28,4 +29,5 @@
 int  MagLimitUse;
 float MagLimitValue;
+PhotCode *photcode;
 
 int  args             PROTO((int argc, char **argv));
Index: /trunk/Ohana/src/getstar/src/args.c
===================================================================
--- /trunk/Ohana/src/getstar/src/args.c	(revision 15539)
+++ /trunk/Ohana/src/getstar/src/args.c	(revision 15540)
@@ -8,8 +8,11 @@
 	   "getstar -image name\n"
 	   "getstar -immatch partial-name\n\n"
-	   " option options: \n"
-	   " -o output  : defaults to stdout\n"
-	   " -v         : verbose mode\n"
-	   " -h / -help : this list\n"
+	   " options: \n"
+	   " -maglim (mag)    : maximum magnitude returned\n"
+	   " -format (format) : output formats (CATALOG, PS1_DEV_0, PS1_DEV_1, PS1_DEV_2)\n"
+	   " -photcode (code) : desired photcode for output magnitudes\n"
+	   " -o output        : defaults to stdout\n"
+	   " -v               : verbose mode\n"
+	   " -h / -help       : this list\n"
     );
   exit (2);
@@ -49,4 +52,25 @@
     remove_argument (N, &argc, argv);
     strcpy (OUTPUT, argv[N]);
+    remove_argument (N, &argc, argv);
+  }
+
+  /* check for command line options */
+  strcpy (OUTFORMAT, "CATALOG");
+  if ((N = get_argument (argc, argv, "-format"))) {
+    remove_argument (N, &argc, argv);
+    strcpy (OUTFORMAT, argv[N]);
+    remove_argument (N, &argc, argv);
+  }
+
+  // in some cases, we need a photcode
+  photcode = GetPhotcodebyNsec (0); // default to first average photcode
+  if ((N = get_argument (argc, argv, "-photcode"))) {
+    remove_argument (N, &argc, argv);
+    photcode = GetPhotcodebyName (argv[N]);
+    if (photcode == NULL) {
+      fprintf (stderr, "photcode %s not found in photcode table\n", argv[N]);
+      exit (1);
+    }
+    // XXX check that photcode is SEC type
     remove_argument (N, &argc, argv);
   }
Index: /trunk/Ohana/src/getstar/src/getstar.c
===================================================================
--- /trunk/Ohana/src/getstar/src/getstar.c	(revision 15539)
+++ /trunk/Ohana/src/getstar/src/getstar.c	(revision 15540)
@@ -17,9 +17,15 @@
 
   // create an output catalog with the desired name and format options
+  dvo_catalog_init (&output, TRUE);
   output.filename  = OUTPUT;
   output.catformat = dvo_catalog_catformat (CATFORMAT);  // set the default catformat from config data
   output.catmode   = dvo_catalog_catmode (CATMODE);      // set the default catmode from config data
   output.Nsecfilt  = GetPhotcodeNsecfilt ();
-  dvo_catalog_open (&output, NULL, VERBOSE, "w");
+
+  // this has to be here because the 'open' inits the catalog (perhaps not ideal)
+  if (!strcmp (OUTFORMAT, "CATALOG")) {
+    unlink (OUTPUT);
+    dvo_catalog_open   (&output, NULL, VERBOSE, "w");
+  }
 
   switch (MODE) {
@@ -90,10 +96,18 @@
   }
 
-  /* write out the selected stars */
-  // XXX need to set the catalog boundaries by hand? RA0-RA1, DEC0-DEC1
-  dvo_catalog_save (&output, VERBOSE);
-  dvo_catalog_unlock (&output);
-  dvo_catalog_free (&output);
-  fprintf (stderr, "SUCCESS\n");
-  exit (0);
+  if (!strcmp (OUTFORMAT, "CATALOG")) {
+    write_catalog (&output);
+  }
+  if (!strcmp (OUTFORMAT, "PS1_DEV_0")) {
+    write_getstar_PS1_DEV_0 (&output);
+  }
+  if (!strcmp (OUTFORMAT, "PS1_DEV_1")) {
+    write_getstar_PS1_DEV_1 (&output);
+  }
+  if (!strcmp (OUTFORMAT, "PS1_DEV_2")) {
+    write_getstar_PS1_DEV_2 (&output);
+  }
+
+  fprintf (stderr, "error: invalid output format %s\n", OUTFORMAT);
+  exit (1);
 }
Index: /trunk/Ohana/src/getstar/src/select_by_region.c
===================================================================
--- /trunk/Ohana/src/getstar/src/select_by_region.c	(revision 15539)
+++ /trunk/Ohana/src/getstar/src/select_by_region.c	(revision 15540)
@@ -16,4 +16,11 @@
   if (VERBOSE) fprintf (stderr, "extracting for region %f,%f to %f,%f\n", 
 			region[0].Rmin, region[0].Dmin, region[0].Rmax, region[0].Dmax);
+
+  if (output[0].header.buffer != NULL) {
+    gfits_modify (&output[0].header, "RA0",  "%lf", 1, region[0].Rmin);
+    gfits_modify (&output[0].header, "DEC0", "%lf", 1, region[0].Dmin);
+    gfits_modify (&output[0].header, "RA1",  "%lf", 1, region[0].Rmax);
+    gfits_modify (&output[0].header, "DEC1", "%lf", 1, region[0].Dmax);
+  }
 
   /* select the average objects in this region */
Index: /trunk/Ohana/src/libautocode/Makefile.Targets
===================================================================
--- /trunk/Ohana/src/libautocode/Makefile.Targets	(revision 15539)
+++ /trunk/Ohana/src/libautocode/Makefile.Targets	(revision 15540)
@@ -35,4 +35,7 @@
 $(ASRC)/ps1_dev_1.$(ARCH).o \
 $(ASRC)/smpdata.$(ARCH).o \
+$(ASRC)/getstar-ps1-dev-0.$(ARCH).o \
+$(ASRC)/getstar-ps1-dev-1.$(ARCH).o \
+$(ASRC)/getstar-ps1-dev-2.$(ARCH).o \
 $(ASRC)/spectrum.$(ARCH).o \
 $(ASRC)/spectrum-ascii.$(ARCH).o \
@@ -76,4 +79,7 @@
 $(AINC)/ps1_dev_0.h \
 $(AINC)/ps1_dev_1.h \
+$(AINC)/getstar-ps1-dev-0.h \
+$(AINC)/getstar-ps1-dev-1.h \
+$(AINC)/getstar-ps1-dev-2.h \
 $(AINC)/smpdata.h \
 $(AINC)/spectrum.h \
Index: /trunk/Ohana/src/libdvo/Makefile
===================================================================
--- /trunk/Ohana/src/libdvo/Makefile	(revision 15539)
+++ /trunk/Ohana/src/libdvo/Makefile	(revision 15540)
@@ -92,5 +92,9 @@
 $(DESTLIB)/libdvo.$(DLLTYPE): $(LIB)/libdvo.$(ARCH).$(DLLTYPE)
 
-$(ASRC)/%.$(ARCH).o : $(ADEF)/%.d
+$(ASRC)/%.c : $(ADEF)/%.d
+	echo "make $@ from $^"
+	cd $(AUTO) && make $@
+
+$(ASRC)/%.$(ARCH).o : $(ASRC)/%.c
 	echo "make $@ from $^"
 	cd $(AUTO) && make $@
