File Makefile.suse of Package Vj_Latesttar

KERNEL_VER ?= KERNEL_$(shell uname -r | sed 's/-/\./g' | awk '{split($$0 , a, ".");print a[1]"_"a[2]"_"a[3]}')
export KERNEL_VER

BUILD_TIMESOURCE ?= $(shell scripts/determine_os)
export BUILD_TIMESOURCE

KDIR ?= /lib/modules/$(shell uname -r)/build
LICSRC := $(shell pwd)/src

.PHONY: all
all:
	@echo 'Building all modules...'
	$(MAKE) -C $(KDIR) SUBDIRS=$(LICSRC) modules
	@echo 'done.'

ifeq ($(BUILD_TIMESOURCE), 1)
	@echo 'Your system supports the timesource driver, including driver in the build'
MODULES = vmbus netvsc storvsc blkvsc hv_timesource
else
	@echo 'Your system DOES NOT supports the timesource driver'
MODULES = vmbus netvsc storvsc blkvsc
endif

.PHONY: $(MODULES)
$(MODULES):
	@echo 'Building $@ module...'
	$(MAKE) -C $(KDIR) SUBDIRS=$(LICSRC) modules obj-m=$@.o
	@echo 'done.'


# various dirs
LIC_SCRIPTS := ./scripts
TOPDIR_FILES := LICENSE-DUAL-BSD-GPL  LICENSE-GPL  Makefile README
TOPDIR_FILES += setup.pl
DIST_DIR := LinuxIC-BSD-GPL

INSTALL_DIR := /lib/modules/$(shell uname -r)/kernel/drivers/vmbus
SCRIPT_DIR := /etc/vmbus
UDEV_RULESD_DIR := /etc/udev/rules.d
INITD_DIR := /etc/init.d
INTERFACE_CONFIG_DIR := /etc/sysconfig/network-scripts
MODPROBED_DIR := /etc/modprobe.d

.PHONY: clean
clean:
	-rm -f $(LICSRC)/*.mod.*
	-rm -f $(LICSRC)/*.{o,ko}
	-rm -f $(LICSRC)/.*.cmd
	-rm -rf $(LICSRC)/.tmp_versions
	-rm -rf $(LICSRC)/Module*.symvers
	-rm -f $(LICSRC)/Module.markers $(LICSRC)/modules.order
	-rm -rf $(DIST_DIR)
	-rm -f $(DIST_DIR).iso $(DIST_DIR).tar.bz2

.PHONY: iso
iso: dist

.PHONY: dist
dist: clean
        # Create ISO file for distribution
	mkdir -p $(DIST_DIR)/src
	mkdir -p $(DIST_DIR)/scripts
	mkdir -p $(DIST_DIR)/docs
	cp $(LICSRC)/*.c $(DIST_DIR)/src
	cp $(LICSRC)/*.h $(DIST_DIR)/src
	cp $(LICSRC)/Makefile $(DIST_DIR)/src
	cp $(LIC_SCRIPTS)/* $(DIST_DIR)/scripts
	cp ./docs/* $(DIST_DIR)/docs
	cp $(TOPDIR_FILES) $(DIST_DIR)
	chmod 755 $(DIST_DIR)/*.pl $(DIST_DIR)/scripts/*.pl
	mkisofs -R -o $(DIST_DIR).iso $(DIST_DIR)
	tar -cjf $(DIST_DIR).tar.bz2 $(DIST_DIR)
	rm -rf $(DIST_DIR)


#.PHONY: install	
#install: all
#	install -d -m0755 $(INSTALL_DIR)
#	install -m0755 $(LICSRC)/Module*.symvers $(INSTALL_DIR)
#	@for mod in $(MODULES); do \
#		echo -n Installing $$mod driver... ;\
#		install -m0755 $(LICSRC)/$$mod.ko $(INSTALL_DIR) ;\
#		echo done. ;\
#	done
#	@echo -n 'Updating module dependencies. This may take a while...'
#	depmod
#	@echo 'done.'

#	@echo -n 'Installing various udev rules and scripts...'		
#	install -d -m0755 $(SCRIPT_DIR)
#	install -m0755 $(LIC_SCRIPTS)/vmbus.uevent $(SCRIPT_DIR)	
#	install -m0755 $(LIC_SCRIPTS)/netvsc.uevent $(SCRIPT_DIR)
#	install -m0644 $(LIC_SCRIPTS)/20-vmbus.rules $(UDEV_RULESD_DIR)
#	install -m0644 $(LIC_SCRIPTS)/20-netvsc.rules $(UDEV_RULESD_DIR)
#ifeq ($(KERNEL_VER),KERNEL_2_6_27)
#	install -m0644 $(LIC_SCRIPTS)/ifcfg-seth /etc/sysconfig/network/ifcfg-seth0
#	install -m0644 $(LIC_SCRIPTS)/ifcfg-seth /etc/sysconfig/network/ifcfg-seth1
#	/sbin/udevadm control --reload-rules
#else

#	/sbin/udevcontrol reload_rules
#endif
#	@echo 'done.'

#	@echo 'Updating initrd image...'
#	chmod 755 $(LIC_SCRIPTS)/updateinitrd.pl		
#	$(LIC_SCRIPTS)/updateinitrd.pl $(MODULES)
#	@echo 'Updating grub conf file...'
#	chmod 755 $(LIC_SCRIPTS)/updategrub.pl		
#	$(LIC_SCRIPTS)/updategrub.pl
#	@echo 'Installing vmbus startup script...'			
#	install -m0755 $(LIC_SCRIPTS)/vmbus /$(INITD_DIR)
#	/sbin/chkconfig --add vmbus
#ifneq ($(KERNEL_VER),KERNEL_2_6_27)
#	$(INITD_DIR)/vmbus start
#endif


.PHONY: uninstall	
uninstall: 
	chkconfig --del vmbus || true
	rm -f $(INITD_DIR)/vmbus
	rm -f $(UDEV_RULESD_DIR)/20-netvsc.rules
	rm -f $(UDEV_RULESD_DIR)/20-vmbus.rules
	rm -fr $(SCRIPT_DIR)
	rm -f $(INTERFACE_CONFIG_DIR)/ifcfg-seth*
ifeq ($(KERNEL_VER),KERNEL_2_6_27)
	udevadm control --reload-rules
else
	udevcontrol reload_rules
endif
	@echo '****************************************************************************'
	@echo '*** WARNING!! You will need to perform these additional steps to return  ***'
	@echo '*** the system to the previous state.                                    ***'
	@echo '*** 1) You will need to replace the modified initrd image with the       ***'
	@echo '*** original backup version.                                             ***'	
	@echo '*** 2) You may need to edit the grub menu file to its original form.     ***'
	@echo '****************************************************************************'

	rm -fr $(INSTALL_DIR)
	depmod


.PHONY: help
help:
	@echo 'make [target] [options]'
	@echo 'target:'
	@echo '  dist, iso      - Create the ISO file for distribution'
	@echo '  clean          - Remove previously-built components'
	@echo '  all (default)  - Build all the components only'
	@echo '  <module>       - Build the specified module only'
	@echo '  install        - Install modules on the VM'
	@echo '  uninstall      - Uninstall modules on the VM'
	@echo ''
	@echo 'options:'
	@echo '  DEBUG=1	- Generate a checked (vs free) build. Default is free build'
	@echo ''
openSUSE Build Service is sponsored by