# Copyright (C) 2007-2010 Timesys Corporation
# ti-dvsdk rules

# Parameters to override Rules.make that should be passed to every make invocation
MAKE_VARS = \
	PLATFORM=$(PLATFORM) \
	DVSDK_INSTALL_DIR=$(shell pwd) \
	CSTOOL_DIR=$(TSWO_HOST_INSTALL_DIR) \
	CSTOOL_PREFIX=$(TARGET_CROSS_PREFIX) \
	MVTOOL_DIR=$(TSWO_HOST_INSTALL_DIR) \
	MVTOOL_PREFIX=$(TARGET_CROSS_PREFIX) \
	TSWO_FULL_TARGET_NAME=$(TSWO_FULL_TARGET_NAME) \
	LINUXLIBS_INSTALL_DIR=/unLikeLY/FacTory/UNLikeLY \
	LINUXKERNEL_INSTALL_DIR=$(KERNEL_DIR)

ifneq (,$(CODEGEN_INSTALL_DIR))
ti-dvsdk-omap3_MAKE_VARS += CODEGEN_INSTALL_DIR=$(CODEGEN_INSTALL_DIR)
endif

.PHONY: configure build rfs-install package-install host-install do-install post-pkg-install clean

configure:
	@if [ $(CODEGEN_INSTALL_DIR) ]; then \
	  if [ ! -d $(CODEGEN_INSTALL_DIR) ]; then \
	    echo 'CG6X CodeGen Tools not found at $(CODEGEN_INSTALL_DIR)'; \
	    echo 'You must download and install these tools from TI before building dvsdk'; \
	    exit 1; \
	  fi; \
	fi

build:
	$(BUILD_OPTIONS) \
		$(MAKE_CMD) \
		$(MAKE_VARS)

# The wildcard is to avoid having version nums for everything in here.
MODULE_DIRS= \
	linuxutils_*/packages/ti/sdo/linuxutils/cmem/src/module/ \
	linuxutils_*/packages/ti/sdo/linuxutils/sdma/src/module/ \
	dsplink_*/dsplink/gpp/src/	
CODEC_SERVER=

ifeq ($(PLATFORM),omap3530)
MODULE_DIRS+=local-power-manager_*/packages/ti/bios/power/modules/omap3530/lpm/
CODEC_SERVER=codecs-omap3530_*/packages/ti/sdo/server/cs/bin/cs.x64P
endif
ifeq ($(PLATFORM),dm3730)
MODULE_DIRS+=local-power-manager_*/packages/ti/bios/power/modules/omap3530/lpm/
CODEC_SERVER=codecs-omap3530_*/packages/ti/sdo/server/cs/bin/cs.x64P
endif

do-install:
	# deal with dsplink weirdness
	if [ ! -f `pwd`/dsplink_*/dsplink/gpp/src/dsplinkk.ko ]; then \
		cp `pwd`/dsplink_*/dsplink/gpp/export/BIN/Linux/*/RELEASE/dsplinkk.ko `pwd`/dsplink_*/dsplink/gpp/src/ ; \
	fi
	# install kernel modules
	for module in $(MODULE_DIRS); do \
		$(MAKE_CMD) -C $(KERNEL_DIR) M=`pwd`/$${module} ARCH=arm \
			CROSS_COMPILE=$(TSWO_FULL_TARGET_NAME)- \
			INSTALL_MOD_PATH=$(INSTALL_DIR) modules_install \
		|| exit 1 ; \
	done
	@rm -f $(INSTALL_DIR)/lib/modules/*/source
	@rm -f $(INSTALL_DIR)/lib/modules/*/build
ifneq ($(CODEC_SERVER),)
	# codec-server for dsp
	@mkdir -p $(INSTALL_DIR)/usr/lib
	cp $(CODEC_SERVER) $(INSTALL_DIR)/usr/lib/
endif
ifeq ($(DEMOS),y)
	$(BUILD_OPTIONS) \
		$(MAKE_CMD) \
		$(MAKE_VARS) \
		EXEC_DIR=$(INSTALL_DIR)/usr/dvsdk/ \
		dmai_install demos_install
	-rm $(INSTALL_DIR)/usr/dvsdk/*/*.ko
	-rm $(INSTALL_DIR)/usr/dvsdk/dvsdk-demos/*modules*.sh
	echo "DVSDK demos programs are installed in this directory" > $(INSTALL_DIR)/usr/dvsdk/README
endif

# Don't include depfiles in package, that would conflict with kernel modules
# package.  User will have to run depmod after installing this package. 
post-pkg-install:
	rm -f $(INSTALL_DIR)/lib/modules/*/modules.*
	rm -f $(INSTALL_DIR)/lib/modules/*/source

rfs-install: do-install

package-install: do-install post-pkg-install

# no host install for now.
host-install:

clean:
	$(BUILD_OPTIONS) \
		$(MAKE_CMD) \
		$(MAKE_VARS) \
		clean

# vim:set noexpandtab filetype=make: 
