add slam_gmapping

This commit is contained in:
X-lanni
2025-06-06 16:15:07 +08:00
parent 9187b9fb85
commit a7b75c31cb
141 changed files with 15992 additions and 0 deletions
@@ -0,0 +1,80 @@
# Makefile generico per applicazione
#
# Variabili:
# APPS lista delle applicazioni
# OBJS lista degli oggetti
# QOBJS lista degli oggetti QT
# LIBS librerie
#
# Ogni applicazione viene linkata con tutti gli oggetti
export VERBOSE
ifeq ($(LINUX),1)
CPPFLAGS+=-DLINUX
endif
APPLICATIONS= $(foreach a, $(APPS),$(BINDIR)/$(a))
all: $(APPLICATIONS)
PACKAGE=$(notdir $(shell pwd))
.SECONDARY: $(OBJS) $(QOBJS)
.PHONY: all clean copy doc
$(QOBJS): %.o: %.cpp moc_%.cpp
@$(MESSAGE) "Compiling (QT) $@"
@$(PRETTY) "$(CXX) $(CPPFLAGS) $(QT_INCLUDE) $(CXXFLAGS) -c $< -o $@"
moc_%.cpp: %.h
@$(MESSAGE) "Generating MOC $@"
@$(PRETTY) "$(MOC) -i $< -o $@"
# Generazione degli oggetti
%.o: %.cpp
@$(MESSAGE) "Compiling $@"
@$(PRETTY) "$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@"
# Generazione delle applicazioni
$(BINDIR)/%: %.cpp $(OBJS) $(QOBJS)
@$(MESSAGE) "Linking application `basename $@`"
@$(PRETTY) "$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OBJS) $(QOBJS) $< -L$(LIBDIR) $(LIBS) -o $@"
#Regole per la generazione di tabelle o altri file creati automaticamente
table_%.cpp: gen_table_%
@$(MESSAGE) "Generating $@"
@$(PRETTY) "./$< > $@"
gen_table_%: gen_table_%.cpp
@$(MESSAGE) "Generating $@"
@$(PRETTY) "$(CXX) $(CPPFLAGS) $(CXXFLAGS) $< -o $@"
#Regole per la generazione delle dipendenze
OBJDEPS=$(foreach module,$(basename $(OBJS) $(QOBJS)),$(module).d)
$(OBJDEPS): %.d: %.cpp # ci va o no? %.h
@$(MESSAGE) "Generating dependecies $@"
@$(PRETTY) "$(CXX) $(CPPFLAGS) -MM -MG -MF $@ $<"
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(MAKECMDGOALS),copy)
-include $(OBJDEPS)
endif
endif
doc:
rm -rf doc/$(PACKAGE)
ifeq ($(strip $(DOCTITLE)),)
kdoc -L doc -d doc/$(PACKAGE) -n "Package $(PACKAGE) (lib$(PACKAGE).so)" $(HEADERS)
else
kdoc -L doc -d doc/$(PACKAGE) -n "$(DOCTITLE) (lib$(PACKAGE).so)" $(HEADERS)
endif
clean:
@$(MESSAGE) "Cleaning $(PACKAGE)"
@$(PRETTY) "rm -f *.d *.o moc_*.cpp *.d core *~ table_*.cpp gen_table*[^.][^c][^p][^p] $(APPLICATIONS)"
@$(PRETTY) "rm -rf doc/$(PACKAGE)"
copy: clean
tar -C .. -cvzf `date +../$(PACKAGE)-%d%b%y.tgz` $(PACKAGE)
@@ -0,0 +1,109 @@
# Makefile generico per shared object
export VERBOSE
export CXX
# Nome del package
PACKAGE=$(notdir $(shell pwd))
# Libreria da generare:
# Se non si setta la variabile LIBNAME la libreria si chiama
# come la directory
ifndef LIBNAME
LIBNAME=$(PACKAGE)
endif
ifeq ($(MACOSX),1)
SONAME=$(LIBDIR)/lib$(LIBNAME).dylib
endif
ifeq ($(LINUX),1)
SONAME=$(LIBDIR)/lib$(LIBNAME).so
endif
APPLICATIONS= $(foreach a, $(APPS),$(BINDIR)/$(a))
INSTALL_SCRIPTS=$(foreach a, $(SCRIPTS),$(BINDIR)/$(a))
all: $(SONAME) $(APPLICATIONS) $(INSTALL_SCRIPTS)
.SECONDARY: $(OBJS) $(COBJS)
.PHONY: all clean copy doc
# Generazione della libreria
$(SONAME): $(OBJS) $(COBJS)
@$(MESSAGE) "Creating library lib$(LIBNAME).so"
ifeq ($(MACOSX),1)
@$(PRETTY) "$(CXX) $(LDFLAGS) -dynamiclib $(OBJS) $(COBJS) -L$(LIBDIR) $(LIBS) -install_name $@ -o $@"
endif
ifeq ($(LINUX),1)
@$(PRETTY) "$(CXX) -fPIC -shared $(OBJS) $(COBJS) -L $(LIBDIR) $(LIBS) $(LDFLAGS) -o $@"
@if ! $(PRETTY) "$(TESTLIB) $(SONAME)"; then $(MESSAGE) "Testing of $(SONAME) failed."; rm $(SONAME); exit 1; fi;
endif
# Generazione delle applicazioni
$(BINDIR)/%: %.o $(SONAME)
@$(MESSAGE) "Linking application `basename "$@"`"
@$(PRETTY) "$(CXX) $< -l$(LIBNAME) $(LDFLAGS) -L$(LIBDIR) $(LIBS) -o $@"
#Generazione dei moc files
moc_%.cpp: %.h
@$(MESSAGE) "Compiling MOC $@"
@$(PRETTY) "$(MOC) -i $< -o $@"
# Generazione degli oggetti
%.o: %.cpp
@$(MESSAGE) "Compiling $<"
@$(PRETTY) "$(CXX) -fPIC $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@"
%.o: %.c
@$(MESSAGE) "Compiling $<"
@$(PRETTY) "$(CC) -fPIC $(CPPFLAGS) $(CFLAGS) -c $< -o $@"
#Regole per la generazione delle dipendenze
OBJDEPS= $(foreach module,$(basename $(OBJS)),$(module).d) $(foreach a, $(APPS),$(a).d)
COBJDEPS=$(foreach module,$(basename $(COBJS)),$(module).d)
$(OBJDEPS): %.d: %.cpp
@$(MESSAGE) "Generating dependencies for $<"
@$(PRETTY) "$(CXX) $(CPPFLAGS) -MM -MG $< -MF $@"
$(COBJDEPS): %.d: %.c
@$(MESSAGE) "Generating dependencies for $<"
@$(PRETTY) "$(CC) $(CPPFLAGS) -MM -MG $< -MF $@"
#HEADERS=`ls *.h`
#PRECOMPILED_HEADERS=$(foreach file,$(basename $(HEADERS)), $(file).pch)
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(MAKECMDGOALS),copy)
ifneq ($(MAKECMDGOALS),dep)
-include $(OBJDEPS) $(COBJDEPS)
endif
endif
endif
dep: $(OBJDEPS) $(COBJDEPS)
# GLi script vengono semplicemente copiati
$(BINDIR)/%.sh: %.sh
@$(MESSAGE) "Installing script `basename "$@"`"
@$(PRETTY) "cp $< $@"
@$(PRETTY) "chmod +x $@"
#doc:
# rm -rf doc/$(PACKAGE)
#ifeq ($(strip $(DOCTITLE)),)
# kdoc -L doc -d doc/$(PACKAGE) -n "Package $(PACKAGE) (lib$(PACKAGE).so)" $(HEADERS)
#else
# kdoc -L doc -d doc/$(PACKAGE) -n "$(DOCTITLE) (lib$(PACKAGE).so)" $(HEADERS)
#endif
clean:
@$(MESSAGE) "Cleaning $(PACKAGE)"
@$(PRETTY) "rm -f $(SONAME) $(APPLICATIONS)"
@$(PRETTY) "rm -f *.o *.d core *~ moc_*.cpp"
copy: clean
tar -C .. -cvzf `date +../$(PACKAGE)-%d%b%y.tgz` $(PACKAGE)
@@ -0,0 +1,16 @@
export VERBOSE
.PHONY: clean, all
ifeq ($(VERBOSE), 0)
QUIET=--no-print-directory
endif
all:
@for subdir in $(SUBDIRS); do $(MESSAGE) "Entering $$subdir."; if ! $(MAKE) $(QUIET) -C $$subdir; then $(MESSAGE) "Compilation in $$subdir failed."; exit 1; fi; done
clean:
@for subdir in $(SUBDIRS); do $(MESSAGE) "Entering $$subdir."; $(MAKE) $(QUIET) -C $$subdir clean; done
dep:
@for subdir in $(SUBDIRS); do $(MESSAGE) "Entering $$subdir."; $(MAKE) $(QUIET) -C $$subdir dep; done
@@ -0,0 +1,16 @@
#!/bin/tcsh
echo decompressing file $1
set FILELIST=`ar -t $1`
echo "Object files:"
foreach i ($FILELIST)
echo $i
end
echo generating $1:r.so
ar -x $1
ld -shared -o $1:r.so $FILELIST
rm $FILELIST
+14
View File
@@ -0,0 +1,14 @@
#!/bin/sh
#echo "message: verbose = $VERBOSE"
if ($VERBOSE)
then
exit 0;
fi
a=$MAKELEVEL
while ((0<$a)); do echo -n " "; let "a = $a - 1";done
echo $1
@@ -0,0 +1,26 @@
#!/bin/sh
#echo "pretty: verbose = $VERBOSE"
if ($VERBOSE)
then
echo $1;
if ! eval $1
then
echo "Failed command was:"
echo $1
echo "in directory " `pwd`
exit 1
fi
else
if ! eval $1
then
echo "Failed command was:"
echo $1
echo "in directory " `pwd`
exit 1
fi
fi
exit 0
+26
View File
@@ -0,0 +1,26 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "Syntax: rtestlib <library>"
exit 1
fi
exit 0
FNAME=`mktemp rtestlibXXXXXX`
echo "int main() { return 0; }" > $FNAME.cpp
g++ $1 $FNAME.cpp -o $FNAME
result=$?
rm -f $FNAME.cpp $FNAME
exit $result
#if g++ $1 $FNAME.cpp -o $FNAME
#then#
# rm -f $FNAME.cpp $FNAME
# exit 1
#else
# rm -f $FNAME.cpp $FNAME
# exit 0
#fi