|
- # -*- 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
|