From: SourceForge.net <no...@so...> - 2012-07-20 09:51:47
|
Bugs item #3546272, was opened at 2012-07-20 02:51 Message generated for change (Tracker Item Submitted) made by nijtmans You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=3546272&group_id=10894 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 50. Embedding Support Group: development: 8.6b3 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Jan Nijtmans (nijtmans) Assigned to: Jan Nijtmans (nijtmans) Summary: win/makefile.vc produces different files than win/Makefile Initial Comment: A normal build using win/Makefile, configured with --enable-shared (the default) produces the following file names: win/tcl86.dll win/tclsh86.exe doing the same with win/makefile.vc produces: win/tcl86t.dll win/tclsh86t.exe Doing a --disable-shared build with win/Makefile: win/tcl86s.dll win/tclsh86s.exe doing the same with win/makefile.vc, using OPTS=static,msvcrt (equivalent to --disable-shared in win/configure) produces: win/tcl86tsx.dll win/tclsh86tsx.exe Explanation: win/makefile.vc uses the following suffixes (from win/rules.vc): # Naming convention: # t = full thread support. # s = static library (as opposed to an # import library) # g = linked to the debug enabled C # run-time. # x = special static build when it # links to the dynamic C run-time. The option 't' (threads) is the default since 8.6, and 'x' (msvcrt) is normally used in combination with static builds to reduce the size of the executable (nowadays everyt win32 system has msvcrt.dll on-board) In order to let win/makefile.vc produce the same executable names as win/Makefile, the following is proposed: - Invert the option OPTS=msvcrt to OPTS=nomsvcrt, effectively making msvcrt the default for both dynamic and static builds, as win/Makefile does - Invert the meaning of the options 't' and 'x' meaning 'no threads' and 'no msvcrt', so they only appear in the file name when using non-default builds. - change the path where binaries are built (MSVC>6) to XXX_Dynamic (by default) or XXX_Static (for static builds). For non-threaded builds, prepend 'NonThreaded' to it, for non-msvcrt builds, append 'X' to it. This way, no special tricks need to be done any more in extensions, because Tcl/Tk static libraries might have a 't' in the filename (8.6) or not (<8.6) (patch still being developed) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=3546272&group_id=10894 |