#*******************************************************************************
#
#                   SiRF Technology, Inc. GPS Software                    
#                                                                         
#    Copyright (c) 1996-2015 by SiRF Technology, Inc. a CSR plc Company   
#                          All rights reserved.                           
#                                                                         
#    This Software is protected by United States copyright laws and       
#    international treaties.  You may not reverse engineer, decompile     
#    or disassemble this Software.                                        
#                                                                         
#    WARNING:                                                             
#    This Software contains SiRF Technology Inc.s confidential and        
#    proprietary information. UNAUTHORIZED COPYING, USE, DISTRIBUTION,    
#    PUBLICATION, TRANSFER, SALE, RENTAL OR DISCLOSURE IS PROHIBITED      
#    AND MAY RESULT IN SERIOUS LEGAL CONSEQUENCES.  Do not copy this      
#    Software without SiRF Technology, Inc.s  express written             
#    permission.   Use of any portion of the contents of this Software    
#    is subject to and restricted by your signed written agreement with   
#    SiRF Technology, Inc.                                                
#                                                                             
#*******************************************************************************

# Makefile for LINUX SIRFflashEngineEP

I2CLIBDIR            = ./sw/host/library/builds/linux_gcc/SiRFflashEngineEP/i2c/
SPILIBDIR            = ./sw/host/library/builds/linux_gcc/SiRFflashEngineEP/spi/
SPIGENERICLIBDIR     = ./sw/host/library/builds/linux_gcc/SiRFflashEngineEP/spi_via_kernel_driver/
I2CGENERICLIBDIR     = ./sw/host/library/builds/linux_gcc/SiRFflashEngineEP/i2c_via_kernel_driver/
UARTLIBDIR           = ./sw/host/library/builds/linux_gcc/SiRFflashEngineEP/uart/
I2CPRGDIR            = ./sw/host/prgflash/i2c/linux_gcc/build/prgflash/Release/
SPIPRGDIR            = ./sw/host/prgflash/spi_via_aardvark_spi/linux_gcc/build/prgflash/Release/
SPIGENERICPRGDIR     = ./sw/host/prgflash/spi_via_kernel_driver/linux_gcc/build/prgflash/Release/
I2CGENERICPRGDIR     = ./sw/host/prgflash/i2c/linux_kernel_driver/build/prgflash/Release/
UARTPRGDIR    = ./sw/host/prgflash/serial/linux_gcc/build/prgflash/Release/
OUTPUTDIR     = ./Linux-Deliverables
OUTPUTPROGDIR = Host_Program_Linux
OUTPUTLIBDIR  = SFEP_Library_Linux

all: i2c uart spi


i2c:
	@echo ""
	@echo "### Building I2C Library ###"
	@cd $(I2CLIBDIR) && make
	@if [ ! -d $(OUTPUTDIR)/$(OUTPUTLIBDIR)/i2c ]; then \
	    mkdir -p $(OUTPUTDIR)/$(OUTPUTLIBDIR)/i2c; \
	fi;
	@cp -f $(I2CLIBDIR)/SiRFflashEngineEP_i2c.a $(OUTPUTDIR)/$(OUTPUTLIBDIR)/i2c/
	@echo "### Building I2C prgflash ###"
	@cd $(I2CPRGDIR) && make
	@if [ ! -d $(OUTPUTDIR)/$(OUTPUTPROGDIR)/i2c ]; then \
	    mkdir -p $(OUTPUTDIR)/$(OUTPUTPROGDIR)/i2c; \
	fi;
	@cp -f $(I2CPRGDIR)/prgflash_i2c $(OUTPUTDIR)/$(OUTPUTPROGDIR)/i2c/
	@cp -f $(I2CPRGDIR)/README_I2C $(OUTPUTDIR)/$(OUTPUTPROGDIR)/i2c/
	@cp -f $(I2CPRGDIR)/aardvark.so $(OUTPUTDIR)/$(OUTPUTPROGDIR)/i2c/

uart:
	@echo ""
	@echo "### Building UART Library ###"
	@cd $(UARTLIBDIR) && make
	@if [ ! -d $(OUTPUTDIR)/$(OUTPUTLIBDIR)/uart ]; then \
	    mkdir -p $(OUTPUTDIR)/$(OUTPUTLIBDIR)/uart; \
	fi;
	@cp -f $(UARTLIBDIR)/SiRFflashEngineEP_uart.a $(OUTPUTDIR)/$(OUTPUTLIBDIR)/uart/
	@echo "### Building UART prgflash ###"
	@cd $(UARTPRGDIR) && make
	@if [ ! -d $(OUTPUTDIR)/$(OUTPUTPROGDIR)/uart ]; then \
	    mkdir -p $(OUTPUTDIR)/$(OUTPUTPROGDIR)/uart; \
	fi;
	@cp -f $(UARTPRGDIR)/prgflash_uart $(OUTPUTDIR)/$(OUTPUTPROGDIR)/uart/
	@cp -f $(UARTPRGDIR)/README_UART $(OUTPUTDIR)/$(OUTPUTPROGDIR)/uart/
	@echo ""
	@echo "### Building Generic I2C Library ###"
	@cd $(I2CGENERICLIBDIR) && make
	@if [ ! -d $(OUTPUTDIR)/$(OUTPUTLIBDIR)/i2c_via_kernel_driver ]; then \
	    mkdir -p $(OUTPUTDIR)/$(OUTPUTLIBDIR)/i2c_via_kernel_driver; \
	fi;
	@cp -f $(I2CGENERICLIBDIR)/SiRFflashEngineEP_i2c.a $(OUTPUTDIR)/$(OUTPUTLIBDIR)/i2c_via_kernel_driver/
	@cp -f $(I2CGENERICLIBDIR)/readme.txt $(OUTPUTDIR)/$(OUTPUTLIBDIR)/i2c_via_kernel_driver/
	@echo "### Building Generic I2C prgflash ###"
	@cd $(I2CGENERICPRGDIR) && make
	@if [ ! -d $(OUTPUTDIR)/$(OUTPUTPROGDIR)/i2c_via_kernel_driver ]; then \
	    mkdir -p $(OUTPUTDIR)/$(OUTPUTPROGDIR)/i2c_via_kernel_driver; \
	fi;
	@cp -f $(I2CGENERICPRGDIR)/prgflash_i2c $(OUTPUTDIR)/$(OUTPUTPROGDIR)/i2c_via_kernel_driver/
	@cp -f $(I2CGENERICPRGDIR)/README_I2C $(OUTPUTDIR)/$(OUTPUTPROGDIR)/i2c_via_kernel_driver/

spi:
	@echo ""
	@echo "### Building Aardvark SPI Library ###"
	@cd $(SPILIBDIR) && make
	@if [ ! -d $(OUTPUTDIR)/$(OUTPUTLIBDIR)/spi ]; then \
	    mkdir -p $(OUTPUTDIR)/$(OUTPUTLIBDIR)/spi; \
	fi;
	@cp -f $(SPILIBDIR)/SiRFflashEngineEP_spi.a $(OUTPUTDIR)/$(OUTPUTLIBDIR)/spi/
	@echo "### Building Aardvark SPI prgflash ###"
	@cd $(SPIPRGDIR) && make
	@if [ ! -d $(OUTPUTDIR)/$(OUTPUTPROGDIR)/spi ]; then \
	    mkdir -p $(OUTPUTDIR)/$(OUTPUTPROGDIR)/spi; \
	fi;
	@cp -f $(SPIPRGDIR)/prgflash_spi $(OUTPUTDIR)/$(OUTPUTPROGDIR)/spi/
	@cp -f $(SPIPRGDIR)/README_SPI $(OUTPUTDIR)/$(OUTPUTPROGDIR)/spi/
	@cp -f $(SPIPRGDIR)/aardvark.so $(OUTPUTDIR)/$(OUTPUTPROGDIR)/spi/
	@echo ""
	@echo "### Building Generic SPI Library ###"
	@cd $(SPIGENERICLIBDIR) && make
	@if [ ! -d $(OUTPUTDIR)/$(OUTPUTLIBDIR)/spi_via_kernel_driver ]; then \
	    mkdir -p $(OUTPUTDIR)/$(OUTPUTLIBDIR)/spi_via_kernel_driver; \
	fi;
	@cp -f $(SPIGENERICLIBDIR)/SiRFflashEngineEP_spi.a $(OUTPUTDIR)/$(OUTPUTLIBDIR)/spi_via_kernel_driver/
	@cp -f $(SPIGENERICLIBDIR)/readme.txt $(OUTPUTDIR)/$(OUTPUTLIBDIR)/spi_via_kernel_driver/
	@echo "### Building Generic SPI prgflash ###"
	@cd $(SPIGENERICPRGDIR) && make
	@if [ ! -d $(OUTPUTDIR)/$(OUTPUTPROGDIR)/spi_via_kernel_driver ]; then \
	    mkdir -p $(OUTPUTDIR)/$(OUTPUTPROGDIR)/spi_via_kernel_driver; \
	fi;
	@cp -f $(SPIGENERICPRGDIR)/prgflash_spi $(OUTPUTDIR)/$(OUTPUTPROGDIR)/spi_via_kernel_driver/
	@cp -f $(SPIGENERICPRGDIR)/readme.txt $(OUTPUTDIR)/$(OUTPUTPROGDIR)/spi_via_kernel_driver/

clean:
	@echo "### Cleaning I2C Library ###"
	@cd $(I2CLIBDIR) && make clean
	@echo "### Cleaning UART Library ###"
	@cd $(UARTLIBDIR) && make clean
	@echo "### Cleaning Aardvark SPI Library ###"
	@cd $(SPILIBDIR) && make clean
	@echo "### Cleaning Generic SPI Library ###"
	@cd $(SPIGENERICLIBDIR) && make clean
	@echo "### Cleaning I2C prgflash ###"
	@cd $(I2CPRGDIR) && make clean
	@echo "### Cleaning UART prgflash ###"
	@cd $(UARTPRGDIR) && make clean
	@echo "### Cleaning SPI prgflash ###"
	@cd $(SPIPRGDIR) && make clean
	@echo "### Cleaning Generic SPI prgflash ###"
	@cd $(SPIGENERICPRGDIR) && make clean
	@rm -rf $(OUTPUTDIR)

clean_i2c:
	@echo "### Cleaning I2C Library ###"
	@cd $(I2CLIBDIR) && make clean
	@echo "### Cleaning I2C prgflash ###"
	@cd $(I2CPRGDIR) && make clean

clean_uart:
	@echo "### Cleaning UART Library ###"
	@cd $(UARTLIBDIR) && make clean
	@echo "### Cleaning UART prgflash ###"
	@cd $(UARTPRGDIR) && make clean

clean_spi:
	@echo "### Cleaning SPI Library ###"
	@cd $(SPILIBDIR) && make clean
	@echo "### Cleaning SPI prgflash ###"
	@cd $(SPIPRGDIR) && make clean
	@echo "### Cleaning Generic SPI Library ###"
	@cd $(SPIGENERICLIBDIR) && make clean
	@echo "### Cleaning Generic SPI prgflash ###"
	@cd $(SPIGENERICPRGDIR) && make clean

.PRECIOUS : %.o


