# makefile of DFSS

OBJ 	=	dfss.o get_host.o gen_opt.o hbasis.o \
		conjgrad.o grad.o cost.o lsearch.o \
		conv2.o cfilter2d.o domain2d.o \
		interpx.o rmap.o loadmat.o savemat.o

SRC 	=	dfss.c get_host.c gen_opt.c hbasis.c \
		conjgrad.c grad.c cost.c lsearch.c \
		conv2.c cfilter2d.c domain2d.c \
		interpx.c rmap.c loadmat.c savemat.c

CC	=	gcc
INCDIR	=	/homes/xjyan/include
LIBDIR	=	/homes/xjyan/lib
LIB	=	-lmatrix -lm
FLAG	=	-g -O2 -Wall

dfss.o : dfss.c dfss.h
	$(CC) -c dfss.c -I$(INCDIR) $(FLAG) 

get_host.o : get_host.c dfss.h
	$(CC) -c get_host.c -I$(INCDIR) $(FLAG) 

gen_opt.o : gen_opt.c dfss.h
	$(CC) -c gen_opt.c -I$(INCDIR) $(FLAG) 

hbasis.o : hbasis.c dfss.h
	$(CC) -c hbasis.c -I$(INCDIR) $(FLAG) 

conjgrad.o : conjgrad.c dfss.h
	$(CC) -c conjgrad.c -I$(INCDIR) $(FLAG) 

grad.o : grad.c dfss.h
	$(CC) -c grad.c -I$(INCDIR) $(FLAG) 

cost.o : cost.c dfss.h
	$(CC) -c cost.c -I$(INCDIR) $(FLAG) 

lsearch.o : lsearch.c dfss.h
	$(CC) -c lsearch.c -I$(INCDIR) $(FLAG) 

conv2.o : conv2.c dfss.h
	$(CC) -c conv2.c -I$(INCDIR) $(FLAG) 

cfilter2d.o : cfilter2d.c dfss.h
	$(CC) -c cfilter2d.c -I$(INCDIR) $(FLAG) 

domain2d.o : domain2d.c dfss.h
	$(CC) -c domain2d.c -I$(INCDIR) $(FLAG) 

interpx.o : interpx.c dfss.h
	$(CC) -c interpx.c -I$(INCDIR) $(FLAG) 

rmap.o : rmap.c dfss.h
	$(CC) -c rmap.c -I$(INCDIR) $(FLAG) 

loadmat.o : loadmat.c
	$(CC) -c loadmat.c -I$(INCDIR) $(FLAG) 

savemat.o : savemat.c
	$(CC) -c savemat.c -I$(INCDIR) $(FLAG) 

all: dfss_pds

dfss_pds: dfss_pds.o $(OBJ)
	$(CC) dfss_pds.o $(OBJ) -L$(LIBDIR) $(LIB) $(FLAG) -o dfss_pds

dfss_pds.o: dfss_pds.c dfss.h
	$(CC) -c dfss_pds.c -I$(INCDIR) $(FLAG)

lint:	
	lint dfss_pds.c $(SRC)

clean:
	rm *.o

print:
	enscript -r -h dfss_pds.c $(SRC) Makefile
