--- /dev/null
+# -*- mode: makefile -*-
+#========================================
+# DO NOT DELETE THE LINE BELOW
+_default: default
+# DO NOT DELETE THE LINE_ABOVE
+#========================================
+
+#========================================
+#
+# There are no user configurable options here.
+#
+# All user configurable options are in local.uses
+#
+include ./local.uses
+#
+#========================================
+
+#========================================
+# This is the USB driver for the FTDI2XX chips.
+# It is a "closed" solution from FTDICHIP.COM
+# Some claim it is faster then the open/free
+# solution: win32-libusb+libftdi.
+#
+ftd2xx.download:
+ mkdir -p ${VIRGINS}
+ wget -O ${FTD2XX_ZIPFILE_LOCAL} \
+ ${FTD2XX_ZIPFILE_URL}
+
+ftd2xx.unpack:
+ rm -rf ${FTD2XX_WIN32_DIR}
+ mkdir -p ${FTD2XX_WIN32_DIR}
+ cd ${FTD2XX_WIN32_DIR} && unzip \
+ ${FTD2XX_ZIPFILE_LOCAL}
+
+ftd2xx.build:
+ @echo "Nothing to do for: $@"
+
+ftd2xx.configure:
+ @echo "Nothing to do for: $@"
+
+ftd2xx.install:
+ @echo "Nothing to do for: $@"
+
+clean::
+ rm -rf ${FTD2XX_WIN32_DIR}
+
+ftd2xx.all: ftd2xx.unpack ftd2xx.configure \
+ ftd2xx.build ftd2xx.install
+
+
+#========================================-
+# LIBFTDI - requires LIBCONFUSE..
+# So we handle it here :-(
+
+libconfuse.download:
+ mkdir -p virgins
+ wget -O ${LIBCONFUSE_TARFILE_LOCAL} \
+ ${LIBCONFUSE_TARFILE_URL}
+
+libconfuse.unpack:
+ tar xfz ${LIBCONFUSE_TARFILE_LOCAL}
+
+clean::
+ rm -rf ${LIBCONFUSE_SRC_DIR}
+
+libconfuse.configure:
+ rm -rf ${LIBCONFUSE_BUILD_DIR}
+ mkdir -p ${LIBCONFUSE_BUILD_DIR}
+ cd ${LIBCONFUSE_BUILD_DIR} && \
+ ${LIBCONFUSE_SRC_DIR}/configure \
+ --prefix=${PREFIX}
+
+clean::
+ rm -rf ${LIBCONFUSE_BUILD_DIR}
+
+libconfuse.build:
+ cd ${LIBCONFUSE_BUILD_DIR} && ${MAKE}
+
+libconfuse.install:
+ cd ${LIBCONFUSE_BUILD_DIR} && ${MAKE} install
+
+libconfuse.all: libconfuse.unpack libconfuse.configure \
+ libconfuse.build libconfuse.install
+
+#========================================
+# LIBFTDI - the open source (and free)
+# alternative to (closed) FTD2XX drivers.
+
+libftdi.download:
+ mkdir -p virgins
+ wget -O ${LIBFTDI_TARFILE_LOCAL} \
+ ${LIBFTDI_TARFILE_URL}
+
+libftdi.unpack:
+ tar xfz ${LIBFTDI_TARFILE_LOCAL}
+
+clean::
+ rm -rf ${LIBFTDI_SRC_DIR}
+
+libftdi.configure:
+ rm -rf ${LIBFTDI_BUILD_DIR}
+ mkdir -p ${LIBFTDI_BUILD_DIR}
+ cd ${LIBFTDI_BUILD_DIR} && \
+ ${LIBFTDI_SRC_DIR}/configure \
+ --prefix=${PREFIX}
+
+clean::
+ rm -rf ${LIBFTDI_BUILD_DIR}
+
+libftdi.build:
+ cd ${LIBFTDI_BUILD_DIR} && ${MAKE}
+
+libftdi.install:
+ cd ${LIBFTDI_BUILD_DIR} && ${MAKE} install
+
+libftdi.all: libftdi.unpack libftdi.configure \
+ libftdi.build libftdi.install
+
+#========================================
+# Openocd...
+
+openocd.bootstrap:
+ cd ${OPENOCD_SRC_DIR} && bash ./bootstrap
+
+openocd.configure:
+ rm -rf ${OPENOCD_BUILD_DIR}
+ mkdir -p ${OPENOCD_BUILD_DIR}
+ cd ${OPENOCD_BUILD_DIR} && ${OPENOCD_SRC_DIR}/configure \
+ --prefix=${INSTALL_DIR} \
+ ${OPENOCD_CONFIG_OPTIONS}
+
+openocd.build:
+ cd ${OPENOCD_BUILD_DIR} && ${MAKE}
+
+openocd.docs:
+ cd ${OPENOCD_BUILD_DIR}/docs && ${MAKE}
+
+openocd.docs.pdf:
+ cd ${OPENOCD_BUILD_DIR}/docs && ${MAKE} pdf
+
+openocd.docs.html:
+ cd ${OPENOCD_BUILD_DIR}/docs && ${MAKE} html
+
+# fixme:
+# need to add a "make one huge html file target"
+
+openocd.install:
+ cd ${OPENOCD_BUILD_DIR} && ${MAKE} install
+
+#========================================
+# The world...
+
+# Manual step.
+download.all: \
+ ftd2xx.download \
+ libconfuse.download \
+ libftdi.download
+
+ifeq (x"${FT2232_DRIVER}",x"ftd2xx")
+prebuild: ftd2xx.all
+endif
+
+ifeq (x"${FT2232_DRIVER}",x"libftdi")
+prebuild: libconfuse.all libftdi.all
+endif
+
+remake: \
+ openocd.bootstrap \
+ openocd.configure \
+ openocd.build \
+ openocd.install
+
+initial.build : download.all prebuild remake
+
+all:
+ @echo ""
+ @echo " This makefile does not support an 'all' target"
+ @echo ""
+ @echo " If this is your *FIRST* time building... "
+ @echo " Then use this command: \"make initial.build\""
+ @echo ""
+ @echo " The \"default\" target is for openocd developers"
+ @echo " and rebuilds openocd completely.."
+ @echo ""
+
+default:
+ test -d ${OPENOCD_SRC_DIR} || (echo "Where is: The OPENOCD source?"; exit 1)
+ ${MAKE} remake
+
+whatis_%:
+ @echo ""
+ @echo "Makevariable: $* => ${${*}}"
+ @echo ""
--- /dev/null
+\r
+This makefile is how I Duane Ellis (openocd@duaneellis.com) builds\r
+openocd test purposes on Cygwin. I have included it here so others\r
+might also make use of the same configuration that I use to develop\r
+Openocd.\r
+\r
+--Duane Ellis\r
+\r
+To make use of it do the following:\r
+\r
+(1) Check out openocd in the standard way.\r
+\r
+For example - in cygwin, type this:\r
+\r
+ bash$ mkdir -p /home/duane/test\r
+ bash$ cd /home/duane/test\r
+ bash$ svn co https://svn.berlios.de/svnroot/repos/openocd/trunk openocd\r
+\r
+(2) COPY this folder "right above" where you have OpenOCD.\r
+\r
+ bash$ cd /home/duane/test\r
+ bash$ cp ./openocd/testing/build.test2/* /home/duane/test/.\r
+\r
+(3) OPTIONALLY\r
+\r
+ You might want to review the file "local.uses"\r
+ Change options and so forth at the top of the file.\r
+\r
+(4) Initially, you need to download some additional files.\r
+ These include "libftdi", "libconfuse", and the ftd2xx drivers.\r
+\r
+(5) You also need to build the supporting libraries and install them\r
+ (They are installed "locally" only)\r
+\r
+ Type this command:\r
+\r
+ bash$ cd /home/duane/test\r
+\r
+ bash$ make initial.build\r
+\r
+ which: (1) downloads files\r
+ (2) builds the libs\r
+ (3) builds OpenOCD\r
+\r
+(6) As you hack upon OpenOCD... to rebuild OpenOCD...\r
+ \r
+ bash$ cd /home/duane/test\r
+\r
+ bash$ make remake\r
+\r
+ which: (1) re-bootstraps \r
+ (2) re-configures\r
+ (3) re-builds\r
+ (4) re-installs.\r
+ \r
+=======\r
+**END**\r
+=======\r
+\r
--- /dev/null
+# -*- mode: makefile -*-
+#========================================
+# DO NOT REMOVE THE LINE BELOW
+HERE := $(shell pwd)
+# DO NOT REMOVE THE LINE ABOVE
+#========================================
+
+# These are common CYGWIN build settings.
+# Comment out things you do not want.
+# Or unComment things you want.
+
+# PCs always have printer ports...
+X86_PRINTER_PORT ?= y
+
+# Chose *ONE* of these three solutions.
+#FTD2232_DRIVER = none
+FT2232_DRIVER = ftd2xx
+#FT2232_DRIVER = libftdi
+
+# Do you have "libusb" installed?
+ifeq (x"${FT2232_DRIVER}",x"libftdi")
+# With LIBFTDI... LIBUSB is manditory.
+USE_LIBUSB = y
+endif
+
+# By default... we assume libusb not present.
+USE_LIBUSB ?= n
+
+#========================================
+# DO NOT EDIT SETTINGS BELOW THIS LINE
+#========================================
+
+
+
+#========================================
+# House keeping...
+
+# Solve problems on systems with DASH.. Grrr...
+SHELL=/bin/bash
+export SHELL
+
+VIRGINS ?= ${HERE}/virgins
+INSTALL_DIR ?= $(HERE)/install
+PREFIX ?= ${INSTALL_DIR}
+
+# Determine the build platform.
+BUILD_SYSNAME_Linux =linux
+BUILD_SYSNAME_linux =linux
+BUILD_SYSNAME_CYGWIN_NT =cygwin
+BUILD_SYSNAME_MINGW32_NT =mingw32
+BUILD_SYSNAME_Darwin =darwin
+BUILD_SYSNAME_darwin =darwin
+BUILD_SYSNAME :=$(BUILD_SYSNAME_$(shell uname --sysname | cut -d'-' -f1))
+
+# And machine (ie: i686, x86_64, or what ever)
+BUILD_MACHINE :=$(BUILD_SYSNAME).$(shell uname -m)
+
+
+#========================================
+#
+
+FTD2XX_LINUX_VERSION=0.4.16
+FTD2XX_LINUX_DIR = ${HERE}/libftd2xx${FTD2XX_LINUX_VERSION}
+FTD2XX_LINUX_64_DIR = ${HERE}/libftd2xx${FTD2XX_LINUX_VERSION}_x86_64
+
+
+# Wiggler type interfaces are here.
+OPENOCD_CONFIG_OPTIONS_printer_y += --enable-parport
+OPENOCD_CONFIG_OPTIONS_printer_y += --enable-parport-giveio
+OPENOCD_CONFIG_OPTIONS_printer_y += --enable-gw16012
+OPENOCD_CONFIG_OPTIONS_printer_y += --enable-parport-giveio
+OPENOCD_CONFIG_OPTIONS_printer_y += --enable-amtjtagaccel
+
+
+# FTD2XX only supports these
+OPENOCD_CONFIG_OPTIONS_ft2232_none =
+OPENOCD_CONFIG_OPTIONS_ft2232_ftd2xx = --enable-ft2232_ftd2xx --enable-presto_ftd2xx --with-ftd2xx-win32-zipdir=${FTD2XX_WIN32_DIR}
+OPENOCD_CONFIG_OPTIONS_ft2232_libftdi = --enable-ft2232_libftdi --enable-presto_libftdi
+
+# LIBUSB - adds support for these.
+OPENOCD_CONFIG_OPTIONS_libusb_y += --enable-jlink
+OPENOCD_CONFIG_OPTIONS_libusb_y += --enable-usbprog
+OPENOCD_CONFIG_OPTIONS_libusb_y += --enable-rlink
+OPENOCD_CONFIG_OPTIONS_libusb_y += --enable-vsllink
+OPENOCD_CONFIG_OPTIONS_libusb_y += --enable-usbprog
+
+#========================================
+# EXPLICITY NOT SUPPORTED INTERFACES
+#
+# zy1000.c
+# This is a standalone hardware box
+# it is *NOT* a cygwin thing.
+#
+# at91rm9200.c
+# This is a uC/Linux (or linux) that
+# runs uC/Linux and uses the gpio pins
+# to bit-bang JTAG stuff.
+#
+# ep93xx.c
+# Just like at91rm9200 - different chip.
+
+#========================================
+# Build OPENOCD config options...
+# Always enable "dummy"
+OPENOCD_CONFIG_OPTIONS += --enable-dummy
+#
+# Today: Cannot enable 'oocd_trace' on cygwin.
+# it assumes/uses termios functions like
+# cfmakeraw() which do not exist on cygwin.
+#
+#OPENOCD_CONFIG_OPTIONS += --enable-oocd-trace
+#
+# Add printer options..
+OPENOCD_CONFIG_OPTIONS += ${OPENOCD_CONFIG_OPTIONS_printer_${X86_PRINTER_PORT}}
+
+# Add the FTD2232 based options.
+OPENOCD_CONFIG_OPTIONS += ${OPENOCD_CONFIG_OPTIONS_ft2232_${FT2232_DRIVER}}
+
+# Add LIBUSB based options.
+OPENOCD_CONFIG_OPTIONS += ${OPENOCD_CONFIG_OPTIONS_libusb_${USE_LIBUSB}}
+
+
+#========================================
+# WARNING... the file on the ftdi chip site has a SPACE in the filename GRRR!!!
+# We fix that with the "-O" option to wget.
+FTD2XX_WIN32_VERSION=2.04.14
+FTD2XX_WIN32_DIR = ${HERE}/ftd2xx.win32
+
+FTD2XX_ZIPFILE_LOCAL=${VIRGINS}/cdm.${FTD2XX_WIN32_VERSION}.zip
+# Damn thing has a space in the F-ing filename!
+FTD2XX_ZIPFILE_URL ="http://www.ftdichip.com/Drivers/CDM/CDM ${FTD2XX_WIN32_VERSION}.zip"
+
+
+#========================================
+# LIBCONFUSE - used by LIBFTDI..
+LIBCONFUSE_VERSION=2.5
+LIBCONFUSE_TARFILE_LOCAL=${VIRGINS}/confuse-${LIBCONFUSE_VERSION}.tar.gz
+LIBCONFUSE_TARFILE_URL =http://www.intra2net.com/de/produkte/opensource/ftdi/TGZ/confuse-${LIBCONFUSE_VERSION}.tar.gz
+
+LIBCONFUSE_SRC_DIR =${HERE}/confuse-${LIBCONFUSE_VERSION}
+LIBCONFUSE_BUILD_DIR =${HERE}/confuse-build
+
+
+#========================================
+# LIBFTDI... (which uses libusb, and libconfuse)
+LIBFTDI_VERSION=0.14
+LIBFTDI_TARFILE_LOCAL = ${VIRGINS}/libftdi-${LIBFTDI_VERSION}.tar.gz
+LIBFTDI_TARFILE_URL = http://www.intra2net.com/de/produkte/opensource/ftdi/TGZ/libftdi-${LIBFTDI_VERSION}.tar.gz
+
+LIBFTDI_SRC_DIR = ${HERE}/libftdi-${LIBFTDI_VERSION}
+LIBFTDI_BUILD_DIR= ${HERE}/libftdi-build
+
+#========================================
+# Finally - OpenOCD...
+#
+OPENOCD_BUILD_DIR =${HERE}/openocd-build
+OPENOCD_SRC_DIR =${HERE}/openocd
+
+#========================================
+# END ..
+#========================================