Skip to content

Commit

Permalink
Merge pull request #1799 from proddy/dev
Browse files Browse the repository at this point in the history
add Makefile back so sonar tests run again
  • Loading branch information
proddy authored Jun 14, 2024
2 parents 9bfdb69 + f94bbca commit 0b6f752
Show file tree
Hide file tree
Showing 8 changed files with 7,818 additions and 44 deletions.
158 changes: 158 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
#
# GNUMakefile for EMS-ESP
#

NUMJOBS=${NUMJOBS:-" -j2 "}
MAKEFLAGS+="j "
#----------------------------------------------------------------------
# Project Structure
#----------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing header files
# LIBRARIES is a list of directories containing libraries, this must be the top level containing include and lib
#----------------------------------------------------------------------

#TARGET := $(notdir $(CURDIR))
TARGET := emsesp
BUILD := build
SOURCES := src src/* lib_standalone lib/uuid-common/src lib/uuid-console/src lib/uuid-log/src src/devices lib/ArduinoJson/src lib/PButton lib/semver lib/espMqttClient/src lib/espMqttClient/src/*
INCLUDES := src lib_standalone lib/espMqttClient/src lib/espMqttClient/src/Transport lib/ArduinoJson/src lib/uuid-common/src lib/uuid-console/src lib/uuid-log/src lib/uuid-telnet/src lib/uuid-syslog/src lib/semver lib/* src/devices
LIBRARIES :=

CPPCHECK = cppcheck
# CHECKFLAGS = -q --force --std=c++17
CHECKFLAGS = -q --force --std=c++11

#----------------------------------------------------------------------
# Languages Standard
#----------------------------------------------------------------------
C_STANDARD := -std=c17
CXX_STANDARD := -std=gnu++14

# C_STANDARD := -std=c11
# CXX_STANDARD := -std=c++11

#----------------------------------------------------------------------
# Defined Symbols
#----------------------------------------------------------------------
DEFINES += -DARDUINOJSON_ENABLE -DARDUINOJSON_ENABLE_ARDUINO_STRING -DARDUINOJSON_USE_DOUBLE=0
DEFINES += -DEMSESP_DEBUG -DEMSESP_STANDALONE -DEMSESP_TEST -D__linux__ -DEMC_RX_BUFFER_SIZE=1500
DEFINES += $(ARGS)

DEFAULTS = -DEMSESP_DEFAULT_LOCALE=\"en\" -DEMSESP_DEFAULT_TX_MODE=8 -DEMSESP_DEFAULT_VERSION=\"3.7.0-dev\" -DEMSESP_DEFAULT_BOARD_PROFILE=\"S32\"

#----------------------------------------------------------------------
# Sources & Files
#----------------------------------------------------------------------
OUTPUT := $(CURDIR)/$(TARGET)
SYMBOLS := $(CURDIR)/$(BUILD)/$(TARGET).out

CSOURCES := $(foreach dir,$(SOURCES),$(wildcard $(dir)/*.c))
CXXSOURCES := $(foreach dir,$(SOURCES),$(wildcard $(dir)/*.cpp))

OBJS := $(patsubst %,$(BUILD)/%.o,$(basename $(CSOURCES)) $(basename $(CXXSOURCES)) )
DEPS := $(patsubst %,$(BUILD)/%.d,$(basename $(CSOURCES)) $(basename $(CXXSOURCES)) )

INCLUDE += $(addprefix -I,$(foreach dir,$(INCLUDES), $(wildcard $(dir))))
INCLUDE += $(addprefix -I,$(foreach dir,$(LIBRARIES),$(wildcard $(dir)/include)))

LDLIBS += $(addprefix -L,$(foreach dir,$(LIBRARIES),$(wildcard $(dir)/lib)))

#----------------------------------------------------------------------
# Compiler & Linker
#----------------------------------------------------------------------
CC := /usr/bin/gcc
CXX := /usr/bin/g++

#----------------------------------------------------------------------
# Compiler & Linker Flags
#----------------------------------------------------------------------
# CPPFLAGS C and C++ Compiler Flags
# CFLAGS C Compiler Flags
# CXXFLAGS C++ Compiler Flags
# LDFLAGS Linker Flags
#----------------------------------------------------------------------
CPPFLAGS += $(DEFINES) $(DEFAULTS) $(INCLUDE)
CPPFLAGS += -ggdb
CPPFLAGS += -g3
CPPFLAGS += -Os

CFLAGS += $(CPPFLAGS)
CFLAGS += -Wall -Wextra -Werror -Wswitch-enum -Wno-unused-parameter -Wno-inconsistent-missing-override -Wno-missing-braces -Wno-unused-lambda-capture -Wno-sign-compare

CXXFLAGS += $(CFLAGS) -MMD

#----------------------------------------------------------------------
# Compiler & Linker Commands
#----------------------------------------------------------------------
# LINK.o link object files to binary
# COMPILE.c compile C source files
# COMPILE.cpp compile C++ source files
#----------------------------------------------------------------------
ifeq ($(strip $(CXXSOURCES)),)
LD := $(CC)
else
LD := $(CXX)
endif

#DEPFLAGS += -MF $(BUILD)/$*.d

LINK.o = $(LD) $(LDFLAGS) $(LDLIBS) $^ -o $@
COMPILE.c = $(CC) $(C_STANDARD) $(CFLAGS) $(DEPFLAGS) -c $< -o $@
COMPILE.cpp = $(CXX) $(CXX_STANDARD) $(CXXFLAGS) $(DEPFLAGS) -c $< -o $@

#----------------------------------------------------------------------
# Special Built-in Target
#----------------------------------------------------------------------
# .SUFFIXES disable built-in wildcard rules
# .INTERMEDIATE make will treat targets as intermediate files, and delete them
# .PRECIOUS make will not be deleted after it is no longer needed. Keep objects to speed up recompilation
# .PHONY make will run this targets unconditionally, regardless of whether a file with that name exists or what its last-modification time is
#----------------------------------------------------------------------
.SUFFIXES:
.INTERMEDIATE:
.PRECIOUS: $(OBJS) $(DEPS)
.PHONY: all clean help

#----------------------------------------------------------------------
# Targets
#----------------------------------------------------------------------
.PHONY: all
.SILENT: $(OUTPUT)

all: $(OUTPUT)

$(OUTPUT): $(OBJS)
@mkdir -p $(@D)
$(LINK.o)
$(SYMBOLS.out)

$(BUILD)/%.o: %.c
@mkdir -p $(@D)
$(COMPILE.c)

$(BUILD)/%.o: %.cpp
@mkdir -p $(@D)
$(COMPILE.cpp)

$(BUILD)/%.o: %.s
@mkdir -p $(@D)
$(COMPILE.s)

cppcheck: $(SOURCES)
$(CPPCHECK) $(CHECKFLAGS) $^

run: $(OUTPUT)
@$<

.PHONY: clean
clean:
@$(RM) -rf $(BUILD) $(OUTPUT)

help:
@echo available targets: all run clean
@echo $(OUTPUT)

-include $(DEPS)
4 changes: 2 additions & 2 deletions interface/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,13 @@
},
"devDependencies": {
"@babel/core": "^7.24.7",
"@eslint/js": "^9.4.0",
"@eslint/js": "^9.5.0",
"@preact/compat": "^17.1.2",
"@preact/preset-vite": "^2.8.2",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/babel__core": "^7",
"concurrently": "^8.2.2",
"eslint": "^9.4.0",
"eslint": "^9.5.0",
"eslint-config-prettier": "^9.1.0",
"preact": "^10.22.0",
"prettier": "^3.3.2",
Expand Down
46 changes: 23 additions & 23 deletions interface/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -917,14 +917,14 @@ __metadata:
languageName: node
linkType: hard

"@eslint/config-array@npm:^0.15.1":
version: 0.15.1
resolution: "@eslint/config-array@npm:0.15.1"
"@eslint/config-array@npm:^0.16.0":
version: 0.16.0
resolution: "@eslint/config-array@npm:0.16.0"
dependencies:
"@eslint/object-schema": "npm:^2.1.3"
"@eslint/object-schema": "npm:^2.1.4"
debug: "npm:^4.3.1"
minimatch: "npm:^3.0.5"
checksum: 10c0/60947a188157f2f811cc2aedf3c2494fa10932178838f6a7c7e9a8bb106ab51b4b4e571f49ae63cdd3884002b78631e4395be25d4ae52470360fc7fb463303d2
checksum: 10c0/b9d04409151dc95ec6b5e04e1e185a808d58e18cfc7340adc1e9420a5ff15843a0a308fb2cd9a2b354652885c2bebbcd5515814e93e9c9133f423891b6e53c70
languageName: node
linkType: hard

Expand All @@ -945,17 +945,17 @@ __metadata:
languageName: node
linkType: hard

"@eslint/js@npm:9.4.0, @eslint/js@npm:^9.4.0":
version: 9.4.0
resolution: "@eslint/js@npm:9.4.0"
checksum: 10c0/7ffc508d3e9cd496cab7f08c5ba8f97851c8adaea3ebff8804b1c3b4662aa7aac7e9c3b597f7e47fdc29319a107bcf892865070a6b113c2e4d19f8fa1f99f569
"@eslint/js@npm:9.5.0, @eslint/js@npm:^9.5.0":
version: 9.5.0
resolution: "@eslint/js@npm:9.5.0"
checksum: 10c0/dacf51ec2d5b4c8d1315d21a0ff761235d9e39b2391cb945138c58dc512a6c18949c40b644235f5c4fdf5b637ef8f881214acc496dddf46b718529bf22af42ac
languageName: node
linkType: hard

"@eslint/object-schema@npm:^2.1.3":
version: 2.1.3
resolution: "@eslint/object-schema@npm:2.1.3"
checksum: 10c0/ee892d0112ee7ec86312dfb1fa718da76b2d446e3495b9ec1f3ef31382a335d31420b76f3def175b96f7c3517c88fc860fec049d62a81d444237a23881559403
"@eslint/object-schema@npm:^2.1.4":
version: 2.1.4
resolution: "@eslint/object-schema@npm:2.1.4"
checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda
languageName: node
linkType: hard

Expand Down Expand Up @@ -1987,7 +1987,7 @@ __metadata:
"@babel/core": "npm:^7.24.7"
"@emotion/react": "npm:^11.11.4"
"@emotion/styled": "npm:^11.11.5"
"@eslint/js": "npm:^9.4.0"
"@eslint/js": "npm:^9.5.0"
"@mui/icons-material": "npm:^5.15.20"
"@mui/material": "npm:^5.15.20"
"@preact/compat": "npm:^17.1.2"
Expand All @@ -2003,7 +2003,7 @@ __metadata:
alova: "npm:^2.21.3"
async-validator: "npm:^4.2.5"
concurrently: "npm:^8.2.2"
eslint: "npm:^9.4.0"
eslint: "npm:^9.5.0"
eslint-config-prettier: "npm:^9.1.0"
history: "npm:^5.3.0"
jwt-decode: "npm:^4.0.0"
Expand Down Expand Up @@ -3490,15 +3490,15 @@ __metadata:
languageName: node
linkType: hard

"eslint@npm:^9.4.0":
version: 9.4.0
resolution: "eslint@npm:9.4.0"
"eslint@npm:^9.5.0":
version: 9.5.0
resolution: "eslint@npm:9.5.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.2.0"
"@eslint-community/regexpp": "npm:^4.6.1"
"@eslint/config-array": "npm:^0.15.1"
"@eslint/config-array": "npm:^0.16.0"
"@eslint/eslintrc": "npm:^3.1.0"
"@eslint/js": "npm:9.4.0"
"@eslint/js": "npm:9.5.0"
"@humanwhocodes/module-importer": "npm:^1.0.1"
"@humanwhocodes/retry": "npm:^0.3.0"
"@nodelib/fs.walk": "npm:^1.2.8"
Expand All @@ -3510,7 +3510,7 @@ __metadata:
eslint-scope: "npm:^8.0.1"
eslint-visitor-keys: "npm:^4.0.0"
espree: "npm:^10.0.1"
esquery: "npm:^1.4.2"
esquery: "npm:^1.5.0"
esutils: "npm:^2.0.2"
fast-deep-equal: "npm:^3.1.3"
file-entry-cache: "npm:^8.0.0"
Expand All @@ -3530,7 +3530,7 @@ __metadata:
text-table: "npm:^0.2.0"
bin:
eslint: bin/eslint.js
checksum: 10c0/826c901812536451e1bdb151359098db3a01ee9ff41775d5e97553626d07f7319cb2a0fd54176ef8e2e057105874077426b5d408ee6e8cff06bb814651f4c004
checksum: 10c0/1c83d94ccfd6d97474aaaf463714eba7afa040639ad9191db430d34e9e2851ba14510651de69b52f26ee30611caf0fa4c66b3fb73bb71df6ab10cef5bb44bb32
languageName: node
linkType: hard

Expand All @@ -3545,7 +3545,7 @@ __metadata:
languageName: node
linkType: hard

"esquery@npm:^1.4.2":
"esquery@npm:^1.5.0":
version: 1.5.0
resolution: "esquery@npm:1.5.0"
dependencies:
Expand Down
Loading

0 comments on commit 0b6f752

Please sign in to comment.