aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cad/tochnog/Makefile28
-rw-r--r--cad/tochnog/files/patch-makefile20
-rw-r--r--cad/tochnog/files/patch-so_suplu.c43
-rw-r--r--cad/tochnog/files/patch-src+so_suplu.c24
-rw-r--r--cad/tochnog/files/patch-tnsuplu.h8
-rw-r--r--cad/tochnog/files/patch-tochnog.h35
6 files changed, 87 insertions, 71 deletions
diff --git a/cad/tochnog/Makefile b/cad/tochnog/Makefile
index d6ef866319e5..1b97b6a79bfd 100644
--- a/cad/tochnog/Makefile
+++ b/cad/tochnog/Makefile
@@ -7,7 +7,7 @@
PORTNAME= tochnog
PORTVERSION= 20010211
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= cad
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= tochnog
@@ -24,21 +24,17 @@ BUILD_DEPENDS+= ${LOCALBASE}/lib/libsuperlu.a:${PORTSDIR}/math/superlu
.endif
LIB_DEPENDS= atlas:${PORTSDIR}/math/atlas
-# This port installs some plugins into a directory which is owned by the
-# the cad/linux-gid port, but it doesn't adds a dependency to linux-gid,
-# since tochnog can be used standalone.
-# The right thing to do would be to add a slave port which installs the
-# plugins only. The slave port would have to depend upon linux-gid and
-# tochnog.
-
USE_REINPLACE= yes
WRKSRC= ${WRKDIR}/${PORTNAME}/src
MAKEFILE= makefile
-GIDDIR?= share/gid
-PLIST_SUB+= GIDDIR=${GIDDIR}
+# You can set GIDDIR to share/gid to install the scripts to be used
+# with the cad/linux-gid port, otherwise they can be linked to the data
+# directory to avoid polluting the port space.
-GID_PREFIX?= ${LOCALBASE}/${GIDDIR}/problemtypes
+GIDDIR?= share/${PORTNAME}
+PLIST_SUB+= GIDDIR=${GIDDIR}
+GID_PTYPES= ${PREFIX}/${GIDDIR}/problemtypes
.ifdef WITH_THREADS
BLAS_LIBS?= -L${LOCALBASE}/lib -lptf77blas -latlas_r
@@ -55,7 +51,7 @@ pre-everything::
@${ECHO_MSG} "make WITH_THREADS=yes for threaded version"
.endif
-post-patch:
+pre-build:
@${REINPLACE_CMD} -e 's,%%LOCALBASE%%,${LOCALBASE},g ; \
s,%%PTHREAD_CFLAGS%%,${PTHREAD_CFLAGS},g ; s,%%PTHREAD_LIBS%%,${PTHREAD_LIBS},g ; \
s,%%SUPERLU%%,${SUPERLU},g ; \
@@ -76,13 +72,13 @@ do-install:
${INSTALL_PROGRAM} ${WRKSRC}/tochnog ${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKDIR}/tochnog/tools/aba2tn ${PREFIX}/bin
${INSTALL_SCRIPT} ${WRKDIR}/tochnog/tools/*.awk ${PREFIX}/bin
- ${MKDIR} ${GID_PREFIX}/tochnog.gid
+ ${MKDIR} ${GID_PTYPES}/tochnog.gid
${INSTALL_DATA} ${WRKDIR}/tochnog/gid/tochnog.gid/tochnog.cnd \
- ${GID_PREFIX}/tochnog.gid
+ ${GID_PTYPES}/tochnog.gid
${INSTALL_DATA} ${WRKDIR}/tochnog/gid/tochnog.gid/tochnog.mat \
- ${GID_PREFIX}/tochnog.gid
+ ${GID_PTYPES}/tochnog.gid
${INSTALL_SCRIPT} ${WRKDIR}/tochnog/gid/tochnog.gid/tochnog.ba* \
- ${GID_PREFIX}/tochnog.gid
+ ${GID_PTYPES}/tochnog.gid
.if !defined(NOPORTDOCS)
${MKDIR} ${EXAMPLESDIR}
@${RM} -f ${WRKDIR}/tochnog/test/*.orig
diff --git a/cad/tochnog/files/patch-makefile b/cad/tochnog/files/patch-makefile
index c6d77afd049f..a46ddd361587 100644
--- a/cad/tochnog/files/patch-makefile
+++ b/cad/tochnog/files/patch-makefile
@@ -1,5 +1,5 @@
--- makefile.orig Sun Aug 19 12:31:52 2001
-+++ makefile Wed Jun 18 12:57:01 2003
++++ makefile Fri Feb 3 16:41:08 2006
@@ -1,6 +1,7 @@
# *********** fortran 2 c *******************
# Set F2C (for unix -lf2c and for MS windows to f2c.lib)
@@ -29,7 +29,7 @@
-COMPILER_FLAGS= -c -O2 -w-
+COMPILER_C=$(CC)
+COMPILER_CPP=$(CXX)
-+COMPILER_FLAGS=$(CXXFLAGS) -c
++COMPILER_FLAGS=$(CFLAGS) -c
OBJ=obj
-LINK_FLAGS_BEFORE= -l$(F2C)
+LINK_FLAGS_BEFORE= -l$(F2C) -L%%LOCALBASE%%/lib
@@ -58,7 +58,7 @@
# single and multi-processor windows; borland c++ compiler
# set SYS_FILE above to syswin32 for multi-processor
-@@ -101,18 +102,23 @@
+@@ -101,17 +102,22 @@
"LINK_FLAGS_AFTER= /link $(F2C) $(PROFILE) /OUT:tochnog.exe"
# single processor linux; gnu gcc compiler
@@ -72,22 +72,22 @@
- "COMPILER_C=gcc" \
- "COMPILER_CPP=g++" \
- "COMPILER_FLAGS= -ansi -c -O2 -Wall $(PROFILE) $(ALL_INCLUDE)" \
-+ "COMPILER_FLAGS= -c ${CXXFLAGS} $(ALL_INCLUDE)" \
++ "COMPILER_FLAGS= -c ${CFLAGS} $(ALL_INCLUDE)" \
"LINK_FLAGS_BEFORE=" \
- "LINK_FLAGS_AFTER= $(PROFILE) $(ALL_LIB) -static -lm -o tochnog"
-
+- "LINK_FLAGS_AFTER= $(PROFILE) $(ALL_LIB) -static -lm -o tochnog"
++ "LINK_FLAGS_AFTER= $(PROFILE) $(ALL_LIB) -lm -o tochnog"
++
+# Multithreaded FreeBSD
+freebsd_parallel:
+ make tochnog \
+ "SYS_FILE=sysposix" \
+ "OBJ=o" \
-+ "COMPILER_FLAGS= -c ${CXXFLAGS} %%PTHREAD_CFLAGS%% -D_REENTRANT $(ALL_INCLUDE)" \
++ "COMPILER_FLAGS= -c ${CFLAGS} %%PTHREAD_CFLAGS%% -D_REENTRANT $(ALL_INCLUDE)" \
+ "LINK_FLAGS_BEFORE=" \
-+ "LINK_FLAGS_AFTER= $(ALL_LIB) %%PTHREAD_LIBS%% -static -lm -o tochnog"
-+
++ "LINK_FLAGS_AFTER= $(ALL_LIB) %%PTHREAD_LIBS%% -lm -o tochnog"
+
# multi processor linux; gnu gcc compiler
linux:
- make tochnog \
@@ -375,7 +381,7 @@
$(COMPILER_CPP) $(COMPILER_FLAGS) $(BCPP) $(VCPP)hyperela.$(SRC_CPP)
diff --git a/cad/tochnog/files/patch-so_suplu.c b/cad/tochnog/files/patch-so_suplu.c
new file mode 100644
index 000000000000..e865ccc3b0ff
--- /dev/null
+++ b/cad/tochnog/files/patch-so_suplu.c
@@ -0,0 +1,43 @@
+--- so_suplu.c.orig Thu Nov 9 15:59:39 2000
++++ so_suplu.c Sat Feb 4 20:21:59 2006
+@@ -22,14 +22,16 @@
+ #if ( SUPERLU_USE || SUPERLU_MT_USE || SUPERLU_DIST_USE )
+
+ #if SUPERLU_USE
+-#include "dsp_defs.h"
++#include "slu_ddefs.h"
+ #elif SUPERLU_MT_USE
++#include "util.h"
+ #include "pdsp_defs.h"
+ #elif SUPERLU_DIST_USE
+ #include <math.h>
++#include "superlu_util.h"
+ #include "superlu_ddefs.h"
+ #endif
+-#include "util.h"
++
+
+ long int solve_superlu( double *superlu_A, int *superlu_asub,
+ int *superlu_xa, int superlu_nnz, double solve_b[], long int solve_nlocal,
+@@ -53,6 +55,10 @@
+ int *perm_r, *perm_c;
+ int perm_spec;
+ int nrhs;
++#if SUPERLU_USE
++ SuperLUStat_t stat;
++ superlu_options_t options;
++#endif
+ #endif
+
+ /* Create Matrix A in the format expected by SuperLU */
+@@ -103,7 +109,9 @@
+
+ /* Solve */
+ #if SUPERLU_USE
+- dgssv( &A, perm_c, perm_r, &L, &U, &B, &info );
++ /* Initialize the statistics variables. */
++ StatInit(&stat);
++ dgssv(&options, &A, perm_c, perm_r, &L, &U, &B, &stat, &info );
+ #elif SUPERLU_MT_USE
+ pdgssv( nthread, &A, perm_c, perm_r, &L, &U, &B, &info );
+ #elif SUPERLU_DIST_USE
diff --git a/cad/tochnog/files/patch-src+so_suplu.c b/cad/tochnog/files/patch-src+so_suplu.c
index eeb9481d64a6..e69de29bb2d1 100644
--- a/cad/tochnog/files/patch-src+so_suplu.c
+++ b/cad/tochnog/files/patch-src+so_suplu.c
@@ -1,24 +0,0 @@
---- so_suplu.c.orig Fri Nov 10 05:59:39 2000
-+++ so_suplu.c Sun Mar 20 00:45:14 2005
-@@ -53,6 +53,10 @@
- int *perm_r, *perm_c;
- int perm_spec;
- int nrhs;
-+#if SUPERLU_USE
-+ SuperLUStat_t stat;
-+ superlu_options_t options;
-+#endif
- #endif
-
- /* Create Matrix A in the format expected by SuperLU */
-@@ -103,7 +107,9 @@
-
- /* Solve */
- #if SUPERLU_USE
-- dgssv( &A, perm_c, perm_r, &L, &U, &B, &info );
-+ /* Initialize the statistics variables. */
-+ StatInit(&stat);
-+ dgssv(&options, &A, perm_c, perm_r, &L, &U, &B, &stat, &info );
- #elif SUPERLU_MT_USE
- pdgssv( nthread, &A, perm_c, perm_r, &L, &U, &B, &info );
- #elif SUPERLU_DIST_USE
diff --git a/cad/tochnog/files/patch-tnsuplu.h b/cad/tochnog/files/patch-tnsuplu.h
index b8f6ceec4f44..6bd5f7d8f7d8 100644
--- a/cad/tochnog/files/patch-tnsuplu.h
+++ b/cad/tochnog/files/patch-tnsuplu.h
@@ -1,15 +1,15 @@
---- tnsuplu.h.orig Wed Jun 18 12:39:20 2003
-+++ tnsuplu.h Wed Jun 18 12:45:46 2003
+--- tnsuplu.h.orig Sun Aug 19 12:31:52 2001
++++ tnsuplu.h Fri Feb 3 15:55:13 2006
@@ -2,6 +2,12 @@
#define SUPERLU_USE 0
#define SUPERLU_MT_USE 0
#define SUPERLU_DIST_USE 0
-+#if SUPERLU_USE /* enums were changed for SuperLU v2 */
++/* enums were changed for SuperLU v2 */
+#define _D SLU_D
+#define DN SLU_DN
+#define GE SLU_GE
+#define NC SLU_NC
-+#endif
++
/* don't change the next lines */
#if SUPERLU_USE+SUPERLU_MT_USE+SUPERLU_DIST_USE > 1
ERROR___ just pick one
diff --git a/cad/tochnog/files/patch-tochnog.h b/cad/tochnog/files/patch-tochnog.h
index 530d4d49c9df..b36a1daa3872 100644
--- a/cad/tochnog/files/patch-tochnog.h
+++ b/cad/tochnog/files/patch-tochnog.h
@@ -1,31 +1,32 @@
---- tochnog.h.orig Sat Jul 12 13:05:15 2003
-+++ tochnog.h Sat Jul 12 15:29:05 2003
-@@ -17,12 +17,25 @@
+--- tochnog.h.orig Sun Feb 11 05:05:27 2001
++++ tochnog.h Fri Feb 3 15:15:51 2006
+@@ -17,12 +17,17 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <iostream.h>
+#include <iostream>
-+// C++ iostream compatibility stuff
-+using std::ios;
-+using std::cout;
-+using std::cin;
-+using std::flush;
-+//end iostream compatibility stuff
++// C++ headers
++#include <iostream>
++#include <fstream>
++#include <iomanip>
++using namespace std;
+
++// C headers
#include <assert.h>
#include <ctype.h>
#include <float.h>
-#include <fstream.h>
-#include <iomanip.h>
-+#include <fstream>
-+// C++ fstream compatibility stuff
-+using std::ifstream;
-+using std::ofstream;
-+using std::fstream;
-+//end fstream compatibility stuff
-+
-+#include <iomanip>
#include <math.h>
#include <limits.h>
#include <stdio.h>
+@@ -48,6 +53,8 @@
+ VERSION_MACRO, // mesh for control_macro
+ MVERSION // maximum number of versions, this must be the last item
+ };
++
++#define TOCHNOG_VERSION "July_25_2002"
+
+ // constants
+ #define MCHAR 100 // maximum length of names