|
|
# Copyright (c) 2013 The Native Client Authors. All rights reserved. |
|
|
# Use of this source code is governed by a BSD-style license that can be |
|
|
# found in the LICENSE file. |
|
|
|
|
|
# |
|
|
# GNU Make based build file. For details on GNU Make see: |
|
|
# http://www.gnu.org/software/make/manual/make.html |
|
|
# |
|
|
|
|
|
# |
|
|
# Get pepper directory for toolchain and includes. |
|
|
# |
|
|
# If NACL_SDK_ROOT is not set, then assume it can be found three directories up. |
|
|
# |
|
|
THIS_MAKEFILE := $(abspath $(lastword $(MAKEFILE_LIST))) |
|
|
NACL_SDK_ROOT ?= $(abspath $(dir $(THIS_MAKEFILE))../..) |
|
|
|
|
|
# Project Build flags |
|
|
WARNINGS := -Wno-long-long -Wall -Wswitch-enum -pedantic -Werror |
|
|
CXXFLAGS := -pthread -std=gnu++98 $(WARNINGS) |
|
|
|
|
|
# |
|
|
# Compute tool paths |
|
|
# |
|
|
GETOS := python $(NACL_SDK_ROOT)/tools/getos.py |
|
|
OSHELPERS = python $(NACL_SDK_ROOT)/tools/oshelpers.py |
|
|
OSNAME := $(shell $(GETOS)) |
|
|
RM := $(OSHELPERS) rm |
|
|
|
|
|
PNACL_TC_PATH := $(abspath $(NACL_SDK_ROOT)/toolchain/$(OSNAME)_pnacl) |
|
|
PNACL_CXX := $(PNACL_TC_PATH)/bin/pnacl-clang++ |
|
|
PNACL_FINALIZE := $(PNACL_TC_PATH)/bin/pnacl-finalize |
|
|
CXXFLAGS := -I$(NACL_SDK_ROOT)/include |
|
|
LDFLAGS := -L$(NACL_SDK_ROOT)/lib/pnacl/Release -lppapi_cpp -lppapi |
|
|
|
|
|
# |
|
|
# Disable DOS PATH warning when using Cygwin based tools Windows |
|
|
# |
|
|
CYGWIN ?= nodosfilewarning |
|
|
export CYGWIN |
|
|
|
|
|
|
|
|
# Declare the ALL target first, to make the 'all' target the default build |
|
|
all: mtproto_crypto.pexe |
|
|
|
|
|
clean: |
|
|
$(RM) mtproto_crypto.pexe mtproto_crypto.bc |
|
|
|
|
|
mtproto_crypto.bc: mtproto_crypto.cc aes_core.c aes_ige.c aes_misc.c |
|
|
$(PNACL_CXX) -o $@ $^ -O2 $(CXXFLAGS) $(LDFLAGS) |
|
|
# $(PNACL_CXX) -g -o $@ $^ $(CXXFLAGS) $(LDFLAGS) |
|
|
|
|
|
mtproto_crypto.pexe: mtproto_crypto.bc |
|
|
$(PNACL_FINALIZE) -o $@ $<
|
|
|
|