Improved build for cross-compilation.
This commit is contained in:
28
Makefile
28
Makefile
@@ -2,15 +2,29 @@
|
|||||||
|
|
||||||
SRC_DIR := .
|
SRC_DIR := .
|
||||||
OBJ_DIR := obj
|
OBJ_DIR := obj
|
||||||
LDFLAGS := -lmbedcrypto
|
CXXFLAGS := -std=c++11 -MMD -MP -Wall -Wfatal-errors -Wextra -fPIE
|
||||||
CXXFLAGS := --std=c++14
|
LDFLAGS := -fPIE
|
||||||
|
|
||||||
CXXFLAGS += -MMD -MP -Wall -Wfatal-errors -Wextra
|
ifdef CROSS_COMPILE
|
||||||
|
$(info Doing a cross-compilation)
|
||||||
|
STATIC := -static
|
||||||
|
CXX := $(CROSS_COMPILE)g++
|
||||||
|
CC := $(CROSS_COMPILE)gcc
|
||||||
|
LDFLAGS += -L /opt/lib
|
||||||
|
CROSS_CFLAGS := -I /opt/include
|
||||||
|
CXXFLAGS += $(CROSS_CFLAGS)
|
||||||
|
export CROSS_CFLAGS
|
||||||
|
export CXX
|
||||||
|
export CC
|
||||||
|
export STATIC
|
||||||
|
endif
|
||||||
|
|
||||||
|
override LDFLAGS += -lmbedcrypto
|
||||||
MODULES := $(wildcard $(SRC_DIR)/*.cpp)
|
MODULES := $(wildcard $(SRC_DIR)/*.cpp)
|
||||||
OBJECTS := $(MODULES:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)
|
OBJECTS := $(MODULES:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)
|
||||||
|
|
||||||
U2FDevice: $(OBJECTS) libuECC.a libcppb64.a
|
U2FDevice: $(OBJECTS) libuECC.a libcppb64.a
|
||||||
$(CXX) $(LDFLAGS) -o $@ $^
|
$(CXX) -o $@ $^ $(LDFLAGS) $(STATIC)
|
||||||
|
|
||||||
install: U2FDevice
|
install: U2FDevice
|
||||||
install -m775 -t /usr/bin U2FDevice
|
install -m775 -t /usr/bin U2FDevice
|
||||||
@@ -18,7 +32,7 @@ install: U2FDevice
|
|||||||
install -d /usr/share/U2FDevice/
|
install -d /usr/share/U2FDevice/
|
||||||
|
|
||||||
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp | $(OBJ_DIR)
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp | $(OBJ_DIR)
|
||||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
|
$(CXX) $(STATIC) $(CXXFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
$(OBJ_DIR):
|
$(OBJ_DIR):
|
||||||
mkdir $(OBJ_DIR)
|
mkdir $(OBJ_DIR)
|
||||||
@@ -26,8 +40,8 @@ $(OBJ_DIR):
|
|||||||
-include $(OBJECTS:.o=.d)
|
-include $(OBJECTS:.o=.d)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm $(OBJ_DIR)/*
|
rm -f $(OBJ_DIR)/*
|
||||||
rm U2FDevice libuECC.a libcppb64.a
|
rm -f U2FDevice libuECC.a libcppb64.a
|
||||||
$(MAKE) -C micro-ecc clean
|
$(MAKE) -C micro-ecc clean
|
||||||
$(MAKE) -C cpp-base64 clean
|
$(MAKE) -C cpp-base64 clean
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
#!/usr/bin/env make
|
#!/usr/bin/env make
|
||||||
|
|
||||||
SRC_DIR := .
|
SRC_DIR := .
|
||||||
OBJ_DIR := .
|
OBJ_DIR := obj
|
||||||
CPPFLAGS :=
|
CXXFLAGS := --std=c++11 -fPIE -MMD -MP $(CROSS_CFLAGS)
|
||||||
CXXFLAGS := --std=c++14
|
|
||||||
|
|
||||||
CXXFLAGS += -MMD -MP
|
|
||||||
MODULESC := $(SRC_DIR)/base64.cpp
|
MODULESC := $(SRC_DIR)/base64.cpp
|
||||||
OBJECTS := $(MODULESC:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)
|
OBJECTS := $(MODULESC:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)
|
||||||
|
|
||||||
@@ -14,10 +12,10 @@ libcppb64.a: $(OBJECTS)
|
|||||||
|
|
||||||
$(OBJECTS): $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
|
$(OBJECTS): $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
|
@$(CXX) $(STATIC) $(CXXFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm obj/*
|
rm -f obj/*
|
||||||
rm libcppb64.a
|
rm -f libcppb64.a
|
||||||
|
|
||||||
-include $(OBJECTS:.o=.d)
|
-include $(OBJECTS:.o=.d)
|
||||||
|
|||||||
@@ -2,9 +2,8 @@
|
|||||||
|
|
||||||
SRC_DIR := .
|
SRC_DIR := .
|
||||||
OBJ_DIR := obj
|
OBJ_DIR := obj
|
||||||
CPPFLAGS :=
|
|
||||||
|
|
||||||
CFLAGS := -MMD -MP
|
CFLAGS := -MMD -MP -fPIE $(CROSS_CFLAGS)
|
||||||
MODULESC := $(wildcard $(SRC_DIR)/*.c)
|
MODULESC := $(wildcard $(SRC_DIR)/*.c)
|
||||||
MODULESI := $(SRC_DIR)/curve-specific.inc
|
MODULESI := $(SRC_DIR)/curve-specific.inc
|
||||||
OBJECTSC := $(MODULESC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
|
OBJECTSC := $(MODULESC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
|
||||||
@@ -16,15 +15,15 @@ libuECC.a: $(OBJECTS)
|
|||||||
|
|
||||||
$(OBJECTSC): $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
$(OBJECTSC): $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
|
@$(CC) $(STATIC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
$(OBJECTSI): $(OBJ_DIR)/%.o: $(SRC_DIR)/%.inc
|
$(OBJECTSI): $(OBJ_DIR)/%.o: $(SRC_DIR)/%.inc
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@$(CC) -x c $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
|
@$(CC) -x c $(STATIC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm obj/*
|
rm -f obj/*
|
||||||
rm libuECC.a
|
rm -f libuECC.a
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user