Packages
vintage_net
0.2.1
0.13.12
0.13.11
0.13.10
0.13.9
0.13.8
0.13.7
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.1
0.4.0
0.3.1
0.3.0
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
Network configuration and management for Nerves
Current section
Files
Jump to
Current section
Files
vintage_net
Makefile
Makefile
# Makefile for building port binaries
#
# Makefile targets:
#
# all/install build and install the NIF
# clean clean build products and intermediates
#
# Variables to override:
#
# MIX_COMPILE_PATH path to the build's ebin directory
#
# CC C compiler
# CROSSCOMPILE crosscompiler prefix, if any
# CFLAGS compiler flags for compiling all C files
# ERL_CFLAGS additional compiler flags for files using Erlang header files
# ERL_EI_INCLUDE_DIR include path to ei.h (Required for crosscompile)
# ERL_EI_LIBDIR path to libei.a (Required for crosscompile)
# LDFLAGS linker flags for linking all binaries
# ERL_LDFLAGS additional linker flags for projects referencing Erlang libraries
ifeq ($(MIX_COMPILE_PATH),)
call_from_mix:
mix compile
endif
PREFIX = $(MIX_COMPILE_PATH)/../priv
BUILD = $(MIX_COMPILE_PATH)/../obj
# Check that we're on a supported build platform
ifeq ($(CROSSCOMPILE),)
# Not crosscompiling, so check that we're on Linux.
ifneq ($(shell uname -s),Linux)
$(warning vintage_net only works on Linux, but crosscompilation)
$(warning is supported by defining $$CROSSCOMPILE, $$ERL_EI_INCLUDE_DIR,)
$(warning and $$ERL_EI_LIBDIR. See Makefile for details. If using Nerves,)
$(warning this should be done automatically.)
$(warning .)
$(warning Skipping C compilation unless targets explicitly passed to make.)
#DEFAULT_TARGETS = $(PREFIX)
endif
endif
DEFAULT_TARGETS ?= $(PREFIX) $(PREFIX)/to_elixir $(PREFIX)/udhcpc_handler
# Set Erlang-specific compile and linker flags
ERL_CFLAGS ?= -I$(ERL_EI_INCLUDE_DIR)
ERL_LDFLAGS = -L$(ERL_EI_LIBDIR) -lei_st
CFLAGS ?= -O2 -Wall -Wextra -Wno-unused-parameter -pedantic
CC ?= $(CROSSCOMPILE)-gcc
# Enable for debug messages
# CFLAGS += -DDEBUG
CFLAGS += -std=gnu99
calling_from_make:
mix compile
all: install
install: $(BUILD) $(PREFIX) $(DEFAULT_TARGETS)
$(BUILD)/%.o: src/%.c
$(CC) -c $(ERL_CFLAGS) $(CFLAGS) -o $@ $<
$(PREFIX)/to_elixir: $(BUILD)/to_elixir.o
$(CC) $^ $(ERL_LDFLAGS) $(LDFLAGS) -o $@
$(PREFIX)/udhcpc_handler: $(BUILD)/udhcpc_handler.o
$(CC) $^ $(ERL_LDFLAGS) $(LDFLAGS) -o $@
$(PREFIX) $(BUILD):
mkdir -p $@
clean:
$(RM) $(PREFIX)/to_elixir $(PREFIX)/udhcpc_handler $(BUILD)/*.o
.PHONY: all clean calling_from_make install