blob: 3da0592a75fab1a9ce27087007a89450fa9b6217 [file] [log] [blame]
# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
include common.mk
PC_DEPS := libbrillo-$(BASE_VER) libchrome-$(BASE_VER) libmojo-$(BASE_VER)
PC_CFLAGS := $(shell SYSROOT=$(SYSROOT) $(PKG_CONFIG) --cflags $(PC_DEPS))
PC_LIBS := $(shell SYSROOT=$(SYSROOT) $(PKG_CONFIG) --libs $(PC_DEPS))
ANDROID_INCLUDE := $(abspath $(SRC)/../android/include)
ANDROID_INCLUDE_PATHS := \
-I$(ANDROID_INCLUDE) \
-I$(ANDROID_INCLUDE)/hardware/libhardware/include \
-I$(ANDROID_INCLUDE)/system/core/include \
-I$(ANDROID_INCLUDE)/system/core/libsync/include \
-I$(ANDROID_INCLUDE)/system/media/camera/include \
-I$(ANDROID_INCLUDE)/system/media/private/camera/include
CPPFLAGS += $(PC_CFLAGS)
CXXFLAGS += -std=c++11 -Wall -Wpointer-arith -I$(abspath $(SRC)/../) \
$(ANDROID_INCLUDE_PATHS)
CFLAGS += -Wall -std=gnu99 -I$(abspath $(SRC)/../) $(ANDROID_INCLUDE_PATHS)
LDLIBS += $(PC_LIBS) -ldl
MOJOM_FILES := arc_camera3.mojom
MOJOM_BINDINGS_GENERATOR := \
$(SYSROOT)/usr/src/libmojo-$(BASE_VER)/mojo/mojom_bindings_generator.py
GEN_MOJO_TEMPLATES_DIR := $(OUT)/templates
mojo_templates: $(MOJOM_BINDINGS_GENERATOR) $(MOJOM_FILES)
$(QUIET)echo generate_mojo_templates: $(GEN_MOJO_TEMPLATES_DIR)
$(QUIET)rm -rf $(GEN_MOJO_TEMPLATES_DIR)
$(QUIET)mkdir -p $(GEN_MOJO_TEMPLATES_DIR)
$(QUIET)python $(MOJOM_BINDINGS_GENERATOR) --use_bundled_pylibs precompile \
-o $(GEN_MOJO_TEMPLATES_DIR)
cd $(SRC) && \
python $(abspath $(MOJOM_BINDINGS_GENERATOR)) \
--use_bundled_pylibs generate \
$(MOJOM_FILES) \
-o $(abspath $(SRC)) \
--bytecode_path $(abspath $(GEN_MOJO_TEMPLATES_DIR)) \
-g c++
clean: CLEAN($(patsubst %,%.h,$(MOJOM_FILES)))
clean: CLEAN($(patsubst %,%.cc,$(MOJOM_FILES)))
clean: CLEAN($(patsubst %,%-internal.h,$(MOJOM_FILES)))
GENERATED_OBJECTS := $(patsubst %.mojom,%.mojom.o,$(MOJOM_FILES))
ANDROID_SRC = $(abspath $(SRC)/../android/src)
ANDROID_C_OBJECTS = \
$(ANDROID_SRC)/camera_metadata.o \
$(ANDROID_SRC)/native_handle.o \
$(ANDROID_SRC)/sync.o
$(eval $(call add_object_rules,$(ANDROID_C_OBJECTS),CC,c,CFLAGS))
clean: CLEAN($(ANDROID_C_OBJECTS))
clean: CLEAN($(patsubst %.o,%.pic.o,$(ANDROID_C_OBJECTS)))
clean: CLEAN($(patsubst %.o,%.pic.d,$(ANDROID_C_OBJECTS)))
clean: CLEAN($(patsubst %.o,%.pie.o,$(ANDROID_C_OBJECTS)))
clean: CLEAN($(patsubst %.o,%.pie.d,$(ANDROID_C_OBJECTS)))
clean: CLEAN($(patsubst %.o,%.o.depends,$(ANDROID_C_OBJECTS)))
CXX_BINARY(arc_camera3_service): $(ANDROID_C_OBJECTS) $(CXX_OBJECTS) $(GENERATED_OBJECTS)
clean: CLEAN(arc_camera3_service)
all: CXX_BINARY(arc_camera3_service)
install: all
mkdir -p $(DESTDIR)/usr/bin
install -m 755 $(OUT)/arc_camera3_service $(DESTDIR)/usr/bin