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