2018-08-22 11:43:40 +02:00
|
|
|
# $NetBSD: Makefile,v 1.27 2018/08/22 09:44:59 wiz Exp $
|
2013-10-21 17:12:38 +02:00
|
|
|
|
Update to 3.7.0. Changes since 3.6.0:
Changed putchar() prototype from void putchar(char) to int putchar(int) to improve standard-compliance and allow error reporting.
Various speed improvements in stm8 backend - Dhrystone score more than doubled, resulting in SDCC achieving the highest Dhrystone scores among STM8 C implementations.
Various speed improvements for multiplications resulting in SDCC achieving the highest Coremark scores among STM8 C implementations.
Declarations in for loops (ISO C99).
64-bit integers (long long) for the mcs51 and ds390 backends (now long long is fully supported in SDCC except for the pic14 and pic16 backends).
Full _Bool support for mcs51 and ds390 backend (now _Bool is fully supported in SDCC regardless of backend).
Additional wide character library functions: mbstowcs() and wcstombs(), btowc() and wctob(), wcscmp(), wcslen().
Changed PRNG for rand() from LCG to xorshift to improve speed and quality.
Support for Small-C calling convention on the callee side (i.e. function definitions with Small-C calling convention).
The obsolete macro SDCC (which used to contain the version number encoded as an integer) has finally been removed (except for mcs51, where it will survive a little bit longer for SiLabs IDE compability).
New devices supported by simulator (TLCS-90, and the 517, F380, XC88X, DS320 mcs51-variants along with dual-dptr and MDU support).
Timer, UART (incl. interrupt) and I/O support in STM8 simulator.
Simulator support for banked memory and bit banding.
Various simulator improvements: Conditional breakpoints, breakpoints by function name from SDCC debug output, OMF input, VCD output, simulator interface for simulated program and new operators in expressions.
Deprecated --nojtbound and the corresponding pragma.
Faster register allocator reduces compilation time by about 25% (does not apply to mcs51, ds390 which use a different register allocator).
Execution count guessing and use of execution count guesses in stm8 register allocation improve optimization for code speed.
Changed getchar() prototype from char getchar(void) to int getchar(void) to improve standard-compliance and allow error reporting.
Type qualifiers in array parameters (ISO C99).
static in array parameters (ISO C99).
Improved support for DWARFv2 debug info in ELF output (stm8, hc08, s08).
Various improvements in z80/z180/gbz80/tlcs90/r2k/r3ka code generation, in particular for mixed 16-/32-bit code.
__z88dk_fastcall function pointer support for --reserve-regs-iy.
tlcs90 is now a fully supported backend, no longer work in progress.
--data-seg to specify the segment for non-initialized data in the z80, z180, gbz80, tlcs90, r2k and r3ka backends.
New methods to obtain tree-decompositions of control-flow graphs improve compilation time / code-quality trade-off (when SDCC is built with support for the treedec library).
Additional general utility functions: qsort(), strtol(), strtoul().
Numerous other new features and bug fixes are included as well.
2018-06-25 16:02:45 +02:00
|
|
|
DISTNAME= sdcc-src-3.7.0
|
2013-10-21 17:12:38 +02:00
|
|
|
PKGNAME= ${DISTNAME:S/-src//}
|
2018-08-22 11:43:40 +02:00
|
|
|
PKGREVISION= 2
|
Update to 3.7.0. Changes since 3.6.0:
Changed putchar() prototype from void putchar(char) to int putchar(int) to improve standard-compliance and allow error reporting.
Various speed improvements in stm8 backend - Dhrystone score more than doubled, resulting in SDCC achieving the highest Dhrystone scores among STM8 C implementations.
Various speed improvements for multiplications resulting in SDCC achieving the highest Coremark scores among STM8 C implementations.
Declarations in for loops (ISO C99).
64-bit integers (long long) for the mcs51 and ds390 backends (now long long is fully supported in SDCC except for the pic14 and pic16 backends).
Full _Bool support for mcs51 and ds390 backend (now _Bool is fully supported in SDCC regardless of backend).
Additional wide character library functions: mbstowcs() and wcstombs(), btowc() and wctob(), wcscmp(), wcslen().
Changed PRNG for rand() from LCG to xorshift to improve speed and quality.
Support for Small-C calling convention on the callee side (i.e. function definitions with Small-C calling convention).
The obsolete macro SDCC (which used to contain the version number encoded as an integer) has finally been removed (except for mcs51, where it will survive a little bit longer for SiLabs IDE compability).
New devices supported by simulator (TLCS-90, and the 517, F380, XC88X, DS320 mcs51-variants along with dual-dptr and MDU support).
Timer, UART (incl. interrupt) and I/O support in STM8 simulator.
Simulator support for banked memory and bit banding.
Various simulator improvements: Conditional breakpoints, breakpoints by function name from SDCC debug output, OMF input, VCD output, simulator interface for simulated program and new operators in expressions.
Deprecated --nojtbound and the corresponding pragma.
Faster register allocator reduces compilation time by about 25% (does not apply to mcs51, ds390 which use a different register allocator).
Execution count guessing and use of execution count guesses in stm8 register allocation improve optimization for code speed.
Changed getchar() prototype from char getchar(void) to int getchar(void) to improve standard-compliance and allow error reporting.
Type qualifiers in array parameters (ISO C99).
static in array parameters (ISO C99).
Improved support for DWARFv2 debug info in ELF output (stm8, hc08, s08).
Various improvements in z80/z180/gbz80/tlcs90/r2k/r3ka code generation, in particular for mixed 16-/32-bit code.
__z88dk_fastcall function pointer support for --reserve-regs-iy.
tlcs90 is now a fully supported backend, no longer work in progress.
--data-seg to specify the segment for non-initialized data in the z80, z180, gbz80, tlcs90, r2k and r3ka backends.
New methods to obtain tree-decompositions of control-flow graphs improve compilation time / code-quality trade-off (when SDCC is built with support for the treedec library).
Additional general utility functions: qsort(), strtol(), strtoul().
Numerous other new features and bug fixes are included as well.
2018-06-25 16:02:45 +02:00
|
|
|
#PKGREVISION= 8
|
2013-10-21 17:12:38 +02:00
|
|
|
CATEGORIES= devel lang
|
|
|
|
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=sdcc/}
|
|
|
|
EXTRACT_SUFX= .tar.bz2
|
|
|
|
|
Update to 3.6.0, fixing boost-related build issue.
Changes since 3.5.0:
- Merged upstream binutils 2.25
- New memory management with lower overhead
- Changed default language dialect to --std-sdcc11
- Diagnostic for missing type specifier: No implicit int outside of C90 mode
anymore
- C11 generic selections
- char type is now unsigned by default (old behaviour can be restored
using --fsigned-char)
- Character constants are now of type int instead of char.
- ISO C95 and ISO C11 wide character constants
- ISO C95 and ISO C11 wide string literals
- Basic standard library support for wide characters: c16rtomb(), mbrtoc16(),
mbsinit(), mbtowc(), mbrlen(), mbrtoc32, c32rtomb(), mbrtowc(), wcrtomb(),
mblen(), wctomb()
- Treat all ports the same in the manual (i.e. mcs51-specific stuff is now
clearly described as such)
- Reorganized interrupt handling for z80, z180, r2k, r3ka, tlcs90, gbz80
backends
- Workaround for stm8 division hardware bug
- ELF/DWARF support for stm8
- Output symbol table for ELF
- pic16 port now uses standard-compliant crt0iz that initializes static and
globals to 0 by default
Numerous feature requests and bug fixes are included as well.
2016-06-25 19:48:15 +02:00
|
|
|
MAINTAINER= bouyer@NetBSD.org
|
2013-10-21 17:12:38 +02:00
|
|
|
HOMEPAGE= http://sdcc.sourceforge.net/
|
2014-12-30 23:23:27 +01:00
|
|
|
COMMENT= Cross compile microcontroller code
|
2013-10-21 17:12:38 +02:00
|
|
|
LICENSE= gnu-gpl-v2
|
|
|
|
|
|
|
|
DEPENDS+= gputils-[0-9]*:../../devel/gputils
|
|
|
|
|
|
|
|
USE_LANGUAGES= c c++
|
|
|
|
|
|
|
|
# XXX - This HACK circumvent a problem with the use of yacc that breaks the
|
|
|
|
# XXX - building process of sdcc. Use of bison fixes this problem for now.
|
|
|
|
#
|
Update to 3.6.0, fixing boost-related build issue.
Changes since 3.5.0:
- Merged upstream binutils 2.25
- New memory management with lower overhead
- Changed default language dialect to --std-sdcc11
- Diagnostic for missing type specifier: No implicit int outside of C90 mode
anymore
- C11 generic selections
- char type is now unsigned by default (old behaviour can be restored
using --fsigned-char)
- Character constants are now of type int instead of char.
- ISO C95 and ISO C11 wide character constants
- ISO C95 and ISO C11 wide string literals
- Basic standard library support for wide characters: c16rtomb(), mbrtoc16(),
mbsinit(), mbtowc(), mbrlen(), mbrtoc32, c32rtomb(), mbrtowc(), wcrtomb(),
mblen(), wctomb()
- Treat all ports the same in the manual (i.e. mcs51-specific stuff is now
clearly described as such)
- Reorganized interrupt handling for z80, z180, r2k, r3ka, tlcs90, gbz80
backends
- Workaround for stm8 division hardware bug
- ELF/DWARF support for stm8
- Output symbol table for ELF
- pic16 port now uses standard-compliant crt0iz that initializes static and
globals to 0 by default
Numerous feature requests and bug fixes are included as well.
2016-06-25 19:48:15 +02:00
|
|
|
USE_TOOLS+= bison makeinfo
|
|
|
|
INFO_FILES= yes
|
2013-10-21 17:12:38 +02:00
|
|
|
|
|
|
|
BUILD_TARGET= dep all
|
|
|
|
|
Update to 3.7.0. Changes since 3.6.0:
Changed putchar() prototype from void putchar(char) to int putchar(int) to improve standard-compliance and allow error reporting.
Various speed improvements in stm8 backend - Dhrystone score more than doubled, resulting in SDCC achieving the highest Dhrystone scores among STM8 C implementations.
Various speed improvements for multiplications resulting in SDCC achieving the highest Coremark scores among STM8 C implementations.
Declarations in for loops (ISO C99).
64-bit integers (long long) for the mcs51 and ds390 backends (now long long is fully supported in SDCC except for the pic14 and pic16 backends).
Full _Bool support for mcs51 and ds390 backend (now _Bool is fully supported in SDCC regardless of backend).
Additional wide character library functions: mbstowcs() and wcstombs(), btowc() and wctob(), wcscmp(), wcslen().
Changed PRNG for rand() from LCG to xorshift to improve speed and quality.
Support for Small-C calling convention on the callee side (i.e. function definitions with Small-C calling convention).
The obsolete macro SDCC (which used to contain the version number encoded as an integer) has finally been removed (except for mcs51, where it will survive a little bit longer for SiLabs IDE compability).
New devices supported by simulator (TLCS-90, and the 517, F380, XC88X, DS320 mcs51-variants along with dual-dptr and MDU support).
Timer, UART (incl. interrupt) and I/O support in STM8 simulator.
Simulator support for banked memory and bit banding.
Various simulator improvements: Conditional breakpoints, breakpoints by function name from SDCC debug output, OMF input, VCD output, simulator interface for simulated program and new operators in expressions.
Deprecated --nojtbound and the corresponding pragma.
Faster register allocator reduces compilation time by about 25% (does not apply to mcs51, ds390 which use a different register allocator).
Execution count guessing and use of execution count guesses in stm8 register allocation improve optimization for code speed.
Changed getchar() prototype from char getchar(void) to int getchar(void) to improve standard-compliance and allow error reporting.
Type qualifiers in array parameters (ISO C99).
static in array parameters (ISO C99).
Improved support for DWARFv2 debug info in ELF output (stm8, hc08, s08).
Various improvements in z80/z180/gbz80/tlcs90/r2k/r3ka code generation, in particular for mixed 16-/32-bit code.
__z88dk_fastcall function pointer support for --reserve-regs-iy.
tlcs90 is now a fully supported backend, no longer work in progress.
--data-seg to specify the segment for non-initialized data in the z80, z180, gbz80, tlcs90, r2k and r3ka backends.
New methods to obtain tree-decompositions of control-flow graphs improve compilation time / code-quality trade-off (when SDCC is built with support for the treedec library).
Additional general utility functions: qsort(), strtol(), strtoul().
Numerous other new features and bug fixes are included as well.
2018-06-25 16:02:45 +02:00
|
|
|
WRKSRC= ${WRKDIR}/sdcc
|
2013-10-21 17:12:38 +02:00
|
|
|
GNU_CONFIGURE= YES
|
2014-09-02 11:02:07 +02:00
|
|
|
USE_TOOLS+= gmake lex:run perl:run
|
2013-10-21 17:12:38 +02:00
|
|
|
|
|
|
|
CONFIGURE_ARGS+= --datadir=${PREFIX}/share/sdcc
|
|
|
|
CONFIGURE_ARGS+= --docdir=${PREFIX}/share/doc/sdcc
|
|
|
|
|
|
|
|
# needed for some arch's. -fdollars-in-identifiers is enabled
|
|
|
|
# by default on some, not on others
|
|
|
|
CPPFLAGS+= -fdollars-in-identifiers
|
|
|
|
CONFIGURE_ENV+= MACHINE_ARCH=${MACHINE_ARCH:Q}
|
|
|
|
CONFIGURE_ENV+= sdcc_cv_c_ggdb="no"
|
|
|
|
|
|
|
|
REPLACE_PYTHON= support/scripts/as2gbmap.py
|
Update to 3.6.0, fixing boost-related build issue.
Changes since 3.5.0:
- Merged upstream binutils 2.25
- New memory management with lower overhead
- Changed default language dialect to --std-sdcc11
- Diagnostic for missing type specifier: No implicit int outside of C90 mode
anymore
- C11 generic selections
- char type is now unsigned by default (old behaviour can be restored
using --fsigned-char)
- Character constants are now of type int instead of char.
- ISO C95 and ISO C11 wide character constants
- ISO C95 and ISO C11 wide string literals
- Basic standard library support for wide characters: c16rtomb(), mbrtoc16(),
mbsinit(), mbtowc(), mbrlen(), mbrtoc32, c32rtomb(), mbrtowc(), wcrtomb(),
mblen(), wctomb()
- Treat all ports the same in the manual (i.e. mcs51-specific stuff is now
clearly described as such)
- Reorganized interrupt handling for z80, z180, r2k, r3ka, tlcs90, gbz80
backends
- Workaround for stm8 division hardware bug
- ELF/DWARF support for stm8
- Output symbol table for ELF
- pic16 port now uses standard-compliant crt0iz that initializes static and
globals to 0 by default
Numerous feature requests and bug fixes are included as well.
2016-06-25 19:48:15 +02:00
|
|
|
MAKE_JOBS_SAFE= NO
|
2013-10-21 17:12:38 +02:00
|
|
|
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
|
|
|
|
.if ${OPSYS} == "NetBSD"
|
|
|
|
CPPFLAGS+= -DYY_NEVER_INTERACTIVE
|
|
|
|
|
|
|
|
pre-configure: sys-endian-buildlink
|
|
|
|
|
|
|
|
sys-endian-buildlink:
|
|
|
|
${MKDIR} ${BUILDLINK_DIR}/include
|
|
|
|
${LN} -fs /usr/include/sys/endian.h ${BUILDLINK_DIR}/include
|
|
|
|
.endif
|
|
|
|
|
|
|
|
post-install:
|
|
|
|
${INSTALL_DATA} ${WRKSRC}/doc/*.lyx ${DESTDIR}${PREFIX}/share/doc/sdcc
|
|
|
|
${INSTALL_DATA} ${WRKSRC}/doc/*.txt ${DESTDIR}${PREFIX}/share/doc/sdcc
|
|
|
|
|
|
|
|
.include "../../devel/boehm-gc/buildlink3.mk"
|
|
|
|
.include "../../devel/boost-libs/buildlink3.mk"
|
|
|
|
.include "../../devel/readline/buildlink3.mk"
|
|
|
|
.include "../../lang/python/application.mk"
|
|
|
|
.include "../../mk/bsd.pkg.mk"
|