aboutsummaryrefslogtreecommitdiff
path: root/cad/spice/Makefile
blob: b3fe0bb2639d9914d52436927555265a4f06f9a0 (plain) (blame)
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
118
119
120
121
122
123
124
# Created by: Julian Jenkins <kaveman@magna.com.au>

PORTNAME=	spice
PORTVERSION=	3f5.2
PORTREVISION=	13
CATEGORIES=	cad
MASTER_SITES=	https://ptolemy.berkeley.edu/projects/embedded/pubs/downloads/spice/:srcs \
		http://home.hiroshima-u.ac.jp/usdl/HiSIM2/:hisim2 \
		LOCAL/hrs/${PORTNAME}
DISTFILES=	spice3f5${EXTRACT_SUFX}:srcs \
		BSIM3v330.tar.Z \
		BSIM480_Code.zip \
		HiSIM_2.8.0_Release_20140605.zip:hisim2 \
		cp.ps toc.ps doc.ps
DIST_SUBDIR=	spice
EXTRACT_ONLY=	spice3f5${EXTRACT_SUFX}

MAINTAINER=	hrs@FreeBSD.org
COMMENT=	General-purpose circuit simulation program

LICENSE=	MIT
LICENSE_FILE=	${WRKSRC}/COPYRIGHT

BROKEN_aarch64=	Fails to link: missing sbrk
BROKEN_riscv64=	Fails to link: missing sbrk

EXTRACT_DEPENDS=	${LOCALBASE}/bin/unzip:archivers/unzip

WRKSRC=		${WRKDIR}/${PORTNAME}3f5
MAKEFILE=	${FILESDIR}/Makefile
CONFIGURE_ENV=	CONFIGFILE="${CONFIGFILE}" \
		LOCALBASE="${LOCALBASE}"
MAKE_JOBS_UNSAFE=yes

CFLAGS+=	-fcommon

PORTDOCS=	spice3f3.ps.gz
PORTEXAMPLES=	bjtnoise.cir bsim1tst.cir bsim2tst.cir diffpair.cir \
		diodisto.cir ltra_1.cir ltra_2.cir ltra_3.cir \
		mixdisto.cir mos6inv.cir mosamp2.cir mosmem.cir process.mod \
		process.pro pz2.cir pzt.cir rc.cir rca3040.cir resnoise.cir \
		rtlinv.cir schmitt.cir simplepz.cir

OPTIONS_DEFINE=	DOCS EXAMPLES X11 DEV_BSIM3 DEV_BSIM4 DEV_HISIM2
OPTIONS_DEFAULT=X11

X11_USES=		xorg
X11_USE=		XORG=x11,xaw,xext,xmu,xorgproto,xt
X11_CONFIGURE_ENV=	WITH_X11=yes
DEV_BSIM3_DESC=		BSIM3v3 MOS Transistor Model Support
DEV_BSIM3_LICENSE=	BSIML
DEV_BSIM3_LICENSE_FILE=	${WRKSRC}/src/lib/dev/bsim3/B3TERMS_OF_USE
DEV_BSIM4_DESC=		BSIM4v4 MOS Transistor Model Support
DEV_BSIM4_LICENSE=	BSIML
DEV_BSIM4_LICENSE_FILE=	${WRKSRC}/src/lib/dev/bsim4/B4TERMS_OF_USE.txt
DEV_HISIM2_DESC=	HiSIM2 IGFET Model Support
DEV_HISIM2_LICENSE=	HISIML

.include <bsd.port.options.mk>

# Configuration parameters.
CC_OPT=		${CFLAGS}
CONFIGFILE=	${WRKSRC}/conf/FreeBSD
DEVICES=

LICENSE_FILE_MIT=	${WRKSRC}/COPYRIGHT
LICENSE_NAME_BSIML=	BSIM license
LICENSE_PERMS_BSIML=	dist-mirror pkg-mirror auto-accept
LICENSE_NAME_HISIML=	HiSIM license
LICENSE_PERMS_HISIML=	dist-mirror pkg-mirror auto-accept
LICENSE_FILE_HISIML=	${FILESDIR}/hisim2-license.txt

.for D in ${OPTIONS_DEFINE:MDEV_*:S/DEV_//}
. if !empty(PORT_OPTIONS:MDEV_$D)
LICENSE_COMB=	multi
DEVICES+=	${D:tl}
.  if  !empty(DEV_${D}_LICENSE)
LICENSE+=	${DEV_${D}_LICENSE}
.   if  !empty(DEV_${D}_LICENSE_FILE)
LICENSE_FILE_${DEV_${D}_LICENSE}=	${DEV_${D}_LICENSE_FILE}
.   endif
.  endif
. endif
.endfor
LICENSE:=	${LICENSE:O:u}

post-extract:
	@${DO_NADA}
post-extract-DEV_BSIM3-on:
	@${MKDIR} ${WRKSRC}/src/lib/dev/bsim3
	${TAR} -xf ${DISTDIR}/${DIST_SUBDIR}/BSIM3v330.tar.Z \
	    -C ${WRKSRC}/src/lib/dev/bsim3
post-extract-DEV_BSIM4-on:
	@${MKDIR} ${WRKSRC}/src/lib/dev/bsim4
	${UNZIP_CMD} -qo ${DISTDIR}/${DIST_SUBDIR}/BSIM480_Code.zip \
	    -d ${WRKSRC}/src/lib/dev/bsim4
post-extract-DEV_HISIM2-on:
	${UNZIP_CMD} -qo ${DISTDIR}/${DIST_SUBDIR}/HiSIM_2.8.0_Release_20140605.zip \
	    -d ${WRKDIR}
	${MV} ${WRKDIR}/HiSIM_2.8.0_Release_20140605/HiSIM_2.8.0_C-Code/hisim2 \
	    ${WRKSRC}/src/lib/dev

${CONFIGFILE}::
	@${SETENV} ${CONFIGURE_ENV} ${MAKE} -f ${MAKEFILE} configure
.for V in CC MAKE CC_OPT
	@${ECHO_CMD} "${V}=${$V}" >> ${WRKSRC}/conf/FreeBSD
.endfor
.for V in DEVICES
	@${ECHO_CMD} "${V}+=${$V}" >> ${WRKSRC}/conf/FreeBSD
.endfor

do-configure: ${CONFIGFILE}
	@${DO_NADA}

post-install-DOCS-on:
	${MKDIR} ${STAGEDIR}${DOCSDIR}
	${CAT} ${DISTDIR}/${DIST_SUBDIR}/*.ps | ${GZIP_CMD} > \
	    ${STAGEDIR}${DOCSDIR}/${PORTDOCS}
post-install-EXAMPLES-on:
	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
	cd ${WRKSRC}/examples && \
	    ${INSTALL_DATA} ${PORTEXAMPLES} ${STAGEDIR}${EXAMPLESDIR}

.include <bsd.port.mk>