############################################################################# # 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