mirror of https://gitlab.com/rnger/amath
865 lines
21 KiB
Bash
Executable File
865 lines
21 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright {c} 2014-2017 Carsten Sonne Larsen <cs@innolan.net>
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions
|
|
# are met:
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# 2. Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
# DAMAGES {INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION}
|
|
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
# LIABILITY, OR TORT {INCLUDING NEGLIGENCE OR OTHERWISE} ARISING IN ANY WAY
|
|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
# SUCH DAMAGE.
|
|
#
|
|
|
|
set -e
|
|
|
|
clang=false
|
|
debugsym=false
|
|
regtest=true
|
|
|
|
prefix="/usr"
|
|
cflags=""
|
|
cxxflags=""
|
|
ldflags=""
|
|
gcclib="-lstdc++"
|
|
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--prefix=*)
|
|
prefix=`echo $arg | sed 's/--prefix=//'`
|
|
;;
|
|
|
|
--cross-compile=*)
|
|
crosscompile=`echo $arg | sed 's/--cross-compile=//'`
|
|
crosscompile="${crosscompile}-"
|
|
;;
|
|
|
|
--cflags=*)
|
|
cflags=`echo $arg | sed 's/--cflags=//'`
|
|
cflags="${cflags} "
|
|
;;
|
|
|
|
--cxxflags=*)
|
|
cxxflags=`echo $arg | sed 's/--cxxflags=//'`
|
|
cxxflags="${cxxflags} "
|
|
;;
|
|
|
|
--ldflags=*)
|
|
ldflags=`echo $arg | sed 's/--ldflags=//'`
|
|
ldflags="${ldflags} "
|
|
;;
|
|
|
|
--enable-clang)
|
|
clang=true;;
|
|
--disable-clang)
|
|
clang=false;;
|
|
|
|
--enable-debug)
|
|
debugsym=true;;
|
|
--disable-debug)
|
|
debugsym=false;;
|
|
|
|
--enable-test)
|
|
regtest=true;;
|
|
--disable-test)
|
|
regtest=false;;
|
|
|
|
--help)
|
|
echo 'usage: ./configure [options]'
|
|
echo 'options:'
|
|
echo ' --prefix=<path>: installation prefix'
|
|
echo ' --cflag=<flags>: additional compiler flags'
|
|
echo ' --cxxflag=<flags>: additional compiler flags'
|
|
echo ' --ldflag=<flags>: additional linker flags'
|
|
echo ' --cross-compile=<prefix>: cross compiler prefix'
|
|
echo ' --enable-debug: include debug symbols'
|
|
echo ' --disable-debug: do not include debug symbols'
|
|
echo ' --enable-test: build code with regression tests'
|
|
echo ' --disable-test: do not include regression test'
|
|
echo ' --enable-clang: build with clang compiler'
|
|
echo ' --disable-clang: do not build with clang compiler'
|
|
echo 'all invalid options are silently ignored'
|
|
exit 0
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if $clang; then
|
|
ccompiler="clang"
|
|
cxxcompiler="clang++"
|
|
else
|
|
ccompiler="gcc"
|
|
cxxcompiler="g++"
|
|
fi
|
|
|
|
if $regtest; then
|
|
options=" -DWITHTEST"
|
|
else
|
|
options=" "
|
|
fi
|
|
|
|
if $debugsym; then
|
|
appop="-O0 -g"
|
|
libop="-O0 -g"
|
|
exestrip=""
|
|
else
|
|
appop="-O2"
|
|
libop="-O3"
|
|
exestrip="-s"
|
|
fi
|
|
|
|
cxxflags="${cflags} ${cxxflags}"
|
|
|
|
APPSRCS='
|
|
evaluator.cpp
|
|
functionlist.cpp
|
|
functions.cpp
|
|
fgrid.cpp
|
|
lexer.cpp
|
|
nodes.cpp
|
|
operators.cpp
|
|
optimizer.cpp
|
|
parser.cpp
|
|
token.cpp
|
|
userfunction.cpp
|
|
values.cpp
|
|
viewer.cpp
|
|
'
|
|
SYSSRCS='
|
|
console.cpp
|
|
console_amiga.cpp
|
|
console_stdc.cpp
|
|
filesystem_amiga.cpp
|
|
filesystem_stdc.cpp
|
|
graph.cpp
|
|
graph_amiga.cpp
|
|
graph_gtk.cpp
|
|
language.cpp
|
|
language_amiga.cpp
|
|
language_posix.cpp
|
|
language_stdc.cpp
|
|
preferences.cpp
|
|
preferences_amiga.cpp
|
|
preferences_stdc.cpp
|
|
proc_amiga.cpp
|
|
program.cpp
|
|
program_amiga.cpp
|
|
program_stdc.cpp
|
|
program_test.cpp
|
|
task_amiga.cpp
|
|
task_stdc.cpp
|
|
window_amiga.cpp
|
|
'
|
|
FUNCTIONSRC='
|
|
absolute.cpp
|
|
aexcosecant.cpp
|
|
aexsecant.cpp
|
|
arccos.cpp
|
|
arcsin.cpp
|
|
arctan.cpp
|
|
arccosecant.cpp
|
|
arccotangent.cpp
|
|
arcsecant.cpp
|
|
ceil.cpp
|
|
cosecant.cpp
|
|
cosine.cpp
|
|
cotangent.cpp
|
|
covercos.cpp
|
|
coversin.cpp
|
|
cube.cpp
|
|
excosecant.cpp
|
|
exsecant.cpp
|
|
floor.cpp
|
|
hacovercos.cpp
|
|
hacoversin.cpp
|
|
havercos.cpp
|
|
haversin.cpp
|
|
ln.cpp
|
|
log10.cpp
|
|
log2.cpp
|
|
node.cpp
|
|
round.cpp
|
|
secant.cpp
|
|
signum.cpp
|
|
sine.cpp
|
|
square.cpp
|
|
tangent.cpp
|
|
trunc.cpp
|
|
user.cpp
|
|
vercos.cpp
|
|
versin.cpp
|
|
'
|
|
STATEMENTSRCS='
|
|
about.cpp
|
|
clear.cpp
|
|
delete.cpp
|
|
digits.cpp
|
|
draw.cpp
|
|
empty.cpp
|
|
eval.cpp
|
|
execute.cpp
|
|
exit.cpp
|
|
funcdef.cpp
|
|
funclist.cpp
|
|
help.cpp
|
|
input.cpp
|
|
license.cpp
|
|
list.cpp
|
|
load.cpp
|
|
memory.cpp
|
|
node.cpp
|
|
output.cpp
|
|
plot.cpp
|
|
prefs.cpp
|
|
prompt.cpp
|
|
save.cpp
|
|
show.cpp
|
|
silent.cpp
|
|
version.cpp
|
|
'
|
|
LIBAPPSRCS='
|
|
aengine.cpp
|
|
charbuf.cpp
|
|
integer.cpp
|
|
cplex.cpp
|
|
nnumb.cpp
|
|
ntext.cpp
|
|
real.cpp
|
|
'
|
|
LIBREALSRCS='
|
|
acos.c
|
|
acosh.c
|
|
acvs.c
|
|
ahv.c
|
|
ahvc.c
|
|
asin.c
|
|
asinh.c
|
|
atan.c
|
|
atan2.c
|
|
atanh.c
|
|
aver.c
|
|
cbrt.c
|
|
ceil.c
|
|
copysign.c
|
|
cos.c
|
|
cosh.c
|
|
exp.c
|
|
expm1.c
|
|
fabs.c
|
|
finite.c
|
|
floor.c
|
|
fmod.c
|
|
hypot.c
|
|
isnan.c
|
|
kcos.c
|
|
kremp2.c
|
|
ksin.c
|
|
ktan.c
|
|
log.c
|
|
log10.c
|
|
log1p.c
|
|
pow.c
|
|
remp2.c
|
|
round.c
|
|
scalbn.c
|
|
sin.c
|
|
sinh.c
|
|
sqrt.c
|
|
tan.c
|
|
tanh.c
|
|
trunc.c
|
|
'
|
|
LIBCPLEXSRCS='
|
|
cacos.c
|
|
cacosh.c
|
|
cacot.c
|
|
cacoth.c
|
|
cacsc.c
|
|
cacsch.c
|
|
casec.c
|
|
casech.c
|
|
casin.c
|
|
casinh.c
|
|
catan.c
|
|
catanh.c
|
|
ccbrt.c
|
|
ccos.c
|
|
ccosh.c
|
|
ccot.c
|
|
ccoth.c
|
|
ccsc.c
|
|
ccsch.c
|
|
cexp.c
|
|
clog.c
|
|
clog10.c
|
|
clogb.c
|
|
cpow.c
|
|
csec.c
|
|
csech.c
|
|
csgn.c
|
|
csin.c
|
|
csinh.c
|
|
csqrt.c
|
|
ctan.c
|
|
ctanh.c
|
|
prim.c
|
|
'
|
|
LIBC1SRCS='
|
|
alloccpy.c
|
|
mem.c
|
|
memcpy.c
|
|
memset.c
|
|
strcmp.c
|
|
strlen.c
|
|
untag.c
|
|
'
|
|
|
|
amathc="amathc"
|
|
amath="amath"
|
|
amathcplex="amathcplex"
|
|
amathapp="amathapp"
|
|
|
|
appmain="appmain"
|
|
appfunction="functions"
|
|
appstatement="statement"
|
|
appsystem="appsystem"
|
|
program="src/main"
|
|
|
|
############################ Main Application ###########################
|
|
{
|
|
echo "CXX = ${crosscompile}${cxxcompiler}"
|
|
echo "CXXFLAGS = ${appop}${options} ${cxxflags}-I. -I.. -Wall"
|
|
echo "AR = ${crosscompile}ar"
|
|
echo "RANLIB = ${crosscompile}ranlib"
|
|
echo "DEL = rm -f"
|
|
echo
|
|
echo "all: lib"
|
|
echo "static: lib"
|
|
echo
|
|
|
|
files=""
|
|
for f in ${APPSRCS}
|
|
do
|
|
b=`basename $f .cpp`
|
|
echo "${b}.o: ${f}"
|
|
echo " \${CXX} \${CXXFLAGS} -c ${f}"
|
|
echo
|
|
files="${files} ${b}.o"
|
|
done
|
|
|
|
echo "lib: ${files}"
|
|
echo " \${AR} rcs lib${appmain}.a ${files}"
|
|
echo " \${RANLIB} lib${appmain}.a"
|
|
echo
|
|
echo "clean:"
|
|
echo " \${DEL} lib${appmain}.a ${files}"
|
|
echo
|
|
} > src/main/Makefile
|
|
#########################################################################
|
|
|
|
########################### Functions Library ###########################
|
|
{
|
|
echo "CXX = ${crosscompile}${cxxcompiler}"
|
|
echo "CXXFLAGS = ${appop}${options} ${cxxflags}-I. -I../.. -Wall"
|
|
echo "AR = ${crosscompile}ar"
|
|
echo "RANLIB = ${crosscompile}ranlib"
|
|
echo "DEL = rm -f"
|
|
echo
|
|
echo "all: lib"
|
|
echo "static: lib"
|
|
echo
|
|
|
|
files=""
|
|
for f in ${FUNCTIONSRC}
|
|
do
|
|
b=`basename $f .cpp`
|
|
echo "${b}.o: ${f}"
|
|
echo " \${CXX} \${CXXFLAGS} -c ${f}"
|
|
echo
|
|
files="${files} ${b}.o"
|
|
done
|
|
|
|
echo "lib: ${files}"
|
|
echo " \${AR} rcs lib${appfunction}.a ${files}"
|
|
echo " \${RANLIB} lib${appfunction}.a"
|
|
echo
|
|
echo "clean:"
|
|
echo " \${DEL} lib${appfunction}.a ${files}"
|
|
echo
|
|
} > src/main/function/Makefile
|
|
#########################################################################
|
|
|
|
########################### Statement Library ###########################
|
|
{
|
|
echo "CXX = ${crosscompile}${cxxcompiler}"
|
|
echo "CXXFLAGS = ${appop}${options} ${cxxflags}-I. -I../.. -Wall"
|
|
echo "AR = ${crosscompile}ar"
|
|
echo "RANLIB = ${crosscompile}ranlib"
|
|
echo "DEL = rm -f"
|
|
echo
|
|
echo "all: lib"
|
|
echo "static: lib"
|
|
echo
|
|
|
|
files=""
|
|
for f in ${STATEMENTSRCS}
|
|
do
|
|
b=`basename $f .cpp`
|
|
echo "${b}.o: ${f}"
|
|
echo " \${CXX} \${CXXFLAGS} -c ${f}"
|
|
echo
|
|
files="${files} ${b}.o"
|
|
done
|
|
|
|
echo "lib: ${files}"
|
|
echo " \${AR} rcs lib${appstatement}.a ${files}"
|
|
echo " \${RANLIB} lib${appstatement}.a"
|
|
echo
|
|
echo "clean:"
|
|
echo " \${DEL} lib${appstatement}.a ${files}"
|
|
echo
|
|
} > src/main/statement/Makefile
|
|
#########################################################################
|
|
|
|
############################ System Library #############################
|
|
{
|
|
echo "CXX = ${crosscompile}${cxxcompiler}"
|
|
echo "CXXFLAGS = ${appop}${options} ${cxxflags}-I. -I.. -Wall"
|
|
echo "AR = ${crosscompile}ar"
|
|
echo "RANLIB = ${crosscompile}ranlib"
|
|
echo "DEL = rm -f"
|
|
echo
|
|
echo "all: lib"
|
|
echo "static: lib"
|
|
echo
|
|
|
|
files=""
|
|
for f in ${SYSSRCS}
|
|
do
|
|
b=`basename $f .cpp`
|
|
echo "${b}.o: ${f}"
|
|
echo " \${CXX} \${CXXFLAGS} -c ${f}"
|
|
echo
|
|
files="${files} ${b}.o"
|
|
done
|
|
|
|
echo "lib: ${files}"
|
|
echo " \${AR} rcs lib${appsystem}.a ${files}"
|
|
echo " \${RANLIB} lib${appsystem}.a"
|
|
echo
|
|
echo "clean:"
|
|
echo " \${DEL} lib${appsystem}.a ${files}"
|
|
echo
|
|
} > src/system/Makefile
|
|
#########################################################################
|
|
|
|
########################## Application Library ##########################
|
|
{
|
|
echo "CXX = ${crosscompile}${cxxcompiler}"
|
|
echo "CXXFLAGS = ${libop}${options} ${cxxflags}-I. -I.. -Wall"
|
|
echo "AR = ${crosscompile}ar"
|
|
echo "RANLIB = ${crosscompile}ranlib"
|
|
echo "MKDIR = mkdir -p"
|
|
echo "DEL = rm -f"
|
|
echo "INSTALL = install -m 0644"
|
|
echo "PREFIX = ${prefix}"
|
|
echo
|
|
echo "alib = lib${amathapp}.a"
|
|
echo "solib = lib${amathapp}.so"
|
|
echo
|
|
echo "all: static shared"
|
|
echo
|
|
echo "static: \${alib}"
|
|
echo
|
|
echo "shared: \${solib}"
|
|
echo
|
|
|
|
files=""
|
|
files2=""
|
|
for f in ${LIBAPPSRCS}
|
|
do
|
|
b=`basename $f .cpp`
|
|
echo "static/${b}.o: ${f}"
|
|
echo " \${CXX} \${CXXFLAGS} -c ${f} -o static/${b}.o"
|
|
echo
|
|
echo "shared/${b}.o: ${f}"
|
|
echo " \${CXX} \${CXXFLAGS} -fPIC -c ${f} -o shared/${b}.o"
|
|
echo
|
|
files="${files} static/${b}.o"
|
|
files2="${files2} shared/${b}.o"
|
|
done
|
|
|
|
echo ".PHONY: build"
|
|
echo "build:"
|
|
echo " \${MKDIR} static"
|
|
echo " \${MKDIR} shared"
|
|
echo
|
|
echo "\${solib}: build ${files2}"
|
|
echo " \${CC} -shared -fPIC -Wl,-soname,\${solib} -o \${solib} ${files2}"
|
|
echo
|
|
echo "\${alib}: build ${files}"
|
|
echo " \${AR} rcs static/\${alib} ${files}"
|
|
echo " \${RANLIB} static/\${alib}"
|
|
echo
|
|
echo ".PHONY: install"
|
|
echo "install: \${solib}"
|
|
echo " \${MKDIR} \${DESTDIR}\${PREFIX}/lib"
|
|
echo " \${INSTALL} \${solib} \${DESTDIR}\${PREFIX}/lib/\${solib}"
|
|
echo
|
|
echo ".PHONY: uninstall"
|
|
echo "uninstall:"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/lib/\${solib}"
|
|
echo
|
|
echo "clean:"
|
|
echo " \${DEL} static/\${alib} \${solib} ${files} ${files2}"
|
|
echo
|
|
} > src/lib/Makefile
|
|
#########################################################################
|
|
|
|
############################### C Library ###############################
|
|
{
|
|
echo "CC = ${crosscompile}${ccompiler}"
|
|
echo "CFLAGS = -std=c9x ${libop}${options} ${cflags}-I. -I.. -Wall"
|
|
echo "AR = ${crosscompile}ar"
|
|
echo "RANLIB = ${crosscompile}ranlib"
|
|
echo "MKDIR = mkdir -p"
|
|
echo "DEL = rm -f"
|
|
echo "INSTALL = install -m 0644"
|
|
echo "PREFIX = ${prefix}"
|
|
echo
|
|
echo "alib = lib${amathc}.a"
|
|
echo "solib = lib${amathc}.so"
|
|
echo
|
|
echo "all: static shared"
|
|
echo
|
|
echo "static: \${alib}"
|
|
echo
|
|
echo "shared: \${solib}"
|
|
echo
|
|
|
|
libc=""
|
|
libcs=""
|
|
for f in ${LIBC1SRCS}
|
|
do
|
|
b=`basename $f .c`
|
|
echo "static/${b}.o: ${f}"
|
|
echo " \${CC} \${CFLAGS} -fno-builtin -c ${f} -o static/${b}.o"
|
|
echo
|
|
echo "shared/${b}.o: ${f}"
|
|
echo " \${CC} \${CFLAGS} -fPIC -fno-builtin -c ${f} -o shared/${b}.o"
|
|
echo
|
|
libc="${libc} static/${b}.o"
|
|
libcs="${libcs} shared/${b}.o"
|
|
done
|
|
|
|
echo ".PHONY: build"
|
|
echo "build:"
|
|
echo " \${MKDIR} static"
|
|
echo " \${MKDIR} shared"
|
|
echo
|
|
echo "\${solib}: build ${libcs}"
|
|
echo " \${CC} -shared -fPIC -Wl,-soname,\${solib} -o \${solib} ${libcs} -lc"
|
|
echo
|
|
echo "\${alib}: build ${libc}"
|
|
echo " \${AR} rcs static/\${alib} ${libc}"
|
|
echo " \${RANLIB} static/\${alib}"
|
|
echo
|
|
echo ".PHONY: install"
|
|
echo "install: \${alib} \${solib}"
|
|
echo " \${MKDIR} \${DESTDIR}\${PREFIX}/lib"
|
|
echo " \${MKDIR} \${DESTDIR}\${PREFIX}/include"
|
|
echo " \${INSTALL} static/\${alib} \${DESTDIR}\${PREFIX}/lib/\${alib}"
|
|
echo " \${INSTALL} \${solib} \${DESTDIR}\${PREFIX}/lib/\${solib}"
|
|
echo " \${INSTALL} ../amath.h \${DESTDIR}\${PREFIX}/include"
|
|
echo " \${INSTALL} ../amathc.h \${DESTDIR}\${PREFIX}/include"
|
|
echo
|
|
echo ".PHONY: uninstall"
|
|
echo "uninstall:"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/lib/\${alib}"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/lib/\${solib}"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/include/amath.h"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/include/amathc.h"
|
|
echo
|
|
echo "clean:"
|
|
echo " \${DEL} static/\${alib} \${solib} ${libc} ${libcs}"
|
|
echo
|
|
} > src/clib/Makefile
|
|
|
|
#########################################################################
|
|
|
|
############################# Real Numbers ##############################
|
|
{
|
|
echo "CC = ${crosscompile}${ccompiler}"
|
|
echo "CFLAGS = -std=c9x ${libop}${options} ${cflags}-I. -I.. -Wall"
|
|
echo "AR = ${crosscompile}ar"
|
|
echo "RANLIB = ${crosscompile}ranlib"
|
|
echo "MKDIR = mkdir -p"
|
|
echo "DEL = rm -f"
|
|
echo "INSTALL = install -m 0644"
|
|
echo "PREFIX = ${prefix}"
|
|
echo
|
|
echo "alib = lib${amath}.a"
|
|
echo "solib = lib${amath}.so"
|
|
echo
|
|
echo "all: static shared"
|
|
echo
|
|
echo "static: \${alib}"
|
|
echo
|
|
echo "shared: \${solib}"
|
|
echo
|
|
|
|
libamath=""
|
|
libamaths=""
|
|
for f in ${LIBREALSRCS}
|
|
do
|
|
b=`basename $f .c`
|
|
echo "static/${b}.o: ${f}"
|
|
echo " \${CC} \${CFLAGS} -fno-builtin -c ${f} -o static/${b}.o"
|
|
echo
|
|
echo "shared/${b}.o: ${f}"
|
|
echo " \${CC} \${CFLAGS} -fPIC -fno-builtin -c ${f} -o shared/${b}.o"
|
|
echo
|
|
libamath="${libamath} static/${b}.o"
|
|
libamaths="${libamaths} shared/${b}.o"
|
|
done
|
|
|
|
echo ".PHONY: build"
|
|
echo "build:"
|
|
echo " \${MKDIR} static"
|
|
echo " \${MKDIR} shared"
|
|
echo
|
|
echo "\${solib}: build ${libamaths}"
|
|
echo " \${CC} -shared -fPIC -Wl,-soname,\${solib} -o \${solib} ${libamaths}"
|
|
echo
|
|
echo "\${alib}: build ${libamath}"
|
|
echo " \${AR} rcs static/\${alib} ${libamath}"
|
|
echo " \${RANLIB} static/\${alib}"
|
|
echo
|
|
echo ".PHONY: install"
|
|
echo "install: \${alib} \${solib}"
|
|
echo " \${MKDIR} \${DESTDIR}\${PREFIX}/lib"
|
|
echo " \${INSTALL} static/\${alib} \${DESTDIR}\${PREFIX}/lib/\${alib}"
|
|
echo " \${INSTALL} \${solib} \${DESTDIR}\${PREFIX}/lib/\${solib}"
|
|
echo
|
|
echo ".PHONY: uninstall"
|
|
echo "uninstall:"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/lib/\${alib}"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/lib/\${solib}"
|
|
echo
|
|
echo "clean:"
|
|
echo " \${DEL} static/\${alib} \${solib} ${libamath} ${libamaths}"
|
|
echo
|
|
} > src/real/Makefile
|
|
#########################################################################
|
|
|
|
############################ Complex Numbers ############################
|
|
{
|
|
echo "CC = ${crosscompile}${ccompiler}"
|
|
echo "CFLAGS = -std=c9x ${libop}${options} ${cxxflags}-I. -I.. -Wall"
|
|
echo "AR = ${crosscompile}ar"
|
|
echo "RANLIB = ${crosscompile}ranlib"
|
|
echo "MKDIR = mkdir -p"
|
|
echo "DEL = rm -f"
|
|
echo "INSTALL = install -m 0644"
|
|
echo "PREFIX = ${prefix}"
|
|
echo
|
|
echo "alib = lib${amathcplex}.a"
|
|
echo "solib = lib${amathcplex}.so"
|
|
echo
|
|
echo "all: static shared"
|
|
echo
|
|
echo "static: \${alib}"
|
|
echo
|
|
echo "shared: \${solib}"
|
|
echo
|
|
|
|
libcomplex=""
|
|
libcomplexs=""
|
|
for f in ${LIBCPLEXSRCS}
|
|
do
|
|
b=`basename $f .c`
|
|
echo "static/${b}.o: ${f}"
|
|
echo " \${CC} \${CFLAGS} -fno-builtin -c ${f} -o static/${b}.o"
|
|
echo
|
|
echo "shared/${b}.o: ${f}"
|
|
echo " \${CC} \${CFLAGS} -fPIC -fno-builtin -c ${f} -o shared/${b}.o"
|
|
echo
|
|
libcomplex="${libcomplex} static/${b}.o"
|
|
libcomplexs="${libcomplexs} shared/${b}.o"
|
|
done
|
|
|
|
echo ".PHONY: build"
|
|
echo "build:"
|
|
echo " \${MKDIR} static"
|
|
echo " \${MKDIR} shared"
|
|
echo
|
|
echo "\${solib}: build ${libcomplexs}"
|
|
echo " \${CC} -shared -fPIC -Wl,-soname,\${solib} -o \${solib} ${libcomplexs}"
|
|
echo
|
|
echo "\${alib}: build ${libcomplex}"
|
|
echo " \${AR} rcs static/\${alib} ${libcomplex}"
|
|
echo " \${RANLIB} static/\${alib}"
|
|
echo
|
|
echo ".PHONY: install"
|
|
echo "install: \${alib} \${solib}"
|
|
echo " \${MKDIR} \${DESTDIR}\${PREFIX}/lib"
|
|
echo " \${INSTALL} static/\${alib} \${DESTDIR}\${PREFIX}/lib/\${alib}"
|
|
echo " \${INSTALL} \${solib} \${DESTDIR}\${PREFIX}/lib/\${solib}"
|
|
echo " \${INSTALL} ../complex.h \${DESTDIR}\${PREFIX}/include"
|
|
echo
|
|
echo ".PHONY: uninstall"
|
|
echo "uninstall:"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/lib/\${alib}"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/lib/\${solib}"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/include/complex.h"
|
|
echo
|
|
echo "clean:"
|
|
echo " \${DEL} static/\${alib} \${solib} ${libcomplex} ${libcomplexs}"
|
|
echo
|
|
} > src/cplex/Makefile
|
|
#########################################################################
|
|
|
|
################################# Main ##################################
|
|
{
|
|
echo
|
|
echo "CC = ${crosscompile}${ccompiler}"
|
|
echo "CXX = ${crosscompile}${cxxcompiler}"
|
|
echo "CFLAGS = ${appop}${options} ${cflags}-Wall -Isrc -Isrc/main"
|
|
echo "CXXFLAGS = ${appop}${options} ${cxxflags}-Wall -Isrc -Isrc/main"
|
|
echo "AR = ${crosscompile}ar"
|
|
echo "RANLIB = ${crosscompile}ranlib"
|
|
echo "LFLAGS = ${ldflags}-l${appsystem} -l${appfunction} -l${appstatement} -l${appmain} -l${appfunction} -l${appstatement} -l${appmain} -l${amathapp} -l${amathcplex} -l${amath} -l${amathc} ${gcclib}"
|
|
echo "LPATH = -Lsrc/lib -Lsrc/clib -Lsrc/real -Lsrc/cplex -Lsrc/main/function -Lsrc/main/statement -Lsrc/main -Lsrc/system"
|
|
echo "LPATHS = -Lsrc/lib/static -Lsrc/clib/static -Lsrc/real/static -Lsrc/cplex/static -Lsrc/main/function -Lsrc/main/statement -Lsrc/main -Lsrc/system"
|
|
echo "FLXCAT = build/flexcat/flexcat"
|
|
echo "MKDIR = mkdir -p"
|
|
echo "DEL = rm -f"
|
|
echo "INSTALL = install -m 0755"
|
|
echo "PREFIX = ${prefix}"
|
|
echo
|
|
echo "all: shared-app"
|
|
echo "app: ${appmain} ${appfunction} ${appstatement} ${appsystem}"
|
|
echo "libs: ${amathapp} ${amath} ${amathc} ${amathcplex}"
|
|
echo
|
|
echo "amath: static-app"
|
|
echo "static: static-app"
|
|
echo
|
|
echo "${program}.o: ${program}.cpp"
|
|
echo " \${CXX} \${CXXFLAGS} -c ${program}.cpp -o ${program}.o"
|
|
echo
|
|
echo "${appmain}:"
|
|
echo " cd src/main && \${MAKE}"
|
|
echo
|
|
echo "${appsystem}:"
|
|
echo " cd src/system && \${MAKE}"
|
|
echo
|
|
echo "${appfunction}:"
|
|
echo " cd src/main/function && \${MAKE}"
|
|
echo
|
|
echo "${appstatement}:"
|
|
echo " cd src/main/statement && \${MAKE}"
|
|
echo
|
|
echo "${amathapp}:"
|
|
echo " cd src/lib && \${MAKE}"
|
|
echo
|
|
echo "${amath}:"
|
|
echo " cd src/real && \${MAKE}"
|
|
echo
|
|
echo "${amathc}:"
|
|
echo " cd src/clib && \${MAKE}"
|
|
echo
|
|
echo "${amathcplex}:"
|
|
echo " cd src/cplex && \${MAKE}"
|
|
echo
|
|
echo "catalogsa:" # Application catalogs
|
|
echo " \${FLXCAT} text/keyword.cd src/localize/kword.h=text/keyword.sd"
|
|
echo " \${FLXCAT} text/help.cd src/localize/help.h=text/help.sd"
|
|
echo " \${FLXCAT} text/ident.cd src/localize/ident.h=text/ident.sd"
|
|
echo " \${FLXCAT} text/text.cd src/localize/text.h=text/text.sd"
|
|
echo
|
|
echo "catalogsu:" # Unix catalogs
|
|
echo " iconv -f ISO-8859-15 -t UTF-8 catalog/dansk/amath-help.ct >utext/dk-help.dict"
|
|
echo " iconv -f ISO-8859-15 -t UTF-8 catalog/dansk/amath-ident.ct >utext/dk-ident.dict"
|
|
echo " iconv -f ISO-8859-15 -t UTF-8 catalog/dansk/amath-text.ct >utext/dk-text.dict"
|
|
echo " iconv -f ISO-8859-15 -t UTF-8 catalog/dansk/amath-keyword.ct >utext/dk-keyword.dict"
|
|
echo
|
|
echo "catalogsw:" # Windows catalogs
|
|
echo " iconv -f ISO-8859-15 -t CP850 catalog/dansk/amath-help.ct >utext/dk-help.dict"
|
|
echo " iconv -f ISO-8859-15 -t CP850 catalog/dansk/amath-ident.ct >utext/dk-ident.dict"
|
|
echo " iconv -f ISO-8859-15 -t CP850 catalog/dansk/amath-text.ct >utext/dk-text.dict"
|
|
echo " iconv -f ISO-8859-15 -t CP850 catalog/dansk/amath-keyword.ct >utext/dk-keyword.dict"
|
|
echo
|
|
echo "amigacatalogs:"
|
|
echo " \${MKDIR} dist/catalog/english"
|
|
echo " \${FLXCAT} text/help.cd catalog/english/amath-help.ct CATALOG dist/catalog/english/amath-help.catalog"
|
|
echo " \${FLXCAT} text/ident.cd catalog/english/amath-ident.ct CATALOG dist/catalog/english/amath-ident.catalog"
|
|
echo " \${FLXCAT} text/text.cd catalog/english/amath-text.ct CATALOG dist/catalog/english/amath-text.catalog"
|
|
echo " \${MKDIR} dist/catalog/dansk"
|
|
echo " \${FLXCAT} text/help.cd catalog/dansk/amath-help.ct CATALOG dist/catalog/dansk/amath-help.catalog"
|
|
echo " \${FLXCAT} text/ident.cd catalog/dansk/amath-ident.ct CATALOG dist/catalog/dansk/amath-ident.catalog"
|
|
echo " \${FLXCAT} text/text.cd catalog/dansk/amath-text.ct CATALOG dist/catalog/dansk/amath-text.catalog"
|
|
echo " \${FLXCAT} text/keyword.cd catalog/dansk/amath-keyword.ct CATALOG dist/catalog/dansk/amath-keyword.catalog"
|
|
echo
|
|
echo "shared-app: app libs ${program}.o"
|
|
echo " \${CC} \${CFLAGS} ${exestrip} ${program}.o -o amath \${LPATH} \${LFLAGS}"
|
|
echo
|
|
echo "static-app: ${program}.o"
|
|
echo " cd src/lib && \${MAKE} static"
|
|
echo " cd src/clib && \${MAKE} static"
|
|
echo " cd src/real && \${MAKE} static"
|
|
echo " cd src/cplex && \${MAKE} static"
|
|
echo " cd src/main && \${MAKE} static"
|
|
echo " cd src/system && \${MAKE} static"
|
|
echo " cd src/main/function && \${MAKE} static"
|
|
echo " cd src/main/statement && \${MAKE} static"
|
|
echo " \${CC} \${CFLAGS} ${exestrip} ${program}.o -o amath \${LPATHS} \${LFLAGS}"
|
|
echo
|
|
echo ".PHONY: test"
|
|
echo "test: static-app"
|
|
echo " ./amath test"
|
|
echo
|
|
echo ".PHONY: install"
|
|
echo "install: amath"
|
|
echo " cd src/lib && \${MAKE} install"
|
|
echo " cd src/clib && \${MAKE} install"
|
|
echo " cd src/real && \${MAKE} install"
|
|
echo " cd src/cplex && \${MAKE} install"
|
|
echo " \${INSTALL} amath \${DESTDIR}\${PREFIX}/bin"
|
|
echo
|
|
echo ".PHONY: uninstall"
|
|
echo "uninstall:"
|
|
echo " cd src/lib && \${MAKE} uninstall"
|
|
echo " cd src/clib && \${MAKE} uninstall"
|
|
echo " cd src/real && \${MAKE} uninstall"
|
|
echo " cd src/cplex && \${MAKE} uninstall"
|
|
echo " \${DEL} \${DESTDIR}\${PREFIX}/bin/amath"
|
|
echo
|
|
echo "clean:"
|
|
echo " cd src/lib && \${MAKE} clean"
|
|
echo " cd src/clib && \${MAKE} clean"
|
|
echo " cd src/real && \${MAKE} clean"
|
|
echo " cd src/cplex && \${MAKE} clean"
|
|
echo " cd src/main && \${MAKE} clean"
|
|
echo " cd src/system && \${MAKE} clean"
|
|
echo " cd src/main/function && \${MAKE} clean"
|
|
echo " cd src/main/statement && \${MAKE} clean"
|
|
echo " \${DEL} ${program}.o amath"
|
|
echo
|
|
} > Makefile
|
|
#########################################################################
|
|
echo "Makefile generated"
|