
1: This directory contains files to compile Gauche with VisualC++ on Windows. 2: As of 0.8.12, the core and several modules work, though we still need to 3: tweak a few major modules (notably, gauche.net). 4: 5: If you get the source tree from the standard tarball (Gauche-x.x.x.tgz) 6: or from CVS, you have to preprocess the source tree. You need a unix- 7: compatible environment (such as cygwin) to do that. 8: 9: If you build from CVS, run this command at the toplevel dir: 10: 11: $ ./DIST winvc 12: 13: If you build from tarball, run this command at the toplevel dir: 14: 15: $ sh winnt/winvc-prep.sh 16: 17: 18: [HOW TO BUILD] 19: 20: Open Gauche.sln and run "build solution". 21: 22: [HOW TO TEST] 23: 24: 25: [HOW TO INSTALL] 26: 27: 28: 29: [HOW TO ADD NEW EXTENSION PROJECT] 30: 31: We need to have separate project files per each extension dll. If the 32: main distribution added new extensions in its bundle, corresponding 33: vcproj file(s) should be added. 34: 35: The project file name should be ext-something, where "something" 36: is the extension directory name (i.e. the source is under ext/something). 37: If the extension generates more than one dll, we need separate project 38: files for each. Each project file should be named like ext-something-xxx. 39: The examples are ext-digest-md5 and ext-digest-sha1. 40: 41: Here's the procedure. 42: 43: First, open the solution file Gauche.sln and add a new project. Select 44: Win32 project and put the appropriate name. We put the project file 45: ext-something.vcproj in winnt/, the same directory as Gauche.sln. 46: 47: In Win32 Application Wizard, choose DLL as application type and 48: check Empty project. Then finish the wizard. 49: At this moment, Visual Studio creates a project file as 50: ext-something/ext-something.vcproj. We don't want the extra ext-something 51: directory, though. We quit VS and move ext-something.vcproj under 52: winnt manually, and adjust pathname in Gauche.sln. If anybody knows 53: a better way, let us know. 54: 55: Open VS again. We don't use the default folders (Header Files etc.) 56: Just delete them. Then add the necessary source. (Make sure to do 57: this after vcproj path adjustment, or all the relative pathnames will 58: be messed up). 59: 60: A project property sheet is created to keep the common settings. 61: Open property manager, select ext-something project, and choose 62: "Add Existing Property Sheet" from right-click menu. Open ext.vsprops 63: file (it's under winnt directory). 64: 65: The open the property of ext-something project. At least you have to 66: change the following part: 67: 68: - Add reference to libgauche (and ext-uvector if necessary). 69: - In Configuration Properties - General, 70: -- Output Directory: Choose <inherit from parent or project defaults> 71: -- Intermediate Directory: Choose <inherit from parent or project defaults> 72: - In Configuration Properties - Linker - General, 73: -- Set output file to $(OutDir)\something.dll (substitute "something" 74: to the desirable dll name). The default of this field is 75: $(OutDir)\$(ProjectName).dll, but we surely don't want ext-something.dll. 76: 77: It should now compile. 78: 79: 80: 81: 82: 83: