Merge branch 'postk_topic-contiguous_pte' into development

* Merge cd7ab307fae9bc8aa49d23b32becf37368a1603e
* Merge commit is changed to one commit for gerrit

Change-Id: I75f0f4cf6b8b3286284638ac2c7816c5257551e4
This commit is contained in:
Dominique Martinet
2019-01-31 11:03:46 +09:00
parent 7f1c17fc4c
commit 6d38c34993
55 changed files with 2757 additions and 17 deletions

View File

@@ -0,0 +1,102 @@
# Makefile COPYRIGHT FUJITSU LIMITED 2018
#
# [own copile]
# $ make
#
# [cross copile]
# $ ARCH=${target_arch} CC=${cross_compiler} make
#
# target name.
TARGET := test_contiguous_pte
ARCH ?= arm64
#---------------
# path settings.
#---------------
# directory.
BIN_DIR := bin
SRC_ROOT_DIR := src
DEP_ROOT_DIR := depend
OBJ_ROOT_DIR := obj
INC_DIRS := . $(SRC_ROOT_DIR) $(SRC_ROOT_DIR)/arch/$(ARCH)/include
TP_LOG_DIR := result
SRC_DIRS := $(shell find $(SRC_ROOT_DIR) -type d | grep -vw $(SRC_ROOT_DIR)/arch) $(shell find $(SRC_ROOT_DIR)/arch/$(ARCH) -type d)
OBJ_DIRS := $(patsubst $(SRC_ROOT_DIR)%, $(OBJ_ROOT_DIR)%, $(SRC_DIRS))
DEP_DIRS := $(patsubst $(SRC_ROOT_DIR)%, $(DEP_ROOT_DIR)%, $(SRC_DIRS))
# file lists.
BIN := $(TARGET)
PROGRAM := $(BIN_DIR)/$(BIN)
SRCS := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
OBJS := $(patsubst $(SRC_ROOT_DIR)%, $(OBJ_ROOT_DIR)%, $(SRCS:.c=.o))
DEPS := $(patsubst $(SRC_ROOT_DIR)%, $(DEP_ROOT_DIR)%, $(SRCS:.c=.d))
#--------------
# build otions.
#--------------
# compile.
CFLAGS += -g
CFLAGS += -O0
CFLAGS += -Wall
CFLAGS += -Wstrict-prototypes
CFLAGS += -funsigned-char
# preprocess.
CPPFLAGS += $(foreach dir,$(INC_DIRS),-I$(dir))
CPPFLAGS += -D_GNU_SOURCE
# link.
LOADLIBS +=
#--------
# targets
#--------
CC ?= gcc
LD := $(CC)
RM := rm -rf
SED := sed
MKDIR := mkdir -p
# Default target.
all: $(TARGET)
# Generate Program.
$(TARGET): $(OBJS)
$(MKDIR) $(BIN_DIR)
$(LD) $(LDFLAGS) $^ $(LOADLIBS) -o $(PROGRAM)
# Remove any generated file.
clean:
$(RM) $(PROGRAM) $(TP_LOG_DIR)
-@find $(SRC_ROOT_DIR) -name \*~ -exec $(RM) {} +;
-@if [ "." != $(BIN_DIR) ]; then \
$(RM) $(BIN_DIR); \
fi
-@if [ "." != $(OBJ_ROOT_DIR) ]; then \
$(RM) $(OBJ_ROOT_DIR); \
fi
-@if [ "." != $(DEP_ROOT_DIR) ]; then \
$(RM) $(DEP_ROOT_DIR); \
fi
# Generate object file.
$(OBJS):
-@ $(MKDIR) $(dir $@)
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $(patsubst $(OBJ_ROOT_DIR)%, $(SRC_ROOT_DIR)%, $(@:.o=.c)) \
-DTEST_SUITE=$(shell echo $@ | sed 's|$(OBJ_ROOT_DIR)/\([^/]*\).*.o|\1|g') \
-DTEST_NUMBER=$(shell echo $@ | sed 's|$(OBJ_ROOT_DIR)/[^/]*/[0]\{,2\}\([0-9]*\).o|\1|g' | grep -E ^[0-9]+$)
# Generate dependencies file.
$(DEPS):
-@ $(MKDIR) $(DEP_DIRS)
$(CC) $(CFLAGS) $(CPPFLAGS) -M $(filter %/$(patsubst $(DEP_ROOT_DIR)%, $(SRC_ROOT_DIR)%, $(@:.d=.c)), $(SRCS)) |\
$(SED) 's|$(subst .d,.o,$(notdir $@)) *:|$(filter %/$(patsubst $(DEP_ROOT_DIR)%, $(OBJ_ROOT_DIR)%, $(@:.d=.o)), $(OBJS)) : Makefile|' >$@
.PHONY: all clean
ifneq "$(MAKECMDGOALS)" "clean"
-include $(DEPS)
endif