Improved build for cross-compilation.

This commit is contained in:
2019-06-26 12:26:27 +01:00
parent 7bf3804846
commit 605fa0b691
3 changed files with 33 additions and 22 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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