aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile.in
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2016-10-20 21:02:31 +0200
committerTristan Gingold <tgingold@free.fr>2016-10-20 21:02:31 +0200
commitde1c213c36101c80f961f2ba24d4188646de8cb5 (patch)
tree6ef4582017763cf02102b66e7e96061779c15f79 /Makefile.in
parent3c5dd6f1eccc8b2ba21a1089dc299fb63e2af27b (diff)
downloadghdl-de1c213c36101c80f961f2ba24d4188646de8cb5.tar.gz
ghdl-de1c213c36101c80f961f2ba24d4188646de8cb5.tar.bz2
ghdl-de1c213c36101c80f961f2ba24d4188646de8cb5.zip
Create version.ads from git hash/date in version.ads
Fix #161
Diffstat (limited to 'Makefile.in')
-rw-r--r--Makefile.in33
1 files changed, 24 insertions, 9 deletions
diff --git a/Makefile.in b/Makefile.in
index 747b7a16a..ff71bad55 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -98,6 +98,20 @@ GHDL_COMMON_INCFLAGS=-aI$(srcdir)/src -aI$(srcdir)/src/vhdl -aI$(srcdir)/src/psl
GRTSRCDIR=$(srcdir)/src/grt
include $(GRTSRCDIR)/Makefile.inc
+version.tmp: $(srcdir)/src/version.in force
+# Create version.tmp from version.in, using git date/hash
+ if [ -d $(srcdir)/.git ]; then \
+ desc=`cd $(srcdir); git describe --dirty`; \
+ sed -e "s/[(].*[)]/($$desc)/" < $< > $@; \
+ else \
+ $(CP) $< $@; \
+ fi
+
+version.ads: version.tmp
+# Change version.ads only if version.tmp has been modified to avoid
+# useless rebuild.
+ if [ ! -r $@ ] || ! cmp $< $@ > /dev/null; then $(CP) $< $@; fi
+
#################### For mcode backend ##############################
all.mcode: ghdl_mcode$(EXEEXT) libs.vhdl.mcode all.vpi
@@ -106,7 +120,7 @@ GHDL_MCODE_INCFLAGS=$(GHDL_COMMON_INCFLAGS) -aI$(srcdir)/src/ghdldrv -aI$(srcdir
ghdl_mcode$(EXEEXT): GRT_FLAGS+=-DWITH_GNAT_RUN_TIME
ghdl_mcode$(EXEEXT): $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) $(ORTHO_DEPS) \
- memsegs_c.o chkstk.o force
+ memsegs_c.o chkstk.o version.ads force
$(GNATMAKE) -o $@ $(GHDL_MCODE_INCFLAGS) $(GNATFLAGS) -gnatw.A ghdl_jit.adb $(GNAT_BARGS) -largs memsegs_c.o chkstk.o $(GNAT_LARGS) $(GRT_ADD_OBJS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB))
memsegs_c.o: $(srcdir)/src/ortho/mcode/memsegs_c.c
@@ -135,9 +149,10 @@ all.gcc:
echo "3) make ghdllib"
echo "4) make install"
-copy-sources.gcc:
+copy-sources.gcc: version.ads
$(RM) -rf $(gcc_vhdl_dir)
$(MKDIR) $(gcc_vhdl_dir)
+ $(CP) -p version.ads $(gcc_vhdl_dir)
$(CP) -p $(srcdir)/src/*.ad? $(gcc_vhdl_dir)
$(CP) -p $(srcdir)/src/vhdl/*.ad? $(gcc_vhdl_dir)
$(CP) -p $(srcdir)/src/vhdl/translate/*.ad? $(gcc_vhdl_dir)
@@ -170,7 +185,7 @@ ghdl1-gcc$(EXEEXT): force
ortho_srcdir=$(srcdir)/src/ortho ortho_exec=$@ \
GNAT_FLAGS="$(GHDL_GCC_INCFLAGS) $(GNATFLAGS)" all
-ghdl_gcc$(EXEEXT): force
+ghdl_gcc$(EXEEXT): version.ads force
$(GNATMAKE) $(GHDL_GCC_INCFLAGS) -aI$(srcdir)/src/ghdldrv \
$(GNATFLAGS) ghdl_gcc $(GNAT_BARGS) -largs $(GNAT_LARGS)
@@ -186,7 +201,7 @@ grt.links:
libs.vhdl.local_gcc: ghdl_gcc$(EXEEXT) ghdl1-gcc$(EXEEXT)
$(MAKE) GHDL=$(PWD)/ghdl_gcc$(EXEEXT) ANALYZE_OPTS="--GHDL1=ghdl1-gcc$(EXEEXT)" STD_GHDL_FLAGS="--GHDL1=$(PWD)/ghdl1-gcc$(EXEEXT)" vhdl.libs.all libs.vhdl.standard
-ghdl1-debug$(EXEEXT): force
+ghdl1-debug$(EXEEXT): version.ads force
$(MAKE) -f $(srcdir)/src/ortho/debug/Makefile \
ortho_srcdir=$(srcdir)/src/ortho ortho_exec=$@ \
GNAT_FLAGS="$(GHDL_GCC_INCFLAGS) $(GNATFLAGS)" \
@@ -207,7 +222,7 @@ all.llvm_jit: ghdl_llvm_jit$(EXEEXT)
ghdl_llvm_jit$(EXEEXT): GRT_FLAGS+=-DWITH_GNAT_RUN_TIME
ghdl_llvm_jit$(EXEEXT): $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) $(ORTHO_DEPS) \
- llvm-cbindings.o force
+ llvm-cbindings.o version.ads force
$(GNATMAKE) -o $@ $(GHDL_LLVM_INCFLAGS) $(GNATFLAGS) ghdl_jit.adb \
$(GNAT_BARGS) -largs llvm-cbindings.o $(GNAT_LARGS) $(GRT_ADD_OBJS) \
$(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB)) --LINK=$(CXX) \
@@ -223,11 +238,11 @@ libs.vhdl.llvmjit: ghdl_llvm_jit$(EXEEXT)
libs.vhdl.llvm: ghdl_llvm$(EXEEXT) ghdl1-llvm$(EXEEXT)
$(MAKE) GHDL=$(PWD)/ghdl_llvm$(EXEEXT) ANALYZE_OPTS="--GHDL1=ghdl1-llvm$(EXEEXT)" vhdl.libs.all libs.vhdl.standard
-ghdl_llvm$(EXEEXT): force
+ghdl_llvm$(EXEEXT): version.ads force
$(GNATMAKE) $(GHDL_LLVM_INCFLAGS) -aI$(srcdir)/src/ghdldrv $(GNATFLAGS)\
ghdl_llvm $(GNAT_BARGS) -largs $(GNAT_LARGS)
-ghdl1-llvm$(EXEEXT): force
+ghdl1-llvm$(EXEEXT): version.ads force
$(MAKE) -f $(srcdir)/src/ortho/$(llvm_be)/Makefile \
ortho_srcdir=$(srcdir)/src/ortho ortho_exec=$@ \
GNAT_FLAGS="$(GHDL_LLVM_INCFLAGS) $(GNATFLAGS)" LDFLAGS="$(LDFLAGS)" \
@@ -250,7 +265,7 @@ install.llvm: install.llvm.program install.vhdllib install.grt install.vpi
GHDL_SIMUL_INCFLAGS=$(GHDL_COMMON_INCFLAGS) -aI$(srcdir)/src/ghdldrv -aI$(srcdir)/src/vhdl/simulate -aI$(srcdir)/src/grt
-ghdl_simul$(EXEEXT): $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) force
+ghdl_simul$(EXEEXT): $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) version.ads force
$(GNATMAKE) $(GHDL_SIMUL_INCFLAGS) $(GNATFLAGS) ghdl_simul $(GNAT_BARGS) -largs $(GNAT_LARGS) $(GRT_ADD_OBJS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB))
libs.vhdl.simul: ghdl_simul$(EXEEXT) vhdl.libs.all
@@ -259,7 +274,7 @@ libs.vhdl.simul: ghdl_simul$(EXEEXT) vhdl.libs.all
GHDL_MHDLSIM_INCFLAGS=$(GHDL_COMMON_INCFLAGS) -aI$(srcdir)/src/mhdlsim -aI$(srcdir)/src/ghdldrv -aI$(srcdir)/src/vhdl/simulate -aI$(srcdir)/src/grt
-libmhdlsimvhdl.a: $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) force
+libmhdlsimvhdl.a: $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) version.ads force
$(GNATMAKE) -c mhdlsim $(GNATFLAGS) $(GHDL_MHDLSIM_INCFLAGS)
gnatbind -Lmhdlsim_vhdl_ mhdlsim.ali -O > mhdlsim.files
gnatbind -Lmhdlsim_vhdl_ mhdlsim.ali -K -Z > mhdlsim.link