all: application
install: installapp
install_sounds: installsounds
clean: cleanapp

#configuration
RASPBERRYPIFOLDER=root@192.168.1.27:/root/ha


SOURCESCPP = main.cpp PGM.cpp Insteon.cpp HTTPParser.cpp ServiceProvider.cpp Service.cpp WebServer.cpp PhoneService.cpp  RESTInterface.cpp EventProcessor.cpp LUAEngine.cpp SoundListParser.cpp SoundFile.cpp SoundService.cpp SoundDevice.cpp PanelController.cpp PersistantStorage.cpp AccountSettings.cpp RegistrationDialogSet.cpp RegistrationManager.cpp RTPSession.cpp SilenceSound.cpp Call.cpp CallFactory.cpp RTPSessionFactory.cpp Logging.cpp AppDialogSetEndCommand.cpp AppDialogSetRONACommand.cpp Schedule.cpp ScheduledEvent.cpp WeatherHelper.cpp SMTPService.cpp SIPEngine.cpp AlarmState.cpp Subscription.cpp
SOURCESC = bcm2835.c
OBJECTS=$(SOURCESCPP:.cpp=.o) $(SOURCESC:.c=.o)
CFLAGS=-mfloat-abi=softfp -g -rdynamic -I ./ 
LDFLAGS=-lrt -lpthread -ldl -ldum -lresip -lrutil -lares -lortp -ldb
STATICMODULES=json/json.a lua/liblua.a alsa/libasound.a insteon/insteon.a

cleanapp:
	if test -d distrib; then rm -Rf distrib; fi
	rm *.o
	cd json && make clean
	cd insteon && make clean
.cpp.o:
	arm-unknown-linux-gnueabi-gcc -c $(CFLAGS) $< -o $@
.c.o:
	arm-unknown-linux-gnueabi-gcc -c $(CFLAGS) $< -o $@

application: $(OBJECTS) 
	cd json && make
	cd insteon && make
	arm-unknown-linux-gnueabi-g++ -g -rdynamic $(OBJECTS) $(STATICMODULES) $(LDFLAGS) -o homeautomation

installapp: application
	scp homeautomation $(RASPBERRYPIFOLDER)
	scp JSON.lua $(RASPBERRYPIFOLDER)
	scp alsa.conf $(RASPBERRYPIFOLDER)



installsounds: 
	mkdir -p distrib/sounds
	cd sounds && convert.sh
	scp distrib/sounds/* $(RASPBERRYPIFOLDER)/sounds
