|
From: <apn...@ya...> - 2026-04-10 06:15:07
|
Phil, * What is the easiest way for me to put these changes up for review? I haven't tried pushing anything into core.tcl-lang.org <http://core.tcl-lang.org> before. If you have not read it already, please see https://wiki.tcl-lang.org/page/Getting+Started+With+Working+On+The+Tcl%2FTk+Core. Essentially the same process will apply to the core packages. What command did you use for cloning? I just tried fossil clone https://core.tcl-lang.org/thread and that worked. Note the *https* URL. Also, that will not allow you to push changes. To do that you will need to get a login to each repository and clone it as fossil clone https://yourusername@core.tcl-lang.org/thread Now, a little out of my depth here but I believe you need to get login access to each repository separately. I can give you access to Tcl if you let me know preferred username. However, each repository has different owner(s) so you may need to identify who they are first and contact them. I didn’t see a link to request access either but maybe I missed it. Sorry, it should be easier and perhaps it is but I’m not aware. Once you have access, you can commit your changes to a separate branch where people can review. I’d be happy to but not till late next week. /Ashok From: Phillip Brooks <phi...@um...> Sent: Thursday, April 9, 2026 11:41 PM To: Tcl Core List <tcl...@li...> Subject: Re: [TCLCORE] nmakehlp.exe in MSVC Windows build I have a successful set of Makefiles for Tcl and Tk with the dependency binary checkin for nmakehlp.exe through x86_64-w64-mingw32-nmakehlp.exe. It satisfies the ARM64 cross compile issue by requiring a setting for NMAKEHLP_NATIVE that is similar to the TCLSH_NATIVE requirement already present for cross compiles. I note, however, that there are a bunch of copies of x86_64-w64-mingw32-nmakehlp.exe in each of the pkgs in the source folder. I don't see how to get to the fossil repositories for these. Can someone point me at them? I tried fossil clone core.tcl-lang.org/thread <http://core.tcl-lang.org/thread> , which is what the Thread fossil web page shows up as, but that didn't work. I'd like to take x86_64-w64-mingw32-nmakehlp.exe out from all of the pkgs repositories that we are planning to ship in the batteries included distribution. That said, I think that the Makefile changes that I have so far can go in independently. What is the easiest way for me to put these changes up for review? I haven't tried pushing anything into core.tcl-lang.org <http://core.tcl-lang.org> before. My changed files are: for Tcl: EDITED macosx/GNUmakefile << has a fix for building MacOS on a Samba drive that I have been sitting on for a while EDITED unix/configure << has the previously discussed config change looking for Tclsh 8.6 or later for NATIVE_TCLSH EDITED win/makefile.vc <http://makefile.vc> << nmakehlp changes EDITED win/rules-ext.vc <http://rules-ext.vc> << nmakehlp changes EDITED win/rules.vc <http://rules.vc> << nmakehlp changes MISSING win/x86_64-w64-mingw32-nmakehlp.exe for Tk: EDITED macosx/GNUmakefile << same Samba drive fix EDITED win/makefile.vc <http://makefile.vc> << nmakehlp changes EDITED win/rules-ext.vc <http://rules-ext.vc> << nmakehlp changes EDITED win/rules.vc <http://rules.vc> << nmakehlp changes MISSING win/x86_64-w64-mingw32-nmakehlp.exe I would like to get those pushed into main, and then work on all of the different package repos. Phil On Sun, Apr 5, 2026 at 8:25 PM Phillip Brooks <phi...@um... <mailto:phi...@um...> > wrote: Is there a recipe for building with MSVC and Autoconf? At any rate, the change I am making is pretty simple, though it does touch a lot of lines. Also, cross compilation only currently seems to work for Tcl. Not for Tk or any other dependent packages. For now, I think I will submit the changes I already made to the Tcl and Tk nmakehlp files, and will leave the dependent pkgs untouched and still not working. Phil On Sun, Apr 5, 2026 at 8:07 PM <apn...@ya... <mailto:apn...@ya...> > wrote: The nmake system dates from the ‘90s. I suspect we are the only ones still using it on Windows as everyone else has moved on to VS Studio, msbuild, cmake etc. It comes from a time when there was only one arch that Windows ran on. It doesn’t help that nmake is about the weakest make clone you will find, necessitating nmakehlp. The only reason it still exists is to not force Windows users to install and understand building in an autoconf based environment. As such, while not discouraging the goal and wishing you good luck in getting all the cross-compilation combinations working with nmake, my personal opinion is cross-compiling be left to autoconf based builds. Folks who are cross-compiling would be proficient enough to tackle autoconf and friends. /Ashok From: Phillip Brooks <phi...@um... <mailto:phi...@um...> > Sent: Sunday, April 5, 2026 10:42 AM To: tc...@ro... <mailto:tc...@ro...> Cc: Tcl Core List <tcl...@li... <mailto:tcl...@li...> > Subject: Re: [TCLCORE] nmakehlp.exe in MSVC Windows build The approach that seems successful is to change all places where nmakehlp is executed with $(NMAKEHLP_NATIVE), and then default NMAKEHLP_NATIVE to nmakehlp when it is not set. That way, I am not really changing anything unless NMAKEHLP_NATIVE is defined. Then, it is just a matter of setting NMAKEHLP_NATIVE to the right value, fixing the build and install targets, and tracking down all of the places where nmakehlp is executed. As I said before, that bleeds down into the pkgs, but they don’t seem to work now in cross compile mode anyway. I am also finding that I need to propagate TCLSH_NATIVE changes down in the pkgs make files as well. Phil |