1 Star 0 Fork 0

Icey_9 / intel-ipsec-mb

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
Makefile 15.02 KB
一键复制 编辑 原始数据 按行查看 历史
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
#
# Copyright (c) 2012-2018, Intel Corporation
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of Intel Corporation nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
LIB = libIPSec_MB
SHARED ?= y
IMB_HDR = intel-ipsec-mb.h
# Detect library version
IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
ifeq ($(IMB_VERSION),)
$(error "Failed to detect library version!")
endif
VERSION = $(shell echo $(IMB_VERSION) | cut -d. -f1-2)
SO_VERSION = $(shell echo $(VERSION) | cut -d. -f1)
PREFIX ?= /usr
LIB_INSTALL_DIR ?= $(PREFIX)/lib
HDR_DIR ?= $(PREFIX)/include
MAN_DIR ?= $(PREFIX)/man/man7
MAN1 = libipsec-mb.7
MAN2 = libipsec-mb-dev.7
NOLDCONFIG ?= n
USE_YASM ?= n
YASM ?= yasm
NASM ?= nasm
OBJ_DIR = obj
INCLUDE_DIRS := include . no-aesni
INCLUDES := $(foreach i,$(INCLUDE_DIRS),-I $i)
CC ?= gcc
CFLAGS := -DLINUX $(EXTRA_CFLAGS) $(INCLUDES) \
-W -Wall -Wextra -Wmissing-declarations -Wpointer-arith \
-Wcast-qual -Wundef -Wwrite-strings \
-Wformat -Wformat-security \
-Wunreachable-code -Wmissing-noreturn -Wsign-compare -Wno-endif-labels \
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
ifeq ($(DEBUG),y)
CFLAGS += -g -DDEBUG
OPT = -O0
LDFLAGS += -g
else
OPT = -O3
CFLAGS += -fstack-protector -D_FORTIFY_SOURCE=2
endif
# prevent SIMD optimizations for non-aesni modules
CFLAGS_NO_SIMD = $(CFLAGS) -O1
CFLAGS += $(OPT)
# Set architectural optimizations for GCC/CC
ifeq ($(CC),$(filter $(CC),gcc cc))
GCC_VERSION = $(shell $(CC) -dumpversion | cut -d. -f1)
GCC_GE_V5 = $(shell [ $(GCC_VERSION) -ge 5 ] && echo true)
ifeq ($(GCC_GE_V5),true)
OPT_SSE = -march=nehalem
OPT_AVX = -march=sandybridge
OPT_AVX2 = -march=haswell
OPT_AVX512 = -march=broadwell
endif
endif
# so or static build
ifeq ($(SHARED),y)
CFLAGS += -fPIC
LIBNAME = $(LIB).so.$(VERSION)
LIBPERM = 0755
LDFLAGS += -z noexecstack -z relro -z now
else
CFLAGS += -fPIE
LIBNAME = $(LIB).a
LIBPERM = 0644
LDFLAGS += -g
endif
ASM_INCLUDE_DIRS := .
YASM_INCLUDES := $(foreach i,$(ASM_INCLUDE_DIRS),-I $i)
YASM_FLAGS := -f x64 -f elf64 -X gnu -g dwarf2 -DLINUX -D__linux__ $(YASM_INCLUDES)
NASM_INCLUDES := $(foreach i,$(ASM_INCLUDE_DIRS),-I$i/)
NASM_FLAGS := -felf64 -Xgnu -gdwarf -DLINUX -D__linux__ $(NASM_INCLUDES)
#
# List of C modules (any origin)
#
c_lib_objs := \
mb_mgr_avx.o \
mb_mgr_avx2.o \
mb_mgr_avx512.o \
mb_mgr_sse.o \
mb_mgr_sse_no_aesni.o \
alloc.o \
aes_xcbc_expand_key.o \
md5_one_block.o \
sha_one_block.o \
des_key.o \
des_basic.o \
version.o \
cpu_feature.o \
aesni_emu.o
#
# List of ASM modules (root directory/common)
#
asm_generic_lib_objs := \
aes_keyexp_128.o \
aes_keyexp_192.o \
aes_keyexp_256.o \
aes_cmac_subkey_gen.o \
save_xmms.o \
const.o \
aes128_ecbenc_x3.o
#
# List of ASM modules (no-aesni directory)
#
asm_noaesni_lib_objs := \
aes128_cbc_dec_by4_sse_no_aesni.o \
aes192_cbc_dec_by4_sse_no_aesni.o \
aes256_cbc_dec_by4_sse_no_aesni.o \
aes_cbc_enc_128_x4_no_aesni.o \
aes_cbc_enc_192_x4_no_aesni.o \
aes_cbc_enc_256_x4_no_aesni.o \
aes128_cntr_by4_sse_no_aesni.o \
aes192_cntr_by4_sse_no_aesni.o \
aes256_cntr_by4_sse_no_aesni.o \
aes_cfb_128_sse_no_aesni.o \
aes128_cbc_mac_x4_no_aesni.o \
aes_xcbc_mac_128_x4_no_aesni.o \
mb_mgr_aes_flush_sse_no_aesni.o \
mb_mgr_aes_submit_sse_no_aesni.o \
mb_mgr_aes192_flush_sse_no_aesni.o \
mb_mgr_aes192_submit_sse_no_aesni.o \
mb_mgr_aes256_flush_sse_no_aesni.o \
mb_mgr_aes256_submit_sse_no_aesni.o \
mb_mgr_aes_cmac_submit_flush_sse_no_aesni.o \
mb_mgr_aes_xcbc_flush_sse_no_aesni.o \
mb_mgr_aes_xcbc_submit_sse_no_aesni.o
#
# List of ASM modules (sse directory)
#
asm_sse_lib_objs := \
aes128_cbc_dec_by4_sse.o \
aes192_cbc_dec_by4_sse.o \
aes256_cbc_dec_by4_sse.o \
aes_cbc_enc_128_x4.o \
aes_cbc_enc_192_x4.o \
aes_cbc_enc_256_x4.o \
aes128_cntr_by4_sse.o \
aes192_cntr_by4_sse.o \
aes256_cntr_by4_sse.o \
aes_cfb_128_sse.o \
aes128_cbc_mac_x4.o \
aes_xcbc_mac_128_x4.o \
md5_x4x2_sse.o \
sha1_mult_sse.o \
sha1_one_block_sse.o \
sha224_one_block_sse.o \
sha256_one_block_sse.o \
sha384_one_block_sse.o \
sha512_one_block_sse.o \
sha512_x2_sse.o \
sha_256_mult_sse.o \
sha1_ni_x2_sse.o \
sha256_ni_x2_sse.o \
mb_mgr_aes_flush_sse.o \
mb_mgr_aes_submit_sse.o \
mb_mgr_aes192_flush_sse.o \
mb_mgr_aes192_submit_sse.o \
mb_mgr_aes256_flush_sse.o \
mb_mgr_aes256_submit_sse.o \
mb_mgr_aes_cmac_submit_flush_sse.o \
mb_mgr_aes_xcbc_flush_sse.o \
mb_mgr_aes_xcbc_submit_sse.o \
mb_mgr_hmac_md5_flush_sse.o \
mb_mgr_hmac_md5_submit_sse.o \
mb_mgr_hmac_flush_sse.o \
mb_mgr_hmac_submit_sse.o \
mb_mgr_hmac_sha_224_flush_sse.o \
mb_mgr_hmac_sha_224_submit_sse.o \
mb_mgr_hmac_sha_256_flush_sse.o \
mb_mgr_hmac_sha_256_submit_sse.o \
mb_mgr_hmac_sha_384_flush_sse.o \
mb_mgr_hmac_sha_384_submit_sse.o \
mb_mgr_hmac_sha_512_flush_sse.o \
mb_mgr_hmac_sha_512_submit_sse.o \
mb_mgr_hmac_flush_ni_sse.o \
mb_mgr_hmac_submit_ni_sse.o \
mb_mgr_hmac_sha_224_flush_ni_sse.o \
mb_mgr_hmac_sha_224_submit_ni_sse.o \
mb_mgr_hmac_sha_256_flush_ni_sse.o \
mb_mgr_hmac_sha_256_submit_ni_sse.o
#
# List of ASM modules (avx directory)
#
asm_avx_lib_objs := \
aes_cbc_enc_128_x8.o \
aes_cbc_enc_192_x8.o \
aes_cbc_enc_256_x8.o \
aes128_cbc_dec_by8_avx.o \
aes192_cbc_dec_by8_avx.o \
aes256_cbc_dec_by8_avx.o \
aes128_cntr_by8_avx.o \
aes192_cntr_by8_avx.o \
aes256_cntr_by8_avx.o \
aes_cfb_128_avx.o \
aes128_cbc_mac_x8.o \
aes_xcbc_mac_128_x8.o \
md5_x4x2_avx.o \
sha1_mult_avx.o \
sha1_one_block_avx.o \
sha224_one_block_avx.o \
sha256_one_block_avx.o \
sha_256_mult_avx.o \
sha384_one_block_avx.o \
sha512_one_block_avx.o \
sha512_x2_avx.o \
mb_mgr_aes_flush_avx.o \
mb_mgr_aes_submit_avx.o \
mb_mgr_aes192_flush_avx.o \
mb_mgr_aes192_submit_avx.o \
mb_mgr_aes256_flush_avx.o \
mb_mgr_aes256_submit_avx.o \
mb_mgr_aes_cmac_submit_flush_avx.o\
mb_mgr_aes_xcbc_flush_avx.o \
mb_mgr_aes_xcbc_submit_avx.o \
mb_mgr_hmac_md5_flush_avx.o \
mb_mgr_hmac_md5_submit_avx.o \
mb_mgr_hmac_flush_avx.o \
mb_mgr_hmac_submit_avx.o \
mb_mgr_hmac_sha_224_flush_avx.o \
mb_mgr_hmac_sha_224_submit_avx.o \
mb_mgr_hmac_sha_256_flush_avx.o \
mb_mgr_hmac_sha_256_submit_avx.o \
mb_mgr_hmac_sha_384_flush_avx.o \
mb_mgr_hmac_sha_384_submit_avx.o \
mb_mgr_hmac_sha_512_flush_avx.o \
mb_mgr_hmac_sha_512_submit_avx.o
#
# List of ASM modules (avx2 directory)
#
asm_avx2_lib_objs := \
md5_x8x2_avx2.o \
sha1_x8_avx2.o \
sha256_oct_avx2.o \
sha512_x4_avx2.o \
mb_mgr_hmac_md5_flush_avx2.o \
mb_mgr_hmac_md5_submit_avx2.o \
mb_mgr_hmac_flush_avx2.o \
mb_mgr_hmac_submit_avx2.o \
mb_mgr_hmac_sha_224_flush_avx2.o \
mb_mgr_hmac_sha_224_submit_avx2.o \
mb_mgr_hmac_sha_256_flush_avx2.o \
mb_mgr_hmac_sha_256_submit_avx2.o \
mb_mgr_hmac_sha_384_flush_avx2.o \
mb_mgr_hmac_sha_384_submit_avx2.o \
mb_mgr_hmac_sha_512_flush_avx2.o \
mb_mgr_hmac_sha_512_submit_avx2.o
#
# List of ASM modules (avx512 directory)
#
asm_avx512_lib_objs := \
sha1_x16_avx512.o \
sha256_x16_avx512.o \
sha512_x8_avx512.o \
des_x16_avx512.o \
mb_mgr_hmac_flush_avx512.o \
mb_mgr_hmac_submit_avx512.o \
mb_mgr_hmac_sha_224_flush_avx512.o \
mb_mgr_hmac_sha_224_submit_avx512.o \
mb_mgr_hmac_sha_256_flush_avx512.o \
mb_mgr_hmac_sha_256_submit_avx512.o \
mb_mgr_hmac_sha_384_flush_avx512.o \
mb_mgr_hmac_sha_384_submit_avx512.o \
mb_mgr_hmac_sha_512_flush_avx512.o \
mb_mgr_hmac_sha_512_submit_avx512.o \
mb_mgr_des_avx512.o
#
# GCM object file lists
#
c_gcm_objs := gcm.o
asm_noaesni_gcm_objs := \
gcm128_sse_no_aesni.o gcm192_sse_no_aesni.o gcm256_sse_no_aesni.o
asm_sse_gcm_objs := \
gcm128_sse.o gcm192_sse.o gcm256_sse.o
asm_avx_gcm_objs := \
gcm128_avx_gen2.o gcm192_avx_gen2.o gcm256_avx_gen2.o
asm_avx2_gcm_objs := \
gcm128_avx_gen4.o gcm192_avx_gen4.o gcm256_avx_gen4.o
asm_avx512_gcm_objs := \
gcm128_vaes_avx512.o gcm192_vaes_avx512.o gcm256_vaes_avx512.o \
gcm128_avx512.o gcm192_avx512.o gcm256_avx512.o
#
# build object files lists for GCM and NO-GCM variants
#
ifeq ($(NO_GCM), y)
CFLAGS += -DNO_GCM
asm_obj_files := $(asm_generic_lib_objs) $(asm_noaesni_lib_objs) \
$(asm_sse_lib_objs) $(asm_avx_lib_objs) \
$(asm_avx2_lib_objs) $(asm_avx512_lib_objs)
c_obj_files := $(c_lib_objs)
else
asm_obj_files := $(asm_generic_lib_objs) \
$(asm_noaesni_lib_objs) $(asm_noaesni_gcm_objs) \
$(asm_sse_lib_objs) $(asm_sse_gcm_objs) \
$(asm_avx_lib_objs) $(asm_avx_gcm_objs) \
$(asm_avx2_lib_objs) $(asm_avx2_gcm_objs) \
$(asm_avx512_lib_objs) $(asm_avx512_gcm_objs)
c_obj_files := $(c_lib_objs) $(c_gcm_objs)
endif
#
# aggregate all objects files together and prefix with OBJDIR
#
lib_obj_files := $(asm_obj_files) $(c_obj_files)
target_obj_files := $(lib_obj_files:%=$(OBJ_DIR)/%)
#
# create a list of dependency files for assembly modules
# create a list of dependency files for c modules then
# prefix these with OBJDIR
#
asm_dep_files := $(asm_obj_files:%.o=%.d)
c_dep_files := $(c_obj_files:%.o=%.d)
c_dep_target_files := $(c_dep_files:%=$(OBJ_DIR)/%)
#
# aggregate all dependency files together and prefix with OBJDIR
#
dep_files := $(asm_dep_files) $(c_dep_files)
dep_target_files := $(dep_files:%=$(OBJ_DIR)/%)
all: $(LIBNAME)
$(LIBNAME): $(target_obj_files)
ifeq ($(SHARED),y)
$(CC) -shared -Wl,-soname,$(LIB).so.$(SO_VERSION) -o $(LIBNAME) $^ -lc
ln -f -s $(LIBNAME) $(LIB).so.$(SO_VERSION)
ln -f -s $(LIB).so.$(SO_VERSION) $(LIB).so
else
$(AR) -qcs $@ $^
endif
.PHONY: install
install: $(LIBNAME)
install -d $(HDR_DIR)
install -m 0644 $(IMB_HDR) $(HDR_DIR)
install -d $(LIB_INSTALL_DIR)
install -s -m $(LIBPERM) $(LIBNAME) $(LIB_INSTALL_DIR)
install -d $(MAN_DIR)
install -m 0444 $(MAN1) $(MAN_DIR)
install -m 0444 $(MAN2) $(MAN_DIR)
ifeq ($(SHARED),y)
cd $(LIB_INSTALL_DIR); \
ln -f -s $(LIB).so.$(VERSION) $(LIB).so.$(SO_VERSION); \
ln -f -s $(LIB).so.$(SO_VERSION) $(LIB).so
ifneq ($(NOLDCONFIG),y)
ldconfig
endif
endif
.PHONY: uninstall
uninstall: $(LIBNAME)
-rm -f $(HDR_DIR)/$(IMB_HDR)
-rm -f $(LIB_INSTALL_DIR)/$(LIBNAME)
-rm -f $(MAN_DIR)/$(MAN1)
-rm -f $(MAN_DIR)/$(MAN2)
ifeq ($(SHARED),y)
-rm -f $(LIB_INSTALL_DIR)/$(LIB).so.$(SO_VERSION)
-rm -f $(LIB_INSTALL_DIR)/$(LIB).so
endif
.PHONY: build_c_dep_target_files
build_c_dep_target_files: $(c_dep_target_files)
$(target_obj_files): | $(OBJ_DIR) build_c_dep_target_files
$(dep_target_files): | $(OBJ_DIR)
#
# dependency file build recipies
#
$(OBJ_DIR)/%.d:%.c
$(CC) -MM -MP -MF $@ $(CFLAGS) $<
$(OBJ_DIR)/%.d:sse/%.c
$(CC) -MM -MP -MF $@ $(CFLAGS) $<
$(OBJ_DIR)/%.d:avx/%.c
$(CC) -MM -MP -MF $@ $(CFLAGS) $<
$(OBJ_DIR)/%.d:avx2/%.c
$(CC) -MM -MP -MF $@ $(CFLAGS) $<
$(OBJ_DIR)/%.d:avx512/%.c
$(CC) -MM -MP -MF $@ $(CFLAGS) $<
$(OBJ_DIR)/%.d:no-aesni/%.c
$(CC) -MM -MP -MF $@ $(CFLAGS) $<
#
# object file build recipies
#
$(OBJ_DIR)/%.o:%.c
$(CC) -c $(CFLAGS) $< -o $@
$(OBJ_DIR)/%.o:%.asm
ifeq ($(USE_YASM),y)
$(YASM) $(YASM_FLAGS) $< -o $@
else
$(NASM) -MD $(@:.o=.d) -MT $@ -o $@ $(NASM_FLAGS) $<
endif
$(OBJ_DIR)/%.o:sse/%.c
$(CC) $(OPT_SSE) -c $(CFLAGS) $< -o $@
$(OBJ_DIR)/%.o:sse/%.asm
ifeq ($(USE_YASM),y)
$(YASM) $(YASM_FLAGS) $< -o $@
else
$(NASM) -MD $(@:.o=.d) -MT $@ -o $@ $(NASM_FLAGS) $<
endif
$(OBJ_DIR)/%.o:avx/%.c
$(CC) $(OPT_AVX) -c $(CFLAGS) $< -o $@
$(OBJ_DIR)/%.o:avx/%.asm
ifeq ($(USE_YASM),y)
$(YASM) $(YASM_FLAGS) $< -o $@
else
$(NASM) -MD $(@:.o=.d) -MT $@ -o $@ $(NASM_FLAGS) $<
endif
$(OBJ_DIR)/%.o:avx2/%.c
$(CC) $(OPT_AVX2) -c $(CFLAGS) $< -o $@
$(OBJ_DIR)/%.o:avx2/%.asm
ifeq ($(USE_YASM),y)
$(YASM) $(YASM_FLAGS) $< -o $@
else
$(NASM) -MD $(@:.o=.d) -MT $@ -o $@ $(NASM_FLAGS) $<
endif
$(OBJ_DIR)/%.o:avx512/%.c
$(CC) $(OPT_AVX512) -c $(CFLAGS) $< -o $@
$(OBJ_DIR)/%.o:avx512/%.asm
ifeq ($(USE_YASM),y)
$(YASM) $(YASM_FLAGS) $< -o $@
else
$(NASM) -MD $(@:.o=.d) -MT $@ -o $@ $(NASM_FLAGS) $<
endif
$(OBJ_DIR)/%.o:include/%.asm
ifeq ($(USE_YASM),y)
$(YASM) $(YASM_FLAGS) $< -o $@
else
$(NASM) -MD $(@:.o=.d) -MT $@ -o $@ $(NASM_FLAGS) $<
endif
$(OBJ_DIR)/%.o:no-aesni/%.c
$(CC) -c $(CFLAGS_NO_SIMD) $< -o $@
$(OBJ_DIR)/%.o:no-aesni/%.asm
ifeq ($(USE_YASM),y)
$(YASM) $(YASM_FLAGS) $< -o $@
else
$(NASM) -MD $(@:.o=.d) -MT $@ -o $@ $(NASM_FLAGS) $<
endif
$(OBJ_DIR):
mkdir $(OBJ_DIR)
.PHONY: TAGS
TAGS:
find ./ -name '*.[ch]' | etags -
find ./ -name '*.asm' | etags -a -
find ./ -name '*.inc' | etags -a -
.PHONY: clean
clean:
rm -Rf $(target_obj_files)
rm -Rf $(dep_target_files)
rm -f $(LIB).a $(LIB).so*
CHECKPATCH ?= checkpatch.pl
# checkpatch ignore settings:
# SPACING - produces false positives with tyepdefs and *
# CONSTANT_COMPARISON - forbids defensive programming technique
# USE_FUNC - produces false positives for Windows target
# INITIALISED_STATIC, LEADING_SPACE, SPLIT_STRING, CODE_INDENT,
# PREFER_ALIGNED, UNSPECIFIED_INT, ARRAY_SIZE, GLOBAL_INITIALISERS,
# NEW_TYPEDEFS, AVOID_EXTERNS, COMPLEX_MACRO, BLOCK_COMMENT_STYLE
# - found obsolete in this project
#
# NOTE: these flags cannot be broken into multiple lines due to
# spaces injected by make
CHECKPATCH_FLAGS = --no-tree --no-signoff --emacs --no-color --ignore CODE_INDENT,INITIALISED_STATIC,LEADING_SPACE,SPLIT_STRING,UNSPECIFIED_INT,ARRAY_SIZE,BLOCK_COMMENT_STYLE,GLOBAL_INITIALISERS,NEW_TYPEDEFS,AVOID_EXTERNS,COMPLEX_MACRO,PREFER_ALIGNED,USE_FUNC,CONSTANT_COMPARISON,SPACING
%.c_style_check : %.c
$(CHECKPATCH) $(CHECKPATCH_FLAGS) -f $<
%.h_style_check : %.h
$(CHECKPATCH) $(CHECKPATCH_FLAGS) -f $<
%.asm_style_check : %.asm
$(CHECKPATCH) $(CHECKPATCH_FLAGS) -f $<
%.inc_style_check : %.inc
$(CHECKPATCH) $(CHECKPATCH_FLAGS) -f $<
SOURCES_DIRS := . sse avx avx2 avx512 include no-aesni
SOURCES := $(foreach dir,$(SOURCES_DIRS),$(wildcard $(dir)/*.[ch]) $(wildcard $(dir)/*.asm) $(wildcard $(dir)/*.inc))
SOURCES_STYLE := $(foreach infile,$(SOURCES),$(infile)_style_check)
.PHONY: style
style: $(SOURCES_STYLE)
# if target not clean or rinse then make dependencies
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(MAKECMDGOALS),style)
-include $(dep_target_files)
endif
endif
C
1
https://gitee.com/Icey9/intel-ipsec-mb.git
git@gitee.com:Icey9/intel-ipsec-mb.git
Icey9
intel-ipsec-mb
intel-ipsec-mb
master

搜索帮助