openocd/testing/build.test1/Makefile.openocd

194 lines
5.2 KiB
Makefile

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