mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-10 06:59:54 +08:00
added C++ support for omap programs
This commit is contained in:
+25
-8
@@ -1,7 +1,7 @@
|
||||
# Hey Emacs, this is a -*- makefile -*-
|
||||
#
|
||||
# $Id$
|
||||
# Copyright (C) 2009 Antoine Drouin
|
||||
# Copyright (C) 2009-2010 The Paparazzi Team
|
||||
#
|
||||
# This file is part of paparazzi.
|
||||
#
|
||||
@@ -53,7 +53,6 @@ CFLAGS += -Wpointer-arith -Wswitch
|
||||
CFLAGS += -Wredundant-decls -Wreturn-type -Wshadow -Wunused
|
||||
#CFLAGS += -Wa,-adhlns=$(OBJDIR)/$(notdir $(subst $(suffix $<),.lst,$<))
|
||||
#CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
|
||||
#CFLAGS += -mtune=geode # optimize for geode
|
||||
|
||||
# flags only for C
|
||||
CFLAGS + = -Wstrict-prototypes -Wmissing-declarations
|
||||
@@ -62,8 +61,18 @@ CFLAGS += $(CSTANDARD)
|
||||
CFLAGS += $($(TARGET).CFLAGS)
|
||||
|
||||
|
||||
SRCOMAP = $($(TARGET).srcs)
|
||||
COBJOMAP = $(SRCOMAP:%.c=$(OBJDIR)/%.o)
|
||||
CXX = /opt/paparazzi/omap/overo-oe/tmp/sysroots/i686-linux/usr/armv7a/bin/arm-angstrom-linux-gnueabi-g++
|
||||
CXXFLAGS = -pipe -O3 -fshow-column -ffast-math -DEIGEN_DONT_VECTORIZE -fPIC
|
||||
CXXFLAGS += -DEIGEN_DONT_ALIGN -DNDEBUG -g -ffunction-sections -fdata-sections -DTIME_OPS
|
||||
CXXFLAGS += -Wall -Wextra
|
||||
CXXFLAGS += $($(TARGET).CXXFLAGS)
|
||||
|
||||
|
||||
SRC_C_OMAP = $($(TARGET).srcs)
|
||||
OBJ_C_OMAP = $(SRC_C_OMAP:%.c=$(OBJDIR)/%.o)
|
||||
|
||||
SRC_CPP_OMAP = $($(TARGET).cpp_srcs)
|
||||
OBJ_CPP_OMAP = $(SRC_CPP_OMAP:%.cpp=$(OBJDIR)/%.o)
|
||||
|
||||
all: build
|
||||
|
||||
@@ -77,17 +86,25 @@ load upload program: $(OBJDIR)/$(TARGET).elf
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
.SECONDARY : $(OBJDIR)/$(TARGET).elf
|
||||
.PRECIOUS : $(COBJOMAP)
|
||||
%.elf: $(COBJOMAP)
|
||||
.PRECIOUS : $(OBJ_C_OMAP) $(OBJ_CPP_OMAP)
|
||||
%.elf: $(OBJ_C_OMAP) $(OBJ_CPP_OMAP)
|
||||
@echo LD $@
|
||||
$(Q)$(CC) $(CFLAGS) $(COBJOMAP) --output $@ $(LDFLAGS) $($(TARGET).LDFLAGS)
|
||||
$(Q)if (expr "$($(TARGET).cpp_srcs)"); \
|
||||
then $(CXX) $(CXXFLAGS) $(OBJ_CPP_OMAP) --output $@ $(LDFLAGS) $($(TARGET).LDFLAGS) ; \
|
||||
else $(CC) $(CFLAGS) $(OBJ_C_OMAP) --output $@ $(LDFLAGS) $($(TARGET).LDFLAGS); fi
|
||||
|
||||
# Compile: create object files from C source files. ARM-only
|
||||
# Compile: create object files from C source files
|
||||
$(OBJDIR)/%.o : %.c $(OBJDIR)/../Makefile.ac
|
||||
@echo CC $@
|
||||
$(Q)test -d $(dir $@) || mkdir -p $(dir $@)
|
||||
$(Q)$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
# Compile: create object files from C++ source files
|
||||
$(OBJDIR)/%.o : %.cpp $(OBJDIR)/../Makefile.ac
|
||||
@echo CXX $@
|
||||
$(Q)test -d $(dir $@) || mkdir -p $(dir $@)
|
||||
$(Q)$(CXX) -c $(CXXFLAGS) $< -o $@
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all build elf clean clean_list
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<airframe name="FuckYou_1">
|
||||
|
||||
|
||||
<makefile>
|
||||
|
||||
HOST=auto3
|
||||
|
||||
# test 1
|
||||
test1.ARCHDIR = omap
|
||||
test1.CXXFLAGS += -I /opt/paparazzi/omap/overo-oe/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include/eigen2
|
||||
test1.cpp_srcs = fms/libeknav/hello_world.cpp
|
||||
|
||||
# test network based telemetry on overo (using udp_transport2/messages2)
|
||||
overo_test_telemetry2.ARCHDIR = omap
|
||||
overo_test_telemetry2.CFLAGS += -I$(ACINCLUDE) -I. -I$(PAPARAZZI_HOME)/var/include
|
||||
overo_test_telemetry2.srcs = fms/overo_test_telemetry2.c
|
||||
overo_test_telemetry2.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=UdpTransport
|
||||
overo_test_telemetry2.srcs += fms/udp_transport2.c downlink.c
|
||||
overo_test_telemetry2.srcs += fms/fms_network.c
|
||||
overo_test_telemetry2.LDFLAGS += -levent
|
||||
|
||||
</makefile>
|
||||
|
||||
|
||||
</airframe>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user