Hi,

I spent a little bit of time trying to get XCircuit 3.6.139 compiled on my Windows Vista computer using MS Visual Studio Express 2008 and ActiveTcl 8.5.4 . The compile was mostly ok, with only a few changes needed in Makefile.win32, tclxcircuit.c and files.c. I am attaching the patch file.

The changes are related to
1) Defining SCRIPTS_DIR for various compilation steps
2) MSVC only accepts declarations at the beginning of a scope.
3) S_ISDIR is undefined on Windows. tclWinPort.h provides it.

Thanks
Satya
diff -urw xcircuit-3.6.139/Makefile.win32 xcircuit-modified/Makefile.win32
--- xcircuit-3.6.139/Makefile.win32     Thu Jul 20 11:42:06 2006
+++ xcircuit-modified/Makefile.win32    Fri Sep 12 08:20:51 2008
@@ -15,10 +15,10 @@
 # Configuration variables #
 ###########################
 
-INSTALLDIR = D:\Software\XCircuit-tcl-dev
-TEMPDIR    = D:\Temp
+INSTALLDIR = C:\Local
+TEMPDIR    = $(TEMP)
 
-GSDIR      = C:\gs\gs8.15
+GSDIR      = C:\Programs\gs\gs8.63
 
 # Possible values: tcl, win32
 BUILD_TYPE = tcl
@@ -29,8 +29,8 @@
 XCCOMDIR         = xccom2
 
 # Additional settings for tcl build
-TCLDIR     = D:\Software\Tcl
-TCLVERSION = 84
+TCLDIR     = C:\Tcl
+TCLVERSION = 85
 
 ####################################################################
 # End of configuration. DO NOT CHANGE ANYTHING AFTER THIS POINT!!! #
@@ -222,10 +222,10 @@
 .SUFFIXES: .c .o .obj .rc .res
 
 .c.o:
-       $(COMPILE) -c $<
+       $(COMPILE) -DSCRIPTS_DIR=$(SCRIPTS_DIR) -c $<
 
 .c.obj:
-       $(COMPILE) -c "$<"
+       $(COMPILE) -DSCRIPTS_DIR=$(SCRIPTS_DIR) -c "$<"
 
 .rc.res:
        rc -fo$@ $(XC_CFLAGS) /i$(XCCOMDIR) $<
@@ -241,7 +241,8 @@
        .\menudep$(EXEEXT)
 
 xcwrap.obj: xcwrap.c menudep.h
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(DEFS) $(PATHNAMES) $(INCLUDES) \
+       $(CC) $(CPPFLAGS) $(CFLAGS) $(DEFS) $(PATHNAMES) \
+               $(INCLUDES) -DSCRIPTS_DIR=$(SCRIPTS_DIR) \
                xcwrap.c -c -Foxcwrap.$(OBJEXT)
 
 lib\tcl\xcircuit$(SHDLIB_EXT): xcwrap.$(OBJEXT) $(xcircuit_OBJECTS) 
$(xcircuit_DEPEND)
@@ -259,7 +260,7 @@
 xcircexec$(EXEEXT): xcircexec.$(OBJEXT)
        -$(RM) .\xcircexec$(EXEEXT)
        $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(PATHNAMES) $(INCLUDES) \
-               xcircexec.c -Fe$@ $(LDFLAGS) \
+               -DSCRIPTS_DIR=$(SCRIPTS_DIR) xcircexec.c -Fe$@ $(LDFLAGS) \
                $(LIBS) $(LIB_SPECS) $(EXTRA_LIB_SPECS)
 
 xcircuit-win32$(EXEEXT): xcircuit-win32.c resources.res
@@ -307,17 +308,18 @@
 
 lib\$(INTERP_PATH)\$(WRAPPER_INIT): $(PP) lib\$(INTERP_PATH)\$(WRAPPER_INIT).in
        $(PP) $(PATHNAMES) -DLIBDIR=\"$(librarydir:\=/)\" \
+               -DSCRIPTSDIR=$(SCRIPTS_DIR) \
                lib/$(INTERP_PATH)/$(WRAPPER_INIT).in > $@
 
 lib\xcircuit.1: $(PP) lib\xcircuit.1.in
        $(PP) -DLIBDIR=\"$(libdir)\" \
-               -DSCRIPTSDIR=\"$(scriptsdir)\" \
+               -DSCRIPTSDIR=$(SCRIPTS_DIR) \
                -DLGF=1 -DPYTHON=0 -DTCL=1 -DNOINTERP=0 \
                lib\xcircuit.1.in > $@
 
 install-data-local: lib/xcircuit.1
        @echo "Installing library files"
-       $(mkinstalldirs) $(DESTDIR)$(librarydir)
+       -$(mkinstalldirs) $(DESTDIR)$(librarydir)
        cd lib
        for %i in ($(PROLOGUE_FILE) *.lps) do $(INSTALL_DATA) %i 
$(DESTDIR)$(librarydir)
        cd ..
@@ -325,7 +327,7 @@
        for %i in ($(STARTUP_FILE)) do $(INSTALL_DATA) %i 
$(DESTDIR)$(librarydir)
        cd ..\..
        @echo "Installing .lps font files"
-       $(mkinstalldirs) $(DESTDIR)$(librarydir)\fonts
+       -$(mkinstalldirs) $(DESTDIR)$(librarydir)\fonts
        for %i in ($(FONTS_LPS)) do $(INSTALL_DATA) lib\fonts\%i.lps 
$(DESTDIR)$(librarydir)\fonts
        @echo "Installing .xfe font files"
        for %i in ($(FONTS_XFE)) do $(INSTALL_DATA) lib\fonts\%i.xfe 
$(DESTDIR)$(librarydir)\fonts
@@ -335,7 +337,6 @@
 # So we make a symbolic link if SHDLIB_EXT != .so
 
 install-tcl: xcircexec$(EXEEXT) lib/$(INTERP_PATH)/$(WRAPPER_OBJ) 
lib/$(INTERP_PATH)/$(WRAPPER_SH) lib/$(INTERP_PATH)/$(WRAPPER_INIT) 
xcircuit-win32$(EXEEXT)
-       if exist $(prefix) $(RMDIR) $(prefix)
        @echo "Installing standard XCircuit library files"
        $(MAKE) $(AM_MAKEFLAGS) install-data-local
        @echo "Installing Tcl files"
@@ -344,17 +345,16 @@
        cd ..\..
        $(INSTALL_DATA) xcircexec$(EXEEXT) $(DESTDIR)$(librarydir)
        @echo "Installing pixmap images"
-       $(mkinstalldirs) $(DESTDIR)$(librarydir)\pixmaps
+       -$(mkinstalldirs) $(DESTDIR)$(librarydir)\pixmaps
        cd lib\pixmaps
        for %i in (*.gif *.xbm) do $(INSTALL_DATA) %i 
$(DESTDIR)$(librarydir)\pixmaps
        cd ..\..
        @echo "Installing shell script as xcircuit executable"
-       $(mkinstalldirs) $(DESTDIR)$(bindir)
+       -$(mkinstalldirs) $(DESTDIR)$(bindir)
        $(INSTALL_DATA) lib\$(INTERP_PATH)\$(WRAPPER_SH) $(DESTDIR)$(bindir)
        $(INSTALL_DATA) xcircuit-win32$(EXEEXT) $(DESTDIR)$(bindir)
 
 install-win32: xcircuit$(EXEEXT)
-       if exist $(prefix) $(RMDIR) $(prefix)
        $(MAKE) $(AM_MAKEFLAGS) install-data-local "librarydir=$(prefix)"
        $(INSTALL_DATA) xcircuit$(EXEEXT) $(DESTDIR)$(prefix)
 
diff -urw xcircuit-3.6.139/files.c xcircuit-modified/files.c
--- xcircuit-3.6.139/files.c    Wed Jul  2 23:15:54 2008
+++ xcircuit-modified/files.c   Fri Sep 12 07:51:24 2008
@@ -24,6 +24,9 @@
 
 #ifdef TCL_WRAPPER 
 #include <tk.h>
+#ifdef _MSC_VER
+#include <tclWinPort.h>
+#endif
 #else
 #ifndef XC_WIN32
 #include "Xw/TextEdit.h"   /* for XwTextCopyBuffer() */
diff -urw xcircuit-3.6.139/tclxcircuit.c xcircuit-modified/tclxcircuit.c
--- xcircuit-3.6.139/tclxcircuit.c      Wed Jul  2 23:15:54 2008
+++ xcircuit-modified/tclxcircuit.c     Fri Sep 12 07:43:58 2008
@@ -16,11 +16,13 @@
 #include <sys/stat.h>
 #include <errno.h>
 
-#include <tk.h>
 
 #ifndef _MSC_VER
 #include <X11/Intrinsic.h>
 #include <X11/StringDefs.h>
+#include <tk.h>
+#else
+#include <tkWin.h>
 #endif
 
 #ifdef OPENGL
@@ -5458,8 +5460,8 @@
 
       case ObjectIdx:
         if ((objc - nidx) == 1) {
-           numfound = 0;
            Tcl_Obj *listPtr;
+           numfound = 0;
            for (i = 0; i < areawin->selects; i++) {
               if (SELECTTYPE(areawin->selectlist + i) == OBJINST) {
                  pinst = SELTOOBJINST(areawin->selectlist + i);
@@ -5487,8 +5489,8 @@
 
       case ScaleIdx:
         if ((objc - nidx) == 1) {
-           numfound = 0;
            Tcl_Obj *listPtr;
+           numfound = 0;
            for (i = 0; i < areawin->selects; i++) {
               if (SELECTTYPE(areawin->selectlist + i) == OBJINST) {
                  pinst = SELTOOBJINST(areawin->selectlist + i);
@@ -5521,8 +5523,8 @@
       case CenterIdx:
 
         if ((objc - nidx) == 1) {
-           numfound = 0;
            Tcl_Obj *listPtr, *coord;
+           numfound = 0;
            for (i = 0; i < areawin->selects; i++) {
               if (SELECTTYPE(areawin->selectlist + i) == OBJINST) {
                  pinst = SELTOOBJINST(areawin->selectlist + i);
@@ -5570,8 +5572,8 @@
 
       case BBoxIdx:
         if ((objc - nidx) == 1) {
-           numfound = 0;
            Tcl_Obj *listPtr, *coord;
+           numfound = 0;
            for (i = 0; i < areawin->selects; i++) {
               if (SELECTTYPE(areawin->selectlist + i) == OBJINST) {
                  pinst = SELTOOBJINST(areawin->selectlist + i);
_______________________________________________
Xcircuit-dev mailing list
[email protected]
http://www.opencircuitdesign.com/mailman/listinfo/xcircuit-dev

Reply via email to