# Makefile for QCAM under Linux

# Where you want to install all of this.

INSTALLPATH=/usr/local
BINPATH=$(INSTALLPATH)/bin
MANPATH=/usr/local/man
CONFFILE=$(INSTALLPATH)/etc/qcam.conf

# Note: Using gcc 2.7.0 under Linux, I get the best speeds with -O.
# Using -O2 or -O6 slows xqcam down ~10%.  Using the -g flag makes no
# measurable speed difference.

DEFINES=-DCONFIG_FILE=\"$(CONFFILE)\"

# CFLAGS=-Wall -O -g -DDEBUG
CFLAGS=-Wall -O6

LDFLAGS=$(CFLAGS)

XLIBS=-L/usr/X11R6/lib -lXext -lX11
QCLIBS=-L. -lqcam -lqcamip
JPEGLIBS=-L/usr/local/lib -ljpeg
OTHERLIBS=-lc

#### You shouldn't have to edit below here.

LIBS=$(XLIBS) $(OTHERLIBS)

C_SRCS=qcam.c qcam-os.c qcam-lib.c exposure.c histogram.c \
	xqcam.c probeqcam.c qcam-simple.c dark.c make.darkmask.c \
	edge.c writejpeg.c

TARGETS=qcam xqcam probeqcam qcam-simple make.darkmask #xfqcam xtqcam


all:: libqcam.a libqcamip.a $(TARGETS)

qcam: qcam.o libqcam.a libqcamip.a dark.o edge.o writejpeg.o
	rm -f qcam
	$(CC) $(LDFLAGS) -o qcam qcam.o $(QCLIBS) dark.o edge.o writejpeg.o $(JPEGLIBS)

qcam-os.h:
	ln -sf qcam-`uname`.h qcam-os.h

qcam-os.c:
	ln -sf qcam-`uname`.c qcam-os.c

qcam-os.o: qcam-os.c qcam-os.h
	$(CC) $(CFLAGS) -c -o qcam-os.o qcam-os.c

qcam-lib.o:
	$(CC) $(CFLAGS) $(DEFINES) -c -o qcam-lib.o qcam-lib.c

dark.o: dark.c
	$(CC) $(CFLAGS) $(DEFINES) -c dark.c

xqcam: xqcam.o libqcam.a libqcamip.a dark.o edge.o
	rm -f xqcam
	$(CC) $(LDFLAGS) -o xqcam xqcam.o dark.o edge.o $(QCLIBS) $(LIBS)

xfqcam: xfqcam.o controlpanel.o libqcam.a
	rm -f xfqcam
	$(CC) $(LDFLAGS) -o xfqcam xfqcam.o controlpanel.o $(QCLIBS) -lforms $(LIBS) -lm

qcam-simple: qcam-simple.o libqcam.a

probeqcam: probeqcam.o libqcam.a
	rm -f probeqcam
	$(CC) $(LDFLAGS) -o probeqcam probeqcam.o -L. -lqcam

# libqcam.a: qcam-os.o qcam-lib.o
libqcam.a: qcam-lib.o
	rm -f libqcam.a
	ar rcs $@ $^ 

libqcamip.a: exposure.o histogram.o
	ar rcs $@ $^

make.darkmask: make.darkmask.c libqcam.a
	$(CC) $(CFLAGS) $(DEFINES) -o make.darkmask make.darkmask.c -L. -lqcam

install:: all
	install -s -m 4755 -o root qcam $(BINPATH)
	install -s -m 4755 -o root xqcam $(BINPATH)
	install -m 644 -o root qcam.1 $(MANPATH)/man1
#	install -m 755 -o root tkqcam $(BINPATH)

install-conf::
	cp qcam.conf $(CONFFILE)

clean:: 
	rm -f *.o $(TARGETS) *.pgm *~ qcam-os.[ch] *.a tkqcam

depend:: $(C_SRCS)
	sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
	$(CC) $(CFLAGS) -MM $(C_SRCS) >> tmp_make
	mv tmp_make Makefile

### Dependencies:
qcam.o: qcam.c qcam.h qcamip.h
qcam-os.o: qcam-os.c qcam.h qcam-Linux.h
qcam-lib.o: qcam-lib.c qcam.h qcam-os.h qcam-os.c
exposure.o: exposure.c qcam.h qcamip.h
histogram.o: histogram.c qcam.h qcamip.h
xqcam.o: xqcam.c qcam.h qcam-os.h qcamip.h
probeqcam.o: probeqcam.c qcam.h
qcam-simple.o: qcam-simple.c qcam.h

dark.o: dark.c qcam.h
edge.o: edge.c qcam.h
