Home | History | Annotate | Download | only in cert_create
      1 #
      2 # Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
      3 #
      4 # Redistribution and use in source and binary forms, with or without
      5 # modification, are permitted provided that the following conditions are met:
      6 #
      7 # Redistributions of source code must retain the above copyright notice, this
      8 # list of conditions and the following disclaimer.
      9 #
     10 # Redistributions in binary form must reproduce the above copyright notice,
     11 # this list of conditions and the following disclaimer in the documentation
     12 # and/or other materials provided with the distribution.
     13 #
     14 # Neither the name of ARM nor the names of its contributors may be used
     15 # to endorse or promote products derived from this software without specific
     16 # prior written permission.
     17 #
     18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     19 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     20 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     21 # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
     22 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     23 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     24 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     25 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     26 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     27 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     28 # POSSIBILITY OF SUCH DAMAGE.
     29 #
     30 
     31 PROJECT		:= cert_create
     32 PLAT		:= none
     33 V		:= 0
     34 DEBUG		:= 0
     35 BINARY		:= ${PROJECT}
     36 
     37 OBJECTS := src/cert.o \
     38            src/ext.o \
     39            src/key.o \
     40            src/main.o \
     41            src/tbb_cert.o \
     42            src/tbb_ext.o \
     43            src/tbb_key.o \
     44            src/sha.o
     45 
     46 CFLAGS := -Wall -std=c99
     47 
     48 # Check the platform
     49 ifeq (${PLAT},none)
     50   $(error Error: No platform defined. Use PLAT=<platform>.)
     51 endif
     52 
     53 ifeq (${DEBUG},1)
     54   CFLAGS += -g -O0 -DDEBUG -DLOG_LEVEL=40
     55 else
     56   CFLAGS += -O2 -DLOG_LEVEL=20
     57 endif
     58 ifeq (${V},0)
     59 	Q := @
     60 else
     61 	Q :=
     62 endif
     63 
     64 # Make soft links and include from local directory otherwise wrong headers
     65 # could get pulled in from firmware tree.
     66 INC_DIR := -I ./include -I ../../plat/${PLAT}/include
     67 LIB_DIR :=
     68 LIB := -lssl -lcrypto
     69 
     70 CC := gcc
     71 RM := rm -rf
     72 
     73 .PHONY: all clean
     74 
     75 all: clean ${BINARY}
     76 
     77 ${BINARY}: ${OBJECTS} Makefile
     78 	@echo "  LD      $@"
     79 	@echo 'const char build_msg[] = "Built : "__TIME__", "__DATE__; \
     80                 const char platform_msg[] = "${PLAT}";' | \
     81                 ${CC} -c ${CFLAGS} -xc - -o src/build_msg.o
     82 	${Q}${CC} src/build_msg.o ${OBJECTS} ${LIB_DIR} ${LIB} -o $@
     83 
     84 %.o: %.c
     85 	@echo "  CC      $<"
     86 	${Q}${CC} -c ${CFLAGS} ${INC_DIR} $< -o $@
     87 
     88 clean:
     89 	${Q}${RM} -f src/build_msg.o ${OBJECTS}
     90 
     91 realclean: clean
     92 	${Q}${RM} -f ${BINARY}
     93