summaryrefslogtreecommitdiff
path: root/translate/ghdldrv
diff options
context:
space:
mode:
Diffstat (limited to 'translate/ghdldrv')
-rw-r--r--translate/ghdldrv/Makefile20
-rw-r--r--translate/ghdldrv/ghdldrv.adb18
2 files changed, 24 insertions, 14 deletions
diff --git a/translate/ghdldrv/Makefile b/translate/ghdldrv/Makefile
index 56c0675..b4199a9 100644
--- a/translate/ghdldrv/Makefile
+++ b/translate/ghdldrv/Makefile
@@ -15,7 +15,7 @@
# 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.
-GNATFLAGS=-gnaty3befhkmr -gnata -gnatwae -aI../.. -aI.. -aI../../psl -aI../grt -aO.. -g -gnatf
+GNATFLAGS=-gnaty3befhkmr -gnata -gnatwae -aI../.. -aI.. -aI../../psl -aI../grt -aO.. -g -gnatf -gnat05
GRT_FLAGS=-g
LIB_CFLAGS=-g -O2
GNATMAKE=gnatmake
@@ -41,6 +41,8 @@ all: ghdl_mcode
target=i686-pc-linux-gnu
#target=x86_64-pc-linux-gnu
+#target=i686-apple-darwin
+#target=x86_64-apple-darwin
GRTSRCDIR=../grt
include $(GRTSRCDIR)/Makefile.inc
@@ -63,11 +65,11 @@ ghdl_mcode: default_pathes.ads $(GRT_ADD_OBJS) $(ORTHO_DEPS) memsegs_c.o chkstk.
$(GNATMAKE) -aI../../ortho/mcode -aI../../ortho $(GNATFLAGS) ghdl_mcode $(GNAT_BARGS) -largs memsegs_c.o chkstk.o $(GNAT_LARGS) $(GRT_ADD_OBJS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB))
ghdl_llvm_jit: GRT_FLAGS+=-DWITH_GNAT_RUN_TIME
-ghdl_llvm_jit: default_pathes.ads $(GRT_ADD_OBJS) $(ORTHO_DEPS) bindings.o force
+ghdl_llvm_jit: default_pathes.ads $(GRT_ADD_OBJS) $(ORTHO_DEPS) bindings.o force
$(GNATMAKE) -o $@ -aI../../ortho/llvm -aI../../ortho/mcode -aI../../ortho $(GNATFLAGS) ghdl_mcode $(GNAT_BARGS) -largs -m64 bindings.o $(GNAT_LARGS) $(GRT_ADD_OBJS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB)) --LINK=g++
-ghdl_simul: default_pathes.ads force
- $(GNATMAKE) -aI../../simulate $(GNATFLAGS) ghdl_simul $(GNAT_BARGS) -largs $(GNAT_LARGS)
+ghdl_simul: default_pathes.ads $(GRT_ADD_OBJS) force
+ $(GNATMAKE) -aI../../simulate $(GNATFLAGS) ghdl_simul $(GNAT_BARGS) -largs $(GNAT_LARGS) $(GRT_ADD_OBJS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB))
memsegs_c.o: ../../ortho/mcode/memsegs_c.c
$(CC) -c -g -o $@ $<
@@ -75,10 +77,10 @@ memsegs_c.o: ../../ortho/mcode/memsegs_c.c
bindings.o: ../../ortho/llvm/bindings.cpp
$(CXX) -c -m64 `$(LLVM_CONFIG) --cxxflags` -g -o $@ $<
-ghdl_gcc: default_pathes.ads force
+ghdl_gcc: default_pathes.ads force
$(GNATMAKE) $(GNATFLAGS) ghdl_gcc $(GNAT_BARGS) -largs $(GNAT_LARGS)
-ghdl_llvm: default_pathes.ads force
+ghdl_llvm: default_pathes.ads force
$(GNATMAKE) $(GNATFLAGS) ghdl_llvm $(GNAT_BARGS) -largs $(GNAT_LARGS)
default_pathes.ads: default_pathes.ads.in Makefile
@@ -104,7 +106,8 @@ LIB08_DIR:=../lib/v08
LIBSRC_DIR:=../../libraries
REL_DIR:=../..
-ANALYZE:=../../../ghdldrv/ghdl -a $(LIB_CFLAGS)
+GHDL=ghdl
+ANALYZE:=../../../ghdldrv/$(GHDL) -a $(LIB_CFLAGS)
LN=ln -s
CP=cp
@@ -151,6 +154,9 @@ install.all: install.v87 install.v93 install.standard
install.mcode: install.v87 install.v93 install.v08
install.llvm: install.standard-llvm
+install.simul:
+ $(MAKE) GHDL=ghdl_simul install.v87 install.v93
+
clean: force
$(RM) -f *.o *.ali ghdl_gcc ghdl_mcode
$(RM) -f b~*.ad? *~ default_pathes.ads
diff --git a/translate/ghdldrv/ghdldrv.adb b/translate/ghdldrv/ghdldrv.adb
index 438227d..dde8a40 100644
--- a/translate/ghdldrv/ghdldrv.adb
+++ b/translate/ghdldrv/ghdldrv.adb
@@ -671,6 +671,11 @@ package body Ghdldrv is
Add_Argument (Compiler_Args, new String'(Opt));
Flag_Expect_Failure := True;
Res := Option_Ok;
+ elsif Opt = "-C" then
+ -- Translate -C into --mb-comments, as gcc already has a definition
+ -- for -C. Done before Flags.Parse_Option.
+ Add_Argument (Compiler_Args, new String'("--mb-comments"));
+ Res := Option_Ok;
elsif Options.Parse_Option (Opt) then
Add_Argument (Compiler_Args, new String'(Opt));
Res := Option_Ok;
@@ -888,22 +893,21 @@ package body Ghdldrv is
procedure Bind_Anaelab (Files : Argument_List)
is
- Comp_List : Argument_List (1 .. 2 * Files'Length + 2);
- Flag_C : String_Access;
+ Comp_List : Argument_List (1 .. Files'Length + 2);
Index : Natural;
begin
Comp_List (1) := new String'("--anaelab");
Comp_List (2) := Unit_Name;
- Flag_C := new String'("-c");
Index := 3;
for I in Files'Range loop
- Comp_List (Index) := Flag_C;
- Comp_List (Index + 1) := Files (I);
- Index := Index + 2;
+ Comp_List (Index) := new String'("--ghdl-source=" & Files (I).all);
+ Index := Index + 1;
end loop;
Do_Compile (Comp_List, Elab_Name.all);
- Free (Flag_C);
Free (Comp_List (1));
+ for I in 3 .. Comp_List'Last loop
+ Free (Comp_List (I));
+ end loop;
end Bind_Anaelab;
procedure Link (Add_Std : Boolean;