[build] build in var/aircrafts/<ac_name> instead of var/<ac_name>

closes #649
This commit is contained in:
Felix Ruess
2014-04-11 11:12:14 +02:00
parent 90a47320c1
commit 401dd2a9ef
7 changed files with 31 additions and 25 deletions

View File

@@ -226,7 +226,9 @@ $(ABI_MESSAGES_H) : $(ABI_XML) generators
$(Q)mv $($@_TMP) $@
$(Q)chmod a+r $@
#
# code generation for aircrafts from xml files
#
include Makefile.ac
ac_h ac fbw ap: static conf generators ext

View File

@@ -1,6 +1,6 @@
# Hey Emacs, this is a -*- makefile -*-
#
# Copyright (C) 2004 Pascal Brisset Antoine Drouin
# Copyright (C) 2003-2014 The Paparazzi Team
#
# This file is part of paparazzi.
#
@@ -25,25 +25,27 @@ PAPARAZZI_SRC=$(shell pwd)
include conf/Makefile.local
# main directory where the generated files and compilation results for an aircraft are stored
AIRCRAFT_BUILD_DIR = $(PAPARAZZI_HOME)/var/aircrafts/$(AIRCRAFT)
CONF=$(PAPARAZZI_HOME)/conf
CONF_XML=$(CONF)/conf.xml
AIRBORNE=sw/airborne
MESSAGES_XML = $(CONF)/messages.xml
ACINCLUDE = $(PAPARAZZI_HOME)/var/$(AIRCRAFT)
AIRCRAFT_CONF_DIR = $(ACINCLUDE)/conf
AC_GENERATED = $(ACINCLUDE)/$(TARGET)/generated
AIRCRAFT_CONF_DIR = $(AIRCRAFT_BUILD_DIR)/conf
AC_GENERATED = $(AIRCRAFT_BUILD_DIR)/$(TARGET)/generated
AIRFRAME_H=$(AC_GENERATED)/airframe.h
PERIODIC_H=$(AC_GENERATED)/periodic_telemetry.h
RADIO_H=$(AC_GENERATED)/radio.h
FLIGHT_PLAN_H=$(AC_GENERATED)/flight_plan.h
FLIGHT_PLAN_XML=$(ACINCLUDE)/flight_plan.xml
FLIGHT_PLAN_XML=$(AIRCRAFT_BUILD_DIR)/flight_plan.xml
SETTINGS_H=$(AC_GENERATED)/settings.h
SETTINGS_XMLS=$(patsubst %,$(CONF)/%,$(SETTINGS))
SETTINGS_XML=$(ACINCLUDE)/settings.xml
SETTINGS_MODULES=$(ACINCLUDE)/settings_modules.xml
SETTINGS_TELEMETRY=$(ACINCLUDE)/settings_telemetry.xml
MAKEFILE_AC=$(ACINCLUDE)/Makefile.ac
SETTINGS_XML=$(AIRCRAFT_BUILD_DIR)/settings.xml
SETTINGS_MODULES=$(AIRCRAFT_BUILD_DIR)/settings_modules.xml
SETTINGS_TELEMETRY=$(AIRCRAFT_BUILD_DIR)/settings_telemetry.xml
MAKEFILE_AC=$(AIRCRAFT_BUILD_DIR)/Makefile.ac
MODULES_H=$(AC_GENERATED)/modules.h
MODULES_DIR=$(PAPARAZZI_HOME)/conf/modules/
AUTOPILOT_H=$(AC_GENERATED)/autopilot_core.h
@@ -107,10 +109,10 @@ print_version:
all_ac_h: $(AIRFRAME_H) $(MODULES_H) $(SETTINGS_H) $(MAKEFILE_AC) $(PERIODIC_H) $(AUTOPILOT_H)
@echo "TARGET: " $(TARGET)"\n" > $(ACINCLUDE)/$(TARGET)_srcs.list
@echo "CFLAGS: " $($(TARGET).CFLAGS)"\n" >> $(ACINCLUDE)/$(TARGET)_srcs.list
@echo "LDFLAGS: " $($(TARGET).LDFLAGS)"\n" >> $(ACINCLUDE)/$(TARGET)_srcs.list
@echo "srcs: " $($(TARGET).srcs) >> $(ACINCLUDE)/$(TARGET)_srcs.list
@echo "TARGET: " $(TARGET)"\n" > $(AIRCRAFT_BUILD_DIR)/$(TARGET)_srcs.list
@echo "CFLAGS: " $($(TARGET).CFLAGS)"\n" >> $(AIRCRAFT_BUILD_DIR)/$(TARGET)_srcs.list
@echo "LDFLAGS: " $($(TARGET).LDFLAGS)"\n" >> $(AIRCRAFT_BUILD_DIR)/$(TARGET)_srcs.list
@echo "srcs: " $($(TARGET).srcs) >> $(AIRCRAFT_BUILD_DIR)/$(TARGET)_srcs.list
radio_ac_h : $(RADIO_H)
@@ -212,6 +214,6 @@ ap: ap.compile
clean_ac :
$(Q)if (expr "$(AIRCRAFT)"); then : ; else echo "AIRCRAFT undefined: type 'make AIRCRAFT=AircraftName ...'"; exit 1; fi
rm -fr $(PAPARAZZI_HOME)/var/$(AIRCRAFT)
rm -fr $(AIRCRAFT_BUILD_DIR)
.PHONY: init all_ac_h radio_ac_h flight_plan_ac_h makefile_ac clean_ac print_version

View File

@@ -41,7 +41,7 @@ CHIBIOS_BOARD_DIR = $(PAPARAZZI_SRC)/sw/airborne/boards/$(BOARD)/chibios-libopen
CHIBIOS_LIB_DIR = $(PAPARAZZI_SRC)/sw/airborne/subsystems/chibios-libopencm3
CHIBIOS_EXT = $(PAPARAZZI_SRC)/sw/ext/chibios
OPENCM3_EXT = $(PAPARAZZI_SRC)/sw/ext/libopencm3
PPRZ_GENERATED = $(PAPARAZZI_SRC)/var/$(AIRCRAFT)/$(TARGET)/generated
PPRZ_GENERATED = $(AIRCRAFT_BUILD_DIR)/$(AIRCRAFT)/$(TARGET)/generated
PPRZ_CHIBIOS_OCM3 = $(SRC_FIRMWARE)/chibios-libopencm3
# Launch with "make Q=''" to get full command display

View File

@@ -248,7 +248,7 @@ $(OBJDIR)/%.o : $(SRC_ARCH)/lpcusb/%.c $(OBJDIR)/../Makefile.ac
$(Q)$(CC) -MMD -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@
# grab files in var/$(AIRCRAFT)/$(TARGET) aka $(OBJDIR)
# grab files in var/aircrafts/$(AIRCRAFT)/$(TARGET) aka $(OBJDIR)
#$(OBJDIR)/%.o : $(OBJDIR)/%.c
# @echo CC $@
# $(Q)$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@

View File

@@ -1,7 +1,6 @@
# Hey Emacs, this is a -*- makefile -*-
#
# $Id$
# Copyright (C) 2003-2005 Pascal Brisset, Antoine Drouin
# Copyright (C) 2003-2014 The Paparazzi Team
#
# This file is part of paparazzi.
#
@@ -25,15 +24,18 @@
Q=@
OBJDIR = $(PAPARAZZI_HOME)/var/$(AIRCRAFT)/$(TARGET)
VARINCLUDE=$(PAPARAZZI_HOME)/var/include
ACINCLUDE = $(PAPARAZZI_HOME)/var/$(AIRCRAFT)/$(TARGET)
# main directory where the generated files and compilation results for an aircraft are stored
AIRCRAFT_BUILD_DIR = $(PAPARAZZI_HOME)/var/aircrafts/$(AIRCRAFT)
OBJDIR = $(AIRCRAFT_BUILD_DIR)/$(TARGET)
ACINCLUDE = $(AIRCRAFT_BUILD_DIR)/$(TARGET)
VARINCLUDE = $(PAPARAZZI_HOME)/var/include
INCLUDES = -I$(PAPARAZZI_SRC)/sw/include -I$(PAPARAZZI_SRC)/sw/airborne -I$(PAPARAZZI_SRC)/conf/autopilot -I$(PAPARAZZI_SRC)/sw/airborne/arch/$($(TARGET).ARCHDIR) -I$(VARINCLUDE) -I$(ACINCLUDE)
ifneq ($(MAKECMDGOALS),clean)
include $(PAPARAZZI_HOME)/var/$(AIRCRAFT)/Makefile.ac
include $(AIRCRAFT_BUILD_DIR)/Makefile.ac
$(TARGET).srcs += $($(TARGET).EXTRA_SRCS)
include ../../conf/Makefile.local

View File

@@ -10,7 +10,7 @@ udp2tcp: udp2tcp.c
tcp2ivy: tcp2ivy.c
gcc -g -O2 -Wall $(shell pkg-config glib-2.0 --cflags) -o $@ $^ $(shell pkg-config glib-2.0 --libs) -lglibivy -lm
tcp2ivy_generic: tcp2ivy_generic.c
gcc -g -O2 -Wall $(shell pkg-config glib-2.0 --cflags) -I../../../var/${AIRCRAFT} -o $@ $^ $(shell pkg-config glib-2.0 --libs) -lglibivy -lm
gcc -g -O2 -Wall $(shell pkg-config glib-2.0 --cflags) -I../../../var/aircrafts/${AIRCRAFT} -o $@ $^ $(shell pkg-config glib-2.0 --libs) -lglibivy -lm
clean:
$(Q)rm -f email2udp udp2tcp tcp2ivy

View File

@@ -317,7 +317,7 @@ let () =
let value = fun attrib -> ExtXml.attrib aircraft_xml attrib in
let aircraft_dir = Env.paparazzi_home // "var" // aircraft in
let aircraft_dir = Env.paparazzi_home // "var" // "aircrafts" // aircraft in
let aircraft_conf_dir = aircraft_dir // "conf" in
mkdir (Env.paparazzi_home // "var");