/yosys-filterlib.html
/kernel/version_*.cc
/share
+/yosys-win32-mxebin-*
+/yosys-win32-vcxsrc-*
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
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
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
--- /dev/null
+#!/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
+