##
## Makefile for MOIRCS Acquisition Software
##
##      Version 1.0 20050915 Masayuki Akiyama
##

PACKAGE = Mapping

PROG1 = check_raster
PROG2 = modify_files
PROG3 = make_list

SRCS = file_count_data.c file_read_list.c file_read_data.c \
	file_read_UCAC2.c file_read_USNO.c \
	file_read_SETUP.c file_read_xy.c \
	file_read_radec.c min_flux.c max_flux.c percentile.c

HEADS = cpgplot.h raster.h

OBJS = $(SRCS:.c=.o)

FILES = Makefile README README_makelist change_fowsc.awk remrefoff.awk \
	dist_focus1.sm dist_focus2.sm dist_focus3.sm \
        dist_param dist_param12.sm dist_param13.sm dist_param23.sm \
        temp_fam.sm FPIcoord.awk image_stamp.awk read_fowsc.awk \
        telescope.model_old.awk telescope.model.awk telescope.model.tempdep.awk telescope.model \
        focus_param1.awk offset_RADEC.awk calc_offset.awk \
        raster_pattern summary_poserr.awk \
	IRS1_spines IRS2_slitmap.dat IRS2_spines \
	$(SRCS) $(HEADS) $(PROG1).c $(PROG2).c $(PROG3).c

VER = `date +%Y%m%d`

### command and flags ###
# uncomment when debugging
# DEBUG = -ggdb -pg # -lefence

# uncomment in Solaris
# LIBSOL = -lnsl -lsocket

# PGPLOT
# LIBCPGPLOT = /opt/share/lib/libcpgplot.a
# LIBPGPLOT = /opt/share/lib/libpgplot.a
LIBCPGPLOT = /usr/local/pgplot/libcpgplot.a
LIBPGPLOT = /usr/local/pgplot/libpgplot.a
# WCSTOOLS
# LIBWCSTOOLS = /home/akiyama/wcstools-3.1.2/libwcs/libwcs.a

# CFITSIO
LIBCFITSIO = /opt/share/lib/libcfitsio.a

# common (*.o)
LD  = f77
LDFLAGS = $(DEBUG) 
LDLIBS  = -lm -lX11 $(LIBSOL)

# C (*.c)
CC  = gcc
CFLAGS  = -g -O2 -Wall $(DEBUG) -DDEBUG
CPPFLAGS= -I.

# etc
SHELL = /bin/sh
RM  = rm -f
PROF  = gprof

### rules ###

.SUFFIXES:
.SUFFIXES: .o .c .cc .f .p

all: $(PROG1) $(PROG2) $(PROG3)

$(PROG1): $(OBJS) $(PROG1).o
	$(LD) $(LDFLAGS) $(PROG1).o $(OBJS) -o $@ $(LDLIBS) $(LIBCPGPLOT) $(LIBPGPLOT)
$(PROG1).o: $(HEADS) Makefile
$(PROG2): $(OBJS) $(PROG2).o
	$(LD) $(LDFLAGS) $(PROG2).o $(OBJS) -o $@ $(LDLIBS)
$(PROG2).o: $(HEADS) Makefile
$(PROG3): $(OBJS) $(PROG3).o
	$(LD) $(LDFLAGS) $(PROG3).o $(OBJS) -o $@ $(LDLIBS)
$(PROG3).o: $(HEADS) Makefile
$(PROG4): $(OBJS) $(PROG4).o
	$(LD) $(LDFLAGS) $(PROG4).o $(OBJS) -o $@ $(LDLIBS)
$(PROG4).o: $(HEADS) Makefile
$(PROG5): $(OBJS) $(PROG5).o
	$(LD) $(LDFLAGS) $(PROG5).o $(OBJS) -o $@ $(LDLIBS)
$(PROG5).o: $(HEADS) Makefile

$(OBJS): $(HEADS) Makefile

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

### useful commands ###

clean:
	$(RM) $(PACKAGE) $(OBJS)
	$(RM) core gmon.out *~ #*#

tar:
	@echo $(PACKAGE)-$(VER) > .package
	@$(RM) -r `cat .package`
	@mkdir `cat .package`
	@ln $(FILES) `cat .package`
	tar cvf - `cat .package` | gzip -9 > `cat .package`.tar.gz
	@$(RM) -r `cat .package` .package

zip:
	zip -9 $(PACKAGE)-$(VER).zip $(FILES)

prof: run
	$(PROF) $(PACKAGE) | less

run: all
	./$(PACKAGE) < sample-data | less
