Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Feb 2006 21:58:46 GMT
From:      "Pedro F. Giffuni" <giffunip@asme.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/92782: Build cleanups for cad/tochnog
Message-ID:  <200602032158.k13Lwk3x062822@www.freebsd.org>
Resent-Message-ID: <200602032200.k13M0FZ2065022@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         92782
>Category:       ports
>Synopsis:       Build cleanups for cad/tochnog
>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:   Fri Feb 03 22:00:14 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Pedro F. Giffuni
>Release:        6.0-Release (amd64)
>Organization:
>Environment:
FreeBSD etoile.cable.net.co 6.0-RELEASE FreeBSD 6.0-RELEASE #11: Thu Feb  2 23:55:44 COT 2006     root@etoile.cable.net.co:/usr/src/sys/amd64/compile/DIMENSION  amd64            
>Description:
              The threaded version of cad/tochnog wasn't building, so while I was fixing it I decided to do some required cleanups to the port:
- The GID scripts now install by default in a directory owned by the port but can be overrided for troubleless installation.
- Removed the -static flag to make the port less compiler dependant and to effectively use the shared version of atlas.
- Use CFLAGS to avoid warnings while building the port.
- changed the C++ workarounds to match the CVS version.
- updated the port version to match better what is on the CVS.
>How-To-Repeat:
              
>Fix:
              Patch follows:
diff -ruN tochnog.orig/Makefile tochnog/Makefile
--- tochnog.orig/Makefile	Fri Feb  3 15:07:24 2006
+++ tochnog/Makefile	Fri Feb  3 16:30:59 2006
@@ -6,8 +6,7 @@
 #
 
 PORTNAME=	tochnog
-PORTVERSION=	20010211
-PORTREVISION=	2
+PORTVERSION=	20020625
 CATEGORIES=	cad
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=	tochnog
@@ -24,21 +23,17 @@
 .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_DATA=	${LOCALBASE}/${GIDDIR}/problemtypes
 
 .ifdef WITH_THREADS
 BLAS_LIBS?=	-L${LOCALBASE}/lib -lptf77blas -latlas_r
@@ -55,7 +50,7 @@
 	@${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 +71,13 @@
 	${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_DATA}/tochnog.gid
 	${INSTALL_DATA} ${WRKDIR}/tochnog/gid/tochnog.gid/tochnog.cnd	\
-	  ${GID_PREFIX}/tochnog.gid
+	  ${GID_DATA}/tochnog.gid
 	${INSTALL_DATA} ${WRKDIR}/tochnog/gid/tochnog.gid/tochnog.mat	\
-	  ${GID_PREFIX}/tochnog.gid
+	  ${GID_DATA}/tochnog.gid
 	${INSTALL_SCRIPT} ${WRKDIR}/tochnog/gid/tochnog.gid/tochnog.ba*	\
-	  ${GID_PREFIX}/tochnog.gid
+	  ${GID_DATA}/tochnog.gid
 .if !defined(NOPORTDOCS)
 	${MKDIR} ${EXAMPLESDIR}
 	@${RM} -f ${WRKDIR}/tochnog/test/*.orig
diff -ruN tochnog.orig/files/patch-makefile tochnog/files/patch-makefile
--- tochnog.orig/files/patch-makefile	Fri Feb  3 15:07:24 2006
+++ tochnog/files/patch-makefile	Fri Feb  3 16:41:36 2006
@@ -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 -ruN tochnog.orig/files/patch-tnsuplu.h tochnog/files/patch-tnsuplu.h
--- tochnog.orig/files/patch-tnsuplu.h	Fri Feb  3 15:07:24 2006
+++ tochnog/files/patch-tnsuplu.h	Fri Feb  3 15:56:25 2006
@@ -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 -ruN tochnog.orig/files/patch-tochnog.h tochnog/files/patch-tochnog.h
--- tochnog.orig/files/patch-tochnog.h	Fri Feb  3 15:07:24 2006
+++ tochnog/files/patch-tochnog.h	Fri Feb  3 15:17:49 2006
@@ -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

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602032158.k13Lwk3x062822>