HOME_DIR = ..
SRC_DIR = $(HOME_DIR)/src
OBJ_DIR = $(HOME_DIR)/obj
HDR_DIR = $(HOME_DIR)/src
LIB_DIR = $(HOME_DIR)/lib

# Solaris 2.X, HPUX 9.X and 10.X cc options
#CFLAGS = -Aa -O
#CFLAGS = -Aa -g

# Linux gcc flags
CFLAGS = -ansi -g


SOURCES = \
    $(SRC_DIR)/allocate.c $(SRC_DIR)/general_u.c $(SRC_DIR)/eigen.c \
    $(SRC_DIR)/pxm.c      $(SRC_DIR)/eisl_img.c  $(SRC_DIR)/invert.c \
    $(SRC_DIR)/nrutil.c   $(SRC_DIR)/power.c     $(SRC_DIR)/solve.c \
    $(SRC_DIR)/randlib.c  $(SRC_DIR)/xform.c     $(SRC_DIR)/matrix_u.c \
    $(SRC_DIR)/conv.c     $(SRC_DIR)/svdcmp.c    

HEADERS = \
    $(HDR_DIR)/allocate.h $(HDR_DIR)/general_u.h  $(HDR_DIR)/eigen.h \
    $(HDR_DIR)/pxm.h      $(HDR_DIR)/eisl_img.h   $(HDR_DIR)/invert.h \
    $(HDR_DIR)/nrutil.h   $(HDR_DIR)/power.h      $(HDR_DIR)/solve.h \
    $(HDR_DIR)/randlib.h  $(HDR_DIR)/xform.h      $(HDR_DIR)/matrix_u.h \
    $(HDR_DIR)/conv.h     

OBJECTS = \
    $(OBJ_DIR)/allocate.o $(OBJ_DIR)/general_u.o  $(OBJ_DIR)/eigen.o \
    $(OBJ_DIR)/pxm.o      $(OBJ_DIR)/eisl_img.o   $(OBJ_DIR)/invert.o \
    $(OBJ_DIR)/nrutil.o   $(OBJ_DIR)/power.o      $(OBJ_DIR)/solve.o \
    $(OBJ_DIR)/randlib.o  $(OBJ_DIR)/xform.o      $(OBJ_DIR)/matrix_u.o \
    $(OBJ_DIR)/conv.o     $(OBJ_DIR)/svdcmp.o     

DEFINES = 

# used in make.rules
OUTPUT_OPTION = -o $@
AR = ar
ARFLAGS = rv

COMPILE.c = $(CC) $(CFLAGS) $(OUTPUT_OPTION) -c
AR.o      = $(AR) $(ARFLAGS)

LIBS = lib_util.a

default : all

all : $(LIBS)

lib_util.a : $(OBJECTS)
	$(AR.o) $(LIB_DIR)/lib_util.a $(OBJECTS)

$(OBJ_DIR)/eisl_img.o : $(SRC_DIR)/eisl_img.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/eisl_img.c	
$(OBJ_DIR)/allocate.o : $(SRC_DIR)/allocate.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/allocate.c	
$(OBJ_DIR)/general_u.o : $(SRC_DIR)/general_u.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/general_u.c
$(OBJ_DIR)/conv.o : $(SRC_DIR)/conv.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/conv.c
$(OBJ_DIR)/eigen.o : $(SRC_DIR)/eigen.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/eigen.c
$(OBJ_DIR)/invert.o : $(SRC_DIR)/invert.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/invert.c
$(OBJ_DIR)/nrutil.o : $(SRC_DIR)/nrutil.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/nrutil.c
$(OBJ_DIR)/pxm.o : $(SRC_DIR)/pxm.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/pxm.c
$(OBJ_DIR)/power.o : $(SRC_DIR)/power.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/power.c
$(OBJ_DIR)/solve.o : $(SRC_DIR)/solve.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/solve.c
$(OBJ_DIR)/randlib.o : $(SRC_DIR)/randlib.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/randlib.c
$(OBJ_DIR)/rasterfile.o : $(SRC_DIR)/rasterfile.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/rasterfile.c
$(OBJ_DIR)/xform.o : $(SRC_DIR)/xform.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/xform.c
$(OBJ_DIR)/io.o : $(SRC_DIR)/io.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/io.c
$(OBJ_DIR)/svdcmp.o : $(SRC_DIR)/svdcmp.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/svdcmp.c
$(OBJ_DIR)/matrix_u.o : $(SRC_DIR)/matrix_u.c $(HEADERS)
	$(COMPILE.c) $(SRC_DIR)/matrix_u.c

clean: 
	rm -f $(OBJ_DIR)/*.o $(LIB_DIR)/$(LIBS)
