diff --git a/dev-lang/fpc/fpc-3.2.2.recipe b/dev-lang/fpc/fpc-3.2.2.recipe new file mode 100644 index 000000000..8d89b6dc6 --- /dev/null +++ b/dev-lang/fpc/fpc-3.2.2.recipe @@ -0,0 +1,175 @@ +SUMMARY="Professional Pascal compiler" +DESCRIPTION="Free Pascal is a 32, 64 and 16 bit professional Pascal compiler. \ +It can target many processor architectures: Intel x86 (including 8086), AMD64\ +/x86-64, PowerPC, PowerPC64, SPARC, ARM, AArch64, MIPS and the JVM. \ +Supported operating systems include Linux, FreeBSD, Haiku, macOS/iOS/\ +iPhoneSimulator/Darwin, DOS (16 and 32 bit), Win32, Win64, WinCE, OS/2, \ +MorphOS, Nintendo GBA, Nintendo DS, Nintendo Wii, Android, AIX and AROS. \ +Additionally, support for the Motorola 68k architecture is available in the \ +development versions." +HOMEPAGE="https://freepascal.org/" +COPYRIGHT="1993-2021 Florian Klaempfl and others" +LICENSE="GNU LGPL v3 + GNU GPL v3" +REVISION="1" +SOURCE_URI="https://downloads.sourceforge.net/freepascal/fpcbuild-$portVersion.tar.gz" +CHECKSUM_SHA256="85ef993043bb83f999e2212f1bca766eb71f6f973d362e2290475dbaaf50161f" +SOURCE_URI_2="https://sourceforge.net/projects/freepascal/files/Documentation/$portVersion/doc-pdf.tar.gz#noarchive" +CHECKSUM_SHA256_2="4dccbd4210995a94b76d1624a796c0abcf5118c0b92c487ab35a9d5a8bc68138" +SOURCE_FILENAME_2="doc-pdf-$portVersion.tar.gz" +SOURCE_DIR="fpcbuild-$portVersion" + +ARCHITECTURES="?x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86" +DISABLE_SOURCE_PACKAGE="yes" + +POST_INSTALL_SCRIPTS=" + boot/post-install/createcfg.sh + " + +PROVIDES=" + fpc$secondaryArchSuffix = $portVersion + cmd:bin2obj = $portVersion + cmd:chmcmd = $portVersion + cmd:chmls = $portVersion + cmd:compileserver = $portVersion + cmd:cvsco.tdf = $portVersion + cmd:cvsdiff.tdf = $portVersion + cmd:cvsup.tdf = $portVersion + cmd:data2inc = $portVersion + cmd:delp = $portVersion + cmd:fd2pascal = $portVersion + cmd:fp = $portVersion + cmd:fp.ans = $portVersion + cmd:fp.rsj = $portVersion + cmd:fpc = $portVersion + cmd:fpcjres = $portVersion + cmd:fpclasschart = $portVersion + cmd:fpclasschart.rsj = $portVersion + cmd:fpcmake = $portVersion + cmd:fpcmkcfg = $portVersion + cmd:fpcmkcfg.rsj = $portVersion + cmd:fpcres = $portVersion + cmd:fpcsubst = $portVersion + cmd:fpcsubst.rsj = $portVersion + cmd:fpdoc = $portVersion + cmd:fppkg = $portVersion + cmd:fprcp = $portVersion + cmd:gplprog.pt = $portVersion + cmd:gplunit.pt = $portVersion + cmd:grep.tdf = $portVersion + cmd:h2pas = $portVersion + cmd:h2paspp = $portVersion + cmd:instantfpc = $portVersion + cmd:makeskel = $portVersion + cmd:makeskel.rsj = $portVersion + cmd:mkarmins = $portVersion + cmd:mkinsadd = $portVersion + cmd:mkx86ins = $portVersion + cmd:pas2fpm = $portVersion + cmd:pas2jni = $portVersion + cmd:pas2ut = $portVersion + cmd:pas2ut.rsj = $portVersion + cmd:plex = $portVersion + cmd:postw32 = $portVersion + cmd:ppdep = $portVersion + cmd:ppudump = $portVersion + cmd:ppufiles = $portVersion + cmd:ppumove = $portVersion + cmd:program.pt = $portVersion + cmd:ptop = $portVersion + cmd:ptop.rsj = $portVersion + cmd:pyacc = $portVersion + cmd:rmcvsdir = $portVersion + cmd:rstconv = $portVersion + cmd:rstconv.rsj = $portVersion + cmd:tpgrep.tdf = $portVersion + cmd:unit.pt = $portVersion + cmd:unitdiff = $portVersion + cmd:unitdiff.rsj = $portVersion + cmd:json2pas = $portVersion + cmd:mka64ins = $portVersion + cmd:pas2js = $portVersion + cmd:webidl2pas = $portVersion + lib:libpas2jslib = $portVersion + " +if [ "$targetArchitecture" = x86_gcc2 ]; then + PROVIDES="$PROVIDES + cmd:ppc386 = $portVersion + " +else + PROVIDES="$PROVIDES + cmd:ppcx64 = $portVersion + " +fi +REQUIRES=" + haiku$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix >= 6.0 + " +PROVIDES_examples=" + fpc${secondaryArchSuffix}_examples + " +REQUIRES_examples=" + fpc$secondaryArchSuffix == $portVersion base + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + " +BUILD_PREREQUIRES=" + binutils$secondaryArchSuffix + cmd:tar + cmd:make + cmd:diff + cmd:find + cmd:which + cmd:gcc$secondaryArchSuffix + fpc_bin == 3.2.0 + " + +if [ "$targetArchitecture" = x86_gcc2 ]; then + BINARY_ARCH=i386 +else + BINARY_ARCH=x86_64 +fi + +BUILD() +{ + cp $sourceDir2/doc-pdf-$portVersion.tar.gz $sourceDir/doc-pdf.tar.gz + + rm -rf ${sourceDir}/fpc-${portVersion}.$BINARY_ARCH-haiku + + export CHECKLIBGDB=false + install/makepack +} + +INSTALL() +{ + cd ${sourceDir}/fpc-${portVersion}.$BINARY_ARCH-haiku + for f in `tar tf binary.$BINARY_ARCH-haiku.tar`; do + tar -xOf binary.$BINARY_ARCH-haiku.tar $f | tar -C $prefix -xzf - + done + +# cd $prefix + + mkdir -p $docDir/examples $prefix/lib/fpc/$portVersion/etc + mv $prefix/doc/fpc-$portVersion/fpc/* $docDir + mv $prefix/share/doc/fpc-$portVersion/* $docDir/examples + rm -dR $prefix/{doc,share} + + if [ "$targetArchitecture" = x86_gcc2 ]; then + ln -s $prefix/lib/fpc/$portVersion/ppc386 $prefix/bin/ppc386 + else + ln -s $prefix/lib/fpc/$portVersion/ppcx64 $prefix/bin/ppcx64 + fi + + # create post script + mkdir -p $prefix/boot/post-install + echo "#!/bin/sh" > $postInstallDir/createcfg.sh + echo "/boot/system/lib/fpc/$portVersion/samplecfg \ +/boot/system/lib/fpc/$portVersion /etc" >> $postInstallDir/createcfg.sh + chmod 755 $postInstallDir/createcfg.sh + + packageEntries examples \ + $docDir/examples +}