aboutsummaryrefslogblamecommitdiff
path: root/science/fastcap/Makefile
blob: d08659470b86d76b0ef1ad0cd38ce2c5774dbf3c (plain) (tree)
1
2
3
4
5
6
7
8
9
                                               

                       
                            
                           
                                                      
 
                                 
                                                                
 




                                 
                                           
                                           
 

                              
                                       
 


                        

                                                              

                             

                                                                            
 


                                                     
                                                                         
                                        


                                                                            





                                                                       




                                                                            

           
                                                                                   

                       

                                                                      

                   



                                                                                   

                      
# Created by: Pedro Giffuni <giffunip@asme.org>

PORTNAME=	fastcap
DISTVERSION=	2.0wr-011109
CATEGORIES=	science cad
MASTER_SITES=	http://www.wrcad.com/ftp/pub/ LOCAL/bf

MAINTAINER=	ports@FreeBSD.org
COMMENT=	Three-dimensional capacitance extraction program

LICENSE=	FASTCAP
LICENSE_NAME=	fastcap license
LICENSE_FILE=	${WRKSRC}/LICENSE
LICENSE_PERMS=	auto-accept

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

HAS_CONFIGURE=	yes
CONFIGURE_SCRIPT=	config
WRKSRC=		${WRKDIR}/fastcap-2.0wr

# Fix build with clang11
CFLAGS+=	-fcommon

BINFILES=	busgen capgen cubegen fastcap pipedgen pyragen

OPTIONS_DEFINE=	DOCS EXAMPLES

post-extract:
	@${HEAD} -32 ${WRKSRC}/src/direct.c | ${TAIL} +2 > ${WRKSRC}/LICENSE

post-patch:
	@${REINPLACE_CMD} -e 's,TYPE=other,TYPE=4,' \
		${WRKSRC}/config
	@${REINPLACE_CMD} -Ee '/CFLAGS =/{s/=/+=/;s/-O[[:digit:]]*//;}' \
		${WRKSRC}/src/Makefile.4
# Minimal changes to fix the Clang build (there should be a more thorough
# clean-up, to correct types of functions, remove implicit declarations, fix
# formatting, add missing returns, etc.)
	@${REINPLACE_CMD} -E -e 's,^mul(Up|Down),void &,' \
		${WRKSRC}/src/mulDo.c
	@${REINPLACE_CMD} -e 's,^mulMatUp,void &,' \
		${WRKSRC}/src/mulMats.c
	@${REINPLACE_CMD} -e 's,^static getnbrs,static void getnbrs,' \
		${WRKSRC}/src/mulSetup.c
# Change "cd foo ; $(MAKE)" into "$(MAKE) -C foo" to unbreak parallel builds
	@${REINPLACE_CMD} -E 's,cd (.+) ; (\$$\(MAKE\)),\2 -C \1,' \
		${WRKSRC}/Makefile
# Avoid clashing of generated temporary files, crucial for parallel builds
	@${REINPLACE_CMD} -e 's,temp\.out,$$@.&,' ${WRKSRC}/src/Makefile*

do-install:
	${INSTALL_PROGRAM} ${BINFILES:S,^,${WRKSRC}/bin/,} ${STAGEDIR}${PREFIX}/bin

do-install-EXAMPLES-on:
	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
	${INSTALL_DATA} ${WRKSRC}/examples/* ${STAGEDIR}${EXAMPLESDIR}

do-install-DOCS-on:
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	${CAT} ${WRKSRC}/README ${WRKSRC}/README.mit > ${STAGEDIR}${DOCSDIR}/readme
	${INSTALL_DATA} ${WRKSRC}/doc/*.ps ${STAGEDIR}${DOCSDIR}
	${GZIP_CMD} ${STAGEDIR}${DOCSDIR}/*

.include <bsd.port.mk>