#############################################################################
# uClinux Module Makefile
#
# INVOCATION: make -f make_gpio [build] [clean] [host]
#
# INPUTS:	build       - rebuild .ko's and compress result
#		clean       - remove module .o and .ko files
#	  	host        - copy module to TFTP_DIR
# 	        KERNEL_ROOT - path to compiler kernel folder
#
#############################################################################

############################################################################
# Environment Variables Section
############################################################################

# Check if required variables are set

ifeq "$(KERNEL_ROOT)" ""
$(error ERROR: KERNEL_ROOT environment variable not set.)
endif

############################################################################
# Module Names Section
############################################################################

MODULENAMES=gpio \

############################################################################
# Make Options Section
#
# ignore-errors      - ignore errors in all rules
# no-print-directory - suppress directory messages during recursive make
############################################################################

BUILD_MOPTS=--no-print-directory -C $(KERNEL_ROOT) SUBDIRS=/$(PWD)/$$i modules
MOPTS=--ignore-errors --no-print-directory

############################################################################
# Default Target
#
# all - build libraries
############################################################################

all: build

############################################################################
# Build Modules
############################################################################

build::
	@for i in $(MODULENAMES); do \
		(echo "========= building dir ==> "$$i; cd $$i; $(MAKE) $(BUILD_MOPTS); \
		$(MAKE) $(MOPTS) zip) || exit $?; \
	done

############################################################################
# Clean Modules
############################################################################

clean::
	@for i in $(MODULENAMES); do \
		(echo "======== cleaning dir ==> "$$i; cd $$i; $(MAKE) $(MOPTS) clean) \
       || exit $?; \
	done

############################################################################
# Host Modules
############################################################################

host::
	@for i in $(MODULENAMES); do \
		(echo "======== Hosting module ==> "$$i; cd $$i; $(MAKE) $(MOPTS) host) \
       || exit $?; \
	done

