mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-24 22:05:58 +08:00
131 lines
3.7 KiB
Makefile
131 lines
3.7 KiB
Makefile
# Hey Emacs, this is a -*- makefile -*-
|
|
#
|
|
# 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.
|
|
#
|
|
|
|
# Quiet compilation
|
|
Q=@
|
|
|
|
include ../Makefile.ocaml
|
|
INCLUDES=
|
|
PKG = -package glibivy,pprz,$(USE_LABELGTK)
|
|
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprz,pprzlink,$(USE_LABELGTK)
|
|
|
|
LABLGTK2GLADE = $(shell ocamlfind query -p-format lablgtk2.glade 2>/dev/null)
|
|
|
|
ifeq ($(USE_LABELGTK),lablgtk2)
|
|
# only compile it lablgtk2.glade is installed
|
|
ifeq ($(LABLGTK2GLADE),)
|
|
XPKG = -package lablgtk2,pprz.xlib
|
|
XLINKPKG = $(XPKG) -linkpkg -dllpath-pkg pprz.xlib,pprzlink,$(USE_LABELGTK)
|
|
all : play plotter sd2log openlog2tlm sdlogger_download
|
|
else
|
|
XPKG = -package lablgtk2,pprz.xlib,lablgtk2.glade
|
|
XLINKPKG = $(XPKG) -linkpkg -dllpath-pkg pprz.xlib,pprzlink,$(USE_LABELGTK)
|
|
all : play plotter logplotter sd2log openlog2tlm sdlogger_download
|
|
endif
|
|
else # no gtk2
|
|
all: sd2log openlog2tlm sdlogger_download
|
|
endif
|
|
|
|
|
|
play : log_file.cmo play_core.cmo play.cmo $(LIBPPRZCMA) $(LIBPPRZLINKCMA)
|
|
@echo OL $@
|
|
$(Q)$(OCAMLC) $(INCLUDES) -o $@ $(LINKPKG) gtkInit.cmo $^
|
|
|
|
play-nox : play_core.cmo play-nox.cmo $(LIBPPRZCMA) $(LIBPPRZLINKCMA)
|
|
@echo OL $@
|
|
$(Q)$(OCAMLC) $(INCLUDES) -o $@ $(LINKPKG) $^
|
|
|
|
plotter : plotter.cmo $(LIBPPRZCMA) $(LIBPPRZLINKCMA) $(XLIBPPRZCMA)
|
|
@echo OL $@
|
|
$(Q)$(OCAMLC) $(INCLUDES) -o $@ $(XLINKPKG) gtkInit.cmo $^
|
|
|
|
logplotter : log_file.cmo gtk_export.cmo export.cmo logplotter.cmo $(LIBPPRZCMA) $(LIBPPRZLINKCMA) $(XLIBPPRZCMA)
|
|
@echo OL $@
|
|
$(Q)$(OCAMLC) $(INCLUDES) -o $@ $(XLINKPKG) gtkInit.cmo $^
|
|
|
|
sd2log : sd2log.cmo $(LIBPPRZCMA) $(LIBPPRZLINKCMA)
|
|
@echo OL $@
|
|
$(Q)$(OCAMLC) $(INCLUDES) -o $@ $(LINKPKG) $^
|
|
|
|
sdlogger_download: sdlogger_download.c
|
|
@echo CC $@
|
|
$(Q)$(CC) $(CFLAGS) -std=gnu99 -o $@ $^
|
|
|
|
# Target for bytecode executable (if ocamlopt is not available)
|
|
# plot : log_file.cmo gtk_export.cmo export.cmo plot.cmo
|
|
# @echo OL $@
|
|
# $(Q)$(OCAMLC) $(INCLUDES) -o $@ unix.cma str.cma xml-light.cma glibivy-ocaml.cma lablgtk.cma lib-pprz.cma lablglade.cma gtkInit.cmo $^
|
|
|
|
%.cmo: %.ml
|
|
@echo OC $<
|
|
$(Q)$(OCAMLC) $(OCAMLCFLAGS) $(INCLUDES) -c $(PKG) $<
|
|
%.cmi: %.mli
|
|
@echo OCI $<
|
|
$(Q)$(OCAMLC) $(OCAMLCFLAGS) $(INCLUDES) -c $(PKG) $<
|
|
%.cmx: %.ml
|
|
@echo OOC $<
|
|
$(Q)$(OCAMLOPT) $(OCAMLCFLAGS) $(INCLUDES) -c $(PKG) $<
|
|
|
|
export.cmo : gtk_export.cmo
|
|
export.cmx : gtk_export.cmx
|
|
|
|
UNAME = $(shell uname -s)
|
|
ifeq ("$(UNAME)","Darwin")
|
|
MKTEMP = gmktemp
|
|
else
|
|
MKTEMP = mktemp
|
|
endif
|
|
|
|
gtk_export.ml : export.glade
|
|
@echo GLADE $@
|
|
$(eval $@_TMP := $(shell $(MKTEMP)))
|
|
$(Q)grep -v invisible_char $< > $($@_TMP)
|
|
$(Q)lablgladecc2 -root export -hide-default $($@_TMP) | grep -B 1000000 " end" > $@
|
|
$(Q)rm -f $($@_TMP)
|
|
|
|
|
|
|
|
CC = gcc
|
|
CFLAGS=-g -O2 -Wall
|
|
|
|
openlog2tlm: openlog2tlm.c
|
|
@echo CC $@
|
|
$(Q)$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
|
|
clean:
|
|
$(Q)rm -f *.opt *.out *~ core *.o *.bak .depend *.cm* play logplotter plotter gtk_export.ml openlog2tlm sd2log sdlogger_download
|
|
|
|
.PHONY: all clean
|
|
|
|
#
|
|
# Dependencies
|
|
#
|
|
|
|
.depend: Makefile
|
|
@echo DEPEND $@
|
|
$(Q)$(OCAMLDEP) -I $(LIBPPRZDIR) *.ml* > .depend
|
|
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
-include .depend
|
|
endif
|