mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-09 22:49:53 +08:00
[makefile] more makefile cleaning and dynamic loading
This commit is contained in:
committed by
Felix Ruess
parent
b81ae24917
commit
446231949b
@@ -57,6 +57,7 @@ MULTIMON=sw/ground_segment/multimon
|
|||||||
COCKPIT=sw/ground_segment/cockpit
|
COCKPIT=sw/ground_segment/cockpit
|
||||||
TMTC=sw/ground_segment/tmtc
|
TMTC=sw/ground_segment/tmtc
|
||||||
TOOLS=$(PAPARAZZI_SRC)/sw/tools
|
TOOLS=$(PAPARAZZI_SRC)/sw/tools
|
||||||
|
JOYSTICK=sw/ground_segment/joystick
|
||||||
EXT=sw/ext
|
EXT=sw/ext
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -113,7 +114,7 @@ conf/%.xml :conf/%.xml.example
|
|||||||
|
|
||||||
ground_segment: print_build_version update_google_version conf lib subdirs commands static
|
ground_segment: print_build_version update_google_version conf lib subdirs commands static
|
||||||
|
|
||||||
static: cockpit tmtc tools sim_static static_h
|
static: cockpit tmtc tools sim_static joystick static_h
|
||||||
|
|
||||||
lib:
|
lib:
|
||||||
$(MAKE) -C $(LIB)/ocaml
|
$(MAKE) -C $(LIB)/ocaml
|
||||||
@@ -130,6 +131,9 @@ tmtc: lib cockpit multimon
|
|||||||
tools: lib
|
tools: lib
|
||||||
$(MAKE) -C $(TOOLS)
|
$(MAKE) -C $(TOOLS)
|
||||||
|
|
||||||
|
joystick: lib
|
||||||
|
$(MAKE) -C $(JOYSTICK)
|
||||||
|
|
||||||
sim_static: lib
|
sim_static: lib
|
||||||
$(MAKE) -C $(SIMULATOR)
|
$(MAKE) -C $(SIMULATOR)
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ FPIC=-fPIC
|
|||||||
include ../../Makefile.ocaml
|
include ../../Makefile.ocaml
|
||||||
|
|
||||||
INCLUDES=
|
INCLUDES=
|
||||||
LIBS= lablglade.cma lib-pprz.cma lablgnomecanvas.cma xlib-pprz.cma
|
LIBS= lablglade.cma lablgnomecanvas.cma $(OCAMLDLL) $(LIBPPRZCMA) $(OCAMLXDLL) $(XLIBPPRZCMA)
|
||||||
CMXA=$(LIBS:.cma=.cmxa)
|
CMXA=$(LIBS:.cma=.cmxa)
|
||||||
|
|
||||||
INCLUDES= -I $(LIBPPRZDIR) -I ../multimon
|
INCLUDES= -I $(LIBPPRZDIR) -I ../multimon
|
||||||
@@ -85,7 +85,8 @@ gtk_save_settings.ml : gcs.glade
|
|||||||
strip.cmo : gtk_strip.cmo gtk_setting_time.cmo
|
strip.cmo : gtk_strip.cmo gtk_setting_time.cmo
|
||||||
|
|
||||||
compass : compass.ml
|
compass : compass.ml
|
||||||
$(OCAMLC) -custom $(OCAMLCFLAGS) $(INCLUDES) unix.cma str.cma xml-light.cma $(LIBS) gtkInit.cmo $^ -o $@
|
@echo OL $@
|
||||||
|
$(Q)$(OCAMLFIND) $(OCAMLC) $(OCAMLCFLAGS) $(INCLUDES) -package $(PKGCOMMON) -linkpkg $(LIBS) gtkInit.cmo $^ -o $@
|
||||||
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -27,13 +27,14 @@ Q=@
|
|||||||
include ../../Makefile.ocaml
|
include ../../Makefile.ocaml
|
||||||
TOOLSDIR = ../../tools
|
TOOLSDIR = ../../tools
|
||||||
|
|
||||||
OCAMLINCLUDES= -I $(LIBPPRZDIR) $(shell ocamlfind query -r -i-format lablgtk2) $(shell ocamlfind query -r -i-format xml-light) -I $(TOOLSDIR)
|
OCAMLINCLUDES= -I $(LIBPPRZDIR) -I $(TOOLSDIR)
|
||||||
|
#OCAMLINCLUDES= -I $(LIBPPRZDIR) $(shell ocamlfind query -r -i-format lablgtk2) $(shell ocamlfind query -r -i-format xml-light) $(shell ocamlfind query -r -i-format ivy) -I $(TOOLSDIR)
|
||||||
PKGCOMMON=unix,str,lablgtk2,ivy,xml-light
|
PKGCOMMON=unix,str,lablgtk2,ivy,xml-light
|
||||||
LIBPPRZCMA=$(LIBPPRZDIR)/lib-pprz.cma
|
LIBPPRZCMA=$(LIBPPRZDIR)/lib-pprz.cma
|
||||||
|
|
||||||
# apparently on OSX `sdl-config --libs` also has -lSDLmain which we don't want
|
# apparently on OSX `sdl-config --libs` also has -lSDLmain which we don't want
|
||||||
#ML_SDL_LFLAGS = $(foreach u,$(shell sdl-config --libs),-cclib $(u))
|
#ML_SDL_LFLAGS = $(foreach u,$(shell sdl-config --libs),-cclib $(u))
|
||||||
ML_SDL_LFLAGS = $(foreach u,$(shell pkg-config sdl --libs-only-L) -lSDL,-cclib $(u))
|
ML_SDL_LFLAGS = $(foreach u,$(shell pkg-config sdl --libs-only-L) -lSDL,-cclib $(u)) libSDL.so
|
||||||
INCLUDES += -I `ocamlc -where`
|
INCLUDES += -I `ocamlc -where`
|
||||||
|
|
||||||
all: test_stick input2ivy
|
all: test_stick input2ivy
|
||||||
@@ -41,20 +42,22 @@ all: test_stick input2ivy
|
|||||||
test_stick: test_sdl_stick.o
|
test_stick: test_sdl_stick.o
|
||||||
gcc -g -O2 -Wall -DSTICK_DBG `pkg-config glib-2.0 --cflags` -o $@ $^ sdl_stick.c `pkg-config glib-2.0 --libs` -lglibivy `sdl-config --libs`
|
gcc -g -O2 -Wall -DSTICK_DBG `pkg-config glib-2.0 --cflags` -o $@ $^ sdl_stick.c `pkg-config glib-2.0 --libs` -lglibivy `sdl-config --libs`
|
||||||
|
|
||||||
input2ivy: sdl_stick.o ml_sdl_stick.o input2ivy.cmo
|
input2ivy: sdl_stick.so input2ivy.cmo
|
||||||
@echo OL $@
|
@echo OL $@
|
||||||
$(Q)$(OCAMLC) -make-runtime -o i2i_run sdl_stick.o ml_sdl_stick.o $(ML_SDL_LFLAGS)
|
$(Q)$(OCAMLFIND) $(OCAMLC) $(OCAMLINCLUDES) -o $@ -package $(PKGCOMMON) -linkpkg $(LIBPPRZCMA) $(TOOLSDIR)/fp_proc.cmo $^ $(ML_SDL_LFLAGS)
|
||||||
$(Q)$(OCAMLFIND) $(OCAMLC) $(OCAMLINCLUDES) -use-runtime i2i_run -o $@ -package $(PKGCOMMON) -linkpkg $(OCAMLDLL) $(LIBPPRZCMA) $(TOOLSDIR)/fp_proc.cmo
|
|
||||||
|
|
||||||
# dependency of input2ivy
|
# dependency of input2ivy
|
||||||
input2ivy: $(LIBPPRZCMA) $(TOOLSDIR)/fp_proc.cmo
|
input2ivy: $(LIBPPRZCMA) $(TOOLSDIR)/fp_proc.cmo
|
||||||
|
|
||||||
|
sdl_stick.so : sdl_stick.o ml_sdl_stick.o
|
||||||
|
gcc -shared -o $@ $^
|
||||||
|
|
||||||
%.o : %.c
|
%.o : %.c
|
||||||
gcc -c -O2 -Wall `pkg-config glib-2.0 --cflags` $(INCLUDES) $<
|
gcc -c -O2 -Wall `pkg-config glib-2.0 --cflags` $(INCLUDES) $<
|
||||||
|
|
||||||
%.cmo : %.ml
|
%.cmo : %.ml
|
||||||
@echo OC $<
|
@echo OC $<
|
||||||
$(Q)$(OCAMLC) $(OCAMLINCLUDES) -c $<
|
$(Q)$(OCAMLFIND) $(OCAMLC) $(OCAMLINCLUDES) -c -package $(PKGCOMMON) $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *~ core *.o *.bak .depend test*stick *.cmo *.cmi input2ivy
|
rm -f *~ core *.o *.bak .depend test*stick *.cmo *.cmi input2ivy
|
||||||
|
|||||||
@@ -23,46 +23,43 @@
|
|||||||
# Launch with "make Q=''" to get full command display
|
# Launch with "make Q=''" to get full command display
|
||||||
Q=@
|
Q=@
|
||||||
|
|
||||||
DEBUG =n
|
DEBUG=n
|
||||||
MACHINE := $(shell uname -m)
|
MACHINE:=$(shell uname -m)
|
||||||
AS86 =as86 -0 -a
|
AS86=as86 -0 -a
|
||||||
LD86 =ld86 -0
|
LD86=ld86 -0
|
||||||
AS =as
|
AS=as
|
||||||
LD =ld
|
LD=ld
|
||||||
LDFLAGS =-lm
|
LDFLAGS=-lm
|
||||||
HOSTCC =gcc
|
HOSTCC=gcc
|
||||||
CC =gcc
|
CC=gcc
|
||||||
MAKE =make
|
MAKE=make
|
||||||
CPP =$(CC) -E
|
CPP=$(CC) -E
|
||||||
AR =ar
|
AR=ar
|
||||||
STRIP =strip
|
STRIP=strip
|
||||||
MKDIR =mkdir
|
MKDIR=mkdir
|
||||||
OCAMLC =ocamlc
|
|
||||||
|
|
||||||
CFLAGS =-Wall -Wstrict-prototypes -I/usr/X11R6/include -I`$(OCAMLC) -where`
|
include ../../Makefile.ocaml
|
||||||
|
|
||||||
|
CFLAGS=-Wall -Wstrict-prototypes -I/usr/X11R6/include -I`$(OCAMLC) -where`
|
||||||
ifeq ($(DEBUG),y)
|
ifeq ($(DEBUG),y)
|
||||||
CFLAGS +=-g -O
|
CFLAGS += -g -O
|
||||||
else
|
else
|
||||||
CFLAGS +=-O3
|
CFLAGS += -O3
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LBITS := $(shell getconf LONG_BIT)
|
LBITS := $(shell getconf LONG_BIT)
|
||||||
ifeq ($(LBITS),64)
|
ifeq ($(LBITS),64)
|
||||||
CFLAGS += -fPIC
|
CFLAGS += -fPIC
|
||||||
else ifeq ($(MACHINE),'i686')
|
else ifeq ($(MACHINE),'i686')
|
||||||
CFLAGS += -march=i486 -falign-loops=2 -falign-jumps=2 -falign-functions=2 -DARCH_I386
|
CFLAGS += -march=i486 -falign-loops=2 -falign-jumps=2 -falign-functions=2 -DARCH_I386
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LDFLAGSX =-lX11 -L/usr/X11R6/lib
|
LDFLAGSX = -lX11 -L/usr/X11R6/lib
|
||||||
|
|
||||||
#BINDIR =bin-$(shell uname -m)
|
#BINDIR = bin-$(shell uname -m)
|
||||||
BINDIR =.
|
BINDIR =.
|
||||||
|
|
||||||
UNAME = $(shell uname -s)
|
UNAME = $(shell uname -s)
|
||||||
ifeq ("$(UNAME)","Linux")
|
|
||||||
OBJFILES=pprzlib.o hdlc.o demod_afsk12.o demodml.o costabi.o gen_hdlc.o ml_hdlc.o demod.cmo hdlc.cmo
|
|
||||||
ALLTARGETS=$(BINDIR)/multimon multimon.cma
|
|
||||||
endif
|
|
||||||
ifeq ("$(UNAME)","linux")
|
ifeq ("$(UNAME)","linux")
|
||||||
OBJFILES=pprzlib.o hdlc.o demod_afsk12.o demodml.o costabi.o gen_hdlc.o ml_hdlc.o demod.cmo hdlc.cmo
|
OBJFILES=pprzlib.o hdlc.o demod_afsk12.o demodml.o costabi.o gen_hdlc.o ml_hdlc.o demod.cmo hdlc.cmo
|
||||||
ALLTARGETS=$(BINDIR)/multimon multimon.cma
|
ALLTARGETS=$(BINDIR)/multimon multimon.cma
|
||||||
@@ -72,34 +69,34 @@ ifeq ("$(UNAME)","Darwin")
|
|||||||
ALLTARGETS=multimon.cma
|
ALLTARGETS=multimon.cma
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all: $(ALLTARGETS)
|
all: $(ALLTARGETS)
|
||||||
|
|
||||||
multimon.cma: $(OBJFILES)
|
multimon.cma: $(OBJFILES)
|
||||||
@echo OLD $@
|
@echo OLD $@
|
||||||
$(Q)ocamlmklib -o multimon $^
|
$(Q)ocamlmklib -o multimon $^
|
||||||
|
|
||||||
|
|
||||||
$(BINDIR)/%.s: %.c
|
$(BINDIR)/%.s: %.c
|
||||||
$(CC) $(CFLAGS) -S -o $@ $<
|
$(CC) $(CFLAGS) -S -o $@ $<
|
||||||
|
|
||||||
$(BINDIR)/%.o: $(BINDIR)/%.s
|
$(BINDIR)/%.o: $(BINDIR)/%.s
|
||||||
$(AS) -c -o $@ $<
|
$(AS) -c -o $@ $<
|
||||||
|
|
||||||
$(BINDIR)/%.o: %.c
|
$(BINDIR)/%.o: %.c
|
||||||
@echo CC $<
|
@echo CC $<
|
||||||
$(Q)$(CC) $(CFLAGS) -c -o $@ $<
|
$(Q)$(CC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
SRC_L2 = hdlc.c pprz.c
|
SRC_L2 = hdlc.c pprz.c
|
||||||
SRC_L1 = demod_afsk48p.c demod_display.c
|
SRC_L1 = demod_afsk48p.c demod_display.c
|
||||||
SRC_MISC = unixinput.c xdisplay.c
|
SRC_MISC = unixinput.c xdisplay.c
|
||||||
|
|
||||||
SRC_GEN =gen.c gen_dtmf.c gen_sin.c gen_zvei.c gen_hdlc.c costabi.c
|
SRC_GEN = gen.c gen_dtmf.c gen_sin.c gen_zvei.c gen_hdlc.c costabi.c
|
||||||
|
|
||||||
OBJ_L2 =$(SRC_L2:%.c=$(BINDIR)/%.o)
|
OBJ_L2 = $(SRC_L2:%.c=$(BINDIR)/%.o)
|
||||||
OBJ_L1 =$(SRC_L1:%.c=$(BINDIR)/%.o)
|
OBJ_L1 = $(SRC_L1:%.c=$(BINDIR)/%.o)
|
||||||
OBJ_MISC =$(SRC_MISC:%.c=$(BINDIR)/%.o)
|
OBJ_MISC = $(SRC_MISC:%.c=$(BINDIR)/%.o)
|
||||||
|
|
||||||
OBJ_GEN =$(SRC_GEN:%.c=$(BINDIR)/%.o)
|
OBJ_GEN = $(SRC_GEN:%.c=$(BINDIR)/%.o)
|
||||||
|
|
||||||
$(BINDIR):
|
$(BINDIR):
|
||||||
$(MKDIR) $(BINDIR)
|
$(MKDIR) $(BINDIR)
|
||||||
@@ -108,14 +105,14 @@ $(BINDIR)/multimon: $(OBJ_L2) $(OBJ_L1) $(OBJ_MISC)
|
|||||||
@echo LD $@
|
@echo LD $@
|
||||||
$(Q)$(CC) $^ $(LDFLAGS) $(LDFLAGSX) -o $@
|
$(Q)$(CC) $^ $(LDFLAGS) $(LDFLAGSX) -o $@
|
||||||
|
|
||||||
$(BINDIR)/gen: $(OBJ_GEN)
|
$(BINDIR)/gen: $(OBJ_GEN)
|
||||||
$(CC) $^ $(LDFLAGS) -o $@
|
$(CC) $^ $(LDFLAGS) -o $@
|
||||||
|
|
||||||
$(BINDIR)/mkcostab: $(BINDIR)/mkcostab.o
|
$(BINDIR)/mkcostab: $(BINDIR)/mkcostab.o
|
||||||
$(CC) $^ $(LDFLAGS) -o $@
|
$(CC) $^ $(LDFLAGS) -o $@
|
||||||
|
|
||||||
costabi.c costabf.c: $(BINDIR)/mkcostab
|
costabi.c costabf.c: $(BINDIR)/mkcostab
|
||||||
$(BINDIR)/mkcostab
|
$(BINDIR)/mkcostab
|
||||||
|
|
||||||
|
|
||||||
libtest: pprzlib.o demodml.c demod.ml test.ml
|
libtest: pprzlib.o demodml.c demod.ml test.ml
|
||||||
@@ -133,11 +130,11 @@ hdlc.cmo : hdlc.cmi
|
|||||||
$(OCAMLC) $<
|
$(OCAMLC) $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -fr *.cm* mkcostab .depend
|
$(Q)rm -fr *.cm* mkcostab .depend
|
||||||
$(RM) -f core `find . -name '*.[oas]' -print`
|
$(Q)$(RM) -f core `find . -name '*.[oas]' -print`
|
||||||
$(RM) -f core `find . -name 'core' -print`
|
$(Q)$(RM) -f core `find . -name 'core' -print`
|
||||||
$(RM) -f core costabi.c costabf.c *~
|
$(Q)$(RM) -f core costabi.c costabf.c *~
|
||||||
$(RM) $(BINDIR)/multimon
|
$(Q)$(RM) $(BINDIR)/multimon
|
||||||
|
|
||||||
.PHONY: all clean depend dep
|
.PHONY: all clean depend dep
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ tests : lib-pprz.cma $(TESTS_CMO)
|
|||||||
|
|
||||||
GTKCFLAGS := `pkg-config --cflags gtk+-2.0`
|
GTKCFLAGS := `pkg-config --cflags gtk+-2.0`
|
||||||
|
|
||||||
%.o : %.c
|
%.o : %.c
|
||||||
@echo OC $<
|
@echo OC $<
|
||||||
$(Q)$(OCAMLFIND) $(OCAMLC) $(FPIC) $(INCLUDES) -package $(PKGCOMMON) -c $<
|
$(Q)$(OCAMLFIND) $(OCAMLC) $(FPIC) $(INCLUDES) -package $(PKGCOMMON) -c $<
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ ml_gtk_drag.o : ml_gtk_drag.c
|
|||||||
@echo OC $<
|
@echo OC $<
|
||||||
$(Q)$(OCAMLFIND) $(OCAMLC) $(INCLUDES) -package $(PKGCOMMON) -c -ccopt "$(GTKCFLAGS)" $<
|
$(Q)$(OCAMLFIND) $(OCAMLC) $(INCLUDES) -package $(PKGCOMMON) -c -ccopt "$(GTKCFLAGS)" $<
|
||||||
|
|
||||||
ml_gtkgl_hack.o : ml_gtkgl_hack.c
|
ml_gtkgl_hack.o : ml_gtkgl_hack.c
|
||||||
@echo OC $<
|
@echo OC $<
|
||||||
$(Q)$(OCAMLFIND) $(OCAMLC) $(INCLUDES) -package $(PKGCOMMON) -c -ccopt "$(GTKCFLAGS)" $<
|
$(Q)$(OCAMLFIND) $(OCAMLC) $(INCLUDES) -package $(PKGCOMMON) -c -ccopt "$(GTKCFLAGS)" $<
|
||||||
|
|
||||||
|
|||||||
+9
-17
@@ -30,6 +30,10 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
include ../../conf/Makefile.local
|
include ../../conf/Makefile.local
|
||||||
|
include ../Makefile.ocaml
|
||||||
|
|
||||||
|
OCAMLC += -g
|
||||||
|
PKGCOMMON=unix,str,lablgtk2,ivy,xml-light
|
||||||
|
|
||||||
SIMML = stdlib.ml data.ml flightModel.ml gps.ml
|
SIMML = stdlib.ml data.ml flightModel.ml gps.ml
|
||||||
SIMHML = $(SIMML) hitl.ml sim.ml
|
SIMHML = $(SIMML) hitl.ml sim.ml
|
||||||
@@ -38,31 +42,19 @@ SIMSML = $(SIMML) sitl.ml sim.ml
|
|||||||
SIMSCMO=$(SIMSML:%.ml=%.cmo)
|
SIMSCMO=$(SIMSML:%.ml=%.cmo)
|
||||||
SIMSCMX=$(SIMSML:%.ml=%.cmx)
|
SIMSCMX=$(SIMSML:%.ml=%.cmx)
|
||||||
|
|
||||||
|
|
||||||
OCAMLC = ocamlc -g
|
|
||||||
OCAMLOPT = ocamlopt
|
|
||||||
OCAMLDEP = ocamldep
|
|
||||||
OCAMLFIND = ocamlfind
|
|
||||||
OCAML=$(shell which ocaml)
|
|
||||||
OCAMLRUN=$(shell which ocamlrun)
|
|
||||||
LIBPPRZDIR=../lib/ocaml
|
|
||||||
INCLUDES= -I $(LIBPPRZDIR)
|
|
||||||
LIBPPRZCMA=$(LIBPPRZDIR)/lib-pprz.cma
|
|
||||||
PKGCOMMON=unix,str,lablgtk2,ivy,xml-light
|
|
||||||
|
|
||||||
AIRBORNE = ../airborne
|
AIRBORNE = ../airborne
|
||||||
VARINCLUDE=$(PAPARAZZI_HOME)/var/include
|
VARINCLUDE=$(PAPARAZZI_HOME)/var/include
|
||||||
ACINCLUDE = $(PAPARAZZI_HOME)/var/$(AIRCRAFT)
|
ACINCLUDE = $(PAPARAZZI_HOME)/var/$(AIRCRAFT)
|
||||||
|
|
||||||
|
|
||||||
all : gaia sitl.cma
|
all : gaia sitl.cma simhitl
|
||||||
|
|
||||||
#simhitl
|
fg.so : fg.o
|
||||||
|
gcc -shared -o $@ $^
|
||||||
|
|
||||||
simhitl : fg.o $(SIMHCMO) simhitl.cmo
|
simhitl : fg.so $(SIMHCMO) simhitl.cmo
|
||||||
@echo OL $@
|
@echo OL $@
|
||||||
$(Q)$(OCAMLFIND) $(OCAMLC) -make-runtime -o simhitl_run fg.o
|
$(Q)$(OCAMLFIND) $(OCAMLC) $(INCLUDES) -o $@ -package $(PKGCOMMON) -linkpkg lib-pprz.cma gtkInit.cmo $<
|
||||||
$(Q)$(OCAMLFIND) $(OCAMLC) $(INCLUDES) -use-runtime simhitl_run -o $@ -package $(PKGCOMMON) -linkpkg lib-pprz.cma gtkInit.cmo $^
|
|
||||||
|
|
||||||
sitl.cma : fg.o $(SIMSCMO)
|
sitl.cma : fg.o $(SIMSCMO)
|
||||||
@echo OL $@
|
@echo OL $@
|
||||||
|
|||||||
Reference in New Issue
Block a user