From 85572b05e5359f28c1625b873dc14428f796a454 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Sat, 18 Oct 2014 15:17:33 +0200 Subject: [PATCH] Create vcxsrc in mxe build "make dist" --- .gitignore | 2 ++ CodingReadme | 46 ++++++++++++++++++++++++------------------- Makefile | 24 +++++++++++----------- misc/create_vcxsrc.sh | 39 ++++++++++++++++++++++++++++++++++++ 4 files changed, 78 insertions(+), 33 deletions(-) create mode 100644 misc/create_vcxsrc.sh diff --git a/.gitignore b/.gitignore index 557240f0f..5d470732f 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ /yosys-filterlib.html /kernel/version_*.cc /share +/yosys-win32-mxebin-* +/yosys-win32-vcxsrc-* diff --git a/CodingReadme b/CodingReadme index 8bcbe6125..0e3ff6949 100644 --- a/CodingReadme +++ b/CodingReadme @@ -67,32 +67,27 @@ of "foobar.size()". (GetSize() is defined by kernel/yosys.h) Use range-based for loops whenever applicable. -Building in Visual Studio -========================= + +Creating the Visual Studio Template Project +=========================================== 1. Create an empty Visual C++ Win32 Console App project - (recommended name: YosysVS) -2. Close VS and launch "Git Bash" in the project directory + Microsoft Visual Studio Express 2013 for Windows Desktop + Open New Project Wizard (File -> New Project..) -3. Prepare sources + Project Name: YosysVS + Solution Name: YosysVS + [X] Create directory for solution + [ ] Add to source control - git clone https://github.com/cliffordwolf/yosys.git yosys - cd yosys + [X] Console applications + [X] Empty Projcect + [ ] SDL checks - curl -O http://www.clifford.at/yosys/nogit/yosys-win32-.zip - unzip yosys-win32-.zip - unzip yosys-win32-/genfiles.zip +2. Open YosysVS Project Properties -4. Add files to VS project - - notepad vcxproj_files.txt - notepad ../YosysVS/YosysVS.vcxproj - - (replace the empty in YosysVS.vcxproj - with the XML text from vcxproj_files.txt) - -5. Open project in VS and go to the project properties: + Select Configuration: All Configurations C/C++ -> General -> Additional Include Directories Add: ..\yosys @@ -100,7 +95,18 @@ Building in Visual Studio C/C++ -> Preprocessor -> Preprocessor Definitions Add: _YOSYS_;_CRT_SECURE_NO_WARNINGS -6. Build YosysVS +3. Resulting file system tree: + + YosysVS/ + YosysVS/YosysVS + YosysVS/YosysVS/YosysVS.vcxproj + YosysVS/YosysVS/YosysVS.vcxproj.filters + YosysVS/YosysVS.sdf + YosysVS/YosysVS.sln + YosysVS/YosysVS.v12.suo + +4. Zip YosysVS as YosysVS-Tpl-v1.zip + Checklist for adding internal cell types diff --git a/Makefile b/Makefile index c2d1ac0b2..1819e6c3d 100644 --- a/Makefile +++ b/Makefile @@ -315,23 +315,21 @@ qtcreator: ifeq ($(CONFIG),mxe) dist: $(TARGETS) $(EXTRA_TARGETS) - rm -rf yosys-win32-$(YOSYS_VER) - rm -rf yosys-win32-$(YOSYS_VER).zip - mkdir -p yosys-win32-$(YOSYS_VER) - cp -r yosys.exe share/ yosys-win32-$(YOSYS_VER)/ + rm -rf yosys-win32-{mxebin,vcxsrc}-$(YOSYS_VER){,.zip} + mkdir -p yosys-win32-mxebin-$(YOSYS_VER) + cp -r yosys.exe share/ yosys-win32-mxebin-$(YOSYS_VER)/ ifeq ($(ENABLE_ABC),1) - cp -r yosys-abc.exe abc/lib/x86/pthreadVC2.dll yosys-win32-$(YOSYS_VER)/ + cp -r yosys-abc.exe abc/lib/x86/pthreadVC2.dll yosys-win32-mxebin-$(YOSYS_VER)/ endif - echo -en 'This is Yosys $(YOSYS_VER) for Win32.\r\n' > yosys-win32-$(YOSYS_VER)/readme.txt - echo -en 'Documentation at http://www.clifford.at/yosys/.\r\n' >> yosys-win32-$(YOSYS_VER)/readme.txt + echo -en 'This is Yosys $(YOSYS_VER) for Win32.\r\n' > yosys-win32-mxebin-$(YOSYS_VER)/readme.txt + echo -en 'Documentation at http://www.clifford.at/yosys/.\r\n' >> yosys-win32-mxebin-$(YOSYS_VER)/readme.txt sed -e 's,^[^ ]*:,,; s, ,\n,g; s, *\\,,; s,/[^/]*/\.\./,/,g; s,'"$$PWD/"',,' \ $(addsuffix .d,$(basename $(OBJS))) | sort -u | grep '^[^/]' | grep -v kernel/version_ > srcfiles.txt - { echo ''; egrep '\.(h|hh|hpp|inc)$$' srcfiles.txt | sed 's,.*,,'; \ - egrep -v '\.(h|hh|hpp|inc)$$' srcfiles.txt | sed 's,.*,,'; echo ''; } > vcxproj_files.txt - sed -i 's/$$/\r/' srcfiles.txt vcxproj_files.txt - zip yosys-win32-$(YOSYS_VER)/genfiles.zip $(GENFILES) srcfiles.txt vcxproj_files.txt - zip -r yosys-win32-$(YOSYS_VER).zip yosys-win32-$(YOSYS_VER)/ - rm -f srcfiles.txt vcxproj_files.txt + bash misc/create_vcxsrc.sh yosys-win32-vcxsrc-$(YOSYS_VER) + zip yosys-win32-vcxsrc-$(YOSYS_VER)/genfiles.zip $(GENFILES) + zip -r yosys-win32-mxebin-$(YOSYS_VER).zip yosys-win32-mxebin-$(YOSYS_VER)/ + zip -r yosys-win32-vcxsrc-$(YOSYS_VER).zip yosys-win32-vcxsrc-$(YOSYS_VER)/ + rm -f srcfiles.txt endif config-clean: clean diff --git a/misc/create_vcxsrc.sh b/misc/create_vcxsrc.sh new file mode 100644 index 000000000..eb2239303 --- /dev/null +++ b/misc/create_vcxsrc.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +set -ex +vcxsrc="$1" + +rm -rf YosysVS-Tpl-v1.zip YosysVS +wget http://www.clifford.at/yosys/nogit/YosysVS-Tpl-v1.zip + +unzip YosysVS-Tpl-v1.zip +rm -f YosysVS-Tpl-v1.zip +mv YosysVS "$vcxsrc" + +{ + n=$(grep -B999 '' "$vcxsrc"/YosysVS/YosysVS.vcxproj | wc -l) + head -n$n "$vcxsrc"/YosysVS/YosysVS.vcxproj + egrep '\.(h|hh|hpp|inc)$' srcfiles.txt | sed 's,.*,,' + egrep -v '\.(h|hh|hpp|inc)$' srcfiles.txt | sed 's,.*,,' + tail -n +$((n+1)) "$vcxsrc"/YosysVS/YosysVS.vcxproj +} > "$vcxsrc"/YosysVS/YosysVS.vcxproj.new + +mv "$vcxsrc"/YosysVS/YosysVS.vcxproj.new "$vcxsrc"/YosysVS/YosysVS.vcxproj + +mkdir -p "$vcxsrc"/yosys +tar -cf - -T srcfiles.txt | tar -xf - -C "$vcxsrc"/yosys + +cat > "$vcxsrc"/readme-git.txt << EOT +Using a git working copy for the yosys source code: + +Open "Git Bash" in this directory and run: + + mv yosys yosys.bak + git clone https://github.com/cliffordwolf/yosys.git yosys + cd yosys + git checkout -B master $(git rev-parse HEAD | cut -c1-10) + unzip ../genfiles.zip +EOT + +sed -i 's/$/\r/; s/\r\r*/\r/g;' "$vcxsrc"/YosysVS/YosysVS.vcxproj "$vcxsrc"/readme-git.txt +