summaryrefslogtreecommitdiffstats
path: root/math/vecfem/Makefile.inc
blob: ca98ca98a802e8a397fac3c03f79766b888bdbf7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# Makefile include for: vecfem
# Date created:		15 January 2001
# Whom:			Ralf Becker <ralf@akk.org>
#
#

.ifdef MPI
VECFEM_ARCH=	FREEBSD_MPI
LINUX=		LINUX_MPI
.else
VECFEM_ARCH=	FREEBSD
LINUX=		LINUX
.endif

VEMTOOL=	vemaxiom vembuild vemfc vemcompile vemmaple vemmaxima \
		vempost vemrun vemtar vemhint

VEMSHARE=	avsout1.h avsout2.h avsout32.h avsscalarseries.net  \
		avsscalarsteady.net avsvectorseries.net avsvectorsteady.net \
		dummy.equation dummy.resource dxout1.h dxout2.h dxout32.h \
		dxscalarseries.net dxscalarsteady.net dxvectorseries.net \
		dxvectorsteady.net ensightout1.h ensightout2.h ensightout32.h \
		fortra.lisp gnuplotout1.h gnuplotout2.h gnuplotout32.h \
		ideasin.h ideasout1.h ideasout2.h ideasout31.h ideasout32.h \
		isvasout1.h isvasout2.h isvasout32.h maple1.h maple3.h \
		maxima1.h maxima1.h.back maxima3.h nomeshout.h noopen.h \
		openout.h patran.vecfem.res_tmpl patranin.h patranout1.h \
		patranout2.h patranout31.h patranout32.h printin.h \
		printout1.h printout2.h printout32.h userb1.h userb3.h \
		userf1.h userf3.h useru01.h useru03.h usrfu1.h usrfu3.h \
		usrfut1.h usrfut3.h vecfem1.h vecfem10.h vecfem1a.h \
		vecfem1e.h vecfem1p.h vecfem2.h vecfem3.h vecfem4e.h \
		vecfem4p.h vecfem5.h vecfem6.h vecfem71.h vecfem72.h \
		vecfem8.h vecfem9.h vempfade

VEMDOCDIR=	RefManual

VEMINCLUDE=	archi.h cache.h maxnpe.h nproc.h scalar.h bytes.h const.h \
		norec.h nprocs.h solex.h

VEMLIB=		lib${PORTNAME}${PORTVERSION}.a
VEMLIBDIR=	${WRKDIR}/${VECFEM_ARCH}

MAKE_ENV=	VECFEM_ROOT=${WRKDIR} \
		VECFEM_SHELL=/bin/sh \
		LIB=${VEMLIBDIR}/${VEMLIB} \
		VECFEM_ARCH=${VECFEM_ARCH} \
		AR=ar \
		ARFLAGS=rv
pre-build:
.ifdef MPI
	@${ECHO_MSG} "Building ${PORTNAME}-${PORTVERSION} with MPI support"
.endif

# necessary links
	-@${LN} -s ${WRKDIR}/include/${LINUX} ${WRKDIR}/include/${VECFEM_ARCH}
	-@${LN} -s ${WRKDIR}/source/${LINUX}  ${WRKDIR}/source/${VECFEM_ARCH}
	@${MKDIR} ${WRKDIR}/${VECFEM_ARCH}

do-build:
# build the architecture independent part
	@(cd ${BUILD_WRKSRC} ; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET})
# build the architecture dependent subdirectoy
	@(cd ${BUILD_WRKSRC}/${VECFEM_ARCH}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET})

post-build:
# changing shell and VEMPATH of vemtools
	@(echo "===> Fixing ${WRKDIR}/vemtools")
.for i in ${VEMTOOL}
	@(${SED}  '1s/^#!\/bin\/ksh/#!\/bin\/sh/' ${WRKDIR}/vemtool/$i | ${SED} 's/vemtool\/\(vem*\)/bin\/\1/g' | ${AWK} '{ if ($$0=="MYCOMMAND=$$_") print "MYCOMMAND=${PREFIX}/share/${PORTNAME}${PORTVERSION}/vempfade"; else print $$0 }' > ${WRKDIR}/vemtool/$i.back)
	@(${CP} ${WRKDIR}/vemtool/$i.back ${WRKDIR}/vemtool/$i)
.endfor

# changing path in  vembuild

	@(${SED} 's/vemtool\/\(.*\.h\)/share\/${PORTNAME}${PORTVERSION}\/\1/g' ${WRKSRC}/vemtool/vembuild | ${SED} 's/vemtool\/\(dummy.*\)/share\/${PORTNAME}${PORTVERSION}\/\1/g' | ${SED} 's/vemtool /share\/${PORTNAME}${PORTVERSION}/g'  > ${WRKSRC}/vemtool/vembuild.back)
	@(${CP} ${WRKSRC}/vemtool/vembuild.back ${WRKSRC}/vemtool/vembuild)

#changing path in vemfc

	@( ${SED} 's/\(include\)\/".VECFEM_ARCH/\1\/${PORTNAME}${PORTVERSION}"/g' ${WRKSRC}/vemtool/vemfc | ${SED} 's/\(.VECFEM_ROOT\)"\/".VECFEM_ARCH/\1\/lib/g' | ${SED} 's/.VECFEM_ARCH\(\/liblsolpp.a\)/lib\1/' > ${WRKSRC}/vemtool/vemfc.back)
	@(${CP} ${WRKSRC}/vemtool/vemfc.back ${WRKSRC}/vemtool/vemfc)

# changing path in vempost

	@(${SED} 's/vemtool\/\(.*\.net\)/share\/${PORTNAME}${PORTVERSION}\/\1/g' ${WRKSRC}/vemtool/vempost | ${SED} 's/vemtool\/\(.*\_tmpl\)/share\/${PORTNAME}${PORTVERSION}\/\1/g' > ${WRKSRC}/vemtool/vempost.back )
	@(${CP}  ${WRKSRC}/vemtool/vempost.back  ${WRKSRC}/vemtool/vempost)

# changing path in maxima1.h

	@(${SED} 's/vemtool\/\(.*\.lisp\)/share\/${PORTNAME}${PORTVERSION}\/\1/g' ${WRKSRC}/vemtool/maxima1.h > ${WRKSRC}/vemtool/maxima1.h.back)
	@(${CP} ${WRKSRC}/vemtool/maxima1.h.back ${WRKSRC}/vemtool/maxima1.h)

# writing vemtool/vempfade

	@(${ECHO} "export VECFEM_SHELL=/bin/sh" > ${WRKSRC}/vemtool/vempfade)
	@(${ECHO} "export VECFEM_AWK=awk" >> ${WRKSRC}/vemtool/vempfade)
	@(${ECHO} "export VECFEM_ARCH=${VECFEM_ARCH}" >> ${WRKSRC}/vemtool/vempfade)
	@(${ECHO} "export VECFEM_ROOT=${PREFIX}" >> ${WRKSRC}/vemtool/vempfade)

do-install:

## installing share/vecfem3
	@( cd ${WRKSRC}/vemtool; ${INSTALL} -d ${PREFIX}/share/${PORTNAME}${PORTVERSION} ; ${INSTALL_DATA} ${VEMSHARE} ${PREFIX}/share/${PORTNAME}${PORTVERSION} )
	@( cd ${WRKSRC}; ${INSTALL} -d ${PREFIX}/share/doc/${PORTNAME}${PORTVERSION}/${VEMDOCIR} ; ${CP} -r ${VEMDOCDIR} ${PREFIX}/share/doc/${PORTNAME}${PORTVERSION} )

## installing include/vecfem3
	@( cd ${WRKSRC}/include/${VECFEM_ARCH}/; ${INSTALL} -d ${PREFIX}/include/${PORTNAME}${PORTVERSION} ; ${INSTALL_DATA} ${VEMINCLUDE} ${PREFIX}/include/${PORTNAME}${PORTVERSION} )

## installing lib
	@( cd ${WRKSRC}/${VECFEM_ARCH}; ${INSTALL_DATA} ${VEMLIB} ${PREFIX}/lib/ )

## installing bin
	@( cd ${WRKSRC}/vemtool; ${INSTALL_SCRIPT} ${VEMTOOL} ${PREFIX}/bin/ )

## installing manpages
	@( cd ${WRKSRC}/man7; ${INSTALL_DATA} ${MAN7} ${PREFIX}/man/man7/ )
OpenPOWER on IntegriCloud