Date: Sat, 24 Jun 2006 05:56:40 +0400 (MSD) From: Stanislav Sedov <ssedov@mbsd.msk.ru> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/99399: [NEW PORT] cad/tclspice: Improved version on SPICE3 suite with TCL scripting features Message-ID: <200606240156.k5O1ueAH039856@fonon.realnet> Resent-Message-ID: <200606240200.k5O20bTH008126@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 99399 >Category: ports >Synopsis: [NEW PORT] cad/tclspice: Improved version on SPICE3 suite with TCL scripting features >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Jun 24 02:00:36 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Stanislav Sedov >Release: FreeBSD 7.0-CURRENT i386 >Organization: MBSD labs, Inc. >Environment: System: FreeBSD fonon.realnet 7.0-CURRENT FreeBSD 7.0-CURRENT #7: Sun Jun 18 20:51:36 MSD 2006 >Description: TclSpice is an improved version of Berkeley Spice designed to be used with the Tcl/Tk scripting language. The project is open-source (BSD license) and based upon the NG-Spice source code base with many improvements Features and Improvements - Fully Tcl scriptable - installs with 'package require spice' statement - Hspice syntax (SpicePP). - GUI interfaces, various (Tk). - SpiceWish (BLT graph widget) - BLT (tcl compatible) vectors for storage, manipulation and arithmetic upon Spice waveforms. - Xspice additions (Georgia Tech). - Trigger upon waveform events. - Spice 'simulator state' save and restore for rapid 'what-if' simulations (no longer need to re-simulate from the beginning each time a device value is changed). Author: Stefan Jones <stefan.jones@multigig.com> WWW: http://tclspice.sourceforge.net/ ------------------------------------------------------------------- I've decided to install tcl files to ${PREFIX}/lib/${PORTNAME} since other tcl packaged do so. >How-To-Repeat: >Fix: --- tclspice-0.2.18.shar begins here --- # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # tclspice # tclspice/pkg-descr # tclspice/Makefile # tclspice/pkg-plist # tclspice/files # tclspice/files/patch-src_Makefile.am # tclspice/files/patch-src_frontend_parser_complete.c # tclspice/files/patch-src_frontend_aspice.c # tclspice/files/patch-src_spicelib_devices_names.c # tclspice/files/patch-src_spicepp.pl.in # tclspice/files/patch-src_spicewish # tclspice/files/patch-src_frontend_resource.c # tclspice/files/patch-src_xspice_icm_Makefile # tclspice/files/pkg-message.in # tclspice/files/patch-src_tcl_vector_test.tcl # tclspice/files/patch-src_tcl_plot.tcl # tclspice/distinfo # echo c - tclspice mkdir -p tclspice > /dev/null 2>&1 echo x - tclspice/pkg-descr sed 's/^X//' >tclspice/pkg-descr << 'END-of-tclspice/pkg-descr' XTclSpice is an improved version of Berkeley Spice designed to be used with Xthe Tcl/Tk scripting language. The project is open-source (BSD license) Xand based upon the NG-Spice source code base with many improvements X XFeatures and Improvements X - Fully Tcl scriptable - installs with 'package require spice' statement X - Hspice syntax (SpicePP). X - GUI interfaces, various (Tk). X - SpiceWish (BLT graph widget) X - BLT (tcl compatible) vectors for storage, manipulation and arithmetic X upon Spice waveforms. X - Xspice additions (Georgia Tech). X - Trigger upon waveform events. X - Spice 'simulator state' save and restore for rapid 'what-if' simulations X (no longer need to re-simulate from the beginning each time a X device value is changed). X XAuthor: Stefan Jones <stefan.jones@multigig.com> XWWW: http://tclspice.sourceforge.net/ END-of-tclspice/pkg-descr echo x - tclspice/Makefile sed 's/^X//' >tclspice/Makefile << 'END-of-tclspice/Makefile' X# New ports collection makefile for: tclspice X# Date created: 2006-06-24 X# Whom: Stanislav Sedov <stas@fonon.realnet> X# X# $FreeBSD$ X# X XPORTNAME= tclspice XPORTVERSION= 0.2.18 XCATEGORIES= cad XMASTER_SITES= ${MASTER_SITE_SOURCEFORGE} X XMAINTAINER= ssedov@mbsd.msk.ru XCOMMENT= Improved version on SPICE3 suite with TCL scripting features X XBUILD_DEPENDS= bltwish:${PORTSDIR}/x11-toolkits/blt XRUN_DEPENDS= wish8.4:${PORTSDIR}/x11-toolkits/tk84 X XWRKSRC= ${WRKDIR}/${PORTNAME} XUSE_AUTOTOOLS= aclocal:19 automake:19 autoconf:259 libtool:15 XAUTOMAKE_ARGS= -c -a XUSE_GMAKE= yes XGNU_CONFIGURE= yes XALL_TARGET= tcl XINSTALL_TARGET= install-tcl XINSTALLS_SHLIB= yes X XSUB_FILES= pkg-message XPKGMESSAGE= ${WRKDIR}/pkg-message X XOPTIONS= EXPERIMENTAL "Enable experimental features" yes \ X EXAMPLES "Install sample scrips" yes X XCONFIGURE_ARGS= --with-tcl=${LOCALBASE}/lib/tcl8.4 XCONFIGURE_ENV= CFLAGS="-I${LOCALBASE}/include ${CFLAGS}" \ X LDFLAGS="-L${LOCALBASE}/lib" XACLOCAL_ARGS= --acdir=${ACLOCAL_DIR} -I ${LOCALBASE}/share/aclocal X XWISH= ${LOCALBASE}/bin/wish8.4 X X.include <bsd.port.pre.mk> X.if defined(WITH_EXPERIMENTAL) XCONFIGURE_ARGS+= --enable-experimental X.endif X X.if defined(WITH_EXAMPLES) XPLIST_SUB+= EXAMPLES="" X.else XPLIST_SUB+= EXAMPLES="@comment " X.endif X Xpost-patch: X.for FILE in spicewish tcl/plot.tcl tcl/vector_test.tcl X @${REINPLACE_CMD} -e 's|%%WISH%%|${WISH}|g' ${WRKSRC}/src/${FILE} X.endfor X Xpost-install: X.if defined(WITH_EXAMPLES) X @${MKDIR} ${EXAMPLESDIR} X.for FILE in README example.cir plot.tcl vector_test.tcl X @${INSTALL_DATA} ${WRKSRC}/src/tcl/${FILE} ${EXAMPLESDIR} X.endfor X @${CAT} ${PKGMESSAGE} X.endif X X.include <bsd.port.post.mk> END-of-tclspice/Makefile echo x - tclspice/pkg-plist sed 's/^X//' >tclspice/pkg-plist << 'END-of-tclspice/pkg-plist' Xbin/spicewish Xlib/libspice.so Xlib/tclspice/controls.tcl Xlib/tclspice/engUnits.tcl Xlib/tclspice/gnuplot.tcl Xlib/tclspice/measure.tcl Xlib/tclspice/measure_spice.pl Xlib/tclspice/nodeDialog.tcl Xlib/tclspice/pkgIndex.tcl Xlib/tclspice/readline.tcl Xlib/tclspice/spicepp.pl Xlib/tclspice/spicepp.tcl Xlib/tclspice/spicewish.tcl Xlib/tclspice/viewer.tcl X%%DATADIR%%/helpdir/ngspice.idx X%%DATADIR%%/helpdir/ngspice.txt X%%DATADIR%%/scripts/setplot X%%DATADIR%%/scripts/spectrum X%%DATADIR%%/scripts/spinit X%%EXAMPLES%%share/examples/tclspice/README X%%EXAMPLES%%share/examples/tclspice/example.cir X%%EXAMPLES%%share/examples/tclspice/plot.tcl X%%EXAMPLES%%share/examples/tclspice/vector_test.tcl X%%EXAMPLES%%@dirrm share/examples/tclspice X@dirrm lib/tclspice X@dirrm %%DATADIR%%/helpdir X@dirrm %%DATADIR%%/scripts X@dirrm %%DATADIR%% END-of-tclspice/pkg-plist echo c - tclspice/files mkdir -p tclspice/files > /dev/null 2>&1 echo x - tclspice/files/patch-src_Makefile.am sed 's/^X//' >tclspice/files/patch-src_Makefile.am << 'END-of-tclspice/files/patch-src_Makefile.am' X--- src/Makefile.am.orig Fri Jul 23 20:22:10 2004 X+++ src/Makefile.am Sat Jun 24 03:43:15 2006 X@@ -181,12 +181,12 @@ X X pkgIndex.tcl: pkgIndex.tcl.in X rm -f $@ X- sed -e 's;%LIB_DIR%;$(TCL_PKG_PATH);g' $< | \ X+ sed -e 's;%LIB_DIR%;$(libdir);g' $< | \ X sed -e 's;%VERSION%;$(TCLSPICE_VERSION);g' > $@ X X spicepp.pl: spicepp.pl.in X rm -f $@ X- sed -e 's;%LIB_DIR%;$(TCL_PKG_PATH);g' $< | \ X+ sed -e 's;%LIB_DIR%;$(libdir);g' $< | \ X sed -e 's;%VERSION%;$(TCLSPICE_VERSION);g' > $@ X X install-tcl: install-tcl-recursive install-tclspice install-data-am X@@ -199,17 +199,17 @@ X done; X X install-tclspice: $(TCL_FILES) X- $(mkinstalldirs) $(DESTDIR)$(TCL_PKG_PATH) X- $(INSTALL_DATA) libspice.so $(DESTDIR)$(TCL_PKG_PATH) X- $(mkinstalldirs) $(DESTDIR)$(TCL_PKG_PATH)/spice X- $(INSTALL_PROGRAM) spicepp.pl $(DESTDIR)$(TCL_PKG_PATH)/spice X- $(INSTALL_PROGRAM) measure_spice.pl $(DESTDIR)$(TCL_PKG_PATH)/spice X+ $(mkinstalldirs) $(DESTDIR)$(libdir) X+ $(INSTALL_DATA) libspice.so $(DESTDIR)$(libdir) X+ $(mkinstalldirs) $(DESTDIR)$(libdir)/tclspice X+ $(INSTALL_SCRIPT) spicepp.pl $(DESTDIR)$(libdir)/tclspice X+ $(INSTALL_SCRIPT) measure_spice.pl $(DESTDIR)$(libdir)/tclspice X @for f in $(TCL_SOURCE) ; do \ X- echo $(INSTALL_DATA) $$f $(DESTDIR)$(TCL_PKG_PATH)/spice; \ X- $(INSTALL_DATA) $$f $(DESTDIR)$(TCL_PKG_PATH)/spice; \ X+ echo $(INSTALL_DATA) $$f $(DESTDIR)$(libdir)/tclspice; \ X+ $(INSTALL_DATA) $$f $(DESTDIR)$(libdir)/tclspice; \ X done X $(mkinstalldirs) $(DESTDIR)$(bindir) X- $(INSTALL_PROGRAM) spicewish $(DESTDIR)$(bindir) X+ $(INSTALL_SCRIPT) spicewish $(DESTDIR)$(bindir) X X tclspice.o: tclspice.c X $(COMPILE) -c -fpic tclspice.c -DTCLSPICE_version="\"$(TCLSPICE_VERSION)\"" X@@ -229,4 +229,4 @@ X (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) all) \ X || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ X done; X- make $(TCL_FILES) X+ gmake $(TCL_FILES) END-of-tclspice/files/patch-src_Makefile.am echo x - tclspice/files/patch-src_frontend_parser_complete.c sed 's/^X//' >tclspice/files/patch-src_frontend_parser_complete.c << 'END-of-tclspice/files/patch-src_frontend_parser_complete.c' X--- ./src/frontend/parser/complete.c.orig Sat Jun 24 01:40:09 2006 X+++ ./src/frontend/parser/complete.c Sat Jun 24 01:40:17 2006 X@@ -415,7 +415,7 @@ X # else X # ifdef HAVE_TERMIOS_H X X-# if defined(__NetBSD__) || defined(__APPLE_CC__) X+# if defined(__NetBSD__) || defined(__APPLE_CC__) || defined(__FreeBSD__) X # define TCGETS X # define TCSETS X # endif X@@ -428,7 +428,7 @@ X # endif X # endif X X-# if defined(TERM_GET) || defined(__NetBSD__) || defined(__APPLE_CC__) X+# if defined(TERM_GET) || defined(__NetBSD__) || defined(__APPLE_CC__) || defined(__FreeBSD__) X static bool ison = FALSE; X X if (cp_nocc || !cp_interactive || (ison == on)) X@@ -436,7 +436,7 @@ X ison = on; X X if (ison == TRUE) { X-#if defined(__NetBSD__) || defined(__APPLE_CC__) X+#if defined(__NetBSD__) || defined(__APPLE_CC__) || defined(__FreeBSD__) X tcgetattr(fileno(cp_in),&OS_Buf); X #else X (void) ioctl(fileno(cp_in), TERM_GET, (char *) &OS_Buf); X@@ -445,13 +445,13 @@ X sbuf.c_cc[VEOF] = 0; X sbuf.c_cc[VEOL] = ESCAPE; X sbuf.c_cc[VEOL2] = CNTRL_D; X-#if defined(__NetBSD__) || defined(__APPLE_CC__) X+#if defined(__NetBSD__) || defined(__APPLE_CC__) || defined(__FreeBSD__) X tcsetattr(fileno(cp_in),TCSANOW,&sbuf); X #else X (void) ioctl(fileno(cp_in), TERM_SET, (char *) &sbuf); X #endif X } else { X-#if defined(__NetBSD__) || defined(__APPLE_CC__) X+#if defined(__NetBSD__) || defined(__APPLE_CC__) || defined(__FreeBSD__) X tcsetattr(fileno(cp_in),TCSANOW,&OS_Buf); X #else X (void) ioctl(fileno(cp_in), TERM_SET, (char *) &OS_Buf); END-of-tclspice/files/patch-src_frontend_parser_complete.c echo x - tclspice/files/patch-src_frontend_aspice.c sed 's/^X//' >tclspice/files/patch-src_frontend_aspice.c << 'END-of-tclspice/files/patch-src_frontend_aspice.c' X--- ./src/frontend/aspice.c.orig Sat Jun 24 01:39:15 2006 X+++ ./src/frontend/aspice.c Sat Jun 24 01:39:39 2006 X@@ -176,7 +176,7 @@ X * whether the exit was normal or not. X */ X X-#if defined(__NetBSD__) || defined(SOLARIS) X+#if defined(__NetBSD__) || defined(SOLARIS) || defined(__FreeBSD__) X pid_t status; X #else X union wait status; END-of-tclspice/files/patch-src_frontend_aspice.c echo x - tclspice/files/patch-src_spicelib_devices_names.c sed 's/^X//' >tclspice/files/patch-src_spicelib_devices_names.c << 'END-of-tclspice/files/patch-src_spicelib_devices_names.c' X--- ./src/spicelib/devices/names.c.orig Sat Jun 24 02:01:08 2006 X+++ ./src/spicelib/devices/names.c Sat Jun 24 02:01:17 2006 X@@ -28,7 +28,6 @@ X #include <assert.h> X #include <stdlib.h> X #include <string.h> X-#include <malloc.h> X X #define __NAMES_PRIVATE__ X #include "names.h" END-of-tclspice/files/patch-src_spicelib_devices_names.c echo x - tclspice/files/patch-src_spicepp.pl.in sed 's/^X//' >tclspice/files/patch-src_spicepp.pl.in << 'END-of-tclspice/files/patch-src_spicepp.pl.in' X--- src/spicepp.pl.in.orig Sat Jun 24 03:44:04 2006 X+++ src/spicepp.pl.in Sat Jun 24 03:44:16 2006 X@@ -307,7 +307,7 @@ X push(@xtra, ".control"); X push(@xtra, "print time $trig $targ > meas.data"); X push(@xtra, "echo $_ > meas.ctl"); X- push(@xtra, "shell %LIB_DIR%/spice/measure_spice.pl $name"); X+ push(@xtra, "shell %LIB_DIR%/tclspice/measure_spice.pl $name"); X push(@xtra, ".endc"); X splice(@deck,$i,1,@xtra); X @xtra=(); END-of-tclspice/files/patch-src_spicepp.pl.in echo x - tclspice/files/patch-src_spicewish sed 's/^X//' >tclspice/files/patch-src_spicewish << 'END-of-tclspice/files/patch-src_spicewish' X--- src/spicewish.orig Sat Jun 24 04:21:41 2006 X+++ src/spicewish Sat Jun 24 04:21:59 2006 X@@ -2,7 +2,7 @@ X # 22/6/04 -ad X X # the next line starts SpiceWish interactively with the given file name \ X-exec wish "$0" "$@" X+exec %%WISH%% "$0" "$@" X X package require spice X package require tclreadline END-of-tclspice/files/patch-src_spicewish echo x - tclspice/files/patch-src_frontend_resource.c sed 's/^X//' >tclspice/files/patch-src_frontend_resource.c << 'END-of-tclspice/files/patch-src_frontend_resource.c' X--- src/frontend/resource.c.orig Sat Jun 24 04:53:17 2006 X+++ src/frontend/resource.c Sat Jun 24 04:55:41 2006 X@@ -311,7 +311,7 @@ X static RETSIGTYPE X fault(void) X { X- signal(SIGSEGV, (SIGNAL_FUNCTION) fault); /* SysV style */ X+ signal(SIGBUS, (SIGNAL_FUNCTION) fault); /* SysV style */ X siglongjmp(env, 1); X } X #if !defined(__MINGW32__) && !defined(__APPLE_CC__) X@@ -321,7 +321,8 @@ X char *low, *high, *at; X /* char *sbrk(int); */ X long x; X- RETSIGTYPE (*orig_signal)( ); X+ RETSIGTYPE (*orig_sigsegv)( ); X+ RETSIGTYPE (*orig_sigbus)( ); X X if (getenv("SPICE_NO_DATASEG_CHECK")) X return 0; X@@ -330,7 +331,8 @@ X low = 0; X high = (char *) ((unsigned long) sbrk(0) & ~((1 << LOG2_PAGESIZE) - 1)); X X- orig_signal = signal(SIGSEGV, (SIGNAL_FUNCTION) fault); X+ orig_sigsegv = signal(SIGSEGV, (SIGNAL_FUNCTION) fault); X+ orig_sigbus = signal(SIGBUS, (SIGNAL_FUNCTION) fault); X X do { X X@@ -358,7 +360,8 @@ X X } while (1); X X- (void) signal(SIGSEGV, (SIGNAL_FUNCTION) orig_signal); X+ (void) signal(SIGSEGV, (SIGNAL_FUNCTION) orig_sigsegv); X+ (void) signal(SIGBUS, (SIGNAL_FUNCTION) orig_sigbus); X return (void *) high; X } X #endif END-of-tclspice/files/patch-src_frontend_resource.c echo x - tclspice/files/patch-src_xspice_icm_Makefile sed 's/^X//' >tclspice/files/patch-src_xspice_icm_Makefile << 'END-of-tclspice/files/patch-src_xspice_icm_Makefile' X--- src/xspice/icm/Makefile.orig Sat Jun 24 05:04:12 2006 X+++ src/xspice/icm/Makefile Sat Jun 24 05:04:39 2006 X@@ -12,9 +12,9 @@ X -include .deps/cm.P X -include .deps/dlmain.P X X-UPMAKE = make -f $(TOPDIR)../Makefile TOPDIR=$(TOPDIR)../ X+UPMAKE = gmake -f $(TOPDIR)../Makefile TOPDIR=$(TOPDIR)../ X X-MAKE = make -f $(TOPDIR)Makefile TOPDIR=$(TOPDIR) X+MAKE = gmake -f $(TOPDIR)Makefile TOPDIR=$(TOPDIR) X X COMPILE = $(CC) $(INCLUDES) $(CFLAGS) X END-of-tclspice/files/patch-src_xspice_icm_Makefile echo x - tclspice/files/pkg-message.in sed 's/^X//' >tclspice/files/pkg-message.in << 'END-of-tclspice/files/pkg-message.in' X============================================================================ X XExample scrips was installed in %%EXAMPLESDIR%%. Take a Xlook on %%EXAMPLESDIR%%/README for additional information Xon how to create your own Tcl scrips. X X============================================================================ END-of-tclspice/files/pkg-message.in echo x - tclspice/files/patch-src_tcl_vector_test.tcl sed 's/^X//' >tclspice/files/patch-src_tcl_vector_test.tcl << 'END-of-tclspice/files/patch-src_tcl_vector_test.tcl' X--- src/tcl/vector_test.tcl.orig Sat Jun 24 05:37:20 2006 X+++ src/tcl/vector_test.tcl Sat Jun 24 05:37:14 2006 X@@ -1,6 +1,6 @@ X #!/bin/sh X # WishFix \ X- exec wish -f "$0" ${1+"$@"} X+ exec %%WISH%% -f "$0" ${1+"$@"} X ### X X package require BLT END-of-tclspice/files/patch-src_tcl_vector_test.tcl echo x - tclspice/files/patch-src_tcl_plot.tcl sed 's/^X//' >tclspice/files/patch-src_tcl_plot.tcl << 'END-of-tclspice/files/patch-src_tcl_plot.tcl' X--- src/tcl/plot.tcl.orig Sat Jun 24 05:36:11 2006 X+++ src/tcl/plot.tcl Sat Jun 24 05:36:33 2006 X@@ -1,6 +1,6 @@ X #!/bin/sh X # WishFix \ X- exec wish -f "$0" ${1+"$@"} X+ exec %%WISH%% -f "$0" ${1+"$@"} X ### X X package require spice END-of-tclspice/files/patch-src_tcl_plot.tcl echo x - tclspice/distinfo sed 's/^X//' >tclspice/distinfo << 'END-of-tclspice/distinfo' XMD5 (tclspice-0.2.18.tar.gz) = a7c02132ca74064611011f8dee6bd3d5 XSHA256 (tclspice-0.2.18.tar.gz) = 0393a61b89a56b5dba2444a8914cb85b6212b552f2fbc80f0a822bfe04b74f5e XSIZE (tclspice-0.2.18.tar.gz) = 2985319 END-of-tclspice/distinfo exit --- tclspice-0.2.18.shar ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200606240156.k5O1ueAH039856>