diff options
Diffstat (limited to 'testing/build.test1/Makefile.openocd')
-rwxr-xr-x | testing/build.test1/Makefile.openocd | 193 |
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 |