1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-29 10:18:30 +00:00
freebsd-ports/lang/seed7/Makefile
Pietro Cerutti a51d36440c lang/seed7: update to 05_20210106
Changelog:
- The declaration of in-parameters has been changed to work the same
  way as all other parameter declarations (val-, ref-, inout-, attr-
  and in-var-parameters). Many thanks go to Zachary Menzies for
  pointing out a problem with in-parameters and for providing a test
  program. The new in-parameters fix this problem.
- The support for function types (func aType and proc) in interpreter
  and compiler has been improved.
- The support for Emscripten (a C compiler that generates JavaScript
  and WebAssembly) has been improved. The support of Emscripten is
  experimental (see also src/read_me.txt).
- The library http_response.s7i has been improved to set the correct
  content-type for more file types (css, javascript, wasm, gif, bmp,
  pdf). This way the comanche webserver also works better.
- The function getCgiParameters() in cgi.s7i has been improved to
  accept also elements wihout equals sign (in this case value is
  assumed to be "").
- The function readPropertyFile8() has been added to the library
  propertyfile.s7i. This function processes an UTF-8 encoded property
  file.
- In propertyfile.s7i the function readPropertyNameOrValue() has been
  changed to work correct for unicode escapes (\u) and for escaped
  newlines. An extended unicode escape (\U) has been added also.
- Testcases that check if seek() does clear the EOF flag have been
  added to chkfil.sd7.
- The Seed7 parser (used by interpreter and compiler) has been
  improved, to recognize if the same syntax is declared twice. In this
  case a compile-time error is written.
- The FAQ has been improved to explain the simple profiling of the
  Seed7 compiler.
- The simple profiling of the compiler has been improved to recognize,
  if a function has been left without taking profiling into account.
- The compiler has been improved to recognize if a raise statement
  leaves a function and generates code to make the profiling work
  correct (if it has been enabled).
- The recognition of constant expressions in the compiler has been
  improved to consider variable functions as variable. The changes
  are in comp/const.s7i in two functions named isConstantCall().
- Changes have been done in seed7_05.s7i and integer.s7i such that the
  new in-parameters work as expected.
- The interpreter has been improved to support the actions DCL_IN1,
  DCL_IN2, TYP_SET_IN_PARAM_REF and TYP_SET_IN_PARAM_VALUE.
- The functions dcl_in1() and dcl_in2() have been added to dcllib.c.
- The functions typ_set_in_param_ref() and typ_set_in_param_value()
  have been added to typlib.c.
- Changes in syntax.c and token.c make sure that the new error
  SYNTAX_DECLARED_TWICE is recognized.
- In prclib.c the function prc_cpy() has been improved to take into
  account that MATCHOBJECT is constant (and the underlaying object
  is variable).
- In cmd_unx.c the function setenv7() has been improved to work
  correct, if a value is enlarged.
- In cmd_unx.c the functions getenv7(), setenv7() and unsetenv7() have
  been improved to optionally work case insensitive.
- Changes in cmd_drv.h, cmd_rtl.c and fil_unx.c allow that some
  operating system properties are determined at run-time. This is used
  for Emscripten.
- The functions setenvForNodeJs() and unsetenvForNodeJs() have been
  added to cmd_unx.c. Now setenv() and unsetenv() have also an effect
  on the environment used by Node.
- The file drw_emc.c has been added. This file provides graphic access
  using browser capabilities. It is used if Seed7 is compiled with
  emcc.
- The file pre_js.js has been added. This JavaScript code is included
  by Emscripten. It sets up program path and arguments, if the program
  runs in the browser.
- In cmd_rtl.c the function systemForNodeJs() has been improved to
  return -1, if the command cannot be executed.
- The makefiles mk_emccl.mak and mk_emccw.mak have been improved to
  store the environment variables in seed7/bin/emcc_env.ini. The macro
  CC_ENVIRONMENT_INI, which defines the path of seed7/bin/emcc_env.ini,
  is now written to version.h. This way the Seed7 compiler can be used
  without setting up Emscripten.
- Changes have been done in error.c and error.h to introduce the new
  errors SYNTAX_DECLARED_TWICE and KIND_OF_IN_PARAM_UNDEFINED. The
  error UNEXPECTED_SYMBOL has been replaced with EXPECTED_SYMBO.
- The functions increaseLevelOfCatchedExceptions() and
  decreaseLevelOfCatchedExceptions() have been added to comp/error.s7i.
  These functions are used in comp/prc_act.s7i.
- In comp/expr.s7i the function declare_type_if_necessary() has been
  improved to take a existing typeCategory of BLOCKOBJECT into account.
- In comp/type.s7i the function getExprResultType() has been improved
  to check that the category is a CALLOBJECT.
- Definitions of LINKER_OPT_SPECIAL_LIB and SPECIAL_LIB have been added
  to cc_conf.s7i.
- The files s7c.sd7, confval.sd7, cmd_rtl.c, mk_emccl.mak and
  mk_emccw.mak have been improved to use the new configuration values.
- The parameter list of the functions cmdSetGroup() and cmdSetOwner()
  has been changed in comp/cmd_act.s7i, cmd_drv.h, cmd_unx.c and
  cmd_win.c. Now group and owner are constant strings.
- Documentation comments have been added or improved in cc_conf.s7i,
  cgi.s7i, csv.s7i, propertyfile.s7i and graph.s7i.
2021-01-11 17:04:05 +00:00

88 lines
2.6 KiB
Makefile

# Created by: gahr
# $FreeBSD$
PORTNAME= seed7
DISTVERSION= 05_20210106
PORTREVISION= 0
CATEGORIES= lang
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${DISTNAME}/
DISTNAME= ${PORTNAME}_${DISTVERSION}
MAINTAINER= gahr@FreeBSD.org
COMMENT= High-level, extensible programming language
# The language libraries are licensed under the LGPL21 license. Starting from
# version 05_20140601, the compiler libraries are also distributed. These are
# licensed under the GPLv2 and can be found in ${PREFIX}/lib/seed7/lib/comp.
LICENSE= GPLv2 LGPL21
LICENSE_COMB= multi
ONLY_FOR_ARCHS= amd64 i386 sparc64
LIB_DEPENDS= libodbc.so:databases/unixODBC
USES= mysql:client ncurses pgsql sqlite tar:tgz xorg
OPTIONS_DEFINE= DOCS EXAMPLES
USE_XORG= x11
WANT_PGSQL= client
WRKSRC= ${WRKDIR}/${PORTNAME}/src
MAKE_ENV+= S7_LIB_DIR=${S7_LIB_DIR} \
SEED7_LIBRARY=${SEED7_LIBRARY} \
C_COMPILER=${CC} \
CPLUSPLUS_COMPILER=${CPP}
SEED7_LIBRARY= ${PREFIX}/lib/${PORTNAME}/lib
S7_LIB_DIR= ${PREFIX}/lib/${PORTNAME}/bin
S7_LIBS= s7_comp.a s7_con.a s7_draw.a s7_data.a seed7_05.a
PORTEXAMPLES= *
PORTDOCS= *
MAKEFILE= mk_freebsd.mk
post-patch:
${REINPLACE_CMD} \
-e 's|%%LOCALBASE%%|${LOCALBASE}|g;' \
-e 's|^CFLAGS = |CFLAGS = -I${NCURSESINC} |' \
${WRKSRC}/${MAKEFILE}
${REINPLACE_CMD} \
-e 's|/opt/X11/include|${LOCALBASE}/include|' \
${WRKSRC}/chkccomp.c
do-configure:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} -f ${MAKEFILE} depend
do-build:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} -f ${MAKEFILE} s7 s7c
do-install:
# install interpreter and compiler
${INSTALL_PROGRAM} ${WRKSRC}/../bin/s7 ${STAGEDIR}${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKSRC}/../prg/s7c ${STAGEDIR}${PREFIX}/bin
# install seed7 library
${INSTALL} -d ${STAGEDIR}${SEED7_LIBRARY}/comp
cd ${WRKSRC}/../lib && ${COPYTREE_SHARE} '*.s7i' ${STAGEDIR}${SEED7_LIBRARY}
cd ${WRKSRC}/../lib/comp && ${COPYTREE_SHARE} '*.s7i' ${STAGEDIR}${SEED7_LIBRARY}/comp
# install static libraries
${INSTALL} -d ${STAGEDIR}${S7_LIB_DIR}
.for s7_lib in ${S7_LIBS}
${INSTALL_DATA} ${WRKSRC}/../bin/${s7_lib} ${STAGEDIR}${S7_LIB_DIR}
.endfor
# install PORTDOCS
${INSTALL} -d ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC}/../doc && ${COPYTREE_SHARE} \* ${STAGEDIR}${DOCSDIR}
# install PORTEXAMPLES
${INSTALL} -d ${STAGEDIR}${EXAMPLESDIR}
cd ${WRKSRC}/../prg && ${COPYTREE_SHARE} '*.dna *.sd7 *.dat *.s7i' ${STAGEDIR}${EXAMPLESDIR}
# insall man pages
${INSTALL_DATA} ${WRKSRC}/../doc/s7.1 ${STAGEDIR}${PREFIX}/man/man1
${INSTALL_DATA} ${WRKSRC}/../doc/s7c.1 ${STAGEDIR}${PREFIX}/man/man1
do-test:
cd ${WRKSRC} && ${MAKE} -f ${MAKEFILE} test
.include <bsd.port.mk>