.SILENT: help
VERSION = 0.0.1
APP = simpleskycam

-include Makefile.rules

OBJECTS := $(OBJECTS) gui.oo main.oo error.oo \
		   video.oo videoframe.oo \
		   videodev.oo videodev-v4l2.oo videodev-dumpfile.oo videodev-simulation.oo \
		   convert.oo filter.oo detect.oo histogram.oo pid.oo \
		   posctl.oo json.oo configuration.oo ser.oo dng.oo debayer.oo
DISTNAME=simpleskycam-$(VERSION)
DEPENDFILE=.depend

ifeq ($(TARGET),)
noconfig: configlinux help
endif


all: dep Makefile.rules $(TARGET)

help:
	echo "set up configuration"
	echo "   make configlinux      to generate the linix build"
	echo "   make checkdumpfile    to create a test tool for videodumps."

checkdumpfile: checkdumpfile.cc
	c++ -o checkdumpfile checkdumpfile.cc

configlinux: clean
	cp -f Makefile.rules.linux Makefile.rules
	make config

configwindows: clean
	cp -f Makefile.rules.windows Makefile.rules
	make config

configcross: clean
	cp -f Makefile.rules.crosswindows Makefile.rules
	make config

config: Makefile.rules
	echo "#ifndef _CONFIG_H_" > config.h
	echo "#define _CONFIG_H_" >> config.h
	echo "" >> config.h
	echo "#define VERSION \"$(VERSION)\"" >> config.h
	echo "#define USE_SVBONY" >> config.h
	echo "" >> config.h
	echo "#endif" >> config.h


$(TARGET): $(OBJECTS)
	$(CPP) -o $(TARGET) $(OBJECTS) $(LDFLAGS) $(LIBS)

.SUFFIXES:
.SUFFIXES:	.c .cc .C .cpp .oo

-include $(DEPENDFILE)

.cc.oo : $(INCLUDES)
	$(CPP) -o $@ -c $(CPPFLAGS) $<

clean:
	rm -f *.o *.oo *.c~ *.h~ *.cc~ *.ui~ $(APP) Makefile~
	rm -rf config.h
	rm -rf *.dll
	rm -rf *.exe
	rm -rf Makefile.rules
	rm -rf checkdumpfile
	rm -rf U2SM200C-AST_Cfg_A.bin
	rm -rf U2SM200C-AST_Cfg_SAVE.bin

dist: clean
	rm -rf $(DISTNAME)
	mkdir $(DISTNAME)
	cp Makefile* $(DISTNAME)
	cp Readme $(DISTNAME)
	cp COPYING $(DISTNAME)
	cp Changelog $(DISTNAME)
	cp *.ui $(DISTNAME)
	cp -rf *.h $(DISTNAME)
	cp -rf *.cc $(DISTNAME) 
	tar cvzf $(DISTNAME).tgz $(DISTNAME)
	rm -rf $(DISTNAME)

dep:
	$(CXX) -MM `ls *.cc` $(CXXFLAGS) > $(DEPENDFILE)

.PHONY: all
.PHONY: count
.PHONY: clean
