view buildall.bash @ 449:45feb80a2ad1

Major USB update, fixes most (if not all) known issues USB - General - Refactored descriptors - Enabled/Disable USB endpoints - Added debug flags for special features - Code cleanup - Interface count calculation based off of enabled endpoints - Delayed wTotalLength calculation to simplify descriptor offsets - Re-ordered endpoints and interfaces - Added more debug output - Added usbInitTime to show how long keyboard initialization took (Useful when debugging bad init sequences) - Added function for usb_resume() which takes care of the resume sequence * Resume is now only called if packets are starting to timeout USB - Special Options - Added enableDeviceRestartOnUSBTimeout * A last resort hammer for bad USB Chipsets/OSs, don't use if you can help it * Disabled - Added enableUSBResume * Enables host resume wake-up signalling, required to wake a computer from sleep * Enabled - Added enableUSBLowPowerNegotiation * Enables power negotiation hack * Required to use firmware with an IPad and other hard-limit low-power USB hosts * Hasn't been tested with the recent changes * Disabled - Added enableUSBSuspend * Enables power down events on host USB bus suspend * Enabled USB - Keyboard - Attempted to cleanup HID SET_REPORT * Works much better * Still has an issue under Linux which generates *a lot* of NAKs (initializes quickly regardless) + Not present on other keyboards + SETUP -> OUT -> IN : This sequence is the problem + Specifically during the OUT phase - Enabled USB - CDC Virtual Serial Port - Code cleanup - Added convenience struct USBCDCLineCoding for easier debugging - Attempted to cleanup CDC_SET_LING_CODING * Works much better * Still has an issue under Linux which generates *a lot* of NAKs (initializes quickly regardless) + SETUP -> OUT -> IN : This sequence is the problem + Specifically during the OUT phase + Likely the same issues as HID SET_REPORT - Enabled USB - Mouse - Enabled USB - Joystick - Disabled USB - RawIO - Initial code, API not used yet - Disabled DFU - Updated load script, now faster
author Jacob Alexander <haata@kiibohd.com>
date Tue, 31 May 2016 00:19:45 -0700
parents 47a2714ca802
children
line wrap: on
line source

#!/usr/bin/env bash
###| Builder Script |###
#
# Builds all permutations of modules
# This script is an attempt to maintain module sanity as new ones are added
#
# Fortunately, sweeping API changes don't happen much anymore...but just in case...
#
# Written by Jacob Alexander 2013 for the Kiibohd Controller
# Released into the Public Domain
#
###

## TODO List ##
# - Complete non-Scan module permutations (will take extra work)
# - Add command line arguments
# - Add help flag for usage
# - Make sure the script is being run from the correct directory


main() {
	ERROR="\e[5;1;31mERROR\e[0m:"
	failCount=0

	# Scan for list of Scan Modules
	scanModules=$(ls Scan)

	# Prune out "invalid" modules (parent modules)
	scanModules=${scanModules[@]//matrix/}

	# Create permutation directories
	# Then run cmake, and run each build permutation
	# Keeping track of how many builds failed/passed
	for mod in $scanModules; do
		module=$(tr -dc "[:print:]" <<< "$mod")
		# Create directory, but do not error if it exists already
		mkdir -p build/$module
		cd build/$module

		# Make sure CMake has been run, and attempt to build
		cmake -DScanModuleOverride=$module ../.. && make || let failCount++

		# Cleanup, for the next build
		cd - > /dev/null
	done

	totalModules=$(echo $scanModules | wc -w)
	if (( failCount > 0 )); then
		echo -e "$ERROR $failCount/$totalModules failed"
	else
		echo -e "Build Success!"
	fi
}


#| Main Script Entry
main "$@"


exit 0