From 4bdcd58361959541d9d3572373cabd60c0929851 Mon Sep 17 00:00:00 2001 From: Radek Zetik Date: Wed, 21 Oct 2015 06:45:20 +0100 Subject: Fix Make, Make clean and when the src directories are cloned Update the rules for Make clean and distclean. Update make not to clone the repositories if they are already cloned, simply pull, checkout the tags and build. Changes in this patch: 1. QEMU is built just once in .../src directory. .../src_vanilla and .../src_cuse don't contain qemu anymore 2. 'make clean' deletes all built *.o files 3. 'make distclean' deletes all built and generated files (distclean is used instead of cleanse now) 4. 'make' calls 'git pull' when repository is cloned already JIRA: VSPERF-94 Change-Id: I80f9a135580b450fb4606cf947661049ff509548 Signed-off-by: Radek Zetik Reviewed-by: Billy O Mahony Reviewed-by: Gene Snider Reviewed-by: Maryam Tahhan --- src/Makefile | 4 ++-- src/Makefile.src_cuse | 1 - src/Makefile.src_vanilla | 1 - src/dpdk/Makefile | 8 +++++--- src/l2fwd/Makefile | 2 +- src/mk/make-subsys.mk | 2 +- src/ovs/Makefile | 7 +++++-- src/qemu/Makefile | 7 +++++-- 8 files changed, 19 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/Makefile b/src/Makefile index 81143ae9..42970288 100644 --- a/src/Makefile +++ b/src/Makefile @@ -22,7 +22,7 @@ SUBBUILDS = src_cuse src_vanilla .PHONY: vhost subbuilds $(SUBBUILDS) -all: vhost subbuilds +all clean distclean: vhost subbuilds subbuilds: $(SUBBUILDS) $(SUBBUILDS): vhost @@ -30,7 +30,7 @@ $(SUBBUILDS): vhost $(AT)cp -rf mk/* ../$@/mk $(AT)cp -rf package-list.mk ../$@/ $(AT)cp Makefile.$@ ../$@/Makefile - $(AT)$(MAKE) -C ../$@ + $(AT)$(MAKE) -C ../$@ $(MAKECMDGOALS) vhost: export VHOST_USER diff --git a/src/Makefile.src_cuse b/src/Makefile.src_cuse index 74e76f4f..0ddac4cb 100644 --- a/src/Makefile.src_cuse +++ b/src/Makefile.src_cuse @@ -27,7 +27,6 @@ export VHOST_USER SUBDIRS = SUBDIRS += dpdk SUBDIRS += ovs -SUBDIRS += qemu ovs: dpdk WITH_LINUX = VHOST_USER = n diff --git a/src/Makefile.src_vanilla b/src/Makefile.src_vanilla index 922d5e53..491fb2c1 100644 --- a/src/Makefile.src_vanilla +++ b/src/Makefile.src_vanilla @@ -27,7 +27,6 @@ export WITH_LINUX # specify upstream package as SUBDIRS - common terms as suggest by gnu-make SUBDIRS = SUBDIRS += ovs -SUBDIRS += qemu WITH_LINUX=/lib/modules/`uname -r`/build VHOST_USER = n include mk/make-subsys.mk diff --git a/src/dpdk/Makefile b/src/dpdk/Makefile index af743732..030e4ba9 100755 --- a/src/dpdk/Makefile +++ b/src/dpdk/Makefile @@ -48,6 +48,7 @@ INSTALL_TARGET = force_make # modify CONFIG_FILE to enable VHOST_USER build and restore original CONFIG_FILE after the build force_make: $(TAG_DONE_FLAG) + $(AT)cd $(WORK_DIR) && git pull $(DPDK_URL) $(DPDK_TAG) $(AT)sed -i -e 's/CONFIG_RTE_LIBRTE_VHOST_USER=.\+/CONFIG_RTE_LIBRTE_VHOST_USER=$(VHOST_USER)/g' $(CONFIG_FILE) $(AT)sed -i -e 's/CONFIG_RTE_BUILD_COMBINE_LIBS=./CONFIG_RTE_BUILD_COMBINE_LIBS=y/g' $(CONFIG_FILE) $(AT)sed -i -e 's/CONFIG_RTE_LIBRTE_VHOST=./CONFIG_RTE_LIBRTE_VHOST=y/g' $(CONFIG_FILE) @@ -65,15 +66,16 @@ install: $(INSTALL_TARGET) @echo "install done" # hard way to clean and clobber -clean: cleanse +clean: + $(AT)cd $(WORK_DIR) && git clean -xfd *.o clobber: $(AT)rm -rf $(WORK_DIR) $(AT)rm -rf $(DPDK_VANILLA) $(AT)rm -rf $(DPDK_CUSE) -# cleanse is for developer who would like to keep the +# distclean is for developer who would like to keep the # clone git repo, saving time to fetch again from url -cleanse: +distclean: $(AT)cd $(WORK_DIR) && git clean -xfd && git checkout -f test: diff --git a/src/l2fwd/Makefile b/src/l2fwd/Makefile index b920769e..39e64a56 100644 --- a/src/l2fwd/Makefile +++ b/src/l2fwd/Makefile @@ -34,7 +34,7 @@ clean: $(MAKE) -C $(KERNELDIR) M=$(PWD) clean rm -f l2fwd*deb -cleanse: clean +distclean: clean clobber: clean diff --git a/src/mk/make-subsys.mk b/src/mk/make-subsys.mk index a40f5677..b0bd6b85 100644 --- a/src/mk/make-subsys.mk +++ b/src/mk/make-subsys.mk @@ -21,7 +21,7 @@ .PHONY: $(SUBDIRS) -all clean cleanse clobber install uninstall test sanity: $(SUBDIRS) +all clean distclean clobber install uninstall test sanity: $(SUBDIRS) $(AT)echo "finished making $@" $(SUBDIRS): diff --git a/src/ovs/Makefile b/src/ovs/Makefile index a67057f5..384d6993 100644 --- a/src/ovs/Makefile +++ b/src/ovs/Makefile @@ -72,6 +72,8 @@ config $(WORK_DIR)/Makefile: $(WORK_DIR)/configure INSTALL_TARGET = force_install force_make force_make: $(WORK_DIR)/Makefile + $(AT)cd $(WORK_DIR) && git pull $(OVS_URL) $(OVS_TAG) + @echo "git pull done" $(AT)echo "WITH_LINUX = $(WITH_LINUX)" $(AT)$(MAKE) -C $(WORK_DIR) $(MORE_MAKE_FLAGS) @echo "Make done" @@ -84,14 +86,15 @@ install: $(INSTALL_TARGET) # hard way to clean and clobber clean: + $(AT)cd $(WORK_DIR) && git clean -xfd *.o clobber: $(AT)rm -rf $(WORK_DIR) $(AT)rm -rf $(OVS_VANILLA) $(AT)rm -rf $(OVS_CUSE) -# cleanse is for developer who would like to keep the +# distclean is for developer who would like to keep the # clone git repo, saving time to fetch again from url -cleanse: +distclean: $(AT)cd $(WORK_DIR) && git clean -xfd && git checkout -f test: diff --git a/src/qemu/Makefile b/src/qemu/Makefile index 0a71cf78..1268f571 100755 --- a/src/qemu/Makefile +++ b/src/qemu/Makefile @@ -45,6 +45,8 @@ config $(WORK_DIR)/Makefile: $(WORK_DIR)/configure INSTALL_TARGET = force_install force_make force_make: $(WORK_DIR)/Makefile + $(AT)cd $(WORK_DIR) && git pull $(QEMU_URL) $(QEMU_TAG) + $(AT)echo "git pull done" $(AT)$(MAKE) -C $(WORK_DIR) $(MORE_MAKE_FLAGS) @echo "Make done" @@ -55,14 +57,15 @@ install: $(INSTALL_TARGET) # hard way to clean and clobber clean: + $(AT)cd $(WORK_DIR) && git clean -xfd *.o clobber: $(AT)rm -rf $(WORK_DIR) $(AT)rm -rf $(QEMU_VANILLA) $(AT)rm -rf $(QEMU_CUSE) -# cleanse is for developer who would like to keep the +# distclean is for developer who would like to keep the # clone git repo, saving time to fetch again from url -cleanse: +distclean: $(AT)cd $(WORK_DIR) && git clean -xfd && git checkout -f test: -- cgit 1.2.3-korg