WARN   = -W -Wall -Wcast-qual -Wcast-align
PROF   = -DMARK -pg
DBG    = -g
OPT    = -O6
INCLUDE = -I. -I../include -I../../lib-adt/include

# Extras
VFCINC   = -I/usr/local/1.0-VFC/vfc_lib -I/usr/local/1.0-VFC/sys
XINC     = -I/usr/include/X11

CC     = gcc
CFLAGS = -pipe $(INCLUDE) $(VFCINC) $(XINC) $(WARN)

.SUFFIXES: .op .og .os
SRC    = smooth.c clarg.c canny.c convolve.c gradient.c boxfilter.c \
         string-support.c magic.c x-stuff.c keyword.c split-merge.c \
	 threshold.c imConv.c uchar-remap.c param.c
OBJ    = $(SRC:.c=.o)
GOBJ    = $(SRC:.c=.og)
POBJ    = $(SRC:.c=.op)
INC    = smooth.h clarg.h canny.h convolve.h gradient.h boxfilter.h \
         string-support.h x-stuff.h split-merge.h magic.h threshold.h      \
         keyword.h imConv.h uchar-remap.h param.h approximations.h

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

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

.c.og:
	$(CC) -O0 $(DBG) $(CFLAGS) -c $< -o $@

all: TAGS $(OBJ) $(POBJ) $(GOBJ) 

clean:
	/bin/rm -f $(OBJ) $(POBJ) $(GOBJ) $(SOBJ) approx-table approx-table.o approximations.h TAGS

TAGS: $(SRC) $(INC)
	etags -t $(SRC) $(INC)

approx-table:	approx-table.c
	gcc -O2 -o approx-table approx-table.c -lm

approximations.h:	approx-table
	./approx-table 25 50 > approximations.h

boxfilter.o:	approximations.h
