Commit 3be9bced authored by Andreas Bombe's avatar Andreas Bombe

New upstream version 0.35+git20180503+dfsg

parent 695fcd2a
...@@ -12,9 +12,7 @@ b~*.ad? ...@@ -12,9 +12,7 @@ b~*.ad?
testsuite/get_entities testsuite/get_entities
# Generated files on windows. # Generated files on windows.
build/ /build/
dist/mcode/build/
dist/mcode/lib/
# Generated directories on Linux # Generated directories on Linux
lib/ lib/
......
branches: branches:
except: except:
- appveyor - appveyor
language: c os: linux
dist: trusty
sudo: required
services: docker
language: minimal
install: skip
script: "./dist/linux/travis-ci.sh"
matrix: addons:
include: apt:
- os: linux packages:
dist: trusty - docker-ce
sudo: required
services: docker
env: IMAGE=stretch+mcode
- os: linux
dist: trusty
sudo: required
services: docker
env: IMAGE=stretch+mcode+gpl
- os: linux
dist: trusty
sudo: required
services: docker
env: IMAGE=ubuntu14+mcode
- os: linux
dist: trusty
sudo: required
services: docker
env: IMAGE=ubuntu14+llvm-3.8
- os: linux
dist: trusty
sudo: required
services: docker
env: IMAGE=fedora26+mcode
- os: osx
osx_image: xcode7.3
env: IMAGE=macosx+mcode
cache:
directories:
- gnat
install: true
script:
- ./dist/linux/travis-ci.sh
before_deploy:
- "echo ready to deploy"
deploy: deploy:
- provider: releases - &deploy-docker
provider: script
skip_cleanup: true
script: ./dist/linux/deploy2dockerhub.sh "$IMAGE" "$TRAVIS_COMMIT_MESSAGE"
on:
repo: 1138-4EB/ghdl
branch: master
- &deploy-releases
provider: releases
skip_cleanup: true skip_cleanup: true
api_key: api_key:
secure: ji6LXOmD5V2N+ELHZr4oJsmxPhedk+8W6jfCqQdEbewQ42N+fKOq3lgqJni7ZdfpZaulB9OHPTApv3bwOjXjtN9rfBGmq//U9CwvzHmUeomdQv6WQOVevaWSXl3DNL9fk3yKynyFrsv4pvr45L8GIjaHLggKcYhNFPJ2rrnJlDoFT9MqQNpmP7Bg/LnwVQiv+ZDPkLlMWQzrXzLamdQILARPQka+kCdXl/sHH6OKvLgRvu9yvyXYSSfbyAHP+THISS5gDciizSBeWGlU75kgj/N+mkV+8NvtTTfEIgG8y49WJz6aBooTmRzk/jZW1dKMbDR6c5bpTmRvMZSzeSBuAR6WLhr6HevgCPi/1fX1y3pkVSrgBUF5KcxPgWCZp0I05QjaJOdvQDl1hH4TlVwpT18lM2+cWrui9fS7spnk/AuNKX882C5QWWRy28lIPasCVnwfeKX8a9KAwY9OqVOenoLC1yx7NJOGfH1bjuSYYxyR4XgLiGTHKALAuknCyD9QL0o378IwqxHMcsN0Gsd+GndMu0/b8GvSqfzDpV1XknqabQFwkZLs+Yydw0snfBUzXw9TfOk78IiPYEgXAxsQKBAkK7qvO36HIxLlSQXglXU1D4IDtQYDUel6vKll4pgu0WMxStQCbj51yDVJKvRhzwiBNC6Pwgzt2JTrpwM/T/U= secure: ji6LXOmD5V2N+ELHZr4oJsmxPhedk+8W6jfCqQdEbewQ42N+fKOq3lgqJni7ZdfpZaulB9OHPTApv3bwOjXjtN9rfBGmq//U9CwvzHmUeomdQv6WQOVevaWSXl3DNL9fk3yKynyFrsv4pvr45L8GIjaHLggKcYhNFPJ2rrnJlDoFT9MqQNpmP7Bg/LnwVQiv+ZDPkLlMWQzrXzLamdQILARPQka+kCdXl/sHH6OKvLgRvu9yvyXYSSfbyAHP+THISS5gDciizSBeWGlU75kgj/N+mkV+8NvtTTfEIgG8y49WJz6aBooTmRzk/jZW1dKMbDR6c5bpTmRvMZSzeSBuAR6WLhr6HevgCPi/1fX1y3pkVSrgBUF5KcxPgWCZp0I05QjaJOdvQDl1hH4TlVwpT18lM2+cWrui9fS7spnk/AuNKX882C5QWWRy28lIPasCVnwfeKX8a9KAwY9OqVOenoLC1yx7NJOGfH1bjuSYYxyR4XgLiGTHKALAuknCyD9QL0o378IwqxHMcsN0Gsd+GndMu0/b8GvSqfzDpV1XknqabQFwkZLs+Yydw0snfBUzXw9TfOk78IiPYEgXAxsQKBAkK7qvO36HIxLlSQXglXU1D4IDtQYDUel6vKll4pgu0WMxStQCbj51yDVJKvRhzwiBNC6Pwgzt2JTrpwM/T/U=
file: "ghdl-*.tgz" file: "ghdl-*.tgz"
file_glob: true file_glob: true
on: on:
repo: tgingold/ghdl repo: ghdl/ghdl
tags: true
all_branches: true all_branches: true
tags: true
# For each linux build, a different job/instance (with the constraints
# above) is executed in parallel in stage 'test'.
env:
matrix:
- IMAGE=stretch+mcode
- IMAGE=stretch+mcode+gpl
# - IMAGE=buster+mcode
# - IMAGE=buster+mcode+gpl
- IMAGE=ubuntu14+mcode
- IMAGE=ubuntu14+llvm-3.8
# - IMAGE=ubuntu16+mcode
# - IMAGE=ubuntu16+llvm-3.9
# - IMAGE=ubuntu18+mcode
# - IMAGE=ubuntu18+llvm-5.0
- IMAGE=fedora26+mcode
# - IMAGE=fedora26+llvm
global:
- secure: "MZHtYkWdYK+SeYzJvWD8I0tbkdHGjmWyNDn70a2RrNYFu363Zt51ZvksEtkjrS7kdje6l6VPfLjilX5UtywIM1Mg6nt/rsw4p62+bGhMyhfXiqS3eqEfH2sThjosy773X8iotm2sW0ax0oHX07ZLcuTbZ+TK2cMGarZ+LzNT8IiMaeaWu4W7aE5LRxSmVRwcACUOa3NiC7GY/qC7vU2C8QNdXSlU3fSp17K5eccrkkBuiEhRTsdr3ZIhjOjrYzqHKWC3a0uHn/fJsbepsVM6FGt+zAwo0VqdXXCE2ts8EOATvFgEaCGxUgfGd/yvNsAG7sjF3nweR9Z11dpMbBE+TjxlLCXQ31v1Oj7pH6vcgjCYV69cZiLbsDhxTJFQ08qbm3xK8dmTUXFy1scrMSd8D/Q3Uf0LjHkH5Q5dL8TOyqejs57fUTIBtBUpCTvvGOErdZQAOWJc93sC9RQB7BuCDR2yR7rPTJr4KUwspe1uScA/H9cQS2p42SeJ4+Yyjtwod3IQWjr6+/pdNPoImleOP0dXSDCXpAIsbv6TR9curS3geLJuTmu5UnLzbURDr7Whtop3lCPbiN0H9jThSuyIxWUI+6JDGDG89RXbCyZvGz97sIShYstWg0U0xLWmw9IDez2HtK5VKuTT/hE7gDicZ0erN6r1dlix3SpuCtH1MlA=" #U
- secure: "kIA09oCHzoHMK4LsfwcaVaMuoAFpd1M+M8tW3b9Rvki/hEB3y46edlb88lWVM7RgkNoCaIPwAZD7Wf3Xiq9Y7wWmqRsWQNRaorC0xke5SuyMwCSQSNo9S5jAu9SM5uxENCH9yucJl/vm2juYitJCHyYYMb4x17fy3sHKULNJ+JBqnrgOuTBYM1JOIkJVO1P5LqEXmqTtr6KgQgiTMtlvnM7hxjapgoyM3J1376f+Kfky0hUoDD7LFLXu8yQCn5Fnar8wR3czK6Qknafmckt5yWJxGOZobMDfKwOdA0fpU+XiArNQ/1NM80fGXq4YOGK5ycVQkO2ACxDqHYfQRYLlIfrUGp75BoXWwN6O1GoOrFcF7ZIoSaLoK3hZdvzRFT7dpUQFlosn00Y7VzqbosQM5QS5TBBqO+DExnkb399OpXI7o0lrlr232kjAeYqEb6N1n3M9BpiNW9Je4plJa/RDKwYsnC8Qak4G08PVTe6V711W1UtqMPd6efWFYTNvRW9tjO3v1lFGaGJ99ABP0AYLIDYWV3zfgvp0UzQOKFdWJj7dMQxdLMQ/bIETKn8P7NFjOWic4pgtp3zekZCL27blhc0fyHm62HUiVLT+VGFOI/nyclzBIZStSVuxPj2LvmAIiMnUNmWwds1ZqIZ21eiNykkn+k52ddTRHXIh2fhvWfg=" #P
after_deploy: stages:
- "echo deployed" - create ghdl/build and ghdl/run images
- test
jobs:
include:
# A single job is described in its own stage, to create and push ghdl/build and ghdl/run images.
- stage: create ghdl/build and ghdl/run images
env: IMAGE=""
script: if echo "$TRAVIS_COMMIT_MESSAGE" | grep -F -q "[ci images]"; then ./dist/linux/create.sh; fi;
deploy:
- <<: *deploy-docker
# A single additional job is described in stage 'test' for the macos build.
# The constraints above are used, except explicitly overriden.
- stage: test
os: osx
language: c
osx_image: xcode7.3
install: true
cache:
directories:
- gnat
env: IMAGE=macosx+mcode
deploy:
- <<: *deploy-releases
First off, thanks for taking the time to contribute!
Either to [report a bug](http://ghdl.readthedocs.io/en/doc-gcc/contribute.html#reporting-bugs), [request enhancements](http://ghdl.readthedocs.io/en/doc-gcc/contribute.html#requesting-enhancements) or to [contribute modifications](http://ghdl.readthedocs.io/en/doc-gcc/contribute.html#fork-modify-and-pull-request), please read [Contributing](http://ghdl.readthedocs.io/en/doc-gcc/contribute.html) in the [Docs](http://ghdl.readthedocs.io/en/doc-gcc/index.html).
This diff is collapsed.
This diff is collapsed.
...@@ -21,6 +21,7 @@ build=@build@ ...@@ -21,6 +21,7 @@ build=@build@
srcdir=@srcdir@ srcdir=@srcdir@
abs_srcdir=@abs_srcdir@ abs_srcdir=@abs_srcdir@
GNATMAKE=@GNATMAKE@ GNATMAKE=@GNATMAKE@
MAKE=@MAKE@
prefix=@prefix@ prefix=@prefix@
backend=@backend@ backend=@backend@
libdirsuffix=@libdirsuffix@ libdirsuffix=@libdirsuffix@
...@@ -34,9 +35,12 @@ LDFLAGS=@LDFLAGS@ ...@@ -34,9 +35,12 @@ LDFLAGS=@LDFLAGS@
LIBBACKTRACE=@backtrace_lib@ LIBBACKTRACE=@backtrace_lib@
llvm_be=@llvm_be@ llvm_be=@llvm_be@
build_mode=@build_mode@ build_mode=@build_mode@
ghdl_version=@ghdl_version@
libghdl_version=@libghdl_version@
enable_werror=@enable_werror@ enable_werror=@enable_werror@
enable_checks=@enable_checks@ enable_checks=@enable_checks@
enable_openieee=@enable_openieee@ enable_openieee=@enable_openieee@
enable_python=@enable_python@
INSTALL_PROGRAM=install -m 755 INSTALL_PROGRAM=install -m 755
INSTALL_DATA=install -m 644 INSTALL_DATA=install -m 644
...@@ -113,7 +117,7 @@ LIBVHDL_FLAGS_TO_PASS=\ ...@@ -113,7 +117,7 @@ LIBVHDL_FLAGS_TO_PASS=\
enable_openieee="$(enable_openieee)" \ enable_openieee="$(enable_openieee)" \
LN="$(LN)" CP="$(CP)" MKDIR="$(MKDIR)" LN="$(LN)" CP="$(CP)" MKDIR="$(MKDIR)"
all: Makefile all.$(backend) all: Makefile all.$(backend) all.libghdl.$(enable_python)
install: install.$(backend) install: install.$(backend)
...@@ -144,10 +148,11 @@ version.tmp: $(srcdir)/src/version.in force ...@@ -144,10 +148,11 @@ version.tmp: $(srcdir)/src/version.in force
# Create version.tmp from version.in, using git date/hash # Create version.tmp from version.in, using git date/hash
if test -d $(srcdir)/.git \ if test -d $(srcdir)/.git \
&& desc=`cd $(srcdir); git describe --dirty`; then \ && desc=`cd $(srcdir); git describe --dirty`; then \
$(SED) -e "s/[(].*[)]/($$desc)/" < $< > $@; \ sub="s/[(].*[)]/($$desc)/"; \
else \ else \
$(CP) $< $@; \ sub="s/tarball/tarball/"; \
fi fi; \
$(SED) -e "$$sub" -e "s/@VER@/$(ghdl_version)/" < $< > $@; \
version.ads: version.tmp version.ads: version.tmp
# Change version.ads only if version.tmp has been modified to avoid # Change version.ads only if version.tmp has been modified to avoid
...@@ -187,10 +192,10 @@ gcc_vhdl_dir=$(gcc_src_dir)/gcc/vhdl ...@@ -187,10 +192,10 @@ gcc_vhdl_dir=$(gcc_src_dir)/gcc/vhdl
all.gcc: all.gcc:
@echo "For installing sources in gcc, do:" @echo "For installing sources in gcc, do:"
@echo "1) make copy-sources" @echo "1) $(MAKE) copy-sources"
@echo "2) configure, build and install gcc" @echo "2) configure, build and install gcc"
@echo "3) make ghdllib" @echo "3) $(MAKE) ghdllib"
@echo "4) make install" @echo "4) $(MAKE) install"
copy-sources.gcc: version.ads copy-sources.gcc: version.ads
$(RM) -rf $(gcc_vhdl_dir) $(RM) -rf $(gcc_vhdl_dir)
...@@ -325,7 +330,7 @@ ghdl_simul$(EXEEXT): $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) version.ads force ...@@ -325,7 +330,7 @@ ghdl_simul$(EXEEXT): $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) version.ads force
libs.vhdl.simul: ghdl_simul$(EXEEXT) libs.vhdl.simul: ghdl_simul$(EXEEXT)
$(MAKE) -f $(srcdir)/libraries/Makefile.inc $(LIBVHDL_FLAGS_TO_PASS) GHDL=$(PWD)/ghdl_simul$(EXEEXT) GHDL_FLAGS="" VHDLLIBS_COPY_OBJS=no vhdl.libs.all $(MAKE) -f $(srcdir)/libraries/Makefile.inc $(LIBVHDL_FLAGS_TO_PASS) GHDL=$(PWD)/ghdl_simul$(EXEEXT) GHDL_FLAGS="" VHDLLIBS_COPY_OBJS=no vhdl.libs.all
install.simul.program: install.dirs ghdl_simul(EXEEXT) install.simul.program: install.dirs ghdl_simul$(EXEEXT)
$(INSTALL_PROGRAM) ghdl_simul$(EXEEXT) $(DESTDIR)$(bindir)/ghdl$(EXEEXT) $(INSTALL_PROGRAM) ghdl_simul$(EXEEXT) $(DESTDIR)$(bindir)/ghdl$(EXEEXT)
install.simul: install.simul.program install.vhdllib install.simul: install.simul.program install.vhdllib
...@@ -335,9 +340,14 @@ install.simul: install.simul.program install.vhdllib ...@@ -335,9 +340,14 @@ install.simul: install.simul.program install.vhdllib
LIBGHDL_INCFLAGS=$(GHDL_COMMON_INCFLAGS) -aI$(srcdir)/src/vhdl/python -aI$(srcdir)/src/ghdldrv LIBGHDL_INCFLAGS=$(GHDL_COMMON_INCFLAGS) -aI$(srcdir)/src/vhdl/python -aI$(srcdir)/src/ghdldrv
libghdl$(SOEXT): $(GRT_SRC_DEPS) version.ads force libghdl_name=libghdl-$(libghdl_version)$(SOEXT)
$(libghdl_name): $(GRT_SRC_DEPS) version.ads force
$(GNATMAKE) -I- -aI. -D pic -z libghdl -o $@ $(GNATFLAGS) $(PIC_FLAGS) -gnat05 $(LIBGHDL_INCFLAGS) -bargs -shared -Llibghdl_ -largs -shared $(SHLIB_FLAGS) $(GNATMAKE) -I- -aI. -D pic -z libghdl -o $@ $(GNATFLAGS) $(PIC_FLAGS) -gnat05 $(LIBGHDL_INCFLAGS) -bargs -shared -Llibghdl_ -largs -shared $(SHLIB_FLAGS)
all.libghdl.true: $(libghdl_name)
all.libghdl.false:
################ ghdlsynth library ###################################### ################ ghdlsynth library ######################################
GHDL_SYNTHLIB_INCFLAGS=$(GHDL_COMMON_INCFLAGS) -aI$(srcdir)/src/synth -aI$(srcdir)/src/ghdldrv -aI$(srcdir)/src/vhdl/simulate GHDL_SYNTHLIB_INCFLAGS=$(GHDL_COMMON_INCFLAGS) -aI$(srcdir)/src/synth -aI$(srcdir)/src/ghdldrv -aI$(srcdir)/src/vhdl/simulate
...@@ -404,19 +414,24 @@ install.vpi: all.vpi install.dirs ...@@ -404,19 +414,24 @@ install.vpi: all.vpi install.dirs
$(INSTALL_DATA) -p libghdlvpi$(SOEXT) $(DESTDIR)$(libdir)/ $(INSTALL_DATA) -p libghdlvpi$(SOEXT) $(DESTDIR)$(libdir)/
$(INSTALL_DATA) -p $(GRTSRCDIR)/vpi_user.h $(DESTDIR)$(incdir)/ $(INSTALL_DATA) -p $(GRTSRCDIR)/vpi_user.h $(DESTDIR)$(incdir)/
install.vpi.local: all.vpi
$(MKDIR) -p include lib
$(INSTALL_DATA) -p $(GRTSRCDIR)/vpi_user.h include/
$(INSTALL_DATA) -p libghdlvpi$(SOEXT) lib/
################ Libraries ############################################### ################ Libraries ###############################################
LIBSRC_DIR:=$(srcdir)/libraries LIBSRC_DIR:=$(srcdir)/libraries
LIBDST_DIR:=$(libdirsuffix) LIBDST_DIR:=$(libdirsuffix)
VHDLLIB_SUBDIRS_COMMON= src/std src/synopsys src/openieee \ VHDLLIB_SUBDIRS_COMMON= src/std src/synopsys src/openieee \
v87/std v87/ieee v87/synopsys \ std/v87 ieee/v87 synopsys/v87 \
v93/std v93/ieee v93/synopsys \ std/v93 ieee/v93 synopsys/v93 \
v08/std std/v08
VHDLLIB_SUBDIRS_FULL= src/ieee src/vital95 src/vital2000 src/mentor \ VHDLLIB_SUBDIRS_FULL= src/ieee src/vital95 src/vital2000 src/mentor \
src/ieee2008 \ src/ieee2008 \
v93/mentor v08/ieee v08/synopsys mentor/v93 ieee/v08 synopsys/v08
ifeq ($(enable_openieee),false) ifeq ($(enable_openieee),false)
VHDLLIB_SUBDIRS=$(VHDLLIB_SUBDIRS_COMMON) $(VHDLLIB_SUBDIRS_FULL) VHDLLIB_SUBDIRS=$(VHDLLIB_SUBDIRS_COMMON) $(VHDLLIB_SUBDIRS_FULL)
......
**0.35** (2017-12-XX) **0.36-dev** (XXXX-XX-XX)
- A new GitHub organization is created and the main repo is moved from [github.com/tgingold/ghdl](https://github.com/tgingold/ghdl) to [github.com/ghdl/ghdl](https://github.com/ghdl/ghdl). Old refs will continue working, because permanent redirects are set up. However, we suggest every contributor to update the remote URLs in their local clones.
**0.35** (2017-12-14)
- Assert and report messages are sent to stdout (#394) - Assert and report messages are sent to stdout (#394)
- Improve support for unbounded records - Improve support for unbounded records
- Bugs fixed - Bugs fixed
......
This diff is collapsed.
...@@ -3,11 +3,19 @@ ...@@ -3,11 +3,19 @@
# configure script for ghdl (c) 2014 Tristan Gingold # configure script for ghdl (c) 2014 Tristan Gingold
# #
# Current version. This is the only place where the version is written.
# Any code that needs version should read it directly or indirectly from this
# place.
# Note the absence of spaces and the quotes.
# Suffix "-dev" is used during development.
ghdl_version="0.36-dev"
backend=mcode backend=mcode
CC=${CC:-gcc} CC=${CC:-gcc}
CXX=${CXX:-clang++} CXX=${CXX:-clang++}
CFLAGS=${CFLAGS:--g} CFLAGS=${CFLAGS:--g}
GNATMAKE=${GNATMAKE:-gnatmake} GNATMAKE=${GNATMAKE:-gnatmake}
MAKE=${MAKE:-make}
LDFLAGS= LDFLAGS=
prefix=/usr/local prefix=/usr/local
libdirsuffix=lib/ghdl libdirsuffix=lib/ghdl
...@@ -21,6 +29,7 @@ build_mode= ...@@ -21,6 +29,7 @@ build_mode=
enable_werror=true enable_werror=true
enable_checks=true enable_checks=true
enable_openieee=unknown enable_openieee=unknown
enable_python=false
EXEEXT= EXEEXT=
SOEXT=.so SOEXT=.so
PIC_FLAGS=-fPIC PIC_FLAGS=-fPIC
...@@ -28,7 +37,7 @@ PIC_FLAGS=-fPIC ...@@ -28,7 +37,7 @@ PIC_FLAGS=-fPIC
show_help=no show_help=no
progname=$0 progname=$0
subst_vars="CC CXX GNATMAKE CFLAGS LDFLAGS build srcdir abs_srcdir prefix backend libdirsuffix libdirreverse gcc_src_dir llvm_config llvm_be backtrace_lib build_mode EXEEXT SOEXT PIC_FLAGS default_pie enable_werror enable_checks enable_openieee" subst_vars="CC CXX GNATMAKE MAKE CFLAGS LDFLAGS build srcdir abs_srcdir prefix backend libdirsuffix libdirreverse gcc_src_dir llvm_config llvm_be backtrace_lib build_mode EXEEXT SOEXT PIC_FLAGS default_pie enable_werror enable_checks enable_openieee enable_python libghdl_version ghdl_version"
# Find srcdir # Find srcdir
srcdir=`dirname $progname` srcdir=`dirname $progname`
...@@ -79,6 +88,8 @@ for opt do ...@@ -79,6 +88,8 @@ for opt do
--disable-checks) enable_checks=false;; --disable-checks) enable_checks=false;;
--enable-openieee) enable_openieee=true;; --enable-openieee) enable_openieee=true;;
--disable-openieee) enable_openieee=false;; --disable-openieee) enable_openieee=false;;
--enable-python) enable_python=true;;
--disable-python) enable_python=false;;
--enable-coverage) build_mode="coverage";; --enable-coverage) build_mode="coverage";;
-h|-help|--help) show_help=yes;; -h|-help|--help) show_help=yes;;
*) echo "$0: unknown option $opt; try $0 --help" *) echo "$0: unknown option $opt; try $0 --help"
...@@ -102,6 +113,7 @@ Options [defaults in brackets]: ...@@ -102,6 +113,7 @@ Options [defaults in brackets]:
--disable-werror warnings don't stop build --disable-werror warnings don't stop build
--disable-checks disable internal checks --disable-checks disable internal checks
--enable-openieee use gpl-compatible sources for ieee library --enable-openieee use gpl-compatible sources for ieee library
--enable-python build python libghdl
EOF EOF
exit 0 exit 0
fi fi
...@@ -216,8 +228,10 @@ if test $backend = llvm; then ...@@ -216,8 +228,10 @@ if test $backend = llvm; then
llvm_be=llvm-nodebug llvm_be=llvm-nodebug
# Tested with llvm 3.5, so assume 3.6, 3.7 and 3.8 # Tested with llvm 3.5, so assume 3.6, 3.7 and 3.8
elif check_version 3.9 $llvm_version || elif check_version 3.9 $llvm_version ||
check_version 4.0 $llvm_version || check_version 4.0 $llvm_version ||
check_version 5.0 $llvm_version; then check_version 5.0 $llvm_version ||
check_version 6.0 $llvm_version ||
false; then
echo "Debugging is not enabled with llvm $llvm_version" echo "Debugging is not enabled with llvm $llvm_version"
llvm_be=llvm4-nodebug llvm_be=llvm4-nodebug
else else
...@@ -240,6 +254,9 @@ case "$build" in ...@@ -240,6 +254,9 @@ case "$build" in
*) SOEXT=".so"; EXEEXT=""; PIC_FLAGS="-fPIC";; *) SOEXT=".so"; EXEEXT=""; PIC_FLAGS="-fPIC";;
esac esac
# Define libghdl_version
libghdl_version=`echo $ghdl_version | sed -e 's/[-.]/_/g'`
# Check if gcc was configured with --enable-default-pie. In that case -fPIC # Check if gcc was configured with --enable-default-pie. In that case -fPIC
# should be added. # should be added.
if gcc -v 2>&1 | grep -q enable-default-pie; then if gcc -v 2>&1 | grep -q enable-default-pie; then
...@@ -280,10 +297,14 @@ for v in $subst_vars; do ...@@ -280,10 +297,14 @@ for v in $subst_vars; do
echo $v=\"$vval\" echo $v=\"$vval\"
done done
sed_opts=`echo $subst_vars | sed -e "s/\\([a-zA-Z_]*\\)/ -e \"s%@\1@%\$\1%g\"/g"` sed_opts=`echo $subst_vars | sed -e "s/\\([a-zA-Z_]*\\)/ -e \"s%@\1@%\$\1%g\"/g"`
echo 'echo "Creating ghdl.gpr"' subst_files="ghdl.gpr Makefile"
echo sed $sed_opts '< $srcdir/ghdl.gpr.in > ghdl.gpr' if [ "$enable_python" = true ]; then
echo 'echo "Creating Makefile"' subst_files="$subst_files setup.py"
echo sed $sed_opts '< $srcdir/Makefile.in > Makefile' fi
echo "for f in $subst_files; do"
echo ' echo "Creating $f"'
echo " sed $sed_opts" '< $srcdir/${f}.in > $f'
echo "done"
} > config.status || \ } > config.status || \
{ {
echo "$progname: cannot create config.status" echo "$progname: cannot create config.status"
...@@ -299,7 +320,7 @@ if ! sh ./config.status; then ...@@ -299,7 +320,7 @@ if ! sh ./config.status; then
fi fi
# Create dirs # Create dirs
make create-dirs $MAKE create-dirs
# Generate ortho_code-x86-flags # Generate ortho_code-x86-flags
if test $backend = mcode; then if test $backend = mcode; then
......
#! /bin/bash
. dist/linux/travis-utils.sh
. dist/ansi_color.sh
disable_color
echo "$0" "$@"
# Stop in case of error
set -e
# Transform long options to short ones
for arg in "$@"; do
shift
case "$arg" in
"--color"|"-color") set -- "$@" "-c";;
"--build"|"-build") set -- "$@" "-b";;
"--pkg"|"-pkg") set -- "$@" "-p";;
"--gpl"|"-gpl") set -- "$@" "-g";;
*) set -- "$@" "$arg"
esac
done
# Parse args
while getopts ":b:p:cg" opt; do
case $opt in
c) enable_color;;
b) BLD=$OPTARG ;;
p) PKG_NAME=$OPTARG;;
g) ISGPL=true;;
\?) printf "$ANSI_RED[GHDL - build] Invalid option: -$OPTARG $ANSI_NOCOLOR\n" >&2
exit 1 ;;
:) printf "$ANSI_RED[GHDL - build] Option -$OPTARG requires an argument. $ANSI_NOCOLOR\n" >&2
exit 1 ;;
esac
done
rm -f build_ok
#--- Env
echo "travis_fold:start:env.docker"
printf "$ANSI_YELLOW[Info] Environment $ANSI_NOCOLOR\n"
env
echo "travis_fold:end:env.docker"
#--- GPL: gpl-ize sources
if [ "$ISGPL" = "true" ]; then
echo "travis_fold:start:gpl.src"
printf "$ANSI_YELLOW[Source] create GPL sources $ANSI_NOCOLOR\n"
files=`echo *`
make -f Makefile.in srcdir=. clean-pure-gpl
mkdir ${PKG_NAME}
cp -pdrl $files ${PKG_NAME}
tar -zcf "${PKG_NAME}.tar.gz" ${PKG_NAME}
PKG_NAME="${PKG_NAME}-${BLD}"
echo "travis_fold:end:gpl.src"
fi
#--- Configure
echo "travis_fold:start:configure"
printf "$ANSI_YELLOW[GHDL - build] Configure $ANSI_NOCOLOR\n"
CDIR=$(pwd)
export prefix="$CDIR/install-$BLD"
mkdir "$prefix"
mkdir "build-$BLD"
cd "build-$BLD"
case "$BLD" in
mcode)
config_opts=""
CXX=""
;;
llvm)
CXX="clang"
config_opts="--with-llvm-config CXX=$CXX"
;;
llvm-3.5)
CXX="clang++"
config_opts="--with-llvm-config=llvm-config-3.5 CXX=$CXX"
;;
llvm-3.8)
CXX="clang++-3.8"
config_opts="--with-llvm-config=llvm-config-3.8 CXX=$CXX"
;;
llvm-3.9)
CXX="clang++-3.9"
config_opts="--with-llvm-config=llvm-config-3.9 CXX=$CXX"
;;
llvm-4.0)
CXX="clang++-4.0"
config_opts="--with-llvm-config=llvm-config-4.0 CXX=$CXX"
;;
llvm-5.0)
CXX="clang++-5.0"
config_opts="--with-llvm-config=llvm-config-5.0 CXX=$CXX"
;;
*)
echo "$ANSI_RED[GHDL - build] Unknown build $BLD $ANSI_NOCOLOR"
exit 1;;
esac
echo "../configure --prefix=$prefix $config_opts"
../configure "--prefix=$prefix" $config_opts
echo "travis_fold:end:configure"
#--- make
echo "travis_fold:start:make"
travis_time_start
printf "$ANSI_YELLOW[GHDL - build] Make $ANSI_NOCOLOR\n"
make
travis_time_finish
echo "travis_fold:end:make"
echo "travis_fold:start:install"
printf "$ANSI_YELLOW[GHDL - build] Install $ANSI_NOCOLOR\n"
make install
cd ..
echo "travis_fold:end:install"
#--- package
echo "travis_fold:start:tar.bin"
printf "$ANSI_YELLOW[GHDL - build] Create package ${ANSI_DARKCYAN}${PKG_NAME}.tgz $ANSI_NOCOLOR\n"
tar -zcvf "${PKG_NAME}.tgz" -C "$prefix" .
echo "travis_fold:end:tar.bin"
#--- build tools versions
{
make --version | grep 'Make'
gnatls --version | grep 'GNATLS'
gcc --version | grep 'gcc'
if [ "$CXX" != "" ]; then
$CXX --version | grep 'clang'
fi
} > BUILD_TOOLS
#---
echo "[SUCCESSFUL]"
touch build_ok
#! /bin/sh
# This script is executed in the travis-ci environment.
set -e
. dist/linux/travis-utils.sh
. dist/ansi_color.sh
#disable_color
scriptdir=$(dirname $0)
for d in build run; do
currentdir="${scriptdir}/docker/$d"
for f in `ls $currentdir`; do
for tag in `grep -oP "FROM.*AS \K.*" ${currentdir}/$f`; do
echo "travis_fold:start:${f}-$tag"
travis_time_start
printf "$ANSI_BLUE[DOCKER build] ${d} : ${f} - ${tag}$ANSI_NOCOLOR\n"
docker build -t ghdl/${d}:${f}-${tag} --target $tag - < ${currentdir}/$f
travis_time_finish
echo "travis_fold:end:${f}-$tag"
done
done
done
#! /bin/sh
set -e
. dist/linux/travis-utils.sh
. dist/ansi_color.sh
#disable_color
# Skip deploy if we are in stage 0 (i.e. IMAGE="") and there is no '[ci images]' in the commit message
if [ "$1" = "skip" ] || [ "${1}$(echo $2 | grep -o '\[ci images\]')" = "" ]; then
printf "${ANSI_GREEN}SKIP DEPLOY2DOCKERHUB$ANSI_NOCOLOR\n";
exit 0;
fi
case $1 in
"") FILTER="/";;
*) FILTER="/ghdl /pkg";;
esac
docker login -u="$DOCKER_USER" -p="$DOCKER_PASS"
for key in $FILTER; do
for tag in `echo $(docker images ghdl$key* | awk -F ' ' '{print $1 ":" $2}') | cut -d ' ' -f2-`; do
if [ "$tag" = "REPOSITORY:TAG" ]; then break; fi
echo "travis_fold:start:`echo $tag | grep -oP 'ghdl/\K.*'`"
travis_time_start
printf "$ANSI_YELLOW[DOCKER push] ${tag}$ANSI_NOCOLOR\n"
docker push $tag
travis_time_finish
echo "travis_fold:end:`echo $tag | grep -oP 'ghdl/\K.*'`"
done
done
docker logout
# Fedora 26
FROM fedora:26
RUN dnf --nodocs -y install gcc-gnat zlib-devel make \
&& dnf clean all