############################################################################
# graphics/nxglib/Makefile.sources
#
#   Copyright (C) 2008, 2010-2011 Gregory Nutt. All rights reserved.
#   Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
#    used to endorse or promote products derived from this software
#    without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################

-include $(TOPDIR)/.config
-include $(TOPDIR)/Make.defs

ifeq ($(NXGLIB_BITSPERPIXEL),1)
NXGLIB_SUFFIX	:= _1bpp
SETP_CSRC	:= nxglib_setpixel_1bpp.c
RFILL_CSRC	:= nxglib_fillrectangle_1bpp.c
RGET_CSRC	:= nxglib_getrectangle_1bpp.c
TFILL_CSRC	:= nxglib_filltrapezoid_1bpp.c
RMOVE_CSRC	:= nxglib_moverectangle_1bpp.c
RCOPY_CSRC	:= nxglib_copyrectangle_1bpp.c
endif
ifeq ($(NXGLIB_BITSPERPIXEL),2)
NXGLIB_SUFFIX	:= _2bpp
SETP_CSRC	:= nxglib_setpixel_2bpp.c
RFILL_CSRC	:= nxglib_fillrectangle_2bpp.c
RGET_CSRC	:= nxglib_getrectangle_2bpp.c
TFILL_CSRC	:= nxglib_filltrapezoid_2bpp.c
RMOVE_CSRC	:= nxglib_moverectangle_2bpp.c
RCOPY_CSRC	:= nxglib_copyrectangle_2bpp.c
endif
ifeq ($(NXGLIB_BITSPERPIXEL),4)
NXGLIB_SUFFIX	:= _4bpp
SETP_CSRC	:= nxglib_setpixel_4bpp.c
RFILL_CSRC	:= nxglib_fillrectangle_4bpp.c
RGET_CSRC	:= nxglib_getrectangle_4bpp.c
TFILL_CSRC	:= nxglib_filltrapezoid_4bpp.c
RMOVE_CSRC	:= nxglib_moverectangle_4bpp.c
RCOPY_CSRC	:= nxglib_copyrectangle_4bpp.c
endif
ifeq ($(NXGLIB_BITSPERPIXEL),8)
NXGLIB_SUFFIX	:= _8bpp
SETP_CSRC	:= nxglib_setpixel_8bpp.c
RFILL_CSRC	:= nxglib_fillrectangle_8bpp.c
RGET_CSRC	:= nxglib_getrectangle_8bpp.c
TFILL_CSRC	:= nxglib_filltrapezoid_8bpp.c
RMOVE_CSRC	:= nxglib_moverectangle_8bpp.c
RCOPY_CSRC	:= nxglib_copyrectangle_8bpp.c
endif
ifeq ($(NXGLIB_BITSPERPIXEL),16)
NXGLIB_SUFFIX	:= _16bpp
SETP_CSRC	:= nxglib_setpixel_16bpp.c
RFILL_CSRC	:= nxglib_fillrectangle_16bpp.c
RGET_CSRC	:= nxglib_getrectangle_16bpp.c
TFILL_CSRC	:= nxglib_filltrapezoid_16bpp.c
RMOVE_CSRC	:= nxglib_moverectangle_16bpp.c
RCOPY_CSRC	:= nxglib_copyrectangle_16bpp.c
endif
ifeq ($(NXGLIB_BITSPERPIXEL),24)
NXGLIB_SUFFIX	:= _24bpp
SETP_CSRC	:= nxglib_setpixel_24bpp.c
RFILL_CSRC	:= nxglib_fillrectangle_24bpp.c
RGET_CSRC	:= nxglib_getrectangle_24bpp.c
TFILL_CSRC	:= nxglib_filltrapezoid_24bpp.c
RMOVE_CSRC	:= nxglib_moverectangle_24bpp.c
RCOPY_CSRC	:= nxglib_copyrectangle_24bpp.c
endif
ifeq ($(NXGLIB_BITSPERPIXEL),32)
NXGLIB_SUFFIX	:= _32bpp
SETP_CSRC	:= nxglib_setpixel_32bpp.c
RFILL_CSRC	:= nxglib_fillrectangle_32bpp.c
RGET_CSRC	:= nxglib_getrectangle_32bpp.c
TFILL_CSRC	:= nxglib_filltrapezoid_32bpp.c
RMOVE_CSRC	:= nxglib_moverectangle_32bpp.c
RCOPY_CSRC	:= nxglib_copyrectangle_32bpp.c
endif

CPPFLAGS	+= -DNXGLIB_BITSPERPIXEL=$(NXGLIB_BITSPERPIXEL)
CPPFLAGS	+= -DNXGLIB_SUFFIX=$(NXGLIB_SUFFIX)

SETP_TMP	= $(SETP_CSRC:.c=.i)
RFILL_TMP	= $(RFILL_CSRC:.c=.i)
RGET_TMP	= $(RGET_CSRC:.c=.i)
TFILL_TMP	= $(TFILL_CSRC:.c=.i)
RMOVE_TMP	= $(RMOVE_CSRC:.c=.i)
RCOPY_TMP	= $(RCOPY_CSRC:.c=.i)

GEN_CSRCS	= $(SETP_CSRC) $(RFILL_CSRC) $(RGET_CSRC) $(TFILL_CSRC) $(RMOVE_CSRC) $(RCOPY_CSRC)

ifeq ($(CONFIG_NX_LCDDRIVER),y)
BLITDIR		= lcd
else
BLITDIR		= fb
endif

all:	$(GEN_CSRCS)
.PHONY : clean distclean

$(SETP_CSRC) : $(BLITDIR)/nxglib_setpixel.c nxglib_bitblit.h
ifneq ($(NXGLIB_BITSPERPIXEL),)
	@$(call PREPROCESS, $(BLITDIR)/nxglib_setpixel.c, $(SETP_TMP))
	@cat $(SETP_TMP) | sed -e "/^#/d" >$@
	@rm -f  $(SETP_TMP)
endif

$(RFILL_CSRC) : $(BLITDIR)/nxglib_fillrectangle.c nxglib_bitblit.h
ifneq ($(NXGLIB_BITSPERPIXEL),)
	@$(call PREPROCESS, $(BLITDIR)/nxglib_fillrectangle.c, $(RFILL_TMP))
	@cat $(RFILL_TMP) | sed -e "/^#/d" >$@
	@rm -f  $(RFILL_TMP)
endif

$(RGET_CSRC) : $(BLITDIR)/nxglib_getrectangle.c nxglib_bitblit.h
ifneq ($(NXGLIB_BITSPERPIXEL),)
	@$(call PREPROCESS, $(BLITDIR)/nxglib_getrectangle.c, $(RGET_TMP))
	@cat $(RGET_TMP) | sed -e "/^#/d" >$@
	@rm -f  $(RGET_TMP)
endif

$(TFILL_CSRC) : $(BLITDIR)/nxglib_filltrapezoid.c nxglib_bitblit.h
ifneq ($(NXGLIB_BITSPERPIXEL),)
	@$(call PREPROCESS, $(BLITDIR)/nxglib_filltrapezoid.c, $(TFILL_TMP))
	@cat $(TFILL_TMP) | sed -e "/^#/d" >$@
	@rm -f  $(TFILL_TMP)
endif

$(RMOVE_CSRC) : $(BLITDIR)/nxglib_moverectangle.c nxglib_bitblit.h
ifneq ($(NXGLIB_BITSPERPIXEL),)
	@$(call PREPROCESS, $(BLITDIR)/nxglib_moverectangle.c, $(RMOVE_TMP))
	@cat $(RMOVE_TMP) | sed -e "/^#/d" >$@
	@rm -f  $(RMOVE_TMP)
endif

$(RCOPY_CSRC) : $(BLITDIR)/nxglib_copyrectangle.c nxglib_bitblit.h
ifneq ($(NXGLIB_BITSPERPIXEL),)
	@$(call PREPROCESS, $(BLITDIR)/nxglib_copyrectangle.c, $(RCOPY_TMP))
	@cat $(RCOPY_TMP) | sed -e "/^#/d" >$@
	@rm -f  $(RCOPY_TMP)
endif

clean:
	@rm -f *~ .*.swp *.i

distclean: clean
	@rm -f nxglib_setpixel_*bpp.c
	@rm -f nxglib_fillrectangle_*bpp.c
	@rm -f nxglib_getrectangle_*bpp.c
	@rm -f nxglib_filltrapezoid_*bpp.c
	@rm -f nxglib_moverectangle_*bpp.c
	@rm -f nxglib_copyrectangle_*bpp.c
