mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-09 22:49:53 +08:00
136 lines
4.3 KiB
Makefile
136 lines
4.3 KiB
Makefile
# Hey Emacs, this is a -*- makefile -*-
|
|
# Paparazzi main $Id$
|
|
# Copyright (C) 2004 Pascal Brisset Antoine Drouin
|
|
#
|
|
# This file is part of paparazzi.
|
|
#
|
|
# paparazzi is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2, or (at your option)
|
|
# any later version.
|
|
#
|
|
# paparazzi is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with paparazzi; see the file COPYING. If not, write to
|
|
# the Free Software Foundation, 59 Temple Place - Suite 330,
|
|
# Boston, MA 02111-1307, USA.
|
|
|
|
# Preprocessing of XML configuration files
|
|
|
|
PAPARAZZI_SRC=$(shell pwd)
|
|
|
|
include conf/Makefile.local
|
|
|
|
CONF=$(PAPARAZZI_HOME)/conf
|
|
CONF_XML=$(CONF)/conf.xml
|
|
AIRBORNE=sw/airborne
|
|
MESSAGES_XML = $(CONF)/messages.xml
|
|
ACINCLUDE = $(PAPARAZZI_HOME)/var/$(AIRCRAFT)
|
|
AIRFRAME_H=$(ACINCLUDE)/airframe.h
|
|
PERIODIC_H=$(ACINCLUDE)/periodic.h
|
|
RADIO_H=$(ACINCLUDE)/radio.h
|
|
FLIGHT_PLAN_H=$(ACINCLUDE)/flight_plan.h
|
|
FLIGHT_PLAN_XML=$(ACINCLUDE)/flight_plan.xml
|
|
SETTINGS_H=$(ACINCLUDE)/settings.h
|
|
SETTINGS_XMLS=$(patsubst %,$(CONF)/%,$(SETTINGS))
|
|
SETTINGS_XML=$(ACINCLUDE)/settings.xml
|
|
MAKEFILE_AC=$(ACINCLUDE)/Makefile.ac
|
|
SUPERVISION=./paparazzi
|
|
MAKE=make PAPARAZZI_SRC=$(PAPARAZZI_SRC) PAPARAZZI_HOME=$(PAPARAZZI_HOME)
|
|
|
|
|
|
# "make Q=''" to get full echo
|
|
Q=@
|
|
|
|
init:
|
|
@[ -d $(PAPARAZZI_HOME) ] || (echo "Copying config example in your $(PAPARAZZI_HOME) directory"; mkdir -p $(PAPARAZZI_HOME); cp -a conf $(PAPARAZZI_HOME); cp -a data $(PAPARAZZI_HOME); mkdir -p $(PAPARAZZI_HOME)/var/maps; mv $(PAPARAZZI_HOME)/data/maps/trtqtttqtsrrt*.jpg $(PAPARAZZI_HOME)/var/maps)
|
|
|
|
demo:
|
|
$(SUPERVISION)
|
|
|
|
all_ac_h: $(AIRFRAME_H) $(RADIO_H) $(FLIGHT_PLAN_H) $(FLIGHT_PLAN_XML) $(SETTINGS_H) $(MAKEFILE_AC) $(PERIODIC_H)
|
|
|
|
$(AIRFRAME_H) : $(CONF)/$(AIRFRAME_XML) $(CONF_XML)
|
|
@echo BUILD $@
|
|
$(Q)$(TOOLS)/gen_airframe.out $(AC_ID) $(AIRCRAFT) $< > /tmp/airframe.h
|
|
$(Q)mv /tmp/airframe.h $@
|
|
|
|
$(RADIO_H) : $(CONF)/$(RADIO) $(CONF_XML) $(TOOLS)/gen_radio.out
|
|
@echo BUILD $@
|
|
$(Q)$(TOOLS)/gen_radio.out $< > /tmp/radio.h
|
|
$(Q)mv /tmp/radio.h $@
|
|
|
|
$(PERIODIC_H) : $(MESSAGES_XML) $(CONF_XML) $(CONF)/$(TELEMETRY)
|
|
@echo BUILD $@
|
|
$(Q)$(TOOLS)/gen_periodic.out $(MESSAGES_XML) $(CONF)/$(TELEMETRY) > $@
|
|
$(Q)chmod a+r $@
|
|
|
|
$(FLIGHT_PLAN_H) : $(CONF)/$(FLIGHT_PLAN) $(CONF_XML) $(TOOLS)/gen_flight_plan.out
|
|
@echo BUILD $@
|
|
$(Q)$(TOOLS)/gen_flight_plan.out $< > $@
|
|
$(Q)chmod a+r $@
|
|
|
|
$(FLIGHT_PLAN_XML) : $(CONF)/$(FLIGHT_PLAN) $(CONF_XML) $(TOOLS)/gen_flight_plan.out
|
|
@echo BUILD $@
|
|
$(Q)$(TOOLS)/gen_flight_plan.out -dump $< > $@
|
|
$(Q)chmod a+r $@
|
|
|
|
$(SETTINGS_H) : $(SETTINGS_XMLS) $(CONF_XML) $(TOOLS)/gen_settings.out
|
|
@echo BUILD $@
|
|
$(Q)$(TOOLS)/gen_settings.out $(SETTINGS_XML) $(SETTINGS_XMLS) > $@
|
|
$(Q)chmod a+r $@
|
|
|
|
$(MAKEFILE_AC) : $(CONF)/$(AIRFRAME_XML)
|
|
@echo BUILD $@
|
|
$(Q)$(TOOLS)/extract_makefile.out $< > $@
|
|
|
|
|
|
ac_h :
|
|
$(Q)if (expr "$(AIRCRAFT)"); then : ; else echo "AIRCRAFT undefined: type 'make AIRCRAFT=AircraftName ...'"; exit 1; fi
|
|
@echo BUILD $(AIRCRAFT)
|
|
$(Q)PAPARAZZI_SRC=$(PAPARAZZI_SRC) PAPARAZZI_HOME=$(PAPARAZZI_HOME) Q=$(Q) $(TOOLS)/gen_aircraft.out $(AIRCRAFT)
|
|
|
|
%.compile: ac_h
|
|
cd $(AIRBORNE); $(MAKE) TARGET=$* all
|
|
|
|
%.wr_fuses: %.compile
|
|
cd $(AIRBORNE); $(MAKE) TARGET=$* wr_fuses
|
|
|
|
%.rd_fuses: %.compile
|
|
cd $(AIRBORNE); $(MAKE) TARGET=$* rd_fuses
|
|
|
|
%.check_fuses: %.compile
|
|
cd $(AIRBORNE); $(MAKE) TARGET=$* check_fuses
|
|
|
|
%.erase: %.compile
|
|
cd $(AIRBORNE); $(MAKE) TARGET=$* erase
|
|
|
|
%.upload: %.compile
|
|
cd $(AIRBORNE); $(MAKE) TARGET=$* upload
|
|
|
|
sim: ac_h
|
|
cd $(AIRBORNE); $(MAKE) TARGET=sim ARCHI=sim all
|
|
|
|
# Rules for backward compatibility (old guys are used to !)
|
|
fbw : fbw.compile
|
|
ap: ap.compile
|
|
upload_fbw: fbw.upload
|
|
upload_ap: ap.upload
|
|
erase_fbw: fbw.erase
|
|
erase_ap: ap.erase
|
|
wr_fuses_ap: ap.wr_fuses
|
|
wr_fuses_fbw: fbw.wr_fuses
|
|
rd_fuses_ap: ap.rd_fuses
|
|
rd_fuses_fbw: fbw.rd_fuses
|
|
check_fuses_ap: ap.check_fuses
|
|
check_fuses_fbw: fbw.check_fuses
|
|
hard_ac ac: ac_h fbw ap
|
|
|
|
clean_ac :
|
|
$(Q)if (expr "$(AIRCRAFT)"); then : ; else echo "AIRCRAFT undefined: type 'make AIRCRAFT=AircraftName ...'"; exit 1; fi
|
|
rm -fr $(PAPARAZZI_HOME)/var/$(AIRCRAFT)
|