From 290fcfa49bba6a436dcab94eaf43237c594e8354 Mon Sep 17 00:00:00 2001 From: Florian Taillard Date: Mon, 4 Apr 2011 16:39:21 +0200 Subject: [PATCH] Add Makefiles for AR.Drone --- libowlps-client/Makefile_drone | 74 +++++++++++++++++ libowlps/Makefile_drone | 142 +++++++++++++++++++++++++++++++++ owlps-ardrone/Makefile_drone | 14 ++-- 3 files changed, 224 insertions(+), 6 deletions(-) create mode 100644 libowlps-client/Makefile_drone create mode 100644 libowlps/Makefile_drone diff --git a/libowlps-client/Makefile_drone b/libowlps-client/Makefile_drone new file mode 100644 index 0000000..44b8a9f --- /dev/null +++ b/libowlps-client/Makefile_drone @@ -0,0 +1,74 @@ +# Emplacement de la suite de cross-compilation +TOOLCHAIN_PREFIX = /arm +TOOLCHAIN_BIN = $(TOOLCHAIN_PREFIX)/bin +TOOLCHAIN_USR = $(TOOLCHAIN_PREFIX)/arm-none-linux-gnueabi/libc/usr +TOOLCHAIN_USR_2 = $(TOOLCHAIN_PREFIX)/arm-none-linux-gnueabi/libc + +# Compilateur +CC = $(TOOLCHAIN_BIN)/arm-none-linux-gnueabi-gcc + +# Autres outils +AR = ar +RANLIB = ranlib +RM = rm -fv + +# Variables générales +LIB_CIBLE=libowlps-client +VERSION=1.0 + +# Cibles à construire +STATIC=$(LIB_CIBLE).a +HEADER=owlps-client.h + +# Composition de la bibliothèque +OBJS=$(LIB_CIBLE).o + +# Flags +CFLAGS=-O2 -Wall -Wextra -Wstrict-prototypes -O -I. +DEPFLAGS=-MMD +XCFLAGS=$(CFLAGS) $(DEPFLAGS) $(WARN) $(HEADERS) +PICFLAG=-fPIC +LIBS=-liw +#STRIPFLAGS= -Wl,-s +#LDFLAGS= +LATHEROS=-L$(TOOLCHAIN_USR_2)/lib/ +IATHEROS=-I$(TOOLCHAIN_USR)/include/ + + +## Cibles de compilation standard ## + +.PHONY : all static clean purge help + +all : static +static : $(STATIC) + +%.o : %.c $(HEADER) + $(CC) $(XCFLAGS) $(IATHEROS) -c $< + +# Compilation de la bibliothèque statique +$(STATIC) : $(OBJS) + $(RM) $@ + $(AR) cru $@ $^ + $(RANLIB) $@ + + +## Nettoyage ## + +clean : + @$(RM) *~ *.o *.d + +purge : clean + @$(RM) $(STATIC) + + +## Aide ## + +help : + @echo "Bibliothèques nécessaires à la compilation :\n\ + libowlps-dev\n\ + \n\ + Cibles possibles :\n\ + static (cible par défaut) : Compile la bibliothèque statique (.a).\n\ + \n\ + clean : Supprime les fichiers temporaires.\n\ + purge : Supprime le résultat de la compilation.\n\" diff --git a/libowlps/Makefile_drone b/libowlps/Makefile_drone new file mode 100644 index 0000000..0394af5 --- /dev/null +++ b/libowlps/Makefile_drone @@ -0,0 +1,142 @@ +TOOLCHAIN_PREFIX = /arm +TOOLCHAIN_BIN = $(TOOLCHAIN_PREFIX)/bin +TOOLCHAIN_USR = $(TOOLCHAIN_PREFIX)/arm-none-linux-gnueabi/libc/usr +TOOLCHAIN_USR_2 = $(TOOLCHAIN_PREFIX)/arm-none-linux-gnueabi/libc + +# Répertoire d'installation +PREFIX=/usr/local +INSTALL_LIB= $(PREFIX)/lib +INSTALL_INC= $(PREFIX)/include +INSTALL_MAN= $(PREFIX)/share/man + +# Compilateur + +CC = $(TOOLCHAIN_BIN)/arm-none-linux-gnueabi-gcc + +# Autres outils +AR = ar +RANLIB = ranlib + +# Commandes d'installation et de désinstallation +RM=rm -fv +CP=cp -v +SYMLINK=ln -svf + +# Variables générales +LIB_CIBLE=libowlps +VERSION=1.0 + +# Cibles à construire +STATIC=$(LIB_CIBLE).a +DYNAMIC=$(LIB_CIBLE).so.$(VERSION) +#PROGS= +HEADER=owlps.h +#HEADERS= + +# Composition de la bibliothèque +OBJS=$(LIB_CIBLE).o + +# Flags +CFLAGS=-O2 -Wall -Wextra -Wstrict-prototypes -O -I. +DEPFLAGS=-MMD +XCFLAGS=$(CFLAGS) $(DEPFLAGS) $(WARN) $(HEADERS) +PICFLAG=-fPIC +LIBS = -liw -lrt +#STRIPFLAGS= -Wl,-s +#LDFLAGS= +LATHEROS=-L$(TOOLCHAIN_USR_2)/lib/ +IATHEROS=-I$(TOOLCHAIN_USR)/include/ + +## Cibles de compilation standard ## + +.PHONY : all dynamic static install install-dynamic install-static install-header uninstall uninstall-dynamic uninstall-static uninstall-header clean purge help + +all : dynamic static +dynamic : $(DYNAMIC) +static : $(STATIC) + +%.o: %.c $(HEADER) + $(CC) $(XCFLAGS) $(IATHEROS) $(PICFLAG) -c -o $@ $< + +# Compilation de la bibliothèque dynamique +$(DYNAMIC): $(OBJS) + $(CC) -shared -o $@ -Wl,-soname,$@ $(STRIPFLAGS) $(LIBS) $(IATHEROS) $(LATHEROS) -lc $^ + $(SYMLINK) $@ $(LIB_CIBLE).so + chmod a-x $@ + +# Compilation de la bibliothèque statique +$(STATIC): $(OBJS) + $(RM) $@ + $(AR) cru $@ $^ + $(RANLIB) $@ + + +## Installation ## + +install : install-static install-dynamic + +install-dynamic : install-header $(DYNAMIC) + @$(CP) $(DYNAMIC) $(INSTALL_LIB) &&\ + chmod 644 $(INSTALL_LIB)/$(DYNAMIC) &&\ + chown root:root $(INSTALL_LIB)/$(DYNAMIC) &&\ + cd $(INSTALL_LIB) && $(SYMLINK) $(DYNAMIC) $(LIB_CIBLE).so &&\ + echo "Reconstruction du cache pour ld.so : ldconfig $(INSTALL_LIB)" ; ldconfig $(INSTALL_LIB) + +install-static : install-header $(STATIC) + @$(CP) $(STATIC) $(INSTALL_LIB) &&\ + chmod 644 $(INSTALL_LIB)/$(STATIC) &&\ + chown root:root $(INSTALL_LIB)/$(STATIC) + +install-header : $(HEADER) + @$(CP) $(HEADER) $(INSTALL_INC) &&\ + chmod 644 $(INSTALL_INC)/$(HEADER) &&\ + chown root:root $(INSTALL_INC)/$(HEADER) + + +## Désinstallation ## + +uninstall : uninstall-dynamic uninstall-static + +uninstall-dynamic : uninstall-header + @$(RM) $(INSTALL_LIB)/$(DYNAMIC) $(INSTALL_LIB)/$(LIB_CIBLE).so + @echo "Reconstruction du cache pour ld.so : ldconfig" ; ldconfig + +uninstall-static : uninstall-header + @$(RM) $(INSTALL_LIB)/$(STATIC) + +uninstall-header : + @$(RM) $(INSTALL_INC)/$(HEADER) + + +## Nettoyage ## + +clean : + @$(RM) *~ *.o *.d + +purge : clean + @$(RM) $(DYNAMIC) *.so $(STATIC) $(PROGS) + + +## Aide ## + +help : + @echo "Bibliothèques nécessaires à la compilation :\n\ + libiw-dev\n\ + \n\ + Cibles possibles :\n\ + all (cible par défaut) : Compile la bibliothèque et le programme d'exemple (tx).\n\ + dynamic : Compile la bibilothèque partagée (.so).\n\ + static : Compile la bibliothèque statique (.a).\n\ + \n\ + install : Installe la bibliothèque partagée et statique.\n\ + install-dynamic : N'installe que la bibliothèque partagée.\n\ + install-static : N'installe que la bibliothèque statique.\n\ + \n\ + uninstall : Désinstalle tout ce qu'il est possible de désinstaller.\n\ + uninstall-dynamic : Désinstalle la bibliothèque partagée.\n\ + uninstall-static : Désinstalle la bibliothèque statique.\n\ + \n\ + clean : Supprime les fichiers temporaires.\n\ + purge : Supprime le résultat de la compilation.\n\ + \n\ + Note : l'installation se fait dans l'arborescence $(PREFIX). Modifiez la variable PREFIX du Makefile pour changer ce comportement." diff --git a/owlps-ardrone/Makefile_drone b/owlps-ardrone/Makefile_drone index 9b73e03..212ae0e 100644 --- a/owlps-ardrone/Makefile_drone +++ b/owlps-ardrone/Makefile_drone @@ -19,17 +19,19 @@ RM=rm -fv CP=cp -v # Cible -TARGET=owlps- +TARGET=owlps-drone HEADER= # Flags +LIBOWLPS_DIR = ../libowlps +LIBOWLPSCLIENT_DIR = ../libowlps-client CFLAGS = -O2 -Wall -Wextra -Wstrict-prototypes -I. DEPFLAGS = -MMD XCFLAGS = $(CFLAGS) $(DEPFLAGS) $(WARN) $(HEADERS) PICFLAG = -fPIC -LOWLPS = -L../../libowlps -lowlps -LOWLPSA = ../../libowlps/libowlps.a -LOWLPSCLIENTA = ../libowlps-client/libowlps-client.a +LOWLPS = -L$(LIBOWLPS_DIR) -lowlps +LOWLPSA = $(LIBOWLPS_DIR)/libowlps.a +LOWLPSCLIENTA = $(LIBOWLPSCLIENT_DIR)/libowlps-client.a LIBS = $(LOWLPSCLIENTA) -liw -lm -lrt DYNAMIC_LIBS = $(LOWLPS) $(LIBS) SEMISTATIC_LIBS = $(LOWLPSA) $(LIBS) @@ -53,7 +55,7 @@ all: semistatic static %: %.o $(CC) $(STRIPFLAGS) $(XCFLAGS) -o $@ $^ $(LDFLAGS) $(DYNAMIC_LIBS) -%-ardrone: %.o +%-drone: %.o $(CC) $(STRIPFLAGS) $(XCFLAGS) -o $@ $^ $(LDFLAGS) $(SEMISTATIC_LIBS) %.static: %.o @@ -80,7 +82,7 @@ clean : @$(RM) -fv *~ *.o *.d purge : clean - @$(RM) -fv $(TARGET) $(TARGET).static $(TARGET)-ardrone + @$(RM) -fv $(TARGET) $(TARGET).static $(TARGET)-drone ## Aide ##