Generate the version number used in the Autotools builds
via a script from the top-level CMakeLists.txt and git
information instead of manual editing.
This script mimics what the avrdude top-level CMakeLists.txt
does for composing AVRDUDE_FULL_VERSION.
Consequently, maintainers do not need to edit the version numbers
in the "src/configure.ac" file's "AC_INIT(...)" line any more.
However, unlike the cmake based builds, this does not print the
commit hash in the "avrdude --help" message or in the "avrdude.conf"
file's "avrdude_conf_version = " line. That will come later.
These are the six build types supported and what avrdude
versions cmake and the autoconf builds actually produce:
cmake autoconf
git clone release 7.2 7.2
git clone non-release 7.2-DATE+HASH 7.2-DATE
git archive release 7.2 7.2
git archive non-release 7.2 7.2
dist tarball release N/A 7.2
dist tarball non-release N/A 7.2-DATE
Sometimes when building with the Autoconf buildsystem,
the avrdude-html/ subdir already exists and therefore
renaming the newly built avrdude/ subdir to avrdude-html/
cannot succeed.
Removing the old avrdude-html/ subdir first fixes that.
- Simplify command to make eesave fusebit delete EEPROM on chip erase
- Replace ${var,,} construct with tr A-Z a-z so older bash shells work
- Make -l work for fuse access tests
$ tools/test-avrdude -h
Syntax: test-avrdude {<opts>}
Function: test AVRDUDE for certain programmer and part combinations
Options:
-c <configuration spec> additional configuration options used for all runs
-d <sec> delay between test commands (default 4 seconds)
-e <avrdude path> set path of AVRDUDE executable (default avrdude)
-l list test commands but do not execute them
-p <programmer/part specs> can be used multiple times, overrides default tests
-s skip EEPROM tests for bootloaders
-v verbose: show AVRDUDE error and warning messages
-? or -h show this help text
Example:
$ test-avrdude -d 0 -p "-c dryrun -p t13" -p "-c dryrun -p m4809"
$ echo | tools/test-avrdude -p"-cdryrun -pm328p" -d0
Testing avrdude version 7.2-20240128 (09345002)
Prepare "-cdryrun -pm328p" and press 'enter' or 'space' to continue. Press any other key to skip
✅ 0.064 s: fuse access: clear, set and read eesave fuse bit
✅ 0.083 s: fuse access: set eesave fusebit to delete EEPROM on chip erase
✅ 0.066 s: chip erase
✅ 0.068 s: flash -U write/verify holes_rjmp_loops_32768B.hex
✅ 0.067 s: flash -T write/verify holes_rjmp_loops_32768B.hex
✅ 0.067 s: eeprom check whether programmer can flip 0s to 1s
✅ 0.067 s: eeprom -U write/verify holes_pack_my_box_1024B.hex
✅ 0.066 s: eeprom -T write/verify holes_{the_five_boxing_wizards,pack_my_box}_1024B.hex
✅ 0.069 s: chip erase and spot check flash is actually erased
✅ 0.067 s: spot check eeprom is erased, too