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

# Cygwin用makefile
#
# インストール済みでなければならないものリスト
#  All/Devel/bison
#            flex
#            gcc4
#            make
#  All/Perl/perl
#
# インストール済みでないなら、Cygwin setup.exeを使ってインストールしておく
# 必要がある。
#
#
# 手順
# 1. make download
# 2. make
# 3. make test
# 4. make package
#
# 最終的にverilator-～cygwin.tar.bz2ができるので、
#    tar -x --directory=/opt -f verilator*cygwin.tar.bz2
# とすれば、/opt/verilator/binにパスを通すだけでverilatorが使用可能な状態になる。
#
# Cygwin setup.exeを使ってあらかじめインストールしておく必要があるもの
#  All/Devel/bison
#            flex
#            gcc4
#            make
#  All/Perl/perl
#  All/Web/wget

VERILATOR_SRC=verilator-3.812
VERILATOR_SRC_Z=$(VERILATOR_SRC).tgz
INSTALL_PREFIX=/opt/verilator
PKG_NAME=$(VERILATOR_SRC)-rX-i686-pc-cygwin.tar.bz2
PKG_DIR=pkg

all : $(VERILATOR_SRC)/verilator_bin.exe

test : $(VERILATOR_SRC)/verilator_bin.exe
	cd $(VERILATOR_SRC) && $(MAKE) test

package : all
	rm -rf $(PKG_DIR)
	mkdir -p $(PKG_DIR)
	cd $(VERILATOR_SRC) && $(MAKE) DESTDIR=$(PWD)/$(PKG_DIR) install 2>&1 | tee ../install.log
	cp -p ../license/gpl.txt $(PKG_DIR)/$(INSTALL_PREFIX)/COPYING
	cp -p $(VERILATOR_SRC)/verilator.txt  $(PKG_DIR)/$(INSTALL_PREFIX)
	cd $(PKG_DIR)/opt && tar jcf ../../$(PKG_NAME) verilator

clean :
	-rm -rf $(VERILATOR_SRC) $(PKG_DIR) *.log

$(VERILATOR_SRC)/verilator_bin.exe : $(VERILATOR_SRC)/Makefile
	cd $(VERILATOR_SRC) && $(MAKE) 2>&1 | tee ../make.log

$(VERILATOR_SRC)/Makefile : $(VERILATOR_SRC)/mark
	cd $(VERILATOR_SRC) && ./configure --prefix=$(INSTALL_PREFIX)

# markは、ディレクトリが展開済みであることを示す
$(VERILATOR_SRC)/mark : $(VERILATOR_SRC_Z)
	tar xf $<
	touch $@

download : $(VERILATOR_SRC_Z)

$(VERILATOR_SRC_Z) :
	wget http://www.veripool.org/ftp/$@

superclean : clean
	rm -f $(VERILATOR_SRC_Z) \
	$(PKG_NAME)
