1# New ports collection makefile for: lazarus 2# Date Created: 2006-02-09 3# Whom: Shaun Amott <shaun@inerd.com> 4# 5# $FreeBSD: ports/editors/lazarus/Makefile,v 1.15 2007/09/18 07:12:58 acm Exp $ 6# 7 8PORTNAME= lazarus 9PORTVERSION= 0.9.24 10PORTREVISION= 3 11CATEGORIES= editors devel 12MASTER_SITES= SF 13DISTNAME= ${PORTNAME}-${PORTVERSION:S/$/-0/} 14DIST_SUBDIR= freepascal 15 16MAINTAINER= acm@FreeBSD.org 17COMMENT= A portable Delphi-like IDE for the FreePascal compiler 18 19BUILD_DEPENDS= ppc386:${PORTSDIR}/lang/fpc \ 20 fpcmake:${PORTSDIR}/lang/fpc-utils 21 22ONLY_FOR_ARCHS= i386 23 24USE_ICONV= yes 25USE_GETTEXT= yes 26USE_GMAKE= yes 27USE_GNOME= # 28 29MAKE_ENV= OPT="-Sgic -Fu${UNITSDIR}/* -Fl${LOCALBASE}/lib -Fl${X11BASE}/lib" LCL_PLATFORM=${LCL_PLATFORM} 30MAN1= lazbuild.1 31PLIST= ${WRKDIR}/pkg-plist 32WRKSRC= ${WRKDIR}/${PORTNAME} 33 34BUILDNAME= ${ARCH}-freebsd 35FPC_MINVER= 2.2.0 36UNITSDIR= ${LOCALBASE}/lib/fpc/${FPC_MINVER}/units/${BUILDNAME} 37BASE_UNITS= GDBINT GRAPH IBASE LIBASYNC HASH HTTPD MYSQL NETDB ODBC ORACLE \ 38 PASJPEG PASZLIB PTHREADS POSTGRES REGEXPR SQLITE 39ALL_UNITS= ${BASE_UNITS} BFD CAIRO FCL-BASE FCL-DB FCL-FPCUNIT FCL-IMAGE \ 40 FCL-NET FCL-PASSRC FCL-REGISTRY FCL-WEB FCL-XML FFTW FPMKUNIT \ 41 FORMS FPGTK FV GCONF GDBM GGI GNOME GTK GTK2 IMLIB LIBCURL \ 42 LIBGD LIBPNG NCURSES OPENGL OPENSSL PCAP SVGALIB SYSLOG TCL \ 43 UNZIP UTMP X11 ZLIB ZVT 44 45# Base units 46GDBINT_UNIT= devel/fpc-gdbint 47GRAPH_UNIT= graphics/fpc-graph 48IBASE_UNIT= databases/fpc-ibase 49LIBASYNC_UNIT= net/fpc-libasync 50HASH_UNIT= security/fpc-hash 51HTTPD_UNIT= www/fpc-httpd 52MYSQL_UNIT= databases/fpc-mysql 53NETDB_UNIT= net/fpc-netdb 54ODBC_UNIT= databases/fpc-odbc 55ORACLE_UNIT= databases/fpc-oracle 56PASJPEG_UNIT= graphics/fpc-pasjpeg 57PASZLIB_UNIT= archivers/fpc-paszlib 58PTHREADS_UNIT= devel/fpc-pthreads 59POSTGRES_UNIT= databases/fpc-postgres 60REGEXPR_UNIT= devel/fpc-regexpr 61SQLITE_UNIT= databases/fpc-sqlite 62 63# Extra units 64BFD_UNIT= devel/fpc-bfd 65CAIRO_UNIT= graphics/fpc-cairo 66FCL_BASE_UNIT= devel/fpc-fcl-base 67FCL_DB_UNIT= devel/fpc-fcl-db 68FCL_FPCUNIT_UNIT= devel/fpc-fcl-fpcunit 69FCL_IMAGE_UNIT= devel/fpc-fcl-image 70FCL_NET_UNIT= devel/fpc-fcl-net 71FCL_PASSRC_UNIT= devel/fpc-fcl-passrc 72FCL_REGISTRY_UNIT= devel/fpc-fcl-registry 73FCL_WEB_UNIT= devel/fpc-fcl-web 74FCL_XML_UNIT= devel/fpc-fcl-xml 75FFTW_UNIT= math/fpc-fftw 76FPMKUNIT_UNIT= devel/fpc-fpmkunit 77FORMS_UNIT= x11-toolkits/fpc-forms 78FPGTK_UNIT= graphics/fpc-fpgtk 79FV_UNIT= devel/fpc-fv 80GCONF_UNIT= devel/fpc-gconf 81GDBM_UNIT= databases/fpc-gdbm 82GGI_UNIT= graphics/fpc-ggi 83GNOME_UNIT= x11-toolkits/fpc-gnome 84GTK_UNIT= x11-toolkits/fpc-gtk 85GTK2_UNIT= x11-toolkits/fpc-gtk2 86HTTPD_UNIT= www/fpc-httpd 87IMLIB_UNIT= graphics/fpc-imlib 88LIBCURL_UNIT= ftp/fpc-libcurl 89LIBGD_UNIT= graphics/fpc-libgd 90LIBPNG_UNIT= graphics/fpc-libpng 91NCURSES_UNIT= graphics/fpc-ncurses 92OPENGL_UNIT= graphics/fpc-opengl 93OPENSSL_UNIT= security/fpc-openssl 94PCAP_UNIT= net/fpc-pcap 95SVGALIB_UNIT= graphics/fpc-svgalib 96SYSLOG_UNIT= sysutils/fpc-syslog 97TCL_UNIT= lang/fpc-tcl 98UNZIP_UNIT= archivers/fpc-unzip 99UTMP_UNIT= sysutils/fpc-utmp 100X11_UNIT= x11/fpc-x11 101ZLIB_UNIT= devel/fpc-zlib 102ZVT_UNIT= x11-toolkits/fpc-zvt 103 104OPTIONS= GTK2 "Use gtk20 interface instead of gtk12" off \ 105 BIGIDE "Compile additional components" off 106 107.include <bsd.port.pre.mk> 108 109.if defined(WITH_GTK2) 110USE_GNOME= gtk20 111LCL_PLATFORM= gtk2 112.else 113USE_GNOME= gtk12 gdkpixbuf 114LCL_PLATFORM= gtk 115.endif 116 117.if defined(WITH_BIGIDE) 118LAZARUS_TARGET= bigide lazbuild 119.endif 120 121.for OPT in ${ALL_UNITS} 122BUILD_DEPENDS+= ${UNITSDIR}/${OPT:L:S/httpd/httpd-1.3/}/Package.fpc:${PORTSDIR}/${${OPT:S/-/_/}_UNIT} 123.endfor 124 125post-depends: 126.if exists(${LOCALBASE}/bin/fpc) 127FPC_VER!= ${LOCALBASE}/bin/fpc -i -v | ${SED} -n -e 's/^Free Pascal Compiler version //' -e '1p' 128FPC_DIR= ${LOCALBASE}/lib/fpc/${FPC_VER} 129FPC_REQVER!= ${ECHO_CMD} $$(expr ${FPC_VER:C/^[^\.]*\.//} \>= ${FPC_MINVER:C/^[^\.]*\.//}) 130 131.if (${FPC_REQVER} != 1) 132IGNORE= requires fpc ${FPC_MINVER} or above. Please upgrade 133.endif 134.endif 135 136post-extract: 137 @${MKDIR} ${WRKDIR}/man1 138 @${MV} ${WRKSRC}/install/man/man1/lazbuild.1 ${WRKDIR}/man1 139 @${MV} ${WRKSRC}/examples ${WRKDIR}/examples 140 @${MV} ${WRKSRC}/docs ${WRKDIR}/docs 141 142post-patch: 143 @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' -e 's|%%DATADIR%%|${DATADIR}|g' \ 144 ${WRKSRC}/${MAKEFILE} 145 146do-build: 147 @cd ${WRKSRC} && \ 148 ${GMAKE} ${MAKE_ENV} ${LAZARUS_TARGET} 149 150post-build: 151 @cd ${WRKSRC} && \ 152 ${RM} -Rf COPYING* README* debian localize.bat test *.orig *.bak 153 154pre-install: 155 @${ECHO} "#!/bin/sh" > ${WRKDIR}/lazarus-wrapper 156 @${ECHO} "cd ${DATADIR} || exit 1 " >> ${WRKDIR}/lazarus-wrapper 157 @${ECHO} "exec ./startlazarus" >> ${WRKDIR}/lazarus-wrapper 158 159 @${RM} -f ${PLIST} 160 161. for FILE in bin/lazarus bin/lazbuild 162 @${ECHO_CMD} ${FILE} >> ${PLIST} 163. endfor 164 165.if !defined(NOPORTDOCS) 166 @${ECHO_CMD} "%%DATADIR%%/docs" >> ${PLIST} 167 @cd ${WRKDIR}/docs && \ 168 ${FIND} * -type f | ${SORT} | ${SED} -e 's|^|%%DOCSDIR%%/|' >> ${PLIST} && \ 169 ${FIND} * -type d | ${SORT} -r | ${SED} -e 's|^|@dirrm %%DOCSDIR%%/|' >> ${PLIST} 170 @${ECHO_CMD} "@dirrm %%DOCSDIR%%" >> ${PLIST} 171.endif 172 173.if !defined(NOPORTEXAMPLES) 174 @${ECHO_CMD} "%%DATADIR%%/examples" >> ${PLIST} 175 @cd ${WRKDIR}/examples && \ 176 ${FIND} * -type f | ${SORT} | ${SED} -e 's|^|%%EXAMPLESDIR%%/|' >> ${PLIST} && \ 177 ${FIND} * -type d | ${SORT} -r | ${SED} -e 's|^|@dirrm %%EXAMPLESDIR%%/|' >> ${PLIST} 178 @${ECHO_CMD} "@dirrm %%EXAMPLESDIR%%" >> ${PLIST} 179.endif 180 181 @cd ${WRKSRC} && \ 182 ${FIND} * -type f | ${SORT} | ${SED} -e 's|^|%%DATADIR%%/|' >> ${PLIST} && \ 183 ${FIND} * -type d | ${SORT} -r | ${SED} -e 's|^|@dirrm %%DATADIR%%/|' >> ${PLIST} 184 @${ECHO_CMD} "@dirrm %%DATADIR%%" >> ${PLIST} 185 186do-install: 187.for DIRE in components converter debugger designer doceditor ide images install languages lcl lazarus.app \ 188 packager tools units 189 @${MKDIR} ${DATADIR}/${DIRE} 190 @cd ${WRKSRC}/${DIRE} && \ 191 ${FIND} * -type d -exec ${MKDIR} "${DATADIR}/${DIRE}/{}" \; && \ 192 ${FIND} * -type f -exec ${INSTALL_DATA} "{}" "${DATADIR}/${DIRE}/{}" \; 193.endfor 194 195.for FILE in lazarus startlazarus lazbuild 196 ${INSTALL_PROGRAM} ${WRKSRC}/${FILE} ${DATADIR} 197.endfor 198 199.if !defined(NOPORTDOCS) 200 @cd ${WRKDIR}/docs && \ 201 ${FIND} * -type d -exec ${MKDIR} "${DOCSDIR}/{}" \; && \ 202 ${FIND} * -type f -exec ${INSTALL_DATA} "{}" "${DOCSDIR}/{}" \; 203 @${LN} -s ${DOCSDIR} ${DATADIR}/docs 204.endif 205 206.if !defined(NOPORTEXAMPLES) 207 @cd ${WRKDIR}/examples && \ 208 ${FIND} * -type d -exec ${MKDIR} "${EXAMPLESDIR}/{}" \; && \ 209 ${FIND} * -type f -exec ${INSTALL_DATA} "{}" "${EXAMPLESDIR}/{}" \; 210 @${LN} -s ${EXAMPLESDIR} ${DATADIR}/examples 211.endif 212 213 ${INSTALL_SCRIPT} ${WRKSRC}/localize.sh ${DATADIR} 214 ${INSTALL_SCRIPT} ${WRKDIR}/lazarus-wrapper ${PREFIX}/bin/${PORTNAME} 215 ${INSTALL_DATA} ${WRKSRC}/Makefile* ${DATADIR} 216 ${INSTALL_MAN} ${WRKDIR}/man1/${MAN1} ${MAN1PREFIX}/man/man1 217 ${LN} -s ${DATADIR}/lazbuild ${PREFIX}/bin/lazbuild 218 219.include <bsd.port.post.mk> 220