# Copyright (c) 1995-1996 Sun Microsystems, Inc. # This file is CYGNUS LOCAL. It is a copy of makefile.vc from the # standard tcl distribution, modified to work with cygwin and an # autoconf configure script. I have chosen to minimize the number of # changes, so the comments continue to refer to Visual C++ and the # like. This should make it easier to merge in a new version if that # is necessary. prefix = @prefix@ exec_prefix = @exec_prefix@ VPATH = @srcdir@:@srcdir@/../generic:@srcdir@/../compat srcdir = @srcdir@ libdir = @libdir@ bindir = @bindir@ includedir = @includedir@ datadir = @datadir@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ CC = @CC@ CFLAGS = @CFLAGS@ NM = @NM@ AS = @AS@ LD = @LD@ DLLTOOL = @DLLTOOL@ WINDRES = @WINDRES@ DLL_LDFLAGS = @DLL_LDFLAGS@ DLL_LDLIBS = @DLL_LDLIBS@ TCL_ALLOC_OBJ = @TCL_ALLOC_OBJ@ OBJEXT=@OBJEXT@ # Current Tcl version; used in various names. DIRVERSION = @TCL_VERSION@ # The following definition can be set to non-null for special systems # like AFS with replication. It allows the pathnames used for installation # to be different than those used for actually reference files at # run-time. INSTALL_ROOT is prepended to $prefix and $exec_prefix # when installing files. INSTALL_ROOT = # Directory from which applications will reference the library of Tcl # scripts (note: you can set the TCL_LIBRARY environment variable at # run-time to override this value): TCL_LIBRARY = $(datadir)/tcl$(DIRVERSION) # Path name to use when installing library scripts: SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TCL_LIBRARY) # Directory in which to install libtcl.so or libtcl.a: LIB_INSTALL_DIR = $(INSTALL_ROOT)$(libdir) # Directory in which to install the program tclsh: BIN_INSTALL_DIR = $(INSTALL_ROOT)$(bindir) # Directory in which to install the include file tcl.h: INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir) # # Visual C++ 2.x and 4.0 makefile # # Does not depend on the presence of any environment variables in # order to compile tcl; all needed information is derived from # location of the compiler directories. # # Project directories # # ROOT = top of source tree # # TMPDIR = location where .obj files should be stored during build # # TOOLS32 = location of VC++ 32-bit development tools. Note that the # VC++ 2.0 header files are broken, so you need to use the # ones that come with the developer network CD's, or later # versions of VC++. # # TOOLS16 = location of VC++ 1.5 16-bit tools, needed to build thunking # library. This information is optional; if the 16-bit compiler # is not available, then the 16-bit code will not be built. # Tcl will still run without the 16-bit code, but... # A. Under Windows 3.X you will any calls to the exec command # will return an error. # B. A 16-bit program to test the behavior of the exec # command under NT and 95 will not be built. # ROOT = $(srcdir)/.. TMPDIR = . TOOLS32 = c:\msdev TOOLS16 = c:\msvc # Set this to the appropriate value of /MACHINE: for your platform MACHINE = IX86 # Comment the following line to compile with symbols NODEBUG=1 # uncomment one of the following lines to compile with TCL_MEM_DEBUG, # TCL_MEM_DEBUG, or TCL_COMPILE_DEBUG #DEBUGDEFINES = -DTCL_MEM_DEBUG #DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG #DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_STATS #DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS ###################################################################### # Do not modify below this line ###################################################################### VERSION = 80 TCLLIB = libtcl$(VERSION).a TCLDLL = cygtcl$(VERSION).dll TCLPLUGINLIB = libtcl$(VERSION)p.a TCLPLUGINDLL = cygtcl$(VERSION)p.dll TCL16DLL = # tcl16$(VERSION).dll TCLSH = cygtclsh$(VERSION).exe TCLSHP = cygtclshp$(VERSION).exe TCLTEST = tcltest.exe DUMPEXTS = # $(TMPDIR)\dumpexts.exe TCLPIPEDLL = cygtclpip$(VERSION).dll TCLREGDLL = cygtclreg$(VERSION).dll CAT16 = # cat16.exe CAT32 = cat32.exe ifeq ($(OBJEXT),obj) TCL_ALLOC_OBJ=$(TMPDIR)/tclAlloc.$(OBJEXT) endif TCLSHOBJS = \ $(TMPDIR)/tclAppInit.$(OBJEXT) TCLTESTOBJS = \ $(TMPDIR)/tclTest.$(OBJEXT) \ $(TMPDIR)/tclTestObj.$(OBJEXT) \ $(TMPDIR)/tclTestProcBodyObj.$(OBJEXT) \ $(TMPDIR)/tclWinTest.$(OBJEXT) \ $(TMPDIR)/testMain.$(OBJEXT) TCLOBJS = \ $(TMPDIR)/panic.$(OBJEXT) \ $(TMPDIR)/regexp.$(OBJEXT) \ $(TMPDIR)/strftime.$(OBJEXT) \ $(TCL_ALLOC_OBJ) \ $(TMPDIR)/tclAsync.o \ $(TMPDIR)/tclBasic.o \ $(TMPDIR)/tclBinary.o \ $(TMPDIR)/tclCkalloc.o \ $(TMPDIR)/tclClock.o \ $(TMPDIR)/tclCmdAH.o \ $(TMPDIR)/tclCmdIL.o \ $(TMPDIR)/tclCmdMZ.o \ $(TMPDIR)/tclCompExpr.o \ $(TMPDIR)/tclCompile.o \ $(TMPDIR)/tclDate.o \ $(TMPDIR)/tclEnv.o \ $(TMPDIR)/tclEvent.o \ $(TMPDIR)/tclExecute.o \ $(TMPDIR)/tclFCmd.o \ $(TMPDIR)/tclFileName.o \ $(TMPDIR)/tclGet.o \ $(TMPDIR)/tclHash.o \ $(TMPDIR)/tclHistory.o \ $(TMPDIR)/tclIndexObj.o \ $(TMPDIR)/tclInterp.o \ $(TMPDIR)/tclIO.o \ $(TMPDIR)/tclIOCmd.o \ $(TMPDIR)/tclIOSock.o \ $(TMPDIR)/tclIOUtil.o \ $(TMPDIR)/tclLink.o \ $(TMPDIR)/tclListObj.o \ $(TMPDIR)/tclLoad.o \ $(TMPDIR)/tclMain.o \ $(TMPDIR)/tclNamesp.o \ $(TMPDIR)/tclNotify.o \ $(TMPDIR)/tclObj.o \ $(TMPDIR)/tclParse.o \ $(TMPDIR)/tclPipe.o \ $(TMPDIR)/tclPkg.o \ $(TMPDIR)/tclPosixStr.o \ $(TMPDIR)/tclPreserve.o \ $(TMPDIR)/tclProc.o \ $(TMPDIR)/tclResolve.o \ $(TMPDIR)/tclStringObj.o \ $(TMPDIR)/tclTimer.o \ $(TMPDIR)/tclUtil.o \ $(TMPDIR)/tclVar.o \ $(TMPDIR)/tclWin32Dll.o \ $(TMPDIR)/tclWinChan.o \ $(TMPDIR)/tclWinError.o \ $(TMPDIR)/tclWinFCmd.o \ $(TMPDIR)/tclWinFile.o \ $(TMPDIR)/tclWinInit.o \ $(TMPDIR)/tclWinLoad.o \ $(TMPDIR)/tclWinMtherr.o \ $(TMPDIR)/tclWinNotify.o \ $(TMPDIR)/tclWinPipe.o \ $(TMPDIR)/tclWinSock.o \ $(TMPDIR)/tclWinTime.o cc32 = $(TOOLS32)\bin\cl.exe link32 = $(TOOLS32)\bin\link.exe rc32 = $(TOOLS32)\bin\rc.exe include32 = -I$(TOOLS32)\include cc16 = $(TOOLS16)\bin\cl.exe link16 = $(TOOLS16)\bin\link.exe rc16 = $(TOOLS16)\bin\rc.exe include16 = -I$(TOOLS16)\include WINDIR = $(ROOT)/win GENERICDIR = $(ROOT)/generic TCL_INCLUDES = -I$(WINDIR) -I$(GENERICDIR) TCL_DEFINES = -D__WIN32__ $(DEBUGDEFINES) TCL_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) \ $(TCL_INCLUDES) $(TCL_DEFINES) $(CFLAGS) CON_CFLAGS = $(cdebug) $(cflags) $(cvars) -DCONSOLE DOS_CFLAGS = $(cdebug) $(cflags) $(include16) -AL DLL16_CFLAGS = $(cdebug) $(cflags) $(include16) -ALw linkdebug = conlflags = -Wl,--subsystem,console -mwindows conlibsdll = ###################################################################### # Link flags ###################################################################### #!IFDEF NODEBUG #ldebug = /RELEASE #!ELSE #ldebug = -debug:full -debugtype:cv #!ENDIF # declarations common to all linker options lcommon = /NODEFAULTLIB /RELEASE /NOLOGO # declarations for use on Intel i386, i486, and Pentium systems #!IF "$(MACHINE)" == "IX86" #DLLENTRY = @12 #lflags = $(lcommon) -align:0x1000 /MACHINE:$(MACHINE) #!ELSE #lflags = $(lcommon) /MACHINE:$(MACHINE) #!ENDIF conlflags = -Wl,--subsystem,console -mwindows guilflags = -mwindows dlllflags = #!IF "$(MACHINE)" == "PPC" #libc = libc.lib #libcdll = crtdll.lib #!ELSE #libc = libc.lib oldnames.lib #libcdll = msvcrt.lib oldnames.lib #!ENDIF ifeq ($(OBJEXT),o) baselibs = -lkernel32 $(optlibs) -ladvapi32 -luser32 winlibs = $(baselibs) -lgdi32 -lcomdlg32 -lwinspool else baselibs = kernel32.lib $(optlibs) advapi32.lib user32.lib winlibs = $(baselibs) gdi32.lib comdlg32.lib winspool.lib libcdll = msvcrt.lib oldnames.lib endif guilibs = $(libc) $(winlibs) conlibs = $(libc) $(baselibs) guilibsdll = $(libcdll) $(winlibs) conlibsdll = $(libcdll) $(baselibs) ###################################################################### # Compile flags ###################################################################### #!IFDEF NODEBUG #cdebug = -Ox #!ELSE #cdebug = -Z7 -Od -WX #!ENDIF # declarations common to all compiler options ccommon = -c -W3 -nologo -YX -Dtry=__try -Dexcept=__except #!IF "$(MACHINE)" == "IX86" #cflags = $(ccommon) -D_X86_=1 #!ELSE #!IF "$(MACHINE)" == "MIPS" #cflags = $(ccommon) -D_MIPS_=1 #!ELSE #!IF "$(MACHINE)" == "PPC" #cflags = $(ccommon) -D_PPC_=1 #!ELSE #!IF "$(MACHINE)" == "ALPHA" #cflags = $(ccommon) -D_ALPHA_=1 #!ENDIF #!ENDIF #!ENDIF #!ENDIF cvars = -DWIN32 -D_WIN32 cvarsmt = $(cvars) -D_MT cvarsdll = $(cvarsmt) -D_DLL ###################################################################### # Project specific targets ###################################################################### release: $(TCLSH) dlls $(TCLLIB) dlls: $(TCLDLL) $(TCLPIPEDLL) $(TCLREGDLL) all: $(TCLSH) dlls $(CAT16) $(CAT32) $(TCLLIB) tcltest: $(TCLTEST) dlls $(CAT16) $(CAT32) plugin: $(TCLPLUGINDLL) $(TCLSHP) test: $(TCLTEST) dlls $(CAT16) $(CAT32) ( echo cd $(ROOT)/tests\; source all ) | $(TCLTEST) install: install-binaries install-libraries install-binaries: $(TCLDLL) $(TCLLIB) $(TCLSH) $(TCLPIPEDLL) @for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @echo "Installing $(TCLLIB)" @$(INSTALL_DATA) $(TCLLIB) $(LIB_INSTALL_DIR)/$(TCLLIB) @chmod 555 $(LIB_INSTALL_DIR)/$(TCLLIB) @echo "Installing tclsh" @$(INSTALL_PROGRAM) $(TCLSH) $(BIN_INSTALL_DIR)/$(TCLSH) @echo "Installing tclConfig.sh" @$(INSTALL_DATA) ../unix/tclConfig.sh $(LIB_INSTALL_DIR)/tclConfig.sh install-libraries: @echo "Installing DLL" @$(INSTALL_DATA) $(TCLDLL) $(BIN_INSTALL_DIR)/$(TCLDLL) @$(INSTALL_DATA) $(TCLPIPEDLL) $(BIN_INSTALL_DIR)/$(TCLPIPEDLL) @$(INSTALL_DATA) $(TCLREGDLL) $(BIN_INSTALL_DIR)/$(TCLREGDLL) @for i in $(INSTALL_ROOT)@datadir@ $(INCLUDE_INSTALL_DIR) \ $(SCRIPT_INSTALL_DIR) ; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @for i in http2.0 http1.0 opt0.1 ; \ do \ if [ ! -d $(SCRIPT_INSTALL_DIR)/$$i ] ; then \ echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \ mkdir $(SCRIPT_INSTALL_DIR)/$$i; \ chmod 755 $(SCRIPT_INSTALL_DIR)/$$i; \ else true; \ fi; \ done; @echo "Installing tcl.h" @$(INSTALL_DATA) $(GENERICDIR)/tcl.h $(INCLUDE_INSTALL_DIR)/tcl.h @for i in $(ROOT)/library/*.tcl $(ROOT)/library/tclIndex $(WINDIR)/tclAppInit.c; \ do \ echo "Installing $$i"; \ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \ done; @for i in http2.0 http1.0 opt0.1 ; \ do \ for j in $(ROOT)/library/$$i/*.tcl ; \ do \ echo "Installing $$j"; \ $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/$$i; \ done; \ done; install-minimal: @echo "Installing DLL" @$(INSTALL_DATA) $(TCLDLL) $(BIN_INSTALL_DIR)/$(TCLDLL) @$(INSTALL_DATA) $(TCLPIPEDLL) $(BIN_INSTALL_DIR)/$(TCLPIPEDLL) @$(INSTALL_DATA) $(TCLREGDLL) $(BIN_INSTALL_DIR)/$(TCLREGDLL) @for i in $(INSTALL_ROOT)@datadir@ $(SCRIPT_INSTALL_DIR) ; \ do \ if [ ! -d $$i ] ; then \ echo "Making directory $$i"; \ mkdir $$i; \ chmod 755 $$i; \ else true; \ fi; \ done; @for i in http2.0 http1.0 opt0.1 ; \ do \ if [ ! -d $(SCRIPT_INSTALL_DIR)/$$i ] ; then \ echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \ mkdir $(SCRIPT_INSTALL_DIR)/$$i; \ chmod 755 $(SCRIPT_INSTALL_DIR)/$$i; \ else true; \ fi; \ done; @for i in $(ROOT)/library/*.tcl $(ROOT)/library/tclIndex; \ do \ echo "Installing $$i"; \ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \ done; @for i in http2.0 http1.0 opt0.1 ; \ do \ for j in $(ROOT)/library/$$i/*.tcl ; \ do \ echo "Installing $$j"; \ $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/$$i; \ done; \ done; # $(DUMPEXTS): $(WINDIR)/winDumpExts.c # $(CC) -c $(CON_CFLAGS) $? # $(CC) $(linkdebug) $(conlflags) -o $@ $(TMPDIR)/winDumpExts.$(OBJEXT)bj $(guilibs) ifeq ($(OBJEXT),o) $(TCLDLL): $(TCLOBJS) tclres.$(OBJEXT) $(TMPDIR)/tclcyg.def $(CC) -s $(DLL_LDFLAGS) -Wl,--base-file,tcl.base -o $(TCLDLL) $(TCLOBJS) tclres.$(OBJEXT) $(DLL_LDLIBS) -mwindows -Wl,-e,_DllMain@12 -Wl,--image-base,0x66000000 $(DLLTOOL) --as=$(AS) --dllname $(TCLDLL) --def $(TMPDIR)/tclcyg.def --base-file tcl.base --output-exp tcl.exp $(CC) -s $(DLL_LDFLAGS) -Wl,--base-file,tcl.base,tcl.exp -o $(TCLDLL) $(TCLOBJS) tclres.$(OBJEXT) $(DLL_LDLIBS) -mwindows -Wl,-e,_DllMain@12 -Wl,--image-base,0x66000000 $(DLLTOOL) --as=$(AS) --dllname $(TCLDLL) --def $(TMPDIR)/tclcyg.def --base-file tcl.base --output-exp tcl.exp $(CC) $(DLL_LDFLAGS) -Wl,tcl.exp -o $(TCLDLL) $(TCLOBJS) tclres.$(OBJEXT) $(DLL_LDLIBS) -mwindows -Wl,-e,_DllMain@12 -Wl,--image-base,0x66000000 else $(TCLDLL): $(TCLOBJS) $(TMPDIR)/tclcyg.def tclres.$(OBJEXT) link.exe $(ldebug) $(dlllflags) -dll -def:$(TMPDIR)/tclcyg.def -NODEFAULTLIB \ -out:$(TCLDLL) tclres.$(OBJEXT) $(guilibsdll) $(TCLOBJS) \ -entry:_DllMainCRTStartup@12 mv cygtcl80.lib $(TCLLIB) endif ifeq ($(OBJEXT),o) $(TCLLIB): $(TMPDIR)/tclcyg.def $(DLLTOOL) --as=$(AS) --dllname $(TCLDLL) --def $(TMPDIR)/tclcyg.def --output-lib $(TCLLIB) else $(TCLLIB): $(TCLDLL) endif $(TCLPLUGINLIB): $(TMPDIR)/plugin.def $(DLLTOOL) --as=$(AS) --dllname $(TCLPLUGINDLL) --def $(TMPDIR)/plugin.def --output-lib $(TCLPLUGINLIB) $(TCLPLUGINDLL): $(TCLOBJS) $(TMPDIR)/plugin.def tclres.$(OBJEXT) $(CC) -s $(DLL_LDFLAGS) -Wl,--base-file,tclplugin.base -o $(TCLPLUGINDLL) $(TCLOBJS) tclres.$(OBJEXT) $(DLL_LDLIBS) -mwindows -Wl,-e,_DllMain@12 -Wl,--image-base,0x66600000 $(DLLTOOL) --as=$(AS) --dllname $(TCLPLUGINDLL) --def $(TMPDIR)/plugin.def --base-file tclplugin.base --output-exp tcl.exp $(CC) -s $(DLL_LDFLAGS) -Wl,--base-file,tclplugin.base -Wl,tcl.exp -o $(TCLPLUGINDLL) $(TCLOBJS) tclres.$(OBJEXT) $(DLL_LDLIBS) -mwindows -Wl,-e,_DllMain@12 -Wl,--image-base,0x66600000 $(DLLTOOL) --as=$(AS) --dllname $(TCLPLUGINDLL) --def $(TMPDIR)/plugin.def --base-file tclplugin.base --output-exp tcl.exp $(CC) $(DLL_LDFLAGS) -Wl,tcl.exp -o $(TCLPLUGINDLL) $(TCLOBJS) tclres.$(OBJEXT) $(DLL_LDLIBS) -mwindows -Wl,-e,_DllMain@12 -Wl,--image-base,0x66600000 ifeq ($(OBJEXT),o) $(TCLSH): $(TCLSHOBJS) tclshres.$(OBJEXT) $(TCLLIB) $(CC) $(linkdebug) $(conlflags) -Wl,--stack=0x2300000 \ -o $@ $(conlibsdll) $(TCLSHOBJS) tclshres.$(OBJEXT) $(TCLLIB) else $(TCLSH): $(TCLSHOBJS) tclshres.$(OBJEXT) $(TCLLIB) link $(linkdebug) $(conlflags) $(tclsh_flags) -NODEFAULTLIB -subsystem:console -entry:mainCRTStartup \ -out:$@ $(conlibsdll) $(TCLSHOBJS) tclshres.$(OBJEXT) $(TCLLIB) endif $(TCLSHP): $(TCLSHOBJS) $(TCLPLUGINLIB) tclshres.$(OBJEXT) $(CC) $(linkdebug) $(conlflags) -Wl,--stack=0x2300000 \ -o $@ $(conlibsdll) $(TCLSHOBJS) tclshres.$(OBJEXT) $(TCLPLUGINLIB) $(TCLTEST): $(TCLTESTOBJS) tclshres.$(OBJEXT) $(TCLLIB) $(CC) $(linkdebug) $(conlflags) -Wl,--stack=0x2300000 \ -o $@ $(conlibsdll) $(TCLTESTOBJS) tclshres.$(OBJEXT) $(TCLLIB) # $(TCL16DLL): $(WINDIR)\tcl16.rc $(WINDIR)\tclWin16.c # if exist $(cc16) $(cc16) @<< # $(DLL16_CFLAGS) -Fo$(TMPDIR)\ $(WINDIR)\tclWin16.c # << # @copy << $(TMPDIR)\tclWin16.def > nul # LIBRARY $(@B);dll # EXETYPE WINDOWS # CODE PRELOAD MOVEABLE DISCARDABLE # DATA PRELOAD MOVEABLE SINGLE # HEAPSIZE 1024 # EXPORTS # WEP @1 RESIDENTNAME # UTPROC @2 # << # if exist $(cc16) $(link16) /NOLOGO /ONERROR:NOEXE /NOE @<< # $(TMPDIR)\tclWin16.obj # $@ # nul # $(TOOLS16)\lib\ ldllcew oldnames libw toolhelp # $(TMPDIR)\tclWin16.def # << # if exist $(cc16) $(rc16) -i $(GENERICDIR) $(TCL_DEFINES) $(WINDIR)\tcl16.rc $@ ifeq ($(OBJEXT),o) $(TCLPIPEDLL): $(WINDIR)/stub16.c $(CC) -c $(CON_CFLAGS) $(WINDIR)/stub16.c $(CC) $(linkdebug) $(conlflags) -o $@ $(TMPDIR)/stub16.$(OBJEXT) $(guilibs) else $(TCLPIPEDLL): $(WINDIR)/stub16.c $(CC) -c $(CON_CFLAGS) -Fo$(TMPDIR)/ $(WINDIR)/stub16.c link $(ldebug) $(conlflags) -out:$@ $(TMPDIR)/stub16.obj $(guilibsdll) endif ifeq ($(OBJEXT),o) $(TCLREGDLL): $(TMPDIR)/tclWinReg.$(OBJEXT) $(TCLLIB) echo EXPORTS > $(TMPDIR)/tclreg.def echo Registry_Init >> $(TMPDIR)/tclreg.def $(CC) -s $(DLL_LDFLAGS) -Wl,--base-file,tclreg.base -o $(TCLREGDLL) $(TMPDIR)/tclWinReg.$(OBJEXT) $(TCLLIB) $(DLL_LDLIBS) -ladvapi32 -mwindows -Wl,-e,_DllEntryPoint@12 -Wl,--image-base,0x66200000 $(DLLTOOL) --as=$(AS) --dllname $(TCLREGDLL) --def $(TMPDIR)/tclreg.def --base-file tclreg.base --output-exp tclreg.exp $(CC) -s $(DLL_LDFLAGS) -Wl,--base-file,tclreg.base -Wl,tclreg.exp -o $(TCLREGDLL) $(TMPDIR)/tclWinReg.$(OBJEXT) $(TCLLIB) $(DLL_LDLIBS) -ladvapi32 -mwindows -Wl,-e,_DllEntryPoint@12 -Wl,--image-base,0x66200000 $(DLLTOOL) --as=$(AS) --dllname $(TCLREGDLL) --def $(TMPDIR)/tclreg.def --base-file tclreg.base --output-exp tclreg.exp $(CC) $(DLL_LDFLAGS) -Wl,tclreg.exp -o $(TCLREGDLL) $(TMPDIR)/tclWinReg.$(OBJEXT) $(TCLLIB) $(DLL_LDLIBS) -ladvapi32 -mwindows -Wl,-e,_DllEntryPoint@12 -Wl,--image-base,0x66200000 rm -f $(TMPDIR)/tclreg.def else $(TCLREGDLL): $(TMPDIR)/tclWinReg.obj link $(ldebug) $(dlllflags) -out:$@ $(TMPDIR)/tclWinReg.obj \ $(conlibsdll) $(TCLLIB) -entry:_DllMainCRTStartup@12 endif ifeq ($(OBJEXT),o) $(CAT32): $(WINDIR)/cat.c $(CC) -c $(CON_CFLAGS) $? $(CC) -o $@ -Wl,-stack,16384 $(TMPDIR)/cat.$(OBJEXT) $(conlibs) else $(CAT32): $(WINDIR)/cat.c $(CC) $(CON_CFLAGS) -Fo$(TMPDIR)/ $(WINDIR)/cat.c link -subsystem:console -entry:mainCRTStartup -out:$@ -stack:16384 $(TMPDIR)/cat.obj $(conlibs) endif # $(CAT16): $(WINDIR)\cat.c # if exist $(cc16) $(cc16) $(DOS_CFLAGS) -Fo$(TMPDIR)\ $? # set LIB=$(TOOLS16)\lib # if exist $(cc16) $(link16) /NOLOGO /ONERROR:NOEXE /NOI /STACK:16384 \ # $(TMPDIR)\cat.obj,$@,nul,llibce.lib,nul $(TMPDIR)/tclcyg.def: $(DUMPEXTS) $(TCLOBJS) echo 'EXPORTS' > tmp.def -for o in $(TCLOBJS); do \ $(NM) --extern-only --defined-only $$o | sed -e 's/[^ ]* [^ ]* //' -e 's/^_//' | fgrep -v DllEntryPoint | fgrep -v DllMain | fgrep -v impure_ptr >> tmp.def; \ done mv tmp.def $(TMPDIR)/tclcyg.def $(TMPDIR)/plugin.def: $(DUMPEXTS) $(TCLOBJS) echo 'EXPORTS' > tmp.def -for o in $(TCLOBJS); do \ $(NM) --extern-only --defined-only $$o | sed -e 's/[^ ]* [^ ]* //' -e 's/^_//' | fgrep -v DllEntryPoint | fgrep -v DllMain | fgrep -v impure_ptr >> tmp.def; \ done mv tmp.def $(TMPDIR)/plugin.def # # Special case object file targets # $(TMPDIR)/testMain.$(OBJEXT): $(WINDIR)/tclAppInit.c $(CC) -c -o $(TMPDIR)/testMain.$(OBJEXT) $(TCL_CFLAGS) -DTCL_TEST $? # # Implicit rules # .SUFFIXES: .S .c .o .obj .s ifeq ($(OBJEXT),o) .c.$(OBJEXT): $(CC) -c $(TCL_CFLAGS) $< else .c.$(OBJEXT): $(CC) -c $(TCL_CFLAGS) -Dtry=__try -Dexcept=__except $< endif ifeq ($(OBJEXT),o) tclres.$(OBJEXT): $(srcdir)/tcl.rc $(WINDRES) --include $(GENERICDIR) --include $(WINDIR) --define __WIN32__ --define VS_VERSION_INFO=1 $(srcdir)/tcl.rc tclres.$(OBJEXT) tclshres.$(OBJEXT): $(srcdir)/tclsh.rc $(WINDRES) --include $(GENERICDIR) --include $(WINDIR) --define __WIN32__ --define VS_VERSION_INFO=1 $(srcdir)/tclsh.rc tclshres.$(OBJEXT) else tclres.$(OBJEXT): $(srcdir)/tcl.rc rc -i$(GENERICDIR) -i$(WINDIR) -d__WIN32__ -dVS_VERSION_INFO=1 -fotclres.$(OBJEXT) $(srcdir)/tcl.rc tclshres.$(OBJEXT): $(srcdir)/tclsh.rc rc -i$(GENERICDIR) -i$(WINDIR) -d__WIN32__ -dVS_VERSION_INFO=1 -fotclshres.$(OBJEXT) $(srcdir)/tclsh.rc endif #{$(WINDIR)}.rc{$(TMPDIR)}.res: # $(rc32) -fo $@ -r -i $(GENERICDIR) -i $(WINDIR) -D__WIN32__ \ # $(TCL_DEFINES) $< clean: rm -f *.exp *.a *.dll *.exe $(TMPDIR)/*.$(OBJEXT) *.res *.def rm -f tcl.base tclreg.base tclplugin.base Makefile: $(WINDIR)/Makefile.in config.status $(SHELL) config.status config.status: $(WINDIR)/configure ./config.status --recheck