194 lines
5.2 KiB
Makefile
Executable File
194 lines
5.2 KiB
Makefile
Executable File
# -*- 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
|