########################################################################
# DESCRIPTION: Used to compile CEPH (the kernel client)
# CREATE DATE: 2017-04-02
# AUTHOR :
# USAGE : (1) make [mod|libicfs|icfs]
# (2) make modules
# (3) make modules_install
# (4) make clean
########################################################################
export WORK_DIR = $(shell pwd)
export KERNEL_VERSION = $(shell uname -r)
export KERNEL_DIR = /usr/src/kernels/$(KERNEL_VERSION)/
export C_INCLUDE_PATH=$(WORK_DIR)/include
SUBDIRS= icfsmod net/icfs/ fs/icfs/
.PHONY:clean
all:
for dir in $(SUBDIRS); do\
$(MAKE) -C $$dir || exit 1;\
done
mod:
$(MAKE) -C icfsmod
#$(MAKE) -C icfsmod modules_install
#$(MAKE) -C icfsmod modules_install
libicfs:
$(MAKE) -C net/icfs
icfs:
$(MAKE) -C fs/icfs
modules:
for dir in $(SUBDIRS); do\
$(MAKE) -C $$dir modules || exit 1;\
done
modules_install:
for dir in $(SUBDIRS); do\
$(MAKE) -C $$dir modules_install || exit 1;\
done
clean:
for dir in $(SUBDIRS); do\
$(MAKE) -C $$dir clean || exit 1;\
done
# DESCRIPTION: Used to compile CEPH (the kernel client)
# CREATE DATE: 2017-04-02
# AUTHOR :
# USAGE : (1) make [mod|libicfs|icfs]
# (2) make modules
# (3) make modules_install
# (4) make clean
########################################################################
export WORK_DIR = $(shell pwd)
export KERNEL_VERSION = $(shell uname -r)
export KERNEL_DIR = /usr/src/kernels/$(KERNEL_VERSION)/
export C_INCLUDE_PATH=$(WORK_DIR)/include
export KERN_V=$(shell uname -r |awk -F "[.-]" '{ print (((($$1*1000)+$$2)*1000)+$$3)*1000+$$4}')
解释:-F后的[.-]是指awk的分隔符为.和-
在makefile中awk的$都要用$$来代替,因为$在makefile中有特殊的含义。
SUBDIRS= icfsmod net/icfs/ fs/icfs/
.PHONY:clean
all:
for dir in $(SUBDIRS); do\
$(MAKE) -C $$dir || exit 1;\
done
mod:
$(MAKE) -C icfsmod
#$(MAKE) -C icfsmod modules_install
#$(MAKE) -C icfsmod modules_install
libicfs:
$(MAKE) -C net/icfs
icfs:
$(MAKE) -C fs/icfs
modules:
for dir in $(SUBDIRS); do\
$(MAKE) -C $$dir modules || exit 1;\
done
modules_install:
for dir in $(SUBDIRS); do\
$(MAKE) -C $$dir modules_install || exit 1;\
done
clean:
for dir in $(SUBDIRS); do\
$(MAKE) -C $$dir clean || exit 1;\
done
使用awk处理Makefile中的版本号
这篇博客介绍了如何在Makefile中利用awk命令处理版本号。通过`uname -r`获取内核版本,并使用awk的`-F`选项以点和破折号作为分隔符,将版本号分解并进行计算,最终得到一个四位数的表示。
143

被折叠的 条评论
为什么被折叠?



