* Merge cd7ab307fae9bc8aa49d23b32becf37368a1603e * Merge commit is changed to one commit for gerrit Change-Id: I75f0f4cf6b8b3286284638ac2c7816c5257551e4
103 lines
2.5 KiB
Makefile
103 lines
2.5 KiB
Makefile
# 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
|