Skip to content

Commit

Permalink
Start debugging elixir_make errors
Browse files Browse the repository at this point in the history
  • Loading branch information
connor rigby authored and ConnorRigby committed Apr 8, 2019
1 parent 56dae5d commit 49817bb
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 56 deletions.
46 changes: 22 additions & 24 deletions Makefile
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -3,42 +3,40 @@ 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
ERL_CFLAGS ?= -I$(ERL_EI_INCLUDE_DIR)
ERL_LDFLAGS ?= -L$(ERL_EI_LIBDIR)


ifeq ($(ERL_EI_INCLUDE_DIR),) NIF_LDFLAGS += -fPIC -shared

NIF_CFLAGS ?= -fPIC -O2 -Wall
$(warning ERL_EI_INCLUDE_DIR not set. Invoke via mix)

else

ALL += fbos_build_calendar_nif
CLEAN += fbos_clean_build_calendar_nif
endif

ifeq ($(ARDUINO_BUILD),)


$(warning ARDUINO_BUILD is not set. No arduino assets will be built.) NIF=

else

ALL += fbos_arduino_firmware
CLEAN += fbos_clean_arduino_firmware


ifeq ($(ERL_EI_INCLUDE_DIR),)
$(warning ERL_EI_INCLUDE_DIR not set. Invoke via mix)
endif endif


.PHONY: $(ALL) $(CLEAN) all clean .PHONY: fbos_arduino_firmware fbos_clean_arduino_firmware all clean


all: $(ALL) all: $(PREFIX) $(BUILD) $(PREFIX)/build_calendar.so


clean: $(CLEAN) clean:
$(RM) $(PREFIX)/*.so


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


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


fbos_build_calendar_nif: $(PREFIX)/build_calendar.so: $(BUILD)/build_calendar.o
make -f c_src/build_calendar/Makefile all ERL_EI_INCLUDE_DIR=$(ERL_EI_INCLUDE_DIR) ERL_EI_LIBDIR=$(ERL_EI_LIBDIR) BUILD=$(BUILD) PREFIX=$(PREFIX) $(CC) $(ERL_LDFLAGS) $(NIF_LDFLAGS) -o $@ $<

$(BUILD)/build_calendar.o: c_src/build_calendar/build_calendar.c
$(CC) -c $(ERL_CFLAGS) $(NIF_CFLAGS) -o $@ $<

$(PREFIX):
mkdir -p $(PREFIX)


fbos_clean_build_calendar_nif: $(BUILD):
make -f c_src/build_calendar/Makefile clean ERL_EI_INCLUDE_DIR=$(ERL_EI_INCLUDE_DIR) ERL_EI_LIBDIR=$(ERL_EI_LIBDIR) BUILD=$(BUILD) PREFIX=$(PREFIX) mkdir -p $(BUILD)
28 changes: 0 additions & 28 deletions c_src/build_calendar/Makefile

This file was deleted.

3 changes: 1 addition & 2 deletions lib/farmbot/asset/farm_event.ex
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -9,13 +9,12 @@ defmodule Farmbot.Asset.FarmEvent do


@on_load :load_nif @on_load :load_nif
def load_nif do def load_nif do
require Logger
nif_file = '#{:code.priv_dir(:farmbot)}/build_calendar' nif_file = '#{:code.priv_dir(:farmbot)}/build_calendar'


case :erlang.load_nif(nif_file, 0) do case :erlang.load_nif(nif_file, 0) do
:ok -> :ok :ok -> :ok
{:error, {:reload, _}} -> :ok {:error, {:reload, _}} -> :ok
{:error, reason} -> Logger.warn("Failed to load nif: #{inspect(reason)}") {:error, reason} -> IO.warn("Failed to load nif: #{inspect(reason)}", [])
end end
end end


Expand Down
4 changes: 2 additions & 2 deletions mix.exs
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ defmodule Farmbot.Mixfile do
elixir: "~> 1.8", elixir: "~> 1.8",
package: package(), package: package(),
make_clean: ["clean"], make_clean: ["clean"],
compilers: [:elixir_make] ++ Mix.compilers(), compilers: [:elixir_make | Mix.compilers()],
test_coverage: [tool: ExCoveralls], test_coverage: [tool: ExCoveralls],
version: @version, version: @version,
commit: commit(), commit: commit(),
branch: branch(), branch: branch(),
arduino_commit: arduino_commit(), arduino_commit: arduino_commit(),
archives: [nerves_bootstrap: "~> 1.2"], archives: [nerves_bootstrap: "~> 1.2"],
build_embedded: Mix.target() != :host, build_embedded: true,
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()),
Expand Down

0 comments on commit 49817bb

Please sign in to comment.