diff --git a/software/monitor/monitor/MonitorUI.cs b/software/monitor/monitor/MonitorUI.cs index f2f43e0..2df60a2 100644 --- a/software/monitor/monitor/MonitorUI.cs +++ b/software/monitor/monitor/MonitorUI.cs @@ -46,7 +46,7 @@ public partial class MainWindow : Gtk.Window /// /// Position used for displaying position /// - private DestijlCommandManager.Position position=new DestijlCommandManager.Position(); + //private DestijlCommandManager.Position position=new DestijlCommandManager.Position(); /// /// List of availble state for the application @@ -662,6 +662,7 @@ public partial class MainWindow : Gtk.Window /// /// Sender object /// Event + /// protected void OnButtonAskArenaClicked(object sender, EventArgs e) { // Send command to server for arean rendering diff --git a/software/monitor/monitor/gtk-gui/MainWindow.cs b/software/monitor/monitor/gtk-gui/MainWindow.cs index 466b549..781a8b2 100644 --- a/software/monitor/monitor/gtk-gui/MainWindow.cs +++ b/software/monitor/monitor/gtk-gui/MainWindow.cs @@ -530,92 +530,91 @@ public partial class MainWindow this.table4.ColumnSpacing = ((uint)(6)); // Container child table4.Gtk.Table+TableChild this.buttonDown = new global::Gtk.Button(); - global::Gtk.Tooltips w40 = new Gtk.Tooltips(); - w40.SetTip(this.buttonDown, "Move robot backward", "Move robot backward"); + this.buttonDown.TooltipMarkup = "Move robot backward"; this.buttonDown.CanFocus = true; this.buttonDown.Name = "buttonDown"; this.buttonDown.UseUnderline = true; - global::Gtk.Image w41 = new global::Gtk.Image(); - w41.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-down-symbolic.symbolic.png"); - this.buttonDown.Image = w41; + global::Gtk.Image w40 = new global::Gtk.Image(); + w40.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-down-symbolic.symbolic.png"); + this.buttonDown.Image = w40; this.table4.Add(this.buttonDown); - global::Gtk.Table.TableChild w42 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonDown])); - w42.TopAttach = ((uint)(2)); - w42.BottomAttach = ((uint)(3)); - w42.LeftAttach = ((uint)(1)); - w42.RightAttach = ((uint)(2)); - w42.XOptions = ((global::Gtk.AttachOptions)(4)); - w42.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w41 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonDown])); + w41.TopAttach = ((uint)(2)); + w41.BottomAttach = ((uint)(3)); + w41.LeftAttach = ((uint)(1)); + w41.RightAttach = ((uint)(2)); + w41.XOptions = ((global::Gtk.AttachOptions)(4)); + w41.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table4.Gtk.Table+TableChild this.buttonForward = new global::Gtk.Button(); - w40.SetTip(this.buttonForward, "Move robot forward", "Move robot forward"); + this.buttonForward.TooltipMarkup = "Move robot forward"; this.buttonForward.CanFocus = true; this.buttonForward.Name = "buttonForward"; this.buttonForward.UseUnderline = true; - global::Gtk.Image w43 = new global::Gtk.Image(); - w43.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-up-symbolic.symbolic.png"); - this.buttonForward.Image = w43; + global::Gtk.Image w42 = new global::Gtk.Image(); + w42.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-up-symbolic.symbolic.png"); + this.buttonForward.Image = w42; this.table4.Add(this.buttonForward); - global::Gtk.Table.TableChild w44 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonForward])); - w44.LeftAttach = ((uint)(1)); - w44.RightAttach = ((uint)(2)); - w44.XOptions = ((global::Gtk.AttachOptions)(4)); - w44.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w43 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonForward])); + w43.LeftAttach = ((uint)(1)); + w43.RightAttach = ((uint)(2)); + w43.XOptions = ((global::Gtk.AttachOptions)(4)); + w43.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table4.Gtk.Table+TableChild this.buttonLeft = new global::Gtk.Button(); - w40.SetTip(this.buttonLeft, "Turn robot to the left", "Turn robot to the left"); + this.buttonLeft.TooltipMarkup = "Turn robot to the left"; this.buttonLeft.CanFocus = true; this.buttonLeft.Name = "buttonLeft"; this.buttonLeft.UseUnderline = true; - global::Gtk.Image w45 = new global::Gtk.Image(); - w45.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-start-symbolic.symbolic.png"); - this.buttonLeft.Image = w45; + global::Gtk.Image w44 = new global::Gtk.Image(); + w44.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-start-symbolic.symbolic.png"); + this.buttonLeft.Image = w44; this.table4.Add(this.buttonLeft); - global::Gtk.Table.TableChild w46 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonLeft])); - w46.TopAttach = ((uint)(1)); - w46.BottomAttach = ((uint)(2)); - w46.XOptions = ((global::Gtk.AttachOptions)(4)); - w46.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w45 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonLeft])); + w45.TopAttach = ((uint)(1)); + w45.BottomAttach = ((uint)(2)); + w45.XOptions = ((global::Gtk.AttachOptions)(4)); + w45.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table4.Gtk.Table+TableChild this.buttonRight = new global::Gtk.Button(); - w40.SetTip(this.buttonRight, "Turn robot to the right", "Turn robot to the right"); + this.buttonRight.TooltipMarkup = "Turn robot to the right"; this.buttonRight.CanFocus = true; this.buttonRight.Name = "buttonRight"; this.buttonRight.UseUnderline = true; - global::Gtk.Image w47 = new global::Gtk.Image(); - w47.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-end-symbolic.symbolic.png"); - this.buttonRight.Image = w47; + global::Gtk.Image w46 = new global::Gtk.Image(); + w46.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-end-symbolic.symbolic.png"); + this.buttonRight.Image = w46; this.table4.Add(this.buttonRight); - global::Gtk.Table.TableChild w48 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonRight])); - w48.TopAttach = ((uint)(1)); - w48.BottomAttach = ((uint)(2)); - w48.LeftAttach = ((uint)(2)); - w48.RightAttach = ((uint)(3)); - w48.XOptions = ((global::Gtk.AttachOptions)(4)); - w48.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w47 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonRight])); + w47.TopAttach = ((uint)(1)); + w47.BottomAttach = ((uint)(2)); + w47.LeftAttach = ((uint)(2)); + w47.RightAttach = ((uint)(3)); + w47.XOptions = ((global::Gtk.AttachOptions)(4)); + w47.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table4.Gtk.Table+TableChild this.buttonStop = new global::Gtk.Button(); - w40.SetTip(this.buttonStop, "Stop robot movements", "Stop robot movements"); + this.buttonStop.TooltipMarkup = "Stop robot movements"; this.buttonStop.CanFocus = true; this.buttonStop.Name = "buttonStop"; this.buttonStop.UseUnderline = true; - global::Gtk.Image w49 = new global::Gtk.Image(); - w49.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.hand-filled-32.png"); - this.buttonStop.Image = w49; + global::Gtk.Image w48 = new global::Gtk.Image(); + w48.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.hand-filled-32.png"); + this.buttonStop.Image = w48; this.table4.Add(this.buttonStop); - global::Gtk.Table.TableChild w50 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonStop])); - w50.TopAttach = ((uint)(1)); - w50.BottomAttach = ((uint)(2)); - w50.LeftAttach = ((uint)(1)); - w50.RightAttach = ((uint)(2)); - w50.XOptions = ((global::Gtk.AttachOptions)(4)); - w50.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w49 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonStop])); + w49.TopAttach = ((uint)(1)); + w49.BottomAttach = ((uint)(2)); + w49.LeftAttach = ((uint)(1)); + w49.RightAttach = ((uint)(2)); + w49.XOptions = ((global::Gtk.AttachOptions)(4)); + w49.YOptions = ((global::Gtk.AttachOptions)(4)); this.alignment8.Add(this.table4); this.vbox9.Add(this.alignment8); - global::Gtk.Box.BoxChild w52 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.alignment8])); - w52.Position = 0; - w52.Expand = false; - w52.Fill = false; + global::Gtk.Box.BoxChild w51 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.alignment8])); + w51.Position = 0; + w51.Expand = false; + w51.Fill = false; // Container child vbox9.Gtk.Box+BoxChild this.table3 = new global::Gtk.Table(((uint)(1)), ((uint)(2)), false); this.table3.Name = "table3"; @@ -628,10 +627,10 @@ public partial class MainWindow this.label3.LabelProp = global::Mono.Unix.Catalog.GetString("Battery level:"); this.label3.Justify = ((global::Gtk.Justification)(1)); this.table3.Add(this.label3); - global::Gtk.Table.TableChild w53 = ((global::Gtk.Table.TableChild)(this.table3[this.label3])); - w53.YPadding = ((uint)(10)); - w53.XOptions = ((global::Gtk.AttachOptions)(4)); - w53.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w52 = ((global::Gtk.Table.TableChild)(this.table3[this.label3])); + w52.YPadding = ((uint)(10)); + w52.XOptions = ((global::Gtk.AttachOptions)(4)); + w52.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table3.Gtk.Table+TableChild this.labelBatteryLevel = new global::Gtk.Label(); this.labelBatteryLevel.Name = "labelBatteryLevel"; @@ -639,49 +638,48 @@ public partial class MainWindow this.labelBatteryLevel.Xalign = 0F; this.labelBatteryLevel.LabelProp = global::Mono.Unix.Catalog.GetString("Unknown"); this.table3.Add(this.labelBatteryLevel); - global::Gtk.Table.TableChild w54 = ((global::Gtk.Table.TableChild)(this.table3[this.labelBatteryLevel])); - w54.LeftAttach = ((uint)(1)); - w54.RightAttach = ((uint)(2)); - w54.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w53 = ((global::Gtk.Table.TableChild)(this.table3[this.labelBatteryLevel])); + w53.LeftAttach = ((uint)(1)); + w53.RightAttach = ((uint)(2)); + w53.YOptions = ((global::Gtk.AttachOptions)(4)); this.vbox9.Add(this.table3); - global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.table3])); - w55.Position = 2; - w55.Expand = false; - w55.Fill = false; + global::Gtk.Box.BoxChild w54 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.table3])); + w54.Position = 2; + w54.Expand = false; + w54.Fill = false; // Container child vbox9.Gtk.Box+BoxChild this.checkButtonGetBattery = new global::Gtk.CheckButton(); this.checkButtonGetBattery.CanFocus = true; this.checkButtonGetBattery.Name = "checkButtonGetBattery"; this.checkButtonGetBattery.Label = global::Mono.Unix.Catalog.GetString("Get battery level"); - this.checkButtonGetBattery.Active = true; this.checkButtonGetBattery.DrawIndicator = true; this.checkButtonGetBattery.UseUnderline = true; this.vbox9.Add(this.checkButtonGetBattery); - global::Gtk.Box.BoxChild w56 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.checkButtonGetBattery])); - w56.Position = 3; - w56.Expand = false; - w56.Fill = false; + global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.checkButtonGetBattery])); + w55.Position = 3; + w55.Expand = false; + w55.Fill = false; this.gtkAlignmentRobotControl.Add(this.vbox9); this.vbox12.Add(this.gtkAlignmentRobotControl); - global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl])); - w58.Position = 1; + global::Gtk.Box.BoxChild w57 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl])); + w57.Position = 1; this.vbox5.Add(this.vbox12); - global::Gtk.Box.BoxChild w59 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12])); - w59.Position = 4; + global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12])); + w58.Position = 4; this.alignment3.Add(this.vbox5); this.hbox3.Add(this.alignment3); - global::Gtk.Box.BoxChild w61 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3])); + global::Gtk.Box.BoxChild w60 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3])); + w60.Position = 1; + w60.Expand = false; + w60.Fill = false; + this.hbox1.Add(this.hbox3); + global::Gtk.Box.BoxChild w61 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3])); w61.Position = 1; w61.Expand = false; w61.Fill = false; - this.hbox1.Add(this.hbox3); - global::Gtk.Box.BoxChild w62 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3])); - w62.Position = 1; - w62.Expand = false; - w62.Fill = false; this.vbox1.Add(this.hbox1); - global::Gtk.Box.BoxChild w63 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); - w63.Position = 1; + global::Gtk.Box.BoxChild w62 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); + w62.Position = 1; this.Add(this.vbox1); if ((this.Child != null)) { diff --git a/software/monitor/monitor/gtk-gui/gui.stetic b/software/monitor/monitor/gtk-gui/gui.stetic index 25d7433..c5412f8 100644 --- a/software/monitor/monitor/gtk-gui/gui.stetic +++ b/software/monitor/monitor/gtk-gui/gui.stetic @@ -2,10 +2,11 @@ .. + 2.12 - + diff --git a/software/monitor/monitor/monitor b/software/monitor/monitor/monitor index 918885c..8fe2621 100755 Binary files a/software/monitor/monitor/monitor and b/software/monitor/monitor/monitor differ diff --git a/software/monitor/monitor/monitor.csproj b/software/monitor/monitor/monitor.csproj index 7a8ee15..91f5ba0 100644 --- a/software/monitor/monitor/monitor.csproj +++ b/software/monitor/monitor/monitor.csproj @@ -7,7 +7,7 @@ WinExe monitor monitor - v4.6.1 + v4.5 true @@ -38,26 +38,16 @@ - - False - - - False - - - False - - - False - - - False - - - False - + + + + + + + + diff --git a/software/pi@10.105.0.11 b/software/pi@10.105.0.11 new file mode 100755 index 0000000..1ca04eb --- /dev/null +++ b/software/pi@10.105.0.11 @@ -0,0 +1,105 @@ +#!/bin/bash + +###################################### +# INSTALL OPENCV ON UBUNTU OR DEBIAN # +###################################### + +# | THIS SCRIPT IS TESTED CORRECTLY ON | +# |------------------------------------------------------| +# | OS | OpenCV | Test | Last test | +# |------------------|--------------|------|-------------| +# | Ubuntu 18.04 LTS | OpenCV 3.4.2 | OK | 18 Jul 2018 | +# | Debian 9.5 | OpenCV 3.4.2 | OK | 18 Jul 2018 | +# |----------------------------------------------------- | +# | Debian 9.0 | OpenCV 3.2.0 | OK | 25 Jun 2017 | +# | Debian 8.8 | OpenCV 3.2.0 | OK | 20 May 2017 | +# | Ubuntu 16.04 LTS | OpenCV 3.2.0 | OK | 20 May 2017 | + + +# VERSION TO BE INSTALLED + +OPENCV_VERSION='3.4.2' + +mkdir opencv +cd opencv +# 1. KEEP UBUNTU OR DEBIAN UP TO DATE + +sudo apt-get -y update +# sudo apt-get -y upgrade # Uncomment this line to install the newest versions of all packages currently installed +# sudo apt-get -y dist-upgrade # Uncomment this line to, in addition to 'upgrade', handles changing dependencies with new versions of packages +# sudo apt-get -y autoremove # Uncomment this line to remove packages that are now no longer needed + + +# 2. INSTALL THE DEPENDENCIES + +# Build tools: +sudo apt-get install -y build-essential cmake + +# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake): +#sudo apt-get install -y qt5-default libvtk6-dev +sudo apt-get install -y libgtkglext1-dev + +# Media I/O: +sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev + +# Video I/O: +sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev + +# Parallelism and linear algebra libraries: +sudo apt-get install -y libtbb-dev libeigen3-dev + +# Python: +sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy + +# Java: +sudo apt-get install -y ant default-jdk + +# Documentation: +sudo apt-get install -y doxygen + + +# 3. INSTALL THE LIBRARY + +sudo apt-get install -y unzip wget +wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip + +unzip ${OPENCV_VERSION}.zip +rm ${OPENCV_VERSION}.zip +mv opencv-${OPENCV_VERSION} OpenCV + +# 3.5 Add Aruco +# Get opencv_contrib from github +# Copy aruco directory from /modules to /modules +wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip +mv ${OPENCV_VERSION}.zip opencv_contrib-${OPENCV_VERSION}.zip +unzip opencv_contrib-${OPENCV_VERSION}.zip + +cd OpenCV +mkdir build +cd build +# cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=OFF .. +cmake -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=ON -D INSTALL_C_EXAMPLES=ON -D BUILD_JAVA=OFF -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${OPENCV_VERSION}/modules -DBUILD_aruco=ON .. +make -j5 +sudo make install +sudo ldconfig + +# 4. Compile raspicam +cd ~ +cd opencv + +wget https://sourceforge.net/projects/raspicam/files/latest/raspicam.zip +unzip raspicam.zip +cd raspicam-0.1.6 + +mkdir build +cd build +cmake .. + +make -j5 +sudo make install +sudo ldconfig + + +# 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION + +# To complete this step, please visit 'http://milq.github.io/install-opencv-ubuntu-debian'. diff --git a/software/raspberry/superviseur-robot/.gitignore b/software/raspberry/superviseur-robot/.gitignore index 9ae7fc1..7006211 100644 --- a/software/raspberry/superviseur-robot/.gitignore +++ b/software/raspberry/superviseur-robot/.gitignore @@ -4,7 +4,6 @@ cmake-build-debug/ futur/ CMakeFiles/ -Makefile *.cmake CMakeCache.txt diff --git a/software/raspberry/superviseur-robot/Makefile b/software/raspberry/superviseur-robot/Makefile new file mode 100644 index 0000000..05de621 --- /dev/null +++ b/software/raspberry/superviseur-robot/Makefile @@ -0,0 +1,128 @@ +# +# There exist several targets which are by default empty and which can be +# used for execution of your targets. These targets are usually executed +# before and after some main targets. They are: +# +# .build-pre: called before 'build' target +# .build-post: called after 'build' target +# .clean-pre: called before 'clean' target +# .clean-post: called after 'clean' target +# .clobber-pre: called before 'clobber' target +# .clobber-post: called after 'clobber' target +# .all-pre: called before 'all' target +# .all-post: called after 'all' target +# .help-pre: called before 'help' target +# .help-post: called after 'help' target +# +# Targets beginning with '.' are not intended to be called on their own. +# +# Main targets can be executed directly, and they are: +# +# build build a specific configuration +# clean remove built files from a configuration +# clobber remove all built files +# all build all configurations +# help print help mesage +# +# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and +# .help-impl are implemented in nbproject/makefile-impl.mk. +# +# Available make variables: +# +# CND_BASEDIR base directory for relative paths +# CND_DISTDIR default top distribution directory (build artifacts) +# CND_BUILDDIR default top build directory (object files, ...) +# CONF name of current configuration +# CND_PLATFORM_${CONF} platform name (current configuration) +# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration) +# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration) +# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration) +# CND_PACKAGE_DIR_${CONF} directory of package (current configuration) +# CND_PACKAGE_NAME_${CONF} name of package (current configuration) +# CND_PACKAGE_PATH_${CONF} path to package (current configuration) +# +# NOCDDL + + +# Environment +MKDIR=mkdir +CP=cp +CCADMIN=CCadmin + + +# build +build: .build-post + +.build-pre: +# Add your pre 'build' code here... + +.build-post: .build-impl +# Add your post 'build' code here... + + +# clean +clean: .clean-post + +.clean-pre: +# Add your pre 'clean' code here... + +.clean-post: .clean-impl +# Add your post 'clean' code here... + + +# clobber +clobber: .clobber-post + +.clobber-pre: +# Add your pre 'clobber' code here... + +.clobber-post: .clobber-impl +# Add your post 'clobber' code here... + + +# all +all: .all-post + +.all-pre: +# Add your pre 'all' code here... + +.all-post: .all-impl +# Add your post 'all' code here... + + +# build tests +build-tests: .build-tests-post + +.build-tests-pre: +# Add your pre 'build-tests' code here... + +.build-tests-post: .build-tests-impl +# Add your post 'build-tests' code here... + + +# run tests +test: .test-post + +.test-pre: build-tests +# Add your pre 'test' code here... + +.test-post: .test-impl +# Add your post 'test' code here... + + +# help +help: .help-post + +.help-pre: +# Add your pre 'help' code here... + +.help-post: .help-impl +# Add your post 'help' code here... + + + +# include project implementation makefile +include nbproject/Makefile-impl.mk + +# include project make variables +include nbproject/Makefile-variables.mk