# This file is part of "Ported tools for HDL".
# This software is distributed under the terms of the zlib License.
# Copyright (c) 2010 molelord
# All rights reserved.

# 猫科研究所パック a004 (gcc-4.4.1-tdm) にてビルドすることを前提としたmakefile
#                        gcc-3.4.5-20060117-3であってもビルドが可能
# 猫科研究所パックについては http://up-cat.net を参照。
#
# 手順
# 1. make
# 2. make package
#
# 最終的にarm-elf-insight～mingw.tar.bz2ができるので、
#    tar -x --directory=/opt -f arm-elf-insight*mingw.tar.bz2
# とすれば、/opt/arm/binにパスを通すだけでarm-elf-insightが使用可能な状態
# になる。

INSIGHT_VER=6.8-1
INSIGHT_SRC=insight-$(INSIGHT_VER)
INSIGHT_SRC_Z=$(INSIGHT_SRC).tar.bz2

TGT=arm-elf

INSTALL_PREFIX=/opt/$(TGT:-elf=)
PKG_NAME=$(TGT)-insight-$(INSIGHT_VER)-rX-i686-pc-mingw.tar.bz2
PKG_DIR=pkg

all : $(INSIGHT_SRC)/$(TGT)/gdb/insight.exe

package : all
	rm -rf $(PKG_DIR)
	mkdir -p $(PKG_DIR)
	cd $(INSIGHT_SRC)/$(TGT) && $(MAKE) install 2>&1 | tee install.log
	cd $(PKG_DIR)$(INSTALL_PREFIX) && rm -f bin/$(TGT)-gdb.exe
	cd $(PKG_DIR)$(INSTALL_PREFIX) && find . -name '*.exe' -exec strip \{\} \;
	cd $(PKG_DIR)$(INSTALL_PREFIX) && find . -name '*.dll' -exec strip \{\} \;
	cd $(PKG_DIR)$(INSTALL_PREFIX)/.. && tar jcf ../../$(PKG_NAME) $(TGT:-elf=)

clean :
	-rm -rf $(INSIGHT_SRC)/$(TGT) $(PKG_DIR)

$(INSIGHT_SRC)/$(TGT)/gdb/insight.exe : $(INSIGHT_SRC)/$(TGT)/Makefile
	cd $(INSIGHT_SRC)/$(TGT) && $(MAKE) 2>&1 | tee make.log

# 本当は、DESTDIR=～ make installでインストール先を決定したいのだが、
# DESTDIRの指定に従わずにコピーされるファイルが多かったため、--prefixに
# フルパスを指定した。
$(INSIGHT_SRC)/$(TGT)/Makefile : $(INSIGHT_SRC)/_dir
	mkdir -p $(INSIGHT_SRC)/$(TGT)
	cd $(INSIGHT_SRC)/$(TGT) && ../configure --target=$(TGT) --prefix=$(PWD)/$(PKG_DIR)$(INSTALL_PREFIX)

# _dirは、ディレクトリが展開済みであることを示す
$(INSIGHT_SRC)/_dir : $(INSIGHT_SRC_Z)
	tar xf $<
	cd $(@D) && patch -p1 -i ../insight-6.8-1.patch
	touch $@

$(INSIGHT_SRC_Z) :
	wget ftp://sourceware.org/pub/insight/releases/$@

download : $(INSIGHT_SRC_Z)

superclean : clean
	-rm -rf $(INSIGHT_SRC)
	-rm -f $(INSIGHT_SRC_Z) \
	$(PKG_NAME)
