Update Makefile to add hacks to fix esqlite
parent
40bbc673e6
commit
26116726f6
|
@ -66,9 +66,9 @@ build_firmware_steps: &build_firmware_steps
|
||||||
echo $MIX_ENV > MIX_ENV
|
echo $MIX_ENV > MIX_ENV
|
||||||
cp mix.lock MIX_LOCK
|
cp mix.lock MIX_LOCK
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
key: v8-fbos-{{ checksum "MIX_TARGET" }}-{{ checksum "MIX_ENV" }}-dependency-cache-{{ checksum "MIX_LOCK" }}
|
key: v9-fbos-{{ checksum "MIX_TARGET" }}-{{ checksum "MIX_ENV" }}-dependency-cache-{{ checksum "MIX_LOCK" }}
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
key: v8-fbos-host-test-dependency-cache-{{ checksum "mix.lock.host" }}
|
key: v9-fbos-host-test-dependency-cache-{{ checksum "mix.lock" }}
|
||||||
- <<: *install_elixir
|
- <<: *install_elixir
|
||||||
- <<: *install_hex_archives
|
- <<: *install_hex_archives
|
||||||
- run:
|
- run:
|
||||||
|
@ -85,7 +85,7 @@ build_firmware_steps: &build_firmware_steps
|
||||||
command: |
|
command: |
|
||||||
cp _build/${MIX_TARGET}_${MIX_ENV}/nerves/images/farmbot.fw /nerves/deploy/system/artifacts/farmbot-${MIX_TARGET}-$(cat VERSION).fw
|
cp _build/${MIX_TARGET}_${MIX_ENV}/nerves/images/farmbot.fw /nerves/deploy/system/artifacts/farmbot-${MIX_TARGET}-$(cat VERSION).fw
|
||||||
- save_cache:
|
- save_cache:
|
||||||
key: v8-fbos-{{ checksum "MIX_TARGET" }}-{{ checksum "MIX_ENV" }}-dependency-cache-{{ checksum "MIX_LOCK" }}
|
key: v9-fbos-{{ checksum "MIX_TARGET" }}-{{ checksum "MIX_ENV" }}-dependency-cache-{{ checksum "MIX_LOCK" }}
|
||||||
paths:
|
paths:
|
||||||
- _build/
|
- _build/
|
||||||
- deps/
|
- deps/
|
||||||
|
@ -106,7 +106,7 @@ deploy_nerves_hub_firmware_steps: &deploy_nerves_hub_firmware_steps
|
||||||
echo $MIX_ENV > MIX_ENV
|
echo $MIX_ENV > MIX_ENV
|
||||||
cp mix.lock MIX_LOCK
|
cp mix.lock MIX_LOCK
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
key: v8-fbos-{{ checksum "MIX_TARGET" }}-{{ checksum "MIX_ENV" }}-dependency-cache-{{ checksum "MIX_LOCK" }}
|
key: v9-fbos-{{ checksum "MIX_TARGET" }}-{{ checksum "MIX_ENV" }}-dependency-cache-{{ checksum "MIX_LOCK" }}
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
key: nerves/deploy/system-{{ checksum "MIX_TARGET" }}-{{ .Branch }}-{{ .Revision }}-{{ .Environment.CIRCLE_TAG }}
|
key: nerves/deploy/system-{{ checksum "MIX_TARGET" }}-{{ .Branch }}-{{ .Revision }}-{{ .Environment.CIRCLE_TAG }}
|
||||||
- <<: *install_elixir
|
- <<: *install_elixir
|
||||||
|
@ -134,7 +134,7 @@ jobs:
|
||||||
- checkout
|
- checkout
|
||||||
- run: git submodule update --init --recursive
|
- run: git submodule update --init --recursive
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
key: v8-fbos-host-test-dependency-cache-{{ checksum "mix.lock.host" }}
|
key: v9-fbos-host-test-dependency-cache-{{ checksum "mix.lock" }}
|
||||||
- <<: *install_elixir
|
- <<: *install_elixir
|
||||||
- <<: *install_hex_archives
|
- <<: *install_hex_archives
|
||||||
- run:
|
- run:
|
||||||
|
@ -143,7 +143,7 @@ jobs:
|
||||||
mix deps.get
|
mix deps.get
|
||||||
mix compile
|
mix compile
|
||||||
- save_cache:
|
- save_cache:
|
||||||
key: v8-fbos-host-test-dependency-cache-{{ checksum "mix.lock.host" }}
|
key: v9-fbos-host-test-dependency-cache-{{ checksum "mix.lock" }}
|
||||||
paths:
|
paths:
|
||||||
- _build/host_test
|
- _build/host_test
|
||||||
- deps
|
- deps
|
||||||
|
@ -267,8 +267,8 @@ jobs:
|
||||||
echo $MIX_ENV > MIX_ENV
|
echo $MIX_ENV > MIX_ENV
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
key: nerves/deploy/system-{{ checksum "MIX_TARGET_RPI3" }}-{{ .Branch }}-{{ .Revision }}-{{ .Environment.CIRCLE_TAG }}
|
key: nerves/deploy/system-{{ checksum "MIX_TARGET_RPI3" }}-{{ .Branch }}-{{ .Revision }}-{{ .Environment.CIRCLE_TAG }}
|
||||||
- restore_cache:
|
# - restore_cache:
|
||||||
key: nerves/deploy/system-{{ checksum "MIX_TARGET_RPI" }}-{{ .Branch }}-{{ .Revision }}-{{ .Environment.CIRCLE_TAG }}
|
# key: nerves/deploy/system-{{ checksum "MIX_TARGET_RPI" }}-{{ .Branch }}-{{ .Revision }}-{{ .Environment.CIRCLE_TAG }}
|
||||||
- <<: *install_elixir
|
- <<: *install_elixir
|
||||||
- <<: *install_hex_archives
|
- <<: *install_hex_archives
|
||||||
- <<: *install_ghr
|
- <<: *install_ghr
|
||||||
|
@ -285,6 +285,7 @@ jobs:
|
||||||
mv /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).fw /tmp/farmbot-rpi3-$(cat VERSION).fw
|
mv /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).fw /tmp/farmbot-rpi3-$(cat VERSION).fw
|
||||||
fwup -S -s $NERVES_FW_PRIV_KEY -i /tmp/farmbot-rpi3-$(cat VERSION).fw -o /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION)-beta.fw
|
fwup -S -s $NERVES_FW_PRIV_KEY -i /tmp/farmbot-rpi3-$(cat VERSION).fw -o /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION)-beta.fw
|
||||||
fwup -a -t complete -i /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION)-beta.fw -d /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION)-beta.img
|
fwup -a -t complete -i /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION)-beta.fw -d /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION)-beta.img
|
||||||
|
sha256sum /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION)-beta.img > /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION)-beta.sha256
|
||||||
# - run:
|
# - run:
|
||||||
# name: Sign rpi Firmware
|
# name: Sign rpi Firmware
|
||||||
# command: |
|
# command: |
|
||||||
|
@ -339,6 +340,8 @@ jobs:
|
||||||
mv /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).fw /tmp/farmbot-rpi3-$(cat VERSION).fw
|
mv /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).fw /tmp/farmbot-rpi3-$(cat VERSION).fw
|
||||||
fwup -S -s $NERVES_FW_PRIV_KEY -i /tmp/farmbot-rpi3-$(cat VERSION).fw -o /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).fw
|
fwup -S -s $NERVES_FW_PRIV_KEY -i /tmp/farmbot-rpi3-$(cat VERSION).fw -o /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).fw
|
||||||
fwup -a -t complete -i /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).fw -d /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).img
|
fwup -a -t complete -i /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).fw -d /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).img
|
||||||
|
sha256sum /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).img > /nerves/deploy/system/artifacts/farmbot-rpi3-$(cat VERSION).sha256
|
||||||
|
|
||||||
# - run:
|
# - run:
|
||||||
# name: Sign rpi Firmware and create image
|
# name: Sign rpi Firmware and create image
|
||||||
# command: |
|
# command: |
|
||||||
|
|
58
Makefile
58
Makefile
|
@ -3,25 +3,41 @@ CLEAN :=
|
||||||
|
|
||||||
PREFIX = $(MIX_COMPILE_PATH)/../priv
|
PREFIX = $(MIX_COMPILE_PATH)/../priv
|
||||||
BUILD = $(MIX_COMPILE_PATH)/../obj
|
BUILD = $(MIX_COMPILE_PATH)/../obj
|
||||||
|
|
||||||
# Set Erlang-specific compile and linker flags
|
# Set Erlang-specific compile and linker flags
|
||||||
ERL_CFLAGS ?= -I$(ERL_EI_INCLUDE_DIR)
|
ERL_CFLAGS ?= -I$(ERL_EI_INCLUDE_DIR)
|
||||||
ERL_LDFLAGS ?= -L$(ERL_EI_LIBDIR)
|
ERL_LDFLAGS ?= -L$(ERL_EI_LIBDIR) -lei
|
||||||
|
|
||||||
NIF_LDFLAGS += -fPIC -shared
|
CFLAGS += -fPIC --std=c11
|
||||||
NIF_CFLAGS ?= -fPIC -O2 -Wall
|
LDFLAGS += -fPIC -shared
|
||||||
|
|
||||||
NIF=
|
|
||||||
|
|
||||||
ifeq ($(ERL_EI_INCLUDE_DIR),)
|
ifeq ($(ERL_EI_INCLUDE_DIR),)
|
||||||
$(warning ERL_EI_INCLUDE_DIR not set. Invoke via mix)
|
$(warning ERL_EI_INCLUDE_DIR not set. Invoke via mix)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ESQLITE_SRC = $(MIX_DEPS_PATH)/esqlite/c_src
|
||||||
|
ESQLITE_BUILD = $(MIX_BUILD_PATH)/lib/esqlite/obj
|
||||||
|
ESQLITE_PREFIX = $(MIX_BUILD_PATH)/lib/esqlite/priv
|
||||||
|
|
||||||
.PHONY: fbos_arduino_firmware fbos_clean_arduino_firmware all clean
|
.PHONY: fbos_arduino_firmware fbos_clean_arduino_firmware all clean
|
||||||
|
|
||||||
all: $(PREFIX) $(BUILD) $(PREFIX)/build_calendar.so
|
SQLITE_CFLAGS := -DSQLITE_THREADSAFE=1 \
|
||||||
|
-DSQLITE_USE_URI \
|
||||||
|
-DSQLITE_ENABLE_FTS3 \
|
||||||
|
-DSQLITE_ENABLE_FTS3_PARENTHESIS
|
||||||
|
|
||||||
|
all: $(PREFIX) \
|
||||||
|
$(BUILD) \
|
||||||
|
$(PREFIX)/build_calendar.so \
|
||||||
|
$(ESQLITE_BUILD) \
|
||||||
|
$(ESQLITE_PREFIX) \
|
||||||
|
$(ESQLITE_PREFIX)/esqlite3_nif.so
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) $(PREFIX)/*.so
|
$(RM) $(PREFIX)/*.so
|
||||||
|
$(RM) $(ESQLITE_PREFIX)/*.so
|
||||||
|
|
||||||
|
## ARDUINO FIRMWARE
|
||||||
|
|
||||||
fbos_arduino_firmware:
|
fbos_arduino_firmware:
|
||||||
cd c_src/farmbot-arduino-firmware && make all BUILD_DIR=$(PWD)/_build FBARDUINO_FIRMWARE_SRC_DIR=$(PWD)/c_src/farmbot-arduino-firmware/src BIN_DIR=$(PWD)/priv
|
cd c_src/farmbot-arduino-firmware && make all BUILD_DIR=$(PWD)/_build FBARDUINO_FIRMWARE_SRC_DIR=$(PWD)/c_src/farmbot-arduino-firmware/src BIN_DIR=$(PWD)/priv
|
||||||
|
@ -29,14 +45,38 @@ fbos_arduino_firmware:
|
||||||
fbos_clean_arduino_firmware:
|
fbos_clean_arduino_firmware:
|
||||||
cd c_src/farmbot-arduino-firmware && make clean BUILD_DIR=$(PWD)/_build FBARDUINO_FIRMWARE_SRC_DIR=$(PWD)/c_src/farmbot-arduino-firmware/src BIN_DIR=$(PWD)/priv
|
cd c_src/farmbot-arduino-firmware && make clean BUILD_DIR=$(PWD)/_build FBARDUINO_FIRMWARE_SRC_DIR=$(PWD)/c_src/farmbot-arduino-firmware/src BIN_DIR=$(PWD)/priv
|
||||||
|
|
||||||
|
## ESQLITE NIF HACK
|
||||||
|
|
||||||
|
$(ESQLITE_PREFIX)/esqlite3_nif.so: $(ESQLITE_BUILD)/sqlite3.o $(ESQLITE_BUILD)/queue.o $(ESQLITE_BUILD)/esqlite3_nif.o
|
||||||
|
$(CC) -o $@ $(ERL_LDFLAGS) $(LDFLAGS) $^
|
||||||
|
|
||||||
|
$(ESQLITE_BUILD)/esqlite3_nif.o: $(ESQLITE_SRC)/esqlite3_nif.c
|
||||||
|
$(CC) -c $(ERL_CFLAGS) $(CFLAGS) $(SQLITE_CFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
$(ESQLITE_BUILD)/queue.o: $(ESQLITE_SRC)/queue.c
|
||||||
|
$(CC) -c $(ERL_CFLAGS) $(CFLAGS) $(SQLITE_CFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
$(ESQLITE_BUILD)/sqlite3.o: $(ESQLITE_SRC)/sqlite3.c
|
||||||
|
$(CC) -c $(CFLAGS) $(SQLITE_CFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
## BUILD CALENDAR NIF
|
||||||
|
|
||||||
$(PREFIX)/build_calendar.so: $(BUILD)/build_calendar.o
|
$(PREFIX)/build_calendar.so: $(BUILD)/build_calendar.o
|
||||||
$(CC) $(ERL_LDFLAGS) $(NIF_LDFLAGS) -o $@ $<
|
$(CC) -o $@ $(ERL_LDFLAGS) $(LDFLAGS) $^
|
||||||
|
|
||||||
$(BUILD)/build_calendar.o: c_src/build_calendar/build_calendar.c
|
$(BUILD)/build_calendar.o: c_src/build_calendar/build_calendar.c
|
||||||
$(CC) -c $(ERL_CFLAGS) $(NIF_CFLAGS) -o $@ $<
|
$(CC) -c $(ERL_CFLAGS) $(CFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
## DIRECTORIES
|
||||||
|
|
||||||
$(PREFIX):
|
$(PREFIX):
|
||||||
mkdir -p $(PREFIX)
|
mkdir -p $(PREFIX)
|
||||||
|
|
||||||
$(BUILD):
|
$(BUILD):
|
||||||
mkdir -p $(BUILD)
|
mkdir -p $(BUILD)
|
||||||
|
|
||||||
|
$(ESQLITE_BUILD):
|
||||||
|
mkdir -p $(ESQLITE_BUILD)
|
||||||
|
|
||||||
|
$(ESQLITE_PREFIX):
|
||||||
|
mkdir -p $(ESQLITE_PREFIX)
|
||||||
|
|
2
mix.exs
2
mix.exs
|
@ -34,7 +34,7 @@ defmodule Farmbot.Mixfile do
|
||||||
branch: branch(),
|
branch: branch(),
|
||||||
arduino_commit: arduino_commit(),
|
arduino_commit: arduino_commit(),
|
||||||
archives: [nerves_bootstrap: "~> 1.2"],
|
archives: [nerves_bootstrap: "~> 1.2"],
|
||||||
build_embedded: true,
|
build_embedded: false,
|
||||||
start_permanent: Mix.env() == :prod,
|
start_permanent: Mix.env() == :prod,
|
||||||
config_path: "config/config.exs",
|
config_path: "config/config.exs",
|
||||||
elixirc_paths: elixirc_paths(Mix.env(), Mix.target()),
|
elixirc_paths: elixirc_paths(Mix.env(), Mix.target()),
|
||||||
|
|
Loading…
Reference in New Issue