diff --git a/Makefile b/Makefile index 2333ae87..506989ec 100644 --- a/Makefile +++ b/Makefile @@ -15,370 +15,370 @@ DEL = rm -f DELREC = rm -Rf evaluator.o: app/main/evaluator.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/evaluator.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/evaluator.cpp functions.o: app/main/functions.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/functions.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/functions.cpp graphlist.o: app/main/graphlist.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/graphlist.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/graphlist.cpp lexer.o: app/main/lexer.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/lexer.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/lexer.cpp nodes.o: app/main/nodes.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/nodes.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/nodes.cpp operators.o: app/main/operators.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/operators.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/operators.cpp optimizer.o: app/main/optimizer.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/optimizer.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/optimizer.cpp parser.o: app/main/parser.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/parser.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/parser.cpp statements.o: app/main/statements.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/statements.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/statements.cpp token.o: app/main/token.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/token.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/token.cpp values.o: app/main/values.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/values.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/values.cpp viewer.o: app/main/viewer.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/viewer.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main/viewer.cpp console.o: app/system/console.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/console.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/console.cpp console_amiga.o: app/system/console_amiga.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/console_amiga.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/console_amiga.cpp console_stdc.o: app/system/console_stdc.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/console_stdc.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/console_stdc.cpp filesystem_amiga.o: app/system/filesystem_amiga.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/filesystem_amiga.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/filesystem_amiga.cpp filesystem_stdc.o: app/system/filesystem_stdc.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/filesystem_stdc.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/filesystem_stdc.cpp graph.o: app/system/graph.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/graph.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/graph.cpp graph_amiga.o: app/system/graph_amiga.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/graph_amiga.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/graph_amiga.cpp graph_gtk.o: app/system/graph_gtk.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/graph_gtk.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/graph_gtk.cpp language.o: app/system/language.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/language.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/language.cpp language_amiga.o: app/system/language_amiga.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/language_amiga.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/language_amiga.cpp language_stdc.o: app/system/language_stdc.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/language_stdc.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/language_stdc.cpp preferences.o: app/system/preferences.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/preferences.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/preferences.cpp preferences_amiga.o: app/system/preferences_amiga.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/preferences_amiga.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/preferences_amiga.cpp preferences_stdc.o: app/system/preferences_stdc.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/preferences_stdc.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/preferences_stdc.cpp proc_amiga.o: app/system/proc_amiga.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/proc_amiga.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/proc_amiga.cpp program.o: app/system/program.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/program.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/program.cpp program_amiga.o: app/system/program_amiga.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/program_amiga.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/program_amiga.cpp program_stdc.o: app/system/program_stdc.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/program_stdc.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/program_stdc.cpp program_test.o: app/system/program_test.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/program_test.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/program_test.cpp task_amiga.o: app/system/task_amiga.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/task_amiga.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/task_amiga.cpp task_stdc.o: app/system/task_stdc.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/task_stdc.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/task_stdc.cpp window_amiga.o: app/system/window_amiga.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/window_amiga.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/window_amiga.cpp io.o: app/system/base/io.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/base/io.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/system/base/io.cpp main.o: app/main.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/main.cpp aengine.o: app/lib/aengine.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/aengine.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/aengine.cpp charbuf.o: app/lib/charbuf.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/charbuf.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/charbuf.cpp cplex.o: app/lib/cplex.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/cplex.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/cplex.cpp fgrid.o: app/lib/fgrid.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/fgrid.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/fgrid.cpp ntext.o: app/lib/ntext.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/ntext.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/ntext.cpp real.o: app/lib/real.cpp - ${CC} -O0 -g ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/real.cpp + ${CC} -O2 ${CFLAGS} -Ilib -Iapp -Wall -Werror -c app/lib/real.cpp acos.o: lib/real/acos.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/acos.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/acos.c acosh.o: lib/real/acosh.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/acosh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/acosh.c asin.o: lib/real/asin.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/asin.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/asin.c asinh.o: lib/real/asinh.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/asinh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/asinh.c atan.o: lib/real/atan.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/atan.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/atan.c atan2.o: lib/real/atan2.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/atan2.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/atan2.c atanh.o: lib/real/atanh.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/atanh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/atanh.c cbrt.o: lib/real/cbrt.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/cbrt.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/cbrt.c ceil.o: lib/real/ceil.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/ceil.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/ceil.c copysign.o: lib/real/copysign.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/copysign.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/copysign.c cos.o: lib/real/cos.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/cos.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/cos.c cosh.o: lib/real/cosh.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/cosh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/cosh.c exp.o: lib/real/exp.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/exp.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/exp.c expm1.o: lib/real/expm1.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/expm1.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/expm1.c fabs.o: lib/real/fabs.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/fabs.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/fabs.c finite.o: lib/real/finite.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/finite.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/finite.c floor.o: lib/real/floor.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/floor.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/floor.c fmod.o: lib/real/fmod.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/fmod.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/fmod.c hypot.o: lib/real/hypot.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/hypot.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/hypot.c isnan.o: lib/real/isnan.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/isnan.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/isnan.c kcos.o: lib/real/kcos.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/kcos.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/kcos.c kremp2.o: lib/real/kremp2.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/kremp2.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/kremp2.c ksin.o: lib/real/ksin.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/ksin.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/ksin.c ktan.o: lib/real/ktan.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/ktan.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/ktan.c log.o: lib/real/log.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/log.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/log.c log10.o: lib/real/log10.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/log10.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/log10.c log1p.o: lib/real/log1p.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/log1p.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/log1p.c pow.o: lib/real/pow.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/pow.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/pow.c remp2.o: lib/real/remp2.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/remp2.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/remp2.c round.o: lib/real/round.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/round.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/round.c scalbn.o: lib/real/scalbn.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/scalbn.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/scalbn.c sin.o: lib/real/sin.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/sin.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/sin.c sinh.o: lib/real/sinh.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/sinh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/sinh.c sqrt.o: lib/real/sqrt.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/sqrt.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/sqrt.c tan.o: lib/real/tan.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/tan.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/tan.c tanh.o: lib/real/tanh.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/tanh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/tanh.c trunc.o: lib/real/trunc.c - ${CC} -O0 -g -std=c9x -fno-builtin -fno-strict-aliasing -ffloat-store -Wall -Werror -Ilib -Ilib/real -c lib/real/trunc.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/real -c lib/real/trunc.c cacos.o: lib/cplex/cacos.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacos.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacos.c cacosh.o: lib/cplex/cacosh.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacosh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacosh.c cacot.o: lib/cplex/cacot.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacot.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacot.c cacoth.o: lib/cplex/cacoth.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacoth.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacoth.c cacsc.o: lib/cplex/cacsc.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacsc.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacsc.c cacsch.o: lib/cplex/cacsch.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacsch.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cacsch.c casec.o: lib/cplex/casec.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/casec.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/casec.c casech.o: lib/cplex/casech.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/casech.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/casech.c casin.o: lib/cplex/casin.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/casin.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/casin.c casinh.o: lib/cplex/casinh.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/casinh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/casinh.c catan.o: lib/cplex/catan.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/catan.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/catan.c catanh.o: lib/cplex/catanh.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/catanh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/catanh.c ccbrt.o: lib/cplex/ccbrt.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccbrt.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccbrt.c ccos.o: lib/cplex/ccos.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccos.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccos.c ccosh.o: lib/cplex/ccosh.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccosh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccosh.c ccot.o: lib/cplex/ccot.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccot.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccot.c ccoth.o: lib/cplex/ccoth.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccoth.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccoth.c ccsc.o: lib/cplex/ccsc.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccsc.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccsc.c ccsch.o: lib/cplex/ccsch.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccsch.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ccsch.c cexp.o: lib/cplex/cexp.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cexp.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cexp.c clog.o: lib/cplex/clog.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/clog.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/clog.c clog10.o: lib/cplex/clog10.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/clog10.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/clog10.c clogb.o: lib/cplex/clogb.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/clogb.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/clogb.c cpow.o: lib/cplex/cpow.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cpow.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/cpow.c csec.o: lib/cplex/csec.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csec.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csec.c csech.o: lib/cplex/csech.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csech.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csech.c csgn.o: lib/cplex/csgn.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csgn.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csgn.c csin.o: lib/cplex/csin.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csin.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csin.c csinh.o: lib/cplex/csinh.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csinh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csinh.c csqrt.o: lib/cplex/csqrt.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csqrt.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/csqrt.c ctan.o: lib/cplex/ctan.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ctan.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ctan.c ctanh.o: lib/cplex/ctanh.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ctanh.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/ctanh.c prim.o: lib/cplex/prim.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/prim.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -Ilib/cplex -c lib/cplex/prim.c alloccpy.o: lib/clib/alloccpy.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/alloccpy.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/alloccpy.c mem.o: lib/clib/mem.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/mem.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/mem.c memcpy.o: lib/clib/memcpy.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/memcpy.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/memcpy.c memset.o: lib/clib/memset.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/memset.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/memset.c strcmp.o: lib/clib/strcmp.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/strcmp.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/strcmp.c strlen.o: lib/clib/strlen.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/strlen.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/strlen.c untag.o: lib/clib/untag.c - ${CC} -O0 -g -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/untag.c + ${CC} -O3 -std=c9x -fno-builtin -Wall -Werror -Ilib -c lib/clib/untag.c dragon4.o: lib/dconv/dragon4.cpp - ${CC} -O0 -g -fno-builtin -Wall -Werror -Ilib -Ilib/dconv -c lib/dconv/dragon4.cpp + ${CC} -O3 -fno-builtin -Wall -Werror -Ilib -Ilib/dconv -c lib/dconv/dragon4.cpp dmath.o: lib/dconv/dmath.cpp - ${CC} -O0 -g -fno-builtin -Wall -Werror -Ilib -Ilib/dconv -c lib/dconv/dmath.cpp + ${CC} -O3 -fno-builtin -Wall -Werror -Ilib -Ilib/dconv -c lib/dconv/dmath.cpp dprint.o: lib/dconv/dprint.cpp - ${CC} -O0 -g -fno-builtin -Wall -Werror -Ilib -Ilib/dconv -c lib/dconv/dprint.cpp + ${CC} -O3 -fno-builtin -Wall -Werror -Ilib -Ilib/dconv -c lib/dconv/dprint.cpp libs: libamath libcomplex libcamath libamathapp @@ -405,7 +405,7 @@ libcamath: alloccpy.o mem.o memcpy.o memset.o strcmp.o strlen.o untag.o dragon4 ${RANLIB} libcamath.a app: libs evaluator.o functions.o graphlist.o lexer.o nodes.o operators.o optimizer.o parser.o statements.o token.o values.o viewer.o console.o console_amiga.o console_stdc.o filesystem_amiga.o filesystem_stdc.o graph.o graph_amiga.o graph_gtk.o language.o language_amiga.o language_stdc.o preferences.o preferences_amiga.o preferences_stdc.o proc_amiga.o program.o program_amiga.o program_stdc.o program_test.o task_amiga.o task_stdc.o window_amiga.o io.o main.o - ${CC} ${CFLAGS} -L. -o amath evaluator.o functions.o graphlist.o lexer.o nodes.o operators.o optimizer.o parser.o statements.o token.o values.o viewer.o console.o console_amiga.o console_stdc.o filesystem_amiga.o filesystem_stdc.o graph.o graph_amiga.o graph_gtk.o language.o language_amiga.o language_stdc.o preferences.o preferences_amiga.o preferences_stdc.o proc_amiga.o program.o program_amiga.o program_stdc.o program_test.o task_amiga.o task_stdc.o window_amiga.o io.o main.o ${LFLAGS} + ${CC} ${CFLAGS} -s -L. -o amath evaluator.o functions.o graphlist.o lexer.o nodes.o operators.o optimizer.o parser.o statements.o token.o values.o viewer.o console.o console_amiga.o console_stdc.o filesystem_amiga.o filesystem_stdc.o graph.o graph_amiga.o graph_gtk.o language.o language_amiga.o language_stdc.o preferences.o preferences_amiga.o preferences_stdc.o proc_amiga.o program.o program_amiga.o program_stdc.o program_test.o task_amiga.o task_stdc.o window_amiga.o io.o main.o ${LFLAGS} dist: app ${MKDIR} dist diff --git a/app/lib/charbuf.cpp b/app/lib/charbuf.cpp index 00cbb5a9..1f8c10d2 100644 --- a/app/lib/charbuf.cpp +++ b/app/lib/charbuf.cpp @@ -81,7 +81,7 @@ void CharBuffer::ClearAndCopy(const char* source) { ClearBuffer(); cursize = AllocAndCopy(&buf, source); - ptr = buf + cursize - 1; + ptr = buf + cursize - sizeof(char); } /** @@ -229,6 +229,24 @@ bool CharBuffer::RemoveTrailing(const char c) return false; } +bool CharBuffer::RemoveTrailing(const char *string) +{ + int len = StrLen(string) * sizeof(char); + char* s = ptr - len; + if (s < buf) { + return false; + } + + *ptr = '\0'; + + if (StrIsEqual(s, string)) { + ptr = s; + return true; + } + + return false; +} + char* CharBuffer::GetString() { *ptr = '\0'; diff --git a/app/lib/charbuf.h b/app/lib/charbuf.h index b1bee190..a0d33aa5 100644 --- a/app/lib/charbuf.h +++ b/app/lib/charbuf.h @@ -63,6 +63,7 @@ public: void DeleteLastChar(); bool RemoveTrailing(const char c); + bool RemoveTrailing(const char *string); char *GetString(); private: diff --git a/app/localize/help.h b/app/localize/help.h index c531a0cd..ec17491f 100644 --- a/app/localize/help.h +++ b/app/localize/help.h @@ -33,7 +33,7 @@ /** * @file help.h * @brief Help texts for statement. - * + * */ #include "clib.h" diff --git a/app/localize/ident.h b/app/localize/ident.h index 9ce1101a..c85afed0 100644 --- a/app/localize/ident.h +++ b/app/localize/ident.h @@ -33,7 +33,7 @@ /** * @file ident.h * @brief Help texts for built-in functions. - * + * */ #include "clib.h" diff --git a/app/localize/start.h b/app/localize/start.h index 3c1f9d4f..1bdd6d04 100644 --- a/app/localize/start.h +++ b/app/localize/start.h @@ -93,9 +93,10 @@ # define TXTFPU EMPTYSTRING #endif /******************************************************************************/ +#define TXTARCH TXTCPU TXTFPU TXTTEST +#define TXTDOSVERSION "\0$VER: amath 1.60 (01-04-2015)" SPACE TXTARCH #define TXTTITLE "amath version 1.6.0" -#define TXTDOSVERSION "\0$VER: amath 1.60 (01-04-2015)" #define TXTCOPYRIGHT "(c) 2015 Carsten Sonne Larsen" -#define TXTSTARTMSG TXTTITLE SPACE TXTCPU TXTFPU TXTTEST SPACE TXTCOPYRIGHT +#define TXTSTARTMSG TXTTITLE SPACE TXTCOPYRIGHT SPACE TXTARCH /******************************************************************************/ #endif diff --git a/app/localize/text.h b/app/localize/text.h index e1920de1..a826f043 100644 --- a/app/localize/text.h +++ b/app/localize/text.h @@ -33,7 +33,7 @@ /** * @file text.h * @brief Static texts in amath. - * + * */ #include "clib.h" @@ -79,7 +79,7 @@ struct textdef { }; static const textdef textdefs[] = { - { 0, "#NORMALTEXT##BOLD##STARTMSG##NEWLINE##NORMALTEXT##COLOR02##ITALICS#Type help to show info.#NEWLINE#" }, /* INTROMSG */ + { 0, "#NORMALTEXT##BOLD##STARTMSG##NEWLINE##NORMALTEXT##COLOR02#Type help to show info.#NEWLINE#" }, /* INTROMSG */ { 1, "Type Name#NEWLINE#-----------------------------------------------#NEWLINE#" }, /* TXTLISTDIRHEADER */ { 2, "[file]" }, /* TXTLISTDIRTFILE */ { 3, "[dir]" }, /* TXTLISTDIRTDIR */ diff --git a/app/main.cpp b/app/main.cpp index 715560dd..29c603a0 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -24,7 +24,6 @@ * */ -#include "mem.h" #include "system/program.h" #include "system/base/io.h" @@ -33,7 +32,6 @@ int main(int argc, char **argv) Program = CreateProgram(argc, argv); Program->Initialize(argc, argv); Program->Run(); - delete Program; - FreeAllSafe(); + Cleanup(); return 0; } diff --git a/app/system/base/io.cpp b/app/system/base/io.cpp index cc20a631..7634d79c 100644 --- a/app/system/base/io.cpp +++ b/app/system/base/io.cpp @@ -45,34 +45,68 @@ #include "system/preferences_amiga.h" #include "system/window_amiga.h" #include "system/graph_amiga.h" +#include "system/base/io.h" + +#ifdef AMIGA +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif -class Program *Program; const char *vers = TXTDOSVERSION; +class Program *Program = NULL; +#ifdef AMIGA +static struct DosBase *DosBase = NULL; +static struct GfxBase *GfxBase = NULL; +static struct LocaleBase *LocaleBase = NULL; +static struct IntuitionBase *IntuitionBase = NULL; +#endif class Program* CreateProgram(int argc, char **argv) { - class Program* out; #ifdef WITHTEST if (argc == 2 && StrIsEqual(argv[1], "test")) { - out = new TestProgram(); + return new TestProgram(); } else #endif { #ifdef AMIGA - out = new AmigaProgram(); + IntuitionBase = (struct IntuitionBase*)OpenLibrary(INTUITION_NAME, INTUITION_REV); + GfxBase = (struct GfxBase*)OpenLibrary(GRAPHICS_NAME, GRAPHICS_REV); + + if (IntuitionBase != NULL && GfxBase != NULL) { + return new AmigaProgram(); + } else { + return new StandardProgram(); + } #else - out = new StandardProgram(); + return new StandardProgram(); #endif } - return out; + return NULL; } class Language* CreateLanguage() { #ifdef AMIGA - return new AmigaLanguage(); -#else - return new StandardLanguage(); + LocaleBase = (struct LocaleBase*)OpenLibrary(LOCALE_NAME, LOCALE_REV); + if (LocaleBase != NULL) { + return new AmigaLanguage(); + } else #endif + { + return new StandardLanguage(); + } } class PreferencesBase* CreatePreferences() @@ -87,6 +121,10 @@ class PreferencesBase* CreatePreferences() class FilesystemBase* CreateFilesystem() { #ifdef AMIGA + DosBase = (struct DosBase*)OpenLibrary(AMIGADOS_NAME, AMIGADOS_REV); + if (DosBase == NULL) { + return NULL; + } return new AmigaFilesystem(); #else return new StandardFilesystem(); @@ -110,4 +148,25 @@ void WriteToShell(const char *out) { #endif } +void Cleanup() +{ +#ifdef AMIGA + if (DosBase != NULL) { + CloseLibrary((struct Library*)DosBase); + } + if (LocaleBase != NULL) { + CloseLibrary((struct Library*)LocaleBase); + } + + if (GfxBase != NULL) { + CloseLibrary((struct Library*)GfxBase); + } + + if (IntuitionBase != NULL) { + CloseLibrary((struct Library*)IntuitionBase); + } +#endif + delete Program; + FreeAllSafe(); +} diff --git a/app/system/base/io.h b/app/system/base/io.h index ae712ef5..9780f5f3 100755 --- a/app/system/base/io.h +++ b/app/system/base/io.h @@ -40,33 +40,41 @@ #define CPROCNAME "amath_console" /******************************************************************************/ #ifdef AOS3 -#define DEVCONSOLE "console.device" +#define AMIGADOS_NAME "dos.library" +#define AMIGADOS_REV 33L #define INTUITION_REV 37L #define INTUITION_NAME "intuition.library" #define GRAPHICS_REV 37L #define GRAPHICS_NAME "graphics.library" +#define LOCALE_REV 38L +#define LOCALE_NAME "locale.library" +#define DEVCONSOLE "console.device" #define PORTCR "RKM.console.read" #define PORTCW "RKM.console.write" -#endif -/******************************************************************************/ -#ifdef AOS_PROTO -#define DEVCONSOLE (UBYTE*)"console.device" -#define INTUITION_REV 37L -#define INTUITION_NAME (UBYTE*)"intuition.library" -#define GRAPHICS_REV 37L -#define GRAPHICS_NAME (UBYTE*)"graphics.library" -#define PORTCR "RKM.console.read" -#define PORTCW "RKM.console.write" +#define CATALOG_HELP "amath-help.catalog" +#define CATALOG_IDEN "amath-ident.catalog" +#define CATALOG_TEXT "amath-text.catalog" +#define CATALOG_KEYW "amath-keyword.catalog" +#define CATALOG_DEF OC_BuiltInLanguage, "english" #endif /******************************************************************************/ #if defined(AROS) || defined(MORPHOS) || defined(AOS4) -#define DEVCONSOLE "console.device" +#define AMIGADOS_NAME "dos.library" +#define AMIGADOS_REV 33L #define INTUITION_REV 37L #define INTUITION_NAME "intuition.library" #define GRAPHICS_REV 37L #define GRAPHICS_NAME "graphics.library" -#define PORTCR (STRPTR)"RKM.console.read" -#define PORTCW (STRPTR)"RKM.console.write" +#define LOCALE_REV 38L +#define LOCALE_NAME "locale.library" +#define DEVCONSOLE "console.device" +#define PORTCR "RKM.console.read" +#define PORTCW "RKM.console.write" +#define CATALOG_HELP "amath-help.catalog" +#define CATALOG_IDEN "amath-ident.catalog" +#define CATALOG_TEXT "amath-text.catalog" +#define CATALOG_KEYW "amath-keyword.catalog" +#define CATALOG_DEF OC_BuiltInLanguage, "english" #endif /******************************************************************************/ extern const char *vers; @@ -77,5 +85,6 @@ class PreferencesBase* CreatePreferences(); class FilesystemBase* CreateFilesystem(); class GraphWindow* CreateGraphWindow(); void WriteToShell(const char*); +void Cleanup(); /******************************************************************************/ #endif diff --git a/app/system/console_stdc.cpp b/app/system/console_stdc.cpp index 52102de7..38c1e774 100755 --- a/app/system/console_stdc.cpp +++ b/app/system/console_stdc.cpp @@ -25,8 +25,6 @@ */ #include "clib.h" - -#ifndef AMIGA #include #include "main/nodes.h" #include "main/evaluator.h" @@ -116,5 +114,3 @@ void StandardConsole::SetPrompt(const char* string) ConsoleBase::SetPrompt(string); proc->SetPrompt(string); } - -#endif diff --git a/app/system/console_stdc.h b/app/system/console_stdc.h index 3e0bbaac..a74e9d41 100644 --- a/app/system/console_stdc.h +++ b/app/system/console_stdc.h @@ -34,8 +34,6 @@ */ #include "clib.h" - -#ifndef AMIGA #include "lib/aengine.h" #include "system/console.h" @@ -62,4 +60,3 @@ private: }; #endif -#endif diff --git a/app/system/language_amiga.cpp b/app/system/language_amiga.cpp index 8d5fe15f..969f8214 100644 --- a/app/system/language_amiga.cpp +++ b/app/system/language_amiga.cpp @@ -32,6 +32,7 @@ #include "localize/kword.h" #include "localize/tags.h" #include "system/program.h" +#include "system/base/io.h" #include "system/language_amiga.h" #ifdef AMIGA @@ -49,50 +50,58 @@ AmigaLanguage::AmigaLanguage() identcount = sizeof(identtexts) / sizeof(identhelpdef); helpcount = sizeof(helptexts) / sizeof(helptextdef); - // OpenCatalog searches for files in the following locations: - // PROGDIR:Catalogs/languageName/name - // LOCALE:Catalogs/languageName/name - - base = (struct LocaleBase*)OpenLibrary("locale.library", 38L); locale = OpenLocale(NULL); - helpcatalog = OpenCatalog(locale, "amath-help.catalog", - OC_BuiltInLanguage,"english", - TAG_DONE); - identcatalog = OpenCatalog(locale, "amath-ident.catalog", - OC_BuiltInLanguage,"english", - TAG_DONE); - textcatalog = OpenCatalog(locale, "amath-text.catalog", - OC_BuiltInLanguage,"english", - TAG_DONE); - keywordcatalog = OpenCatalog(locale, "amath-keyword.catalog", - OC_BuiltInLanguage,"english", - TAG_DONE); + helpcatalog = OpenCatalog(locale, CATALOG_HELP, CATALOG_DEF, TAG_DONE); + identcatalog = OpenCatalog(locale, CATALOG_IDEN, CATALOG_DEF, TAG_DONE); + textcatalog = OpenCatalog(locale, CATALOG_TEXT, CATALOG_DEF, TAG_DONE); + keywordcatalog = OpenCatalog(locale, CATALOG_KEYW, CATALOG_DEF, TAG_DONE); - keywordsloc = new keyworddef[keywordcount]; - for (unsigned int j = 0; j < keywordcount; j++) { - keywordsloc[j].id = j; - keywordsloc[j].name = GetCatalogStr(keywordcatalog, j, NULL); - keywordsloc[j].symbol = keywords[j].symbol; + if (keywordcatalog != NULL) { + keywordsloc = new keyworddef[keywordcount]; + for (unsigned int j = 0; j < keywordcount; j++) { + keywordsloc[j].id = j; + keywordsloc[j].name = GetCatalogStr(keywordcatalog, j, NULL); + keywordsloc[j].symbol = keywords[j].symbol; + } + + } else { + keywordcatalog = NULL; } } AmigaLanguage::~AmigaLanguage() { - CloseCatalog(helpcatalog); - CloseCatalog(identcatalog); - CloseCatalog(textcatalog); - CloseCatalog(keywordcatalog); - CloseLocale(locale); - CloseLibrary((struct Library*)base); - delete [] keywordsloc; + if (helpcatalog != NULL) { + CloseCatalog(helpcatalog); + } + + if (identcatalog != NULL) { + CloseCatalog(identcatalog); + } + + if (textcatalog != NULL) { + CloseCatalog(textcatalog); + } + + if (keywordcatalog != NULL) { + CloseCatalog(keywordcatalog); + } + + if (locale != NULL) { + CloseLocale(locale); + } + + if (keywordsloc != NULL) { + delete [] keywordsloc; + } } Symbol AmigaLanguage::FindKeyword(const char* ident) { for (unsigned int i = 0; i < keywordcount; i++) { if ( - Program->Language->StrIsEqualLoc(keywords[i].name, ident) || - Program->Language->StrIsEqualLoc(keywordsloc[i].name, ident)) { + Program->Language->StrIsEqualLoc(keywords[i].name, ident) || (keywordsloc != NULL && + Program->Language->StrIsEqualLoc(keywordsloc[i].name, ident))) { return keywords[i].symbol; } } diff --git a/app/system/language_amiga.h b/app/system/language_amiga.h index 4a7144e1..396f7d9b 100644 --- a/app/system/language_amiga.h +++ b/app/system/language_amiga.h @@ -51,7 +51,6 @@ public: Symbol FindKeyword(const char *ident); private: - struct LocaleBase* base; struct Locale* locale; struct Catalog *helpcatalog; struct Catalog *identcatalog; diff --git a/app/system/language_stdc.cpp b/app/system/language_stdc.cpp index 7e5b86d8..12ded8c5 100644 --- a/app/system/language_stdc.cpp +++ b/app/system/language_stdc.cpp @@ -34,8 +34,6 @@ #include "system/program.h" #include "system/language_stdc.h" -#ifndef AMIGA - StandardLanguage::StandardLanguage() { } @@ -138,5 +136,3 @@ bool StandardLanguage::StrIsEqualLoc(const char* s1, const char* s2) { return StrIsEqual(s1, s2); } - -#endif diff --git a/app/system/preferences.cpp b/app/system/preferences.cpp index 8c48cc6d..d52207a3 100644 --- a/app/system/preferences.cpp +++ b/app/system/preferences.cpp @@ -68,7 +68,7 @@ char* PreferencesBase::GetDescription() buf->EnsureSize( StrLen(promptkw) + sizeof(SPACE) + sizeof(promptq) + StrLen(prompt) + sizeof(promptq) + sizeof(delimiter) + - StrLen(digitkw) + sizeof(SPACE) + StrLen(dtext) + sizeof(delimiter) + 1); + StrLen(digitkw) + sizeof(SPACE) + StrLen(dtext) + sizeof(delimiter) + sizeof(char)); buf->Append(promptkw); buf->Append(SPACE); diff --git a/app/system/preferences_stdc.cpp b/app/system/preferences_stdc.cpp index 854d8e64..9eaf0c9d 100644 --- a/app/system/preferences_stdc.cpp +++ b/app/system/preferences_stdc.cpp @@ -33,8 +33,13 @@ #include #include +#ifdef UNIX static const char *tempname = "/tmp/amath.prefs"; static const char *permname = "/usr/local/etc/amath.conf"; +#else +static const char *tempname = "amath.prefs"; +static const char *permname = "amath.conf"; +#endif bool StandardPreferences::Load() { diff --git a/app/system/program_stdc.cpp b/app/system/program_stdc.cpp index b62cc4d2..fbe022fb 100644 --- a/app/system/program_stdc.cpp +++ b/app/system/program_stdc.cpp @@ -34,8 +34,6 @@ #include "system/preferences_stdc.h" #include "system/base/io.h" -#ifndef AMIGA - StandardProgram::StandardProgram() : Program() { @@ -97,5 +95,3 @@ void StandardProgram::Exit() { Console->Exit(); } - -#endif diff --git a/app/system/program_test.cpp b/app/system/program_test.cpp index 35f886cc..ff916945 100644 --- a/app/system/program_test.cpp +++ b/app/system/program_test.cpp @@ -46,12 +46,12 @@ void TestProgram::Run() RunTests(); if (fail == 0) { - printf("All tests passed (%i).\n", pass); + printf("All tests passed (%i)." NEWLINE, pass); } else { - printf("Something went wrong ...\n"); + printf("Something went wrong ..." NEWLINE); debug = true; RunTests(); - printf("Passed: %i, failed: %i\n", pass, fail); + printf("Passed: %i, failed: %i" NEWLINE, pass, fail); } } @@ -93,18 +93,18 @@ void TestProgram::PerformTest(const char* input, const char* result, bool show) CharBuffer *buf = new CharBuffer(); buf->ClearAndCopy(res); - buf->RemoveTrailing('\n'); + buf->RemoveTrailing(NEWLINE); delete evaluator; if (buf->Is(result)) { pass++; - if (!debug) { - printf("PASS: %s\n", show ? result : input); + if (debug) { + printf("PASS: %s" NEWLINE, show ? result : input); } } else { fail++; if (debug) { - printf("FAIL: %s Expected |%s| Got |%s|\n", input, result, buf->GetString()); + printf("FAIL: %s Expected |%s| Got |%s|" NEWLINE, input, result, buf->GetString()); } } diff --git a/app/system/window_amiga.cpp b/app/system/window_amiga.cpp index 8abdb8ae..e437b08f 100755 --- a/app/system/window_amiga.cpp +++ b/app/system/window_amiga.cpp @@ -32,21 +32,6 @@ #include "system/base/io.h" #ifdef AMIGA -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -struct GfxBase *GfxBase; -struct IntuitionBase *IntuitionBase; AmigaWindow::AmigaWindow(const char *prompt) : ConsoleBase(prompt) @@ -60,25 +45,11 @@ AmigaWindow::AmigaWindow(const char *prompt) : readport = NULL; succeed = false; openconsole = false; - - intuitionBase = (struct IntuitionBase*)OpenLibrary(INTUITION_NAME, INTUITION_REV); - IntuitionBase = intuitionBase; - gfxBase = (struct GfxBase*)OpenLibrary(GRAPHICS_NAME, GRAPHICS_REV); - GfxBase = gfxBase; } AmigaWindow::~AmigaWindow() { Cleanup(); - - if (gfxBase) { - CloseLibrary((Library*)gfxBase); - } - - if (intuitionBase) { - CloseLibrary((Library*)intuitionBase); - } - delete proc; } @@ -109,7 +80,7 @@ void AmigaWindow::Create() WBENCHSCREEN // open on workbench screen }; - succeed = intuitionBase != NULL && gfxBase != NULL; + succeed = true; succeed = succeed && (writeport = CreatePort(PORTCR, 0)) != 0; succeed = succeed && (readport = CreatePort(PORTCW, 0)) != 0; succeed = succeed && (writereq.st = CreateExtIO(writeport, sizeof(IOStdReq))) != 0; diff --git a/app/system/window_amiga.h b/app/system/window_amiga.h index 93cc8c67..a5e5abae 100755 --- a/app/system/window_amiga.h +++ b/app/system/window_amiga.h @@ -95,9 +95,6 @@ private: unsigned char ReadChar(STRequest request); void Cleanup(); - GfxBase *gfxBase; - IntuitionBase *intuitionBase; - Window *window; MsgPort *writeport; MsgPort *readport; diff --git a/catalog/english/amath-text.ct b/catalog/english/amath-text.ct index be68aad3..a5513adc 100644 --- a/catalog/english/amath-text.ct +++ b/catalog/english/amath-text.ct @@ -30,7 +30,7 @@ ; flexcat catalog/text.cd catalog/english/amath-text.ct CATALOG catalog/english/amath-text.catalog ; ############################################################################# INTROMSG -#NORMALTEXT##BOLD##STARTMSG##NEWLINE##NORMALTEXT##COLOR02##ITALICS#Type help to show info.#NEWLINE# +#NORMALTEXT##BOLD##STARTMSG##NEWLINE##NORMALTEXT##COLOR02#Type help to show info.#NEWLINE# TXTLISTDIRHEADER Type Name#NEWLINE#-----------------------------------------------#NEWLINE# TXTLISTDIRTFILE diff --git a/configure b/configure index 5fa3fb26..1a5a37e9 100755 --- a/configure +++ b/configure @@ -229,7 +229,8 @@ if $VALID ; then fi # Use under certain circumstances when GCC is causing problems with FPU - nff="-fno-strict-aliasing -ffloat-store " + #nff="-fno-strict-aliasing -ffloat-store " + nff=" " ( echo "# Portable Makefile generated by configure" diff --git a/lib/platform.h b/lib/platform.h index bb30282b..7fba2704 100644 --- a/lib/platform.h +++ b/lib/platform.h @@ -32,8 +32,15 @@ #define EMPTYSTRING "" #define SPACE " " + +#ifdef _WIN32 +#define NEWLINE "\r\n" +#else #define NEWLINE "\n" +#endif + #define NOMEM 0 + #define LONG_BIT 32 #define wsize sizeof(unsigned int) #define wmask (wsize - 1) @@ -85,6 +92,8 @@ typedef int bool; # include # include # include +# include +# include #endif // Check weather an POSIX compatible API is available @@ -100,14 +109,12 @@ typedef int bool; # include #endif -/* STDC */ -#ifndef AMIGA +#if !defined(AMIGA) && defined(__STDC__) # include # include # include #endif -/* GCC 4.x & AROS API */ #ifdef AROS # include # include @@ -148,9 +155,8 @@ inline void operator delete[] (void* ptr) { #endif #endif - #ifdef __cplusplus -#if (__GNUC__ > 2) +#if (__GNUC__ > 2) || defined (_WIN32) #include inline void* operator new (size_t size) throw(std::bad_alloc) { return AllocMemSafe(size); diff --git a/text/text.cd b/text/text.cd index d1b9fea9..c3a2bd94 100644 --- a/text/text.cd +++ b/text/text.cd @@ -33,7 +33,7 @@ ; ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ; ################################################################################### INTROMSG (/4/) -#NORMALTEXT##BOLD##STARTMSG##NEWLINE##NORMALTEXT##COLOR02##ITALICS#Type help to show info.#NEWLINE# +#NORMALTEXT##BOLD##STARTMSG##NEWLINE##NORMALTEXT##COLOR02#Type help to show info.#NEWLINE# TXTLISTDIRHEADER (/4/) Type Name#NEWLINE#-----------------------------------------------#NEWLINE# TXTLISTDIRTFILE (/4/)