993229b6fe
Elftosb is used to create a digitaly signed "secure boot" file. This sb file can be booted by the first stage boot loader found in Freescale i.MX23 and i.MX28 application processors. Copyright (c) 2004-2010 Freescale Semiconductor, Inc.
179 lines
4.3 KiB
Plaintext
179 lines
4.3 KiB
Plaintext
#*******************************************************************************
|
|
# makefile.rules
|
|
# Description:
|
|
# gnu make makefile rules for elftosb executable. make needs to be called
|
|
# with the following command:
|
|
#
|
|
# make -C ${BUILD_DIR} -f ${SRC_DIR}/makefile.rules SRC_DIR=${SRC_DIR} $@;
|
|
#
|
|
# SRC_DIR needs to be passed in. It is assumed that make is running in
|
|
# the build directory.
|
|
|
|
#*******************************************************************************
|
|
# Environment
|
|
|
|
# UNAMES is going to be set to either "Linux" or "CYGWIN_NT-5.1"
|
|
UNAMES = $(shell uname -s)
|
|
|
|
#*******************************************************************************
|
|
# Directories
|
|
|
|
#*******************************************************************************
|
|
# Paths
|
|
|
|
# search path for source files. make finds them automatically.
|
|
VPATH = \
|
|
${SRC_DIR}/common \
|
|
${SRC_DIR}/elftosb2 \
|
|
${SRC_DIR}/sbtool \
|
|
${SRC_DIR}/keygen
|
|
|
|
# include directories
|
|
INC_PATH = \
|
|
-I${SRC_DIR}/elftosb2 \
|
|
-I${SRC_DIR}/keygen \
|
|
-I${SRC_DIR}/sbtool \
|
|
-I${SRC_DIR}/common
|
|
|
|
#*******************************************************************************
|
|
# Build flags
|
|
# gcc Compiler flags
|
|
# -g : Produce debugging information.
|
|
|
|
CFLAGS = -g $(INC_PATH) -D${UNAMES}
|
|
|
|
#*******************************************************************************
|
|
# File lists
|
|
|
|
OBJ_FILES_COMMON = \
|
|
AESKey.o \
|
|
Blob.o \
|
|
crc.o \
|
|
DataSource.o \
|
|
DataTarget.o \
|
|
ELFSourceFile.o \
|
|
EncoreBootImage.o \
|
|
EvalContext.o \
|
|
GHSSecInfo.o \
|
|
GlobMatcher.o \
|
|
HexValues.o \
|
|
Logging.o \
|
|
Operation.o \
|
|
OptionDictionary.o \
|
|
options.o \
|
|
OutputSection.o \
|
|
Random.o \
|
|
RijndaelCBCMAC.o \
|
|
rijndael.o \
|
|
SHA1.o \
|
|
SourceFile.o \
|
|
SRecordSourceFile.o \
|
|
stdafx.o \
|
|
StELFFile.o \
|
|
StExecutableImage.o \
|
|
StSRecordFile.o \
|
|
Value.o \
|
|
Version.o \
|
|
format_string.o \
|
|
ExcludesListMatcher.o \
|
|
SearchPath.o \
|
|
DataSourceImager.o \
|
|
IVTDataSource.o
|
|
|
|
OBJ_FILES_ELFTOSB2 = \
|
|
${OBJ_FILES_COMMON} \
|
|
BootImageGenerator.o \
|
|
ConversionController.o \
|
|
ElftosbAST.o \
|
|
elftosb.o \
|
|
elftosb_lexer.o \
|
|
ElftosbLexer.o \
|
|
elftosb_parser.tab.o \
|
|
EncoreBootImageGenerator.o
|
|
|
|
OBJ_FILES_SBTOOL = \
|
|
${OBJ_FILES_COMMON} \
|
|
EncoreBootImageReader.o \
|
|
sbtool.o
|
|
|
|
OBJ_FILES_KEYGEN = \
|
|
${OBJ_FILES_COMMON} \
|
|
keygen.o
|
|
|
|
|
|
LIBS = -lstdc++
|
|
|
|
|
|
ifeq ("${UNAMES}", "Linux")
|
|
EXEC_FILE_ELFTOSB2 = elftosb
|
|
EXEC_FILE_SBTOOL = sbtool
|
|
EXEC_FILE_KEYGEN = keygen
|
|
else
|
|
ifeq ("${UNAMES}", "CYGWIN_NT-5.1")
|
|
EXEC_FILE_ELFTOSB2 = elftosb.exe
|
|
EXEC_FILE_SBTOOL = sbtool.exe
|
|
EXEC_FILE_KEYGEN = keygen.exe
|
|
endif # ifeq ("${UNAMES}", "CYGWIN_NT-5.1")
|
|
endif # ifeq ("${UNAMES}", "Linux")
|
|
|
|
|
|
#*******************************************************************************
|
|
# Targets
|
|
|
|
all: elftosb sbtool keygen
|
|
|
|
# Uncomment the next line to print out the environment variables.
|
|
all: exec_always
|
|
|
|
exec_always:
|
|
@echo "SRC_DIR = ${SRC_DIR}"
|
|
@echo "OBJ_FILES = ${OBJ_FILES_ELFTOSB2}"
|
|
@echo "LIBS = ${LIBS}"
|
|
@echo "EXEC_FILE = ${EXEC_FILE}"
|
|
@echo "BUILD_DIR = ${BUILD_DIR}"
|
|
|
|
clean:
|
|
rm -f ${OBJ_FILES_ELFTOSB2} ${OBJ_FILES_SBTOOL} ${OBJ_FILES_KEYGEN} \
|
|
${EXEC_FILE_ELFTOSB2} ${EXEC_FILE_SBTOOL} ${EXEC_FILE_KEYGEN}
|
|
|
|
elftosb: ${OBJ_FILES_ELFTOSB2}
|
|
gcc ${OBJ_FILES_ELFTOSB2} ${LIBS} -o ${EXEC_FILE_ELFTOSB2}
|
|
|
|
sbtool: ${OBJ_FILES_SBTOOL}
|
|
gcc ${OBJ_FILES_SBTOOL} ${LIBS} -o ${EXEC_FILE_SBTOOL}
|
|
|
|
keygen: ${OBJ_FILES_KEYGEN}
|
|
gcc ${OBJ_FILES_KEYGEN} ${LIBS} -o ${EXEC_FILE_KEYGEN}
|
|
|
|
|
|
#ifeq ("${UNAMES}", "Linux")
|
|
#ifeq ("${UNAMES}", "Linux")
|
|
# Use default rules for creating all the .o files from the .c files. Only
|
|
# for linux
|
|
.SUFFIXES : .c .cpp
|
|
|
|
.c.o :
|
|
gcc ${CFLAGS} -c $<
|
|
|
|
.cpp.o :
|
|
gcc ${CFLAGS} -c $<
|
|
|
|
#endif
|
|
|
|
#*******************************************************************************
|
|
# Automatic dependency generation
|
|
|
|
%.d: %.c
|
|
@set -e; \
|
|
$(CC) -MM $(CFLAGS) $< | \
|
|
sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
|
|
[ -s $@ ] || rm -f $@
|
|
|
|
%.d: %.cpp
|
|
@set -e; \
|
|
$(CC) -MM $(CFLAGS) $< | \
|
|
sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
|
|
[ -s $@ ] || rm -f $@
|
|
|
|
#*******************************************************************************
|