summaryrefslogtreecommitdiff
path: root/testing/build.test1/Makefile.openocd
diff options
context:
space:
mode:
Diffstat (limited to 'testing/build.test1/Makefile.openocd')
-rwxr-xr-xtesting/build.test1/Makefile.openocd193
1 files changed, 193 insertions, 0 deletions
diff --git a/testing/build.test1/Makefile.openocd b/testing/build.test1/Makefile.openocd
new file mode 100755
index 00000000..dbe8ac10
--- /dev/null
+++ b/testing/build.test1/Makefile.openocd
@@ -0,0 +1,193 @@
+# -*- mode: makefile -*-
+#
+default: _complain_
+
+include ./local.uses
+
+
+SRC_DIR ?= $(HERE)/openocd
+BUILD_SUFFIX ?= $(BUILD_MACHINE)
+BUILD_DIR =$(HERE)/openocd.$(BUILD_SUFFIX)
+
+checkout:
+ svn co https://svn.berlios.de/svnroot/repos/openocd/trunk openocd
+
+remove.install:
+ rm -rf ${INSTALL_DIR}
+
+#========================================
+# Win32 Build Permutations
+# none
+# parport
+# ftd2xx - (ftdichip)
+# libftd
+CONFIG_OPTIONS_win32_none =
+CONFIG_OPTIONS_win32_parport = --enable-parport
+CONFIG_OPTIONS_win32_ftd2xx = --enable-parport --enable-ft2232_ftd2xx --with-ftd2xx-win32-zipdir=$(FTD2XX_WIN32_DIR)
+
+CYGWIN_EASY_PERMUTATIONS += none
+CYGWIN_EASY_PERMUTATIONS += parport
+CYGWIN_EASY_PERMUTATIONS += ftd2xx
+
+MINGW32_EASY_PERMUTATIONS += none
+MINGW32_EASY_PERMUTATIONS += parport
+MINGW32_EASY_PERMUTATIONS += ftd2xx
+
+
+# This is not a possible permutation, it is manual :-(
+# Why? Because "libftdi" installs things into install/include
+# which would efect the 'ftd2xx' win32 build
+CONFIG_OPTIONS_win32_libftdi = --enable-parport --enable-ft2232_libftdi
+
+# Default build for win32... is the ftd2xx type build.
+PERMUTE_win32 ?= $(BUILD_SYSNAME)_ftd2xx
+CONFIG_OPTIONS_win32 ?= $(CONFIG_OPTIONS_win32_$(PERMUTE_win32))
+CONFIG_OPTIONS_cygwin = $(CONFIG_OPTIONS_win32)
+CONFIG_OPTIONS_mingw32 = $(CONFIG_OPTIONS_win32)
+
+#========================================
+# Linux Build Permuatations
+# none
+# parport
+# ft2232_ftd2xx
+# ft2232_libftdi
+CONFIG_OPTIONS_linux_none =
+LINUX_EASY_PERMUTATIONS += none
+
+CONFIG_OPTIONS_linux_parport = --enable-parport
+LINUX_EASY_PERMUTATIONS += parport
+
+CONFIG_OPTIONS_linux_ft2232_libftdi = --enable-parport --enable-ft2232-libftdi
+#this cannot be done as part of the permutations.
+#LINUX_EASY_PERMUTATIONS += ft2232_libftdi
+
+CONFIG_OPTIONS_linux_ft2232_ftd2xx_static = \
+ --enable-parport \
+ --enable-ft2232-ftd2xx --with-ftd2xx-lib=static --with-ftd2xx-linux-tardir=$(FTD2XX_LINUX_DIR)
+LINUX_EASY_PERMUTATIONS += ft2232_ftd2xx_static
+
+# this is not a possible permutation it is manual :-(
+# why? because it interfers with the other permutations
+# by "installing files" in the $(INSTALL_DIR)
+CONFIG_OPTIONS_linux_ftd2xx_installed = \
+ --enable-parport \
+ --enable-ft2232-ftd2xx \
+ --with-ftd2xx-lib=shared
+
+# The default build permutation is
+PERMUTE_linux ?= ft2232_ftd2xx_static
+CONFIG_OPTIONS_linux = $(CONFIG_OPTIONS_linux_$(PERMUTE_linux))
+
+CONFIG_OPTIONS_darwin=\
+ --enable-ftd2232-libftdi
+
+# Which build are we doing?
+CONFIG_OPTIONS := $(CONFIG_OPTIONS_$(BUILD_SYSNAME))
+
+bootstrap:
+ cd $(SRC_DIR) && bash ./bootstrap
+
+clean::
+ rm -rf $(BUILD_DIR)
+
+ifndef CFLAGS
+_CFLAGS=true
+else
+_CFLAGS=export CFLAGS="${CFLAGS}"
+endif
+
+
+# if this was given... then pass it on
+configure:
+ @echo " Build Sysname: $(BUILD_SYSNAME)"
+ @echo " Config Options: $(CONFIG_OPTIONS)"
+ rm -rf $(BUILD_DIR)
+ mkdir $(BUILD_DIR)
+ ${_CFLAGS} && \
+ cd $(BUILD_DIR) && \
+ $(SRC_DIR)/configure \
+ --prefix=$(PREFIX) \
+ --exec-prefix=$(EXEC_PREFIX) \
+ $(CONFIG_OPTIONS)
+
+build:
+ cd $(BUILD_DIR) && $(MAKE)
+
+install:
+ cd $(BUILD_DIR) && $(MAKE) install
+
+all: configure build install
+
+.PHONY: install
+
+# The "cygwin.libftdi" requires that libftdi be built
+# and installed *PRIOR* to running this target.
+# it is not part of the permutations because ...
+# it interfers with the ftd2xx based builds
+cygwin.libftdi:
+ $(MAKE) -f Makefile.openocd bootstrap
+ $(MAKE) BUILD_SUFFIX=$@ PERMUTE_win32=libftdi -f Makefile.openocd all
+
+cygwin.easy.permutations: remove.install ${CYGWIN_EASY_PERMUTATIONS:%=_cygwin.%}
+
+_cygwin.%:
+ @echo ""
+ @echo ""
+ @echo "========================================"
+ @echo "Permutation Build... $@"
+ @echo "========================================"
+ @echo ""
+ @echo ""
+ $(MAKE) PERMUTE_win32=$* BUILD_SUFFIX=cygwin.$* -f Makefile.openocd all
+ $(EXEC_PREFIX)/bin/openocd -v
+
+mingw32.easy.permutations: remove.install ${MINGW32_EASY_PERMUTATIONS:%=_mingw32.%}
+
+# I (duane) build openocd-mingw32 via Cygwin.
+# Sadly, the "mingw32" buid for cygwin does not include
+# the required "elf.h" header files... so ...
+# we have them in our own private helper place.
+_mingw32.%:
+ @echo ""
+ @echo ""
+ @echo "========================================"
+ @echo "Permutation Build... $@"
+ @echo "========================================"
+ @echo ""
+ @echo ""
+ CFLAGS="-mno-cygwin -I$(HERE)/mingw32_help/include" \
+ $(MAKE) -f Makefile.openocd all ;\
+ $(EXEC_PREFIX)/bin/openocd -v
+
+win32.permutations: mingw32.permutations cygwin.permutations
+
+
+# SMOKE TEST - Build every linux permuation...
+# If "openocd -v" does exit(0) we are good enough.
+
+linux.easy.permutations: remove.install ${LINUX_EASY_PERMUTATIONS:%=_linux.%}
+
+
+_linux.%:
+ @echo ""
+ @echo ""
+ @echo "========================================"
+ @echo "Permutation Build... $@"
+ @echo "========================================"
+ @echo ""
+ @echo ""
+ $(MAKE) PERMUTE_linux=$* BUILD_SUFFIX=linux.$* -f Makefile.openocd all
+ $(EXEC_PREFIX)/bin/openocd -v
+
+linux.ftd2xx_installed:
+ ${MAKE} -f Makefile.openocd _$@
+
+linux.ft2232_libftdi:
+ ${MAKE} -f Makefile.openocd _$@
+
+_complain_:
+ @echo ""
+ @echo "Please try one of these targets: bootstrap, clean, configure, build, install"
+ @echo " Or read the makefile and learn about the permutation test targets"
+ @echo ""
+ @exit 1