summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-10-18 15:17:33 +0200
committerClifford Wolf <clifford@clifford.at>2014-10-18 15:17:33 +0200
commit85572b05e5359f28c1625b873dc14428f796a454 (patch)
tree95529c8015eebbc3ca5de66b923b534dcd063071
parentb5da3a60e101a26dbcbd6a8565343c281ba464f8 (diff)
Create vcxsrc in mxe build "make dist"
-rw-r--r--.gitignore2
-rw-r--r--CodingReadme46
-rw-r--r--Makefile24
-rw-r--r--misc/create_vcxsrc.sh39
4 files changed, 78 insertions, 33 deletions
diff --git a/.gitignore b/.gitignore
index 557240f0..5d470732 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 8bcbe612..0e3ff694 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
-=========================
-1. Create an empty Visual C++ Win32 Console App project
- (recommended name: YosysVS)
-
-2. Close VS and launch "Git Bash" in the project directory
+Creating the Visual Studio Template Project
+===========================================
-3. Prepare sources
-
- git clone https://github.com/cliffordwolf/yosys.git yosys
- cd yosys
+1. Create an empty Visual C++ Win32 Console App project
- curl -O http://www.clifford.at/yosys/nogit/yosys-win32-<version>.zip
- unzip yosys-win32-<version>.zip
- unzip yosys-win32-<version>/genfiles.zip
+ Microsoft Visual Studio Express 2013 for Windows Desktop
+ Open New Project Wizard (File -> New Project..)
-4. Add files to VS project
+ Project Name: YosysVS
+ Solution Name: YosysVS
+ [X] Create directory for solution
+ [ ] Add to source control
- notepad vcxproj_files.txt
- notepad ../YosysVS/YosysVS.vcxproj
+ [X] Console applications
+ [X] Empty Projcect
+ [ ] SDL checks
- (replace the empty <ItemGroup> in YosysVS.vcxproj
- with the XML text from vcxproj_files.txt)
+2. Open YosysVS Project Properties
-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 c2d1ac0b..1819e6c3 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 '<ItemGroup>'; egrep '\.(h|hh|hpp|inc)$$' srcfiles.txt | sed 's,.*,<ClInclude Include="../yosys/&" />,'; \
- egrep -v '\.(h|hh|hpp|inc)$$' srcfiles.txt | sed 's,.*,<ClCompile Include="../yosys/&" />,'; echo '</ItemGroup>'; } > 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 00000000..eb223930
--- /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 '<ItemGroup>' "$vcxsrc"/YosysVS/YosysVS.vcxproj | wc -l)
+ head -n$n "$vcxsrc"/YosysVS/YosysVS.vcxproj
+ egrep '\.(h|hh|hpp|inc)$' srcfiles.txt | sed 's,.*,<ClInclude Include="../yosys/&" />,'
+ egrep -v '\.(h|hh|hpp|inc)$' srcfiles.txt | sed 's,.*,<ClCompile Include="../yosys/&" />,'
+ 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
+