322 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			322 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # AR6K Host driver makefile
 | |
| #
 | |
| # Minimal build invocation:
 | |
| #
 | |
| #     make (all | clean | clobber)
 | |
| #
 | |
| # Extended Make invocation:
 | |
| #
 | |
| #     make ATH_BUILD_TYPE=<build type> ATH_SDIO_STACK_BASE=<sdio stack install path> (all | clean | clobber)
 | |
| #
 | |
| # Notes:
 | |
| #     1. This makefile must be invoked from the host/ directory
 | |
| #     2. The <build type> must match an entry in localmake.linux.inc.
 | |
| #     3. The localmake.linux.inc can be overridden using an include file outside the build tree.
 | |
| #        This file (name and path) can be set via the ATH_MAKE_INCLUDE_OVERRIDE variable.
 | |
| #        ** If ATH_MAKE_INCLUDE_OVERRIDE is used, you can define all build variables in that file
 | |
| #        instead of using command line arguments **.  This feature is provided for developers
 | |
| #        that may want to customize the build using a single include file.
 | |
| #
 | |
| #        For example :
 | |
| #
 | |
| #            " make ATH_MAKE_INCLUDE_OVERRIDE=$HOME/mymake.inc "
 | |
| #
 | |
| #             could be used, as long as "mymake.inc" defines all the required variables (see below)
 | |
| #
 | |
| #  Required Variables:
 | |
| #
 | |
| #      ATH_OS_SUB_TYPE - on linux, this must be "linux_2_4" for 2.4 kernels or left blank for 2.6 kernels.
 | |
| #      ATH_LINUXPATH - linux kernel source path
 | |
| #      ATH_CROSS_COMPILE_TYPE - optional cross compiler path , leave blank for local gcc compilation
 | |
| #      ATH_ARCH_CPU_TYPE  - CPU architecture type, leave blank for local gcc compilation
 | |
| #      ATH_SDIO_STACK_BASE - SDIO Stack installation path to compile the SDIO HIF layer against an externally supplied
 | |
| #                            SDIO stack source.
 | |
| #
 | |
| #  Override variables:
 | |
| #
 | |
| #    ATH_MAKE_INCLUDE_OVERRIDE - full path to include file which overrides the default (localmake.linux.inc)
 | |
| #                                this file can contain other overrides specific to a developers
 | |
| #                                workspace environment.
 | |
| #    ATH_BUILD_OUTPUT_OVERRIDE - output path override for compiled executable and
 | |
| #                                database image
 | |
| #
 | |
| 
 | |
| # Include local variables
 | |
| ifdef ATH_MAKE_INCLUDE_OVERRIDE
 | |
| _LOCALMAKE_INCLUDE = $(ATH_MAKE_INCLUDE_OVERRIDE)
 | |
| else
 | |
| _LOCALMAKE_INCLUDE = localmake.linux.inc
 | |
| endif
 | |
| 
 | |
| -include $(_LOCALMAKE_INCLUDE)
 | |
| 
 | |
| export  ATH_SRC_BASE
 | |
| export  ATH_BUILD_TYPE
 | |
| export  ATH_OS_SUB_TYPE
 | |
| export  ATH_LINUXPATH
 | |
| export  ATH_CROSS_COMPILE_TYPE
 | |
| export  ATH_ARCH_CPU_TYPE
 | |
| export  ATH_SDIO_STACK_BASE
 | |
| export  ATH_BUS_TYPE
 | |
| export  ATH_BUS_SUBTYPE
 | |
| export  ATH_HC_DRIVERS
 | |
| export  ATH_HTC_RAW_INT_ENV
 | |
| export  ATH_INIT_MODE_DRV_ENABLED
 | |
| export  ATH_ANDROID_ENV
 | |
| export  ATH_SOFTMAC_FILE_USED
 | |
| export  ATH_DEBUG_DRIVER
 | |
| export  ATH_AR6K_DEBUG_ALLOC
 | |
| export  ATH_MID_ISO_BTCOEX_USED
 | |
| 
 | |
| ATH_HOSTAPD_PATH = 3rdparty/mdm_hostapd_supp/hostapd
 | |
| ATH_SUPPLICANT_PATH = 3rdparty/mdm_hostapd_supp/wpa_supplicant
 | |
| 
 | |
| ATH_SRC_BASE :=$(shell pwd)
 | |
| MAKE :=make
 | |
| CC :=$(ATH_CROSS_COMPILE_TYPE)gcc
 | |
| LD :=$(ATH_CROSS_COMPILE_TYPE)ld
 | |
| STRIP :=$(ATH_CROSS_COMPILE_TYPE)strip
 | |
| ATH_HIF_TYPE :=`echo $(ATH_BUS_TYPE) | tr [:upper:] [:lower:]`
 | |
| 
 | |
| export  STRIP
 | |
| 
 | |
| #export compiler variables for 3rd party applications (like the WPA supplicant)
 | |
| export  CC
 | |
| export  LD
 | |
| export  STRIP
 | |
| 
 | |
| # Set cross compile type (if any)
 | |
| ifdef ATH_CROSS_COMPILE_TYPE
 | |
| _CROSS_COMPILE_LINE := ARCH=$(ATH_ARCH_CPU_TYPE) CROSS_COMPILE=$(ATH_CROSS_COMPILE_TYPE)
 | |
| endif
 | |
| 
 | |
| # Figure out module extension
 | |
| ifneq ($(ATH_OS_SUB_TYPE),linux_2_4)
 | |
| KMOD_EXTENSION :=ko
 | |
| endif
 | |
| ifeq ($(ATH_OS_SUB_TYPE),linux_2_4)
 | |
| KMOD_EXTENSION :=o
 | |
| endif
 | |
| 
 | |
| # Set up object output areas
 | |
| ifdef ATH_BUILD_OUTPUT_OVERRIDE
 | |
| _COMPILED_OBJECTS_PATH :=$(ATH_BUILD_OUTPUT_OVERRIDE)
 | |
| COMPILED_BIN_OBJECTS_PATH :=$(ATH_BUILD_OUTPUT_OVERRIDE)
 | |
| COMPILED_IMAGE_OBJECTS_PATH :=$(ATH_BUILD_OUTPUT_OVERRIDE)
 | |
| _MAKE_IMAGE_OUTPUT_DIR :=
 | |
| _MAKE_BIN_OUTPUT_DIR :=
 | |
| _CLEAN_IMAGE_OUTPUT_DIR :=
 | |
| _CLEAN_BIN_OUTPUT_DIR :=
 | |
| else
 | |
| _COMPILED_OBJECTS_PATH := $(ATH_SRC_BASE)/.output/$(ATH_BUILD_TYPE)-$(ATH_BUS_TYPE)
 | |
| COMPILED_BIN_OBJECTS_PATH := $(ATH_SRC_BASE)/.output/bin
 | |
| COMPILED_IMAGE_OBJECTS_PATH :=$(_COMPILED_OBJECTS_PATH)/$(COMPILED_OBJECTS_PREFIX)image
 | |
| _MAKE_IMAGE_OUTPUT_DIR := mkdir --parents $(COMPILED_IMAGE_OBJECTS_PATH)
 | |
| _MAKE_BIN_OUTPUT_DIR := mkdir --parents $(COMPILED_BIN_OBJECTS_PATH)
 | |
| _CLEAN_IMAGE_OUTPUT_DIR := rm -R -f $(COMPILED_IMAGE_OBJECTS_PATH)
 | |
| _CLEAN_BIN_OUTPUT_DIR := rm -R -f $(COMPILED_BIN_OBJECTS_PATH)
 | |
| endif
 | |
| 
 | |
| # Export the required variables to other Makefiles in the system
 | |
| export COMPILED_IMAGE_OBJECTS_PATH
 | |
| export COMPILED_BIN_OBJECTS_PATH
 | |
| 
 | |
| # control variables for conditionally compiling some tools
 | |
| ATH_BUILD_TOOLS ?=yes
 | |
| ATH_BUILD_FTM ?=no
 | |
| ATH_BUILD_3RDPARTY ?=yes
 | |
| 
 | |
| #######################
 | |
| # packaging for ART
 | |
| ARTROOTDIR := $(WORKAREA)/host/tools/systemtools
 | |
| ARTSCRIPTDIR := $(ARTROOTDIR)/tools/scripts
 | |
| # create needed directories for packaging
 | |
| PKG_ROOT_DIR := $(WORKAREA)/host/tools/systemtools
 | |
| PKG_PARENT_DIR := $(COMPILED_IMAGE_OBJECTS_PATH)/art_rel
 | |
| PKG_DIR := $(PKG_PARENT_DIR)/art/bin
 | |
| #######################
 | |
| 
 | |
| all: modules tools 3rdparty install
 | |
| 
 | |
| modules:
 | |
| ifndef ATH_BUILD_TYPE
 | |
| 	@echo "Please edit the $(_LOCALMAKE_INCLUDE) file"
 | |
| 	exit 1
 | |
| endif
 | |
| 	$(_MAKE_IMAGE_OUTPUT_DIR)
 | |
| 	$(_MAKE_BIN_OUTPUT_DIR)
 | |
| 	$(MAKE) -C hif/$(ATH_HIF_TYPE)
 | |
| 	-rm -f $(ATH_SRC_BASE)/os/linux/Module.symvers
 | |
| 	$(MAKE)  $(_CROSS_COMPILE_LINE) -C $(ATH_LINUXPATH) ATH_HIF_TYPE=$(ATH_HIF_TYPE) SUBDIRS=$(ATH_SRC_BASE)/os/linux modules
 | |
| 
 | |
| tools: FORCE
 | |
| ifeq ($(ATH_BUILD_TOOLS),yes)
 | |
| 	if [ -e tools/bmiloader/ ]; \
 | |
| 	then \
 | |
| 		$(MAKE) -C tools/bmiloader/; \
 | |
| 	fi
 | |
| 	if [ -e tools/eeprom/ ]; \
 | |
| 	then \
 | |
| 		$(MAKE) -C tools/eeprom/; \
 | |
| 	fi
 | |
| 	if [ -e tools/regDbGen/ ]; \
 | |
| 	then \
 | |
| 		$(MAKE) -C tools/regDbGen/; \
 | |
| 	fi
 | |
| 	if [ -e tools/tcmd/ ]; \
 | |
| 	then \
 | |
| 		$(MAKE) -C tools/tcmd/; \
 | |
| 	fi
 | |
| 	$(MAKE) -C tools/wmiconfig/
 | |
| 	if [ -e tools/createimage/ ]; \
 | |
| 	then \
 | |
| 		$(MAKE) -C tools/createimage/; \
 | |
| 	fi
 | |
| 	if [ -e tools/recEvent/ ]; \
 | |
| 	then \
 | |
| 		$(MAKE) -C tools/recEvent/; \
 | |
| 	fi
 | |
| 	if [ -e tools/licensing/ ]; \
 | |
| 	then \
 | |
| 		$(MAKE) -C tools/licensing/; \
 | |
| 	fi	
 | |
| 	if [ -e tools/dbgParser/ ]; \
 | |
| 	then \
 | |
| 		$(MAKE) -C tools/dbgParser/; \
 | |
| 	fi	
 | |
| 	if [ -e tools/artagent ]; \
 | |
| 		then \
 | |
| 		$(MAKE) -C tools/artagent; \
 | |
| 	fi
 | |
| ifeq ($(ATH_BUILD_FTM),yes)
 | |
| 	if [ -e tools/ftmdaemon ]; \
 | |
| 		then \
 | |
| 		$(MAKE) -C tools/ftmdaemon ; \
 | |
| 	fi
 | |
| endif
 | |
| endif
 | |
| 
 | |
| 3rdparty: FORCE
 | |
| ifeq ($(ATH_BUILD_3RDPARTY),yes)
 | |
| 	$(MAKE) -C $(ATH_SUPPLICANT_PATH)/../src/crypto/
 | |
| 	$(MAKE) -C $(ATH_SUPPLICANT_PATH)/
 | |
| 	$(MAKE) -C $(ATH_HOSTAPD_PATH)
 | |
| endif
 | |
| 
 | |
| install: modules tools 3rdparty
 | |
| 	cp -f $(ATH_SRC_BASE)/os/linux/ar6000.$(KMOD_EXTENSION) $(COMPILED_IMAGE_OBJECTS_PATH)
 | |
| 	if test -e $(ATH_SRC_BASE)/os/linux/bt_hci_sdio.$(KMOD_EXTENSION); \
 | |
| 	then	\
 | |
| 		cp -f $(ATH_SRC_BASE)/os/linux/bt_hci_sdio.$(KMOD_EXTENSION) $(COMPILED_IMAGE_OBJECTS_PATH);	\
 | |
| 	fi
 | |
| ifeq ($(ATH_BUILD_TOOLS),yes)
 | |
| 	if test -e tools/bmiloader; \
 | |
| 	then \
 | |
| 		cp -f tools/bmiloader/bmiloader $(COMPILED_IMAGE_OBJECTS_PATH); \
 | |
| 	fi
 | |
| 	if test -e tools/eeprom; \
 | |
| 	then \
 | |
| 		cp -f tools/eeprom/eeprom $(COMPILED_IMAGE_OBJECTS_PATH); \
 | |
| 	fi
 | |
| 	cp -f tools/wmiconfig/wmiconfig $(COMPILED_IMAGE_OBJECTS_PATH)
 | |
| 	if test -e tools/tcmd/; \
 | |
| 	then \
 | |
| 		cp -f tools/tcmd/athtestcmd $(COMPILED_IMAGE_OBJECTS_PATH); \
 | |
| 	fi
 | |
| 	if test -e tools/recEvent/; \
 | |
| 	then \
 | |
| 		cp -f tools/recEvent/recEvent $(COMPILED_IMAGE_OBJECTS_PATH); \
 | |
| 		cp -f tools/recEvent/restore.sh $(COMPILED_IMAGE_OBJECTS_PATH); \
 | |
| 	fi
 | |
| 	if test -e tools/regDbGen/; \
 | |
| 	then \
 | |
| 		cp -f tools/regDbGen/regulatory*.bin $(COMPILED_BIN_OBJECTS_PATH); \
 | |
| 	fi
 | |
| 	if test -e tools/dbgParser/; \
 | |
| 	then \
 | |
| 		cp -f tools/dbgParser/dbgParser $(COMPILED_IMAGE_OBJECTS_PATH); \
 | |
| 	fi
 | |
| 	if [ -e tools/artagent ]; \
 | |
| 	then \
 | |
| 		cp -f tools/artagent/artagent $(COMPILED_IMAGE_OBJECTS_PATH); \
 | |
| 	fi
 | |
| ifeq ($(ATH_BUILD_FTM),yes)
 | |
| 	if [ -e tools/ftmdaemon ]; \
 | |
| 	then \
 | |
| 		cp -f tools/ftmdaemon/ftmdaemon $(COMPILED_IMAGE_OBJECTS_PATH); \
 | |
| 	fi
 | |
| endif
 | |
| endif
 | |
| 	
 | |
| ifeq ($(ATH_BUILD_3RDPARTY),yes)
 | |
| 	$(STRIP) $(ATH_SUPPLICANT_PATH)/wpa_supplicant
 | |
| 	$(STRIP) $(ATH_SUPPLICANT_PATH)/wpa_cli
 | |
| 	cp -f $(ATH_SUPPLICANT_PATH)/wpa_supplicant  $(COMPILED_IMAGE_OBJECTS_PATH)
 | |
| 	cp -f $(ATH_SUPPLICANT_PATH)/wpa_cli  $(COMPILED_IMAGE_OBJECTS_PATH)
 | |
| 	cp -f $(ATH_SUPPLICANT_PATH)/wpa_eap_sim.conf  $(COMPILED_IMAGE_OBJECTS_PATH)/wpa_eap_sim.conf
 | |
| 	$(STRIP) $(ATH_HOSTAPD_PATH)/hostapd
 | |
| 	$(STRIP) $(ATH_HOSTAPD_PATH)/hostapd_cli
 | |
| 	$(STRIP) $(ATH_HOSTAPD_PATH)/hostapd_wps
 | |
| 	cp -f $(ATH_HOSTAPD_PATH)/hostapd $(COMPILED_IMAGE_OBJECTS_PATH)
 | |
| 	cp -f $(ATH_HOSTAPD_PATH)/hostapd_cli $(COMPILED_IMAGE_OBJECTS_PATH)
 | |
| 	cp -f $(ATH_HOSTAPD_PATH)/hostapd_wps $(COMPILED_IMAGE_OBJECTS_PATH)
 | |
| 	cp -f $(ATH_HOSTAPD_PATH)/config/ar6k* $(COMPILED_IMAGE_OBJECTS_PATH)
 | |
| 	if [ -e 3rdparty/wapid/ ]; \
 | |
| 	then 	\
 | |
| 		cp -f 3rdparty/wapid/bin/wapid $(COMPILED_IMAGE_OBJECTS_PATH);	\
 | |
| 		cp -f 3rdparty/wapid/wapi.conf $(COMPILED_IMAGE_OBJECTS_PATH);	\
 | |
| 	fi
 | |
| endif
 | |
| 
 | |
| clean:
 | |
| 	rm -f os/linux/ar6000.mod.c os/linux/*.o os/linux/*.ko wmi/*.o htc/AR6000/src/*.o htc/*.o regtable/*.o\
 | |
| 	bmi/src/*.o wlan/src/*.o driver/* apps/wpa_supplicant/*.o tools/athprof/athprof \
 | |
| 	tools/bmiloader/bmiloader tools/dsetsvr/dsetsvr \
 | |
| 	tools/regDbGen/regDomainGenDb tools/regDbGen/*.bin \
 | |
| 	tools/wmiconfig/wmiconfig tools/eeprom/eeprom tools/eeprom/eeprom \
 | |
| 	tools/regDbGen/regulatoryData_AG.bin.h tools/regDbGen/regulatoryData_G.bin.h \
 | |
| 	tools/dbgParser/dbgParser btfilter/*.o btfilter/*.a \
 | |
| 	tools/tcmd/athtestcmd \
 | |
| 	tools/artagent/artagent \
 | |
| 	tools/licensing/*.[od]
 | |
| 
 | |
| 	rm -f $(ATH_SRC_BASE)/os/linux/Module.symvers
 | |
| 	rm -f $(ATH_SRC_BASE)/os/linux/Module.markers
 | |
| 	rm -f $(ATH_SRC_BASE)/os/linux/modules.order
 | |
| 	rm -rf $(ATH_SRC_BASE)/os/linux/.tmp_versions
 | |
| 	rm -rf $(ATH_SRC_BASE)/tools/systemtools/tools/eepromUtil/Linux
 | |
| 	rm -rf $(ATH_SRC_BASE)/tools/systemtools/tools/eepromUtil/Linux_customer
 | |
| 	rm -f $(ATH_SRC_BASE)/sdiostack/src/Module.markers
 | |
| 	rm -f $(ATH_SRC_BASE)/sdiostack/src/lib/modules.order
 | |
| 	rm -f $(ATH_SRC_BASE)/sdiostack/src/modules.order
 | |
| 	rm -f $(ATH_SRC_BASE)/sdiostack/src/busdriver/modules.order
 | |
| 	rm -f $(ATH_SRC_BASE)/sdiostack/src/hcd/pci_std/modules.order
 | |
| 	rm -f $(ATH_SRC_BASE)/sdiostack/src/hcd/modules.order
 | |
| 	rm -f $(ATH_SRC_BASE)/sdiostack/src/hcd/pci_ellen/modules.order
 | |
| 	rm -f $(COMPILED_IMAGE_OBJECTS_PATH)/*.ko
 | |
| 
 | |
| # The kernel module build process leaves some intermediate files, this will clean up all these files
 | |
| 	find $(ATH_SRC_BASE) \( -not -path "*.output*" -a -name '*.[oas]' -o -name core -o -name '.*.flags' -o -name '.ko' -o -name '.*.cmd' \) -type f -print \
 | |
| 		| grep -v lxdialog/ | xargs rm -f
 | |
| 	$(MAKE) -C hif/$(ATH_HIF_TYPE) clean
 | |
| 	if [ -e tools/ini2dset/ ]; \
 | |
| 	then \
 | |
| 		$(MAKE) -C tools/ini2dset/ clean; \
 | |
| 	fi
 | |
| ifeq ($(ATH_BUILD_3RDPARTY),yes)
 | |
| 	$(MAKE) -C $(ATH_SUPPLICANT_PATH)/../src/crypto/ clean
 | |
| 	$(MAKE) -C $(ATH_HOSTAPD_PATH)/ clean
 | |
| 	$(MAKE) -C $(ATH_SUPPLICANT_PATH)/ clean
 | |
| endif
 | |
| 
 | |
| ifeq ($(ATH_BUILD_FTM),yes)
 | |
| 	if [ -e tools/ftmdaemon ]; \
 | |
| 		then \
 | |
| 		$(MAKE) -C tools/ftmdaemon clean; \
 | |
| 	fi
 | |
| endif
 | |
| clobber:clean
 | |
| 	rm -rf .output
 | |
| 
 | |
| FORCE:
 | 
