[GNHLUG] [DLSLUG-Announce] Makefile from meeting worked!

Lloyd Kvam python at venix.com
Mon Dec 9 08:41:14 EST 2019


(POSTED TO dlslug-discuss TO AID DISCUSSION)]

Yes, this does sound like a good application for make.

https://blog.mindlessness.life/2019/11/17/the-language-agnostic-all-purpose-incredible-makefile.html
This article prompted the discussion of make at the last meeting. I had not known that you
could mix shell commands into the target:dependency part of the Makefile.

He does not us any make automatic variables:
	$^ is list of all dependencies
	$@ is the target
https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html

On Sun, 2019-12-08 at 23:56 -0500, Adam Johnson wrote:
> That's amazing timing.  I was just looking at Make today for the first time
> in many years, then I saw your email.
> 
> I was musing about it as a coach of a First Lego League team that just went
> to States this weekend.
> 
> This year, FIRST allowed non-Lego software, and we decided to take the
> plunge.
> There's an EV3Basic extension to Microsoft SmallBasic that compiles to the
> same RobotBasic output by Lego's Mindstorm EV3-G Labview/Silverlight based
> programming environment produces, so no change to the robot's firmware is
> needed.
> 
> However, SmallBasic is a very small language - no #include or import
> mechanisms in the language.
> 
> Since the teams main programmer had created some very handy re-usable robot
> navigation routines, and we had several laptops and several kids writing
> code for individual mission runs, it was hard to make any updates to the
> library of navigation routines once more than one person had copy/pasted
> the code into the beginning of their mission program.
> 
> all the mission programs get pulled into one master program with a custom
> menu for competition time, but usually that only happens the last week or
> so (this time, the night before) competition, so it's hard to even identify
> any inter-mission transition automation code that might be helpful
> 
> So I was thinking about using Make.  Each mission program could be in it's
> own file, Make would be used to concat the library file and the mission
> code to give the team member a stand-alone program he could send to the
> robot to run during testing, and a master Make file could be used to
> combine all the missions into a Master program more easily as well.
> 
> We have been using an SVN server - with EV3-G that was mostly a file server
> that could pull back previous versions, and make backups on the other
> laptops as other kids did Updates.
> However, now I'm thinking some type of CI system would encourage more
> frequent Commits - if a code commit would build a new master program....
> hmm, gonna have to check if the FLL rules allow high school freshmen after
> all, or my son at least won't have the FLL reason to go down this discovery
> route.
> 
> On Sun, Dec 8, 2019 at 7:57 PM Lloyd Kvam <python at venix.com> wrote:
> 
> > Today, I ran a Fedora update that included a new kernel. The Makefile
> > worked properly!
> > Remember that the indented lines need TAB characters should you copy this
> > from the email.
> > 
> > The Makefile:
> > 
> > .SUFFIXES:
> > .PHONY: all upgrade
> > 
> > all: upgrade .make.grubenv
> > 
> > upgrade:
> >         dnf upgrade
> > 
> > ### dnf bug where a kernel upgrade changes the default boot target
> > ### we need to boot with the Xen hypervisor for the guest OS
> > ###
> > .make.grubenv: /boot/grub2/grubenv
> >         grub2-editenv list
> >         grub2-set-default 'Fedora, with Xen hypervisor'
> >         touch $@
> > 
> > --
> > Lloyd Kvam
> > Venix
> > DLSLUG/GNHLUG library
> > http://dlslug.org/library.html
> > http://www.librarything.com/catalog/dlslug
> > http://www.librarything.com/catalog/dlslug&sort=stamp
> > http://www.librarything.com/rss/recent/dlslug
> > 
> > 
> > 
> > _______________________________________________
> > DLSLUG-Announce mailing list
> > DLSLUG-Announce at dlslug.org
> > https://mail.dlslug.org/mailman/listinfo/dlslug-announce
> > 
-- 
Lloyd Kvam
Venix
DLSLUG/GNHLUG library
http://dlslug.org/library.html
http://www.librarything.com/catalog/dlslug
http://www.librarything.com/catalog/dlslug&sort=stamp
http://www.librarything.com/rss/recent/dlslug



_______________________________________________
DLSLUG-Announce mailing list
DLSLUG-Announce at dlslug.org
https://mail.dlslug.org/mailman/listinfo/dlslug-announce
_______________________________________________
gnhlug-announce mailing list
gnhlug-announce at mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-announce/


More information about the gnhlug-discuss mailing list