#
# Makefile for the Wave tools --  (c) 2003 by Herbert
#
# Compatibility: GNU
#
# $Date$
# $Revision$
#

#
# The program's main version...
#
VERSION = 1.3.2

#
# Default installation root...
#
prefix = /usr

#
# tools used for compiling / installing...
#
CXX = i486-linux-gnu-g++
AR = ar
PRELINK = 
HAS_MM = yes
INSTALL = /usr/bin/install -c
DOXYGEN = doxygen
LATEX = pdflatex
O = .o
E = 
A = .a

#
# Name of target object files:
#
BINDIR = $(prefix)/bin
LIBDIR = $(prefix)/lib

#
# Main target and file dependencies:
#

OBJS = ppm2grey$O waveppm$O wavepgm$O pgmdiff$O pgmcompare$O pgmdenoise$O \
       pgminmax$O pgmpixel$O pgmstats$O pgmhist$O pgmcount$O pgmscale$O \
       vid2pgm$O video2grey$O imgconvert$O pgmequalize$O ppmlq$O
PROGRAMS = $(OBJS:$O=$E)
DEPENDS = $(OBJS:$O=.dd)

#
# Flags passed to the compiler
#
CPPFLAGS = -I..  -DDPRINTF  -DJPEG -I/usr/local/include/ImageMagick -I/usr/include/ImageMagick -DMAGICK_INTER
CXXSHARED = 
CXXDEBUG = 
CXXOPT = -O3
CXXMISC = 
CXXWARN = -Wall -Werror -ansi -pedantic
LDFLAGS = -L.. -lwavelet   -lMagick++ -ljpeg -lm
CXXFLAGS = $(CPPFLAGS) $(CXXSHARED) $(CXXOPT) $(CXXDEBUG) $(CXXWARN) $(CXXMISC)

#
# Automatic stuff, should not be changed:
#
.PHONY : all clean distclean install uninstall debug objclean

#
# rules:
#

all: $(PROGRAMS)

debug:
	$(MAKE) "CXXDEBUG=-g -DDEBUG" all

../libwavelet$A: ../*.cc ../*.hh ../Wave/*.hh ../*.h
	$(MAKE) -C ../ static

ppm2grey$E: ppm2grey$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

waveppm$E: waveppm$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

wavepgm$E: wavepgm$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

pgmdiff$E: pgmdiff$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

ppmlq$E: ppmlq$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

pgmcompare$E: pgmcompare$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

pgminmax$E: pgminmax$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

pgmpixel$E: pgmpixel$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

pgmstats$E: pgmstats$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

pgmhist$E: pgmhist$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

pgmcount$E: pgmcount$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

pgmscale$E: pgmscale$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

pgmdenoise$E: pgmdenoise$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

video2grey$E: video2grey$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

vid2pgm$E: vid2pgm$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

imgconvert$E: imgconvert$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

pgmequalize$E: pgmequalize$O 
	$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)

install: all
	$(INSTALL) -d -m 755 $(BINDIR)
	$(INSTALL) -m 755 $(PROGRAMS) $(BINDIR)

uninstall:
	rm -f $(BINDIR)/ppm2grey 

clean: 
	-rm -f *~ $(OBJS) $(PROGRAMS) ./\#* ./.\#* \

objclean: 
	-rm -f $(OBJS) 

distclean: 
	-$(MAKE) clean
	-rm -f Makefile $(DEPENDS) 

#
# Automatic targets and rules:
#
%$O: %.cc
	$(CXX) -c $(CXXFLAGS) $< -o $@

%.dd: %.cc
	@$(SHELL) -ec '$(CC) -MM $(CPPFLAGS) $< \
	| sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \
	[ -s $@ ] || rm -f $@'

ifeq (yes,${HAS_MM})
-include $(DEPENDS) 
endif

