From 70cc586c068c297bdd1fbb0285473246f8812655 Mon Sep 17 00:00:00 2001 From: gingold Date: Sun, 9 Oct 2005 17:27:11 +0000 Subject: --vcdz option added, switched to gcc-4.0.2, can be compiled with GNAT GPL 2005 ready for ada05 (interface identifier not used anymore) bug fixes --- ortho/gcc/Makefile | 32 + ortho/gcc/Makefile.inc | 62 ++ ortho/gcc/lang.opt | 70 ++ ortho/gcc/ortho-lang.c | 2052 +++++++++++++++++++++++++++++++++++++++++ ortho/gcc/ortho_gcc-main.adb | 26 + ortho/gcc/ortho_gcc-main.ads | 1 + ortho/gcc/ortho_gcc.adb | 110 +++ ortho/gcc/ortho_gcc.ads | 649 +++++++++++++ ortho/gcc/ortho_gcc_front.ads | 2 + ortho/gcc/ortho_ident.adb | 36 + ortho/gcc/ortho_ident.ads | 12 + ortho/gcc/ortho_nodes.ads | 3 + 12 files changed, 3055 insertions(+) create mode 100644 ortho/gcc/Makefile create mode 100644 ortho/gcc/Makefile.inc create mode 100644 ortho/gcc/lang.opt create mode 100644 ortho/gcc/ortho-lang.c create mode 100644 ortho/gcc/ortho_gcc-main.adb create mode 100644 ortho/gcc/ortho_gcc-main.ads create mode 100644 ortho/gcc/ortho_gcc.adb create mode 100644 ortho/gcc/ortho_gcc.ads create mode 100644 ortho/gcc/ortho_gcc_front.ads create mode 100644 ortho/gcc/ortho_ident.adb create mode 100644 ortho/gcc/ortho_ident.ads create mode 100644 ortho/gcc/ortho_nodes.ads (limited to 'ortho') diff --git a/ortho/gcc/Makefile b/ortho/gcc/Makefile new file mode 100644 index 0000000..69c9996 --- /dev/null +++ b/ortho/gcc/Makefile @@ -0,0 +1,32 @@ +ortho_srcdir=.. +orthobe_srcdir=$(ortho_srcdir)/gcc +agcc_objdir=. +agcc_srcdir=$(ortho_srcdir)/gcc +AGCC_GCCSRC_DIR:=$(HOME)/dist/gcc-4.0.1 +AGCC_GCCOBJ_DIR:=$(AGCC_GCCSRC_DIR)-objs +SED=sed + +all: $(ortho_exec) + +include $(orthobe_srcdir)/Makefile.inc + +ORTHO_BASENAME=$(orthobe_srcdir)/ortho_gcc +ORTHO_PACKAGE=Ortho_Gcc + + +$(ortho_exec): $(AGCC_DEPS) $(ORTHO_BASENAME).ads force + gnatmake -m -o $@ -g -aI$(ortho_srcdir) \ + -aI$(ortho_srcdir)/gcc $(GNAT_FLAGS) ortho_gcc-main \ + -bargs -E -largs $(AGCC_OBJS) #-static + +clean: agcc-clean + $(RM) -f *.o *.ali ortho_nodes-main + $(RM) b~*.ad? *~ + +distclean: clean agcc-clean + + +force: + +.PHONY: force all clean + diff --git a/ortho/gcc/Makefile.inc b/ortho/gcc/Makefile.inc new file mode 100644 index 0000000..33ac0f4 --- /dev/null +++ b/ortho/gcc/Makefile.inc @@ -0,0 +1,62 @@ +# -*- Makefile -*- for the gcc implemantation of ortho. +# Copyright (C) 2005 Tristan Gingold +# +# GHDL is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2, or (at your option) any later +# version. +# +# GHDL is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING. If not, write to the Free +# Software Foundation, 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# Variable used: +# AGCC_GCCSRC_DIR: the gcc source base directory (ie gcc-X.Y.Z-objs/) +# AGCC_GCCOBJ_DIR: the gcc objects base directory +# agcc_srcdir: the agcc source directory +# agcc_objdir: the agcc object directory + +AGCC_INC_FLAGS=-I$(AGCC_GCCOBJ_DIR)/gcc -I$(AGCC_GCCSRC_DIR)/include \ + -I$(AGCC_GCCSRC_DIR)/gcc -I$(AGCC_GCCSRC_DIR)/gcc/config \ + -I$(AGCC_GCCSRC_DIR)/libcpp/include +AGCC_CFLAGS=-g -DIN_GCC $(AGCC_INC_FLAGS) + +AGCC_LOCAL_OBJS=ortho-lang.o gcc-version.o + +AGCC_DEPS := $(AGCC_LOCAL_OBJS) +AGCC_OBJS := $(AGCC_LOCAL_OBJS) \ + $(AGCC_GCCOBJ_DIR)/gcc/toplev.o \ + $(AGCC_GCCOBJ_DIR)/gcc/c-convert.o \ + $(AGCC_GCCOBJ_DIR)/gcc/libbackend.a \ + $(AGCC_GCCOBJ_DIR)/libcpp/libcpp.a \ + $(AGCC_GCCOBJ_DIR)/libiberty/libiberty.a + +gcc-version.c: $(AGCC_GCCSRC_DIR)/gcc/version.c + -$(RM) -f $@ + echo '#include "version.h"' > $@ + sed -n -e '/version_string/ s/";/ (ghdl)";/p' < $< >> $@ + echo 'const char bug_report_url[] = "";' >> $@ + +gcc-version.o: gcc-version.c + $(CC) -c -o $@ $< $(AGCC_CFLAGS) + +ortho-lang.o: $(agcc_srcdir)/ortho-lang.c \ + $(AGCC_GCCOBJ_DIR)/gcc/gtype-vhdl.h \ + $(AGCC_GCCOBJ_DIR)/gcc/gt-vhdl-ortho-lang.h + $(CC) -c -o $@ $< $(AGCC_CFLAGS) + +agcc-clean: force + $(RM) -f $(agcc_objdir)/*.o + $(RM) -f $(agcc_srcdir)/*~ + +agcc-maintainer-clean: force + $(RM) -f $(AGCC_DEPS) + + +.PHONY: agcc-clean agcc-maintainer-clean diff --git a/ortho/gcc/lang.opt b/ortho/gcc/lang.opt new file mode 100644 index 0000000..2f94526 --- /dev/null +++ b/ortho/gcc/lang.opt @@ -0,0 +1,70 @@ +Language +vhdl + +-std= +vhdl Joined +Select the vhdl standard + +-compile-standard +vhdl +Used during compiler build to compile the std.standard package + +-bootstrap +vhdl +Used during compiler build to compile std packages + +-work= +vhdl Joined +Set the name of the work library + +-workdir= +vhdl Joined +Set the directory of the work library + +P +vhdl Joined +-P Add to the end of the vhdl library path + +-elab +vhdl Separate +--elab Used internally during elaboration of + +-anaelab +vhdl Separate +--anaelab Used internally during elaboration of + +c +vhdl Separate +-c Analyze for --anaelab + +v +vhdl +Verbose + +-warn- +vhdl Joined +--warn- Warn about + +-ghdl +vhdl Joined +--ghdl-