mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-03 14:38:30 -04:00
build: removed support for .pde files in build
This commit is contained in:
parent
a87279cfe5
commit
c5f680de44
@ -76,11 +76,7 @@ module_mk:
|
||||
$(RULEHDR)
|
||||
$(v) echo "# Auto-generated file - do not edit" > $(SKETCHBOOK)/module.mk.new
|
||||
$(v) echo "MODULE_COMMAND = ArduPilot" >> $(SKETCHBOOK)/module.mk.new
|
||||
ifeq (,$(MAKE_INC))
|
||||
$(v) echo "SRCS = Build.$(SKETCH)/$(SKETCH).cpp $(SKETCHLIBSRCSRELATIVE)" >> $(SKETCHBOOK)/module.mk.new
|
||||
else
|
||||
$(v) echo "SRCS = $(wildcard $(SRCROOT)/*.cpp) $(SKETCHLIBSRCSRELATIVE)" >> $(SKETCHBOOK)/module.mk.new
|
||||
endif
|
||||
$(v) echo "MODULE_STACKSIZE = 4096" >> $(SKETCHBOOK)/module.mk.new
|
||||
$(v) echo "EXTRACXXFLAGS = -Wframe-larger-than=1200" >> $(SKETCHBOOK)/module.mk.new
|
||||
$(v) cmp $(SKETCHBOOK)/module.mk $(SKETCHBOOK)/module.mk.new 2>/dev/null || mv $(SKETCHBOOK)/module.mk.new $(SKETCHBOOK)/module.mk
|
||||
|
@ -5,57 +5,21 @@
|
||||
SRCSUFFIXES = *.cpp *.c *.S
|
||||
|
||||
MAKE_INC=$(wildcard $(SRCROOT)/make.inc)
|
||||
ifeq (,$(MAKE_INC))
|
||||
$(error You must have a make.inc file to list library dependencies)
|
||||
endif
|
||||
|
||||
# Sketch source files
|
||||
SKETCHPDESRCS := $(wildcard $(SRCROOT)/*.pde $(SRCROOT)/*.ino)
|
||||
SKETCHSRCS := $(wildcard $(addprefix $(SRCROOT)/,$(SRCSUFFIXES)))
|
||||
SKETCHPDE := $(wildcard $(SRCROOT)/$(SKETCH).pde $(SRCROOT)/$(SKETCH).ino)
|
||||
ifeq (,$(MAKE_INC))
|
||||
SKETCHCPP := $(BUILDROOT)/$(SKETCH).cpp
|
||||
ifneq ($(words $(SKETCHPDE)),1)
|
||||
$(error ERROR: sketch $(SKETCH) must contain exactly one of $(SKETCH).pde or $(SKETCH).ino)
|
||||
endif
|
||||
else
|
||||
SKETCHCPP := $(SRCROOT)/$(SKETCH).cpp
|
||||
endif
|
||||
SKETCHCPP := $(SRCROOT)/$(SKETCH).cpp
|
||||
|
||||
# Sketch object files
|
||||
SKETCHOBJS := $(subst $(SRCROOT),$(BUILDROOT),$(SKETCHSRCS))
|
||||
ifeq (,$(MAKE_INC))
|
||||
SKETCHOBJS += $(SKETCHCPP)
|
||||
endif
|
||||
SKETCHOBJS := $(addsuffix .o,$(basename $(SKETCHOBJS)))
|
||||
|
||||
# List of input files to the sketch.cpp file in the order they should
|
||||
# be appended to create it
|
||||
SKETCHCPP_SRC := $(SKETCHPDE) $(sort $(filter-out $(SKETCHPDE),$(SKETCHPDESRCS)))
|
||||
|
||||
################################################################################
|
||||
# Libraries
|
||||
#
|
||||
# Pick libraries to add to the include path and to link with based on
|
||||
# #include directives in the sketchfiles.
|
||||
#
|
||||
# For example:
|
||||
#
|
||||
# #include <Foo.h>
|
||||
#
|
||||
# implies that there might be a Foo library.
|
||||
#
|
||||
# Note that the # and $ require special treatment to avoid upsetting
|
||||
# make.
|
||||
#
|
||||
SEXPR = 's/^[[:space:]]*\#include[[:space:]][<\"]([^>\"./]+).*$$/\1/p'
|
||||
ifneq (,$(MAKE_INC))
|
||||
include $(MAKE_INC)
|
||||
LIBTOKENS := $(LIBRARIES)
|
||||
else
|
||||
ifeq ($(SYSTYPE),Darwin)
|
||||
LIBTOKENS := $(sort $(shell cat $(SKETCHPDESRCS) $(SKETCHSRCS) | sed -nEe $(SEXPR)))
|
||||
else
|
||||
LIBTOKENS := $(sort $(shell cat $(SKETCHPDESRCS) $(SKETCHSRCS) | sed -nre $(SEXPR)))
|
||||
endif
|
||||
endif
|
||||
# get list of libraries from make.inc
|
||||
include $(MAKE_INC)
|
||||
LIBTOKENS := $(LIBRARIES)
|
||||
|
||||
#
|
||||
# Find sketchbook libraries referenced by the sketch.
|
||||
@ -87,93 +51,6 @@ $(BUILDROOT)/make.flags: FORCE
|
||||
@rm -f $(BUILDROOT)/make.flags.new
|
||||
@cat $(BUILDROOT)/make.flags
|
||||
|
||||
ifeq (,$(MAKE_INC))
|
||||
# Build the sketch.cpp file
|
||||
$(SKETCHCPP): $(BUILDROOT)/make.flags $(SKETCHCPP_SRC)
|
||||
@echo "building $(SKETCHCPP)"
|
||||
$(RULEHDR)
|
||||
$(v)cat $(BUILDROOT)/make.flags > $@.new
|
||||
$(v)$(AWK) -v mode=header '$(SKETCH_SPLITTER)' $(SKETCHCPP_SRC) >> $@.new
|
||||
$(v)echo "#line 1 \"autogenerated\"" >> $@.new
|
||||
$(v)$(AWK) '$(SKETCH_PROTOTYPER)' $(SKETCHCPP_SRC) >> $@.new
|
||||
$(v)$(AWK) -v mode=body '$(SKETCH_SPLITTER)' $(SKETCHCPP_SRC) >> $@.new
|
||||
$(v)cmp $@ $@.new > /dev/null 2>&1 || mv $@.new $@
|
||||
$(v)rm -f $@.new
|
||||
|
||||
# delete the sketch.cpp file if a processing error occurs
|
||||
.DELETE_ON_ERROR: $(SKETCHCPP)
|
||||
endif
|
||||
|
||||
#
|
||||
# The sketch splitter is an awk script used to split off the
|
||||
# header and body of the concatenated .pde/.ino files. It also
|
||||
# inserts #line directives to help in backtracking from compiler
|
||||
# and debugger messages to the original source file.
|
||||
#
|
||||
# Note that # and $ require special treatment here to avoid upsetting
|
||||
# make.
|
||||
#
|
||||
# This script requires BWK or GNU awk.
|
||||
#
|
||||
define SKETCH_SPLITTER
|
||||
BEGIN { \
|
||||
scanning = 1; \
|
||||
printing = (mode ~ "header") ? 1 : 0; \
|
||||
} \
|
||||
{ toggles = 1 } \
|
||||
(FNR == 1) && printing { \
|
||||
printf "#line %d \"%s\"\n", FNR, FILENAME; \
|
||||
} \
|
||||
/^[[:space:]]*\/\*/,/\*\// { \
|
||||
toggles = 0; \
|
||||
} \
|
||||
/^[[:space:]]*$$/ || /^[[:space:]]*\/\/.*/ || /^\#.*$$/ { \
|
||||
toggles = 0; \
|
||||
} \
|
||||
scanning && toggles { \
|
||||
scanning = 0; \
|
||||
printing = !printing; \
|
||||
if (printing) { \
|
||||
printf "#line %d \"%s\"\n", FNR, FILENAME; \
|
||||
} \
|
||||
} \
|
||||
printing
|
||||
endef
|
||||
|
||||
#
|
||||
# The prototype scanner is an awk script used to generate function
|
||||
# prototypes from the concantenated .pde/.ino files.
|
||||
#
|
||||
# Function definitions are expected to follow the form
|
||||
#
|
||||
# <newline><type>[<qualifier>...]<name>([<arguments>]){
|
||||
#
|
||||
# with whitespace permitted between the various elements. The pattern
|
||||
# is assembled from separate subpatterns to make adjustments easier.
|
||||
#
|
||||
# Note that $ requires special treatment here to avoid upsetting make,
|
||||
# and backslashes are doubled in the partial patterns to satisfy
|
||||
# escaping rules.
|
||||
#
|
||||
# This script requires BWK or GNU awk.
|
||||
#
|
||||
define SKETCH_PROTOTYPER
|
||||
BEGIN { \
|
||||
RS="{"; \
|
||||
type = "((\\n)|(^))[[:space:]]*[[:alnum:]_]+[[:space:]]+"; \
|
||||
qualifiers = "([[:alnum:]_\\*&]+[[:space:]]*)*"; \
|
||||
name = "[[:alnum:]_]+[[:space:]]*"; \
|
||||
args = "\\([[:space:][:alnum:]_,&\\*\\[\\]]*\\)"; \
|
||||
bodycuddle = "[[:space:]]*$$"; \
|
||||
pattern = type qualifiers name args bodycuddle; \
|
||||
} \
|
||||
match($$0, pattern) { \
|
||||
proto = substr($$0, RSTART, RLENGTH); \
|
||||
gsub("\n", " ", proto); \
|
||||
printf "%s;\n", proto; \
|
||||
}
|
||||
endef
|
||||
|
||||
# common header for rules, prints what is being built
|
||||
define RULEHDR
|
||||
@echo %% $(subst $(BUILDROOT)/,,$@)
|
||||
|
Loading…
Reference in New Issue
Block a user