Skip to content

Commit

Permalink
add configure script
Browse files Browse the repository at this point in the history
  • Loading branch information
Johann ELSASS committed Nov 3, 2020
1 parent f271ffe commit ab4c686
Show file tree
Hide file tree
Showing 2 changed files with 144 additions and 0 deletions.
74 changes: 74 additions & 0 deletions configure
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#!/usr/bin/env bash
echo For help type: ./configure --help
args=("$@")
haserror=false
defaultfpc=fpc
wantedfpc=$defaultfpc
if [ -f "debian/CONFIGURE_DEFAULT_FPCBIN" ]; then
wantedfpc=$(cat debian/CONFIGURE_DEFAULT_FPCBIN)
fi
defaultprefix=/usr/local
wantedprefix=$defaultprefix
if [ -f "debian/CONFIGURE_DEFAULT_LAZDIR" ]; then
wantedlazdir=$(cat debian/CONFIGURE_DEFAULT_LAZDIR)
else
wantedlazdir=
fi
for param in "${args[@]}"
do
if [ "$param" == "-h" ] || [ "$param" == "--help" ]; then
echo "Usage: ./configure [OPTIONS]"
echo ""
echo " --prefix=PREFIX"
echo " Specifies the install prefix."
echo " By default prefix is \"$defaultprefix\""
echo " For packages use \"/usr\""
echo ""
echo " --lazdir=BASE_DIRECTORY_OF_LAZARUS"
echo " Specifies to compile with FPC using the specified Lazarus sources."
echo " Otherwise lazbuild will be used."
echo ""
echo " --fpcbin=FPC_BINARY"
echo " Specifies the command to call Free Pascal Compiler."
echo " Default is \"$defaultfpc\""
exit 0
elif [ "${param:0:9}" == "--prefix=" ]; then
wantedprefix=${param:9}
elif [ "${param:0:9}" == "--lazdir=" ]; then
wantedlazdir=${param:9}
elif [ "${param:0:9}" == "--fpcbin=" ]; then
wantedfpc=${param:9}
else
echo "Warning: unknown option $param"
fi
done
echo "Prefix set to: $wantedprefix"
echo $wantedprefix >prefix
if [ "$wantedlazdir" == "" ]; then
echo "Using lazbuild"
rm -f lazdir
touch lazdir
rm -f fpcbin
else
echo "Using FPC with Lazarus source: $wantedlazdir"
if [ ! -d "$wantedlazdir" ]; then
echo "Error: directory not found!"
haserror=true
elif [ ! -d "$wantedlazdir/lcl" ]; then
echo "Warning: it does not seem to be the directory of Lazarus!"
fi
echo $wantedlazdir >lazdir
echo "Compiler set to: $wantedfpc"
rm -f fpcbin
echo $wantedfpc >fpcbin
fi
if [ "$haserror" = true ]; then
exit 1
else
if [ "$(uname)" == "FreeBSD" ]; then
echo "You can now type: gmake"
else
echo "You can now type: make"
fi
exit 0
fi
70 changes: 70 additions & 0 deletions configure.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
@echo off
echo For help type: configure /?
set defaultfpc=fpc
set wantedfpc=%defaultfpc%
set wantedlazdir=

:nextparam
set param=%~1
if "%param%" == "" goto endparam
if "%param%" == "--help" goto showhelp
if "%param%" == "-h" goto showhelp
if "%param%" == "/help" goto showhelp
if "%param%" == "/?" goto showhelp
if "%param:~0,9%" == "--lazdir=" (
set wantedlazdir=%param:~9%
) else if "%param%" == "--lazdir" (
set wantedlazdir=%~2
shift
) else if "%param:~0,9%" == "--fpcbin=" (
set wantedfpc=%param:~9%
) else if "%param%" == "--fpcbin" (
set wantedfpc=%~2
shift
) else (
echo Error: unknown option %param%
exit /b 1
)

shift
goto nextparam
:endparam

if exist fpcbin del fpcbin
<nul set /p ".=%wantedlazdir%" >lazdir
if "%wantedlazdir%" == "" (
echo Using lazbuild
lazbuild -h > NUL 2> NUL
if errorlevel 1 (
echo Error: Lazarus needs to be in the PATH
exit /b 1
)
) else (
echo Using FPC with Lazarus source: %wantedlazdir%
if not exist "%wantedlazdir%\" (
echo Error: directory not found
exit /b 1
) else if not exist "%wantedlazdir%\lcl\" (
echo Warning: it does not seem to be the directory of Lazarus!
)
<nul set /p ".=%wantedfpc%" >fpcbin
%wantedfpc% -h > NUL 2> NUL
if errorlevel 1 (
echo Error: FPC needs to be in the PATH
exit /b 1
)
)

echo You can now type: make
exit /b 0

:showhelp
echo Usage: configure [OPTIONS]
echo.
echo --lazdir=BASE_DIRECTORY_OF_LAZARUS
echo Specifies to compile with FPC using the specified Lazarus sources.
echo Otherwise lazbuild will be used.
echo.
echo --fpcbin=FPC_BINARY
echo Specifies the command to call Free Pascal Compiler.
echo Default is %defaultfpc%

0 comments on commit ab4c686

Please sign in to comment.