diff options
Diffstat (limited to 'doc/oldmds')
-rw-r--r-- | doc/oldmds/BUILD.txt | 140 | ||||
-rw-r--r-- | doc/oldmds/STYLE | 90 | ||||
-rw-r--r-- | doc/oldmds/gcc/INSTALL | 21 | ||||
-rw-r--r-- | doc/oldmds/gcc/README | 51 | ||||
-rw-r--r-- | doc/oldmds/mcode-README | 47 |
5 files changed, 0 insertions, 349 deletions
diff --git a/doc/oldmds/BUILD.txt b/doc/oldmds/BUILD.txt deleted file mode 100644 index 27029b757..000000000 --- a/doc/oldmds/BUILD.txt +++ /dev/null @@ -1,140 +0,0 @@ -Build GHDL (Long instructions) -****************************** - -GHDL supports many backend (code generator), so you first must choose -the backend you want to use. There are currently 3 supported backends: - -* gcc -* mcode (this is an internal code generator for x86_64 and i386) -* llvm (experimental) - -Here is a short comparaison: - -* gcc: -+ generated code is faster (particularly with -O or -O2) -+ generated code can be debugged (with -g) -+ the output is an executable -+ ported to many platforms (x86, x86_64, powerpc, sparc) -- analyze can takes time (particularly for big units) -- build is more complex - -* mcode -+ very easy to build -- but x86_64/i386 only -+ very quick analysis time -+ can analyze very big designs -- simulation is slower -- no executable created - -* llvm -+ same advantages of gcc (good generated code, debuggable) -+ easier to build than gcc - -As GHDL is written in Ada, you need to use the GNU Ada compiler (GNAT). -I recommend to use GNAT GPL from http://libre.adacore.com (free). -GHDL was tested with GNAT GPL 2014. Any later version should work. -The only other dependency is zlib (On ubuntu/debian, install zlib1g-dev). - -On UNIX and MinGW systems, you also need standard utilities like sh, -cmp or make. On MSYS2 packages msys/diffutils and msys/make must be -installed. - -In these instructions, the configure script is executed in the source -directory; but you can execute in a different directory too, like -this: -$ mkdir ghdl-objs -$ cd ghdl-objs -$ ../path/to/ghdl/configure ... - -Building with mcode backend -*************************** - -This is as simple as: -$ ./configure --prefix=PREFIX - where PREFIX is the directory for installation -$ make - This builds the ghdl_mcode executable, which can be used as is. -$ make install - To install within PREFIX - -Building with the gcc backend -***************************** - -You need to download and untar the sources of -gcc version 4.9.x, 5.x, 6.x or 7.x - -First configure ghdl, specify gcc source dir and prefix. -(replace /usr/local by your prefix directory): -$ ./configure --with-gcc=/path/to/gcc/source/dir --prefix=/usr/local - -Then invoke make to copy ghdl sources in the source dir: -$ make copy-sources - -There are some dependencies for building gcc (gmp, mpfr and mpc). If you have -not them installed on your system, you can either build them manually or use -the 'download_prerequisite' script provided in gcc source tree (recommended). - -$ cd /path/to/gcc/source/dir -$ ./contrib/download_prerequisites - -Then configure gcc. The list of --disable configure options could be -adjusted for your needs. GHDL don't require all these optional -libraries and disabling them speed-up the build. Note the prefix -directory must be the same as the one used to configure ghdl. -If you have manually built gmp/mpfr/mpc (without using the script -in contrib) and if you have installed them in a non-standard -directory, you may need to add --with-gmp=GMP_INSTALL_DIR. -If your system gcc was configured with --enable-default-pie (check if -that option appears in the output of gcc -v), you should also add it. - -$ mkdir gcc-objs; cd gcc-objs -$ ../gcc-4.9.3/configure --prefix=/usr/local --enable-languages=c,vhdl \ - --disable-bootstrap --disable-lto --disable-multilib \ - --disable-libssp --disable-libgomp --disable-libquadmath -$ make -j2 - -Install gcc: -$ make install -or if you don't want to install makeinfo: -$ make install MAKEINFO=true - -Build and install vhdl libraries: -$ cd /path/to/ghdl/source/dir -$ make ghdllib -$ make install - -Building with the llvm backend -****************************** - -You need to build and install llvm. The supported versions are 3.5 -till 5.x, but only debugging is only supported with llvm 3.5 -(Usually llvm also depends on libedit). - -First configure ghdl with '--with-llvm-config' -$ ./configure --with-llvm-config - -If llvm-config is not in your path, you can specify it: -$ ./configure --with-llvm-config=LLVM_INSTALL/bin/llvm-config - -If you want to have stack backtraces on errors (like assert failure or -index of out bounds), you need to configure and build libbacktrace from gcc -(you don't need to configure gcc), and add to configure: - --with-backtrace-lib=/path-to-gcc-build/libbacktrace/.libs/libbacktrace.a - -Then build with 'make' and install with 'make install'. - -Notes for developpers -********************* - -Developping with the gcc backend: -Once gcc (with ghdl) has been built once, it is possible to work on ghdl -sources tree without copying them in gcc tree. Commands are: -$ make ghdl1-gcc # To build the compiler -$ make ghdl_gcc # To build the driver -$ make libs.vhdl.local_gcc # To compile the vhdl libraries -$ make grt-all # To build the ghdl runtime - -In src/ortho/gcc, create a Makefile.conf file that sets the following -variables: -AGCC_GCCSRC_DIR=/path/to/gcc/sources -AGCC_GCCOBJ_DIR=/path/to/gcc/build diff --git a/doc/oldmds/STYLE b/doc/oldmds/STYLE deleted file mode 100644 index c7acb2756..000000000 --- a/doc/oldmds/STYLE +++ /dev/null @@ -1,90 +0,0 @@ -GHDL coding style -***************** - -Ada subset: use only a simple (VHDL like) subset of Ada: no tasking, no -controlled types... VHDL users should easily understand that subset. -Allowed Ada93 features: the standard library, child packages. -Use assertions. - -We try to follow the 'GNU Coding Standards' when possible: comments before -declarations, two spaces at end of sentences, finish sentences with a dot. -But: 3 spaces for indentation. - -No trailing spaces, not TAB (HT). - -Subprograms must have a comment before to describe it, like: - -- Analyze the concurrent statements of PARENT. - procedure Sem_Concurrent_Statement_Chain (Parent : Iir); -The line before the comment must be a blank line (unless this is the first -declaration). Don't repeat the comment before the subprogram body. - -* For subprograms: -1) Declare on one line when possible: - function Translate_Static_Aggregate (Aggr : Iir) return O_Cnode - -2) If not possible, put the return on the next line: - function Translate_Static_String (Str_Type : Iir; Str_Ident : Name_Id) - return O_Cnode - -3) If not possible, put parameters and return on the next line: - function Create_String_Literal_Var_Inner - (Str : Iir; Element_Type : Iir; Str_Type : O_Tnode) return Var_Type - -4) If not possible, return on the next line: - function Translate_Shortcut_Operator - (Imp : Iir_Implicit_Function_Declaration; Left, Right : Iir) - return O_Enode - -5) If not possible, one parameter per line, just after subprogram name: - procedure Translate_Static_Aggregate_1 (List : in out O_Array_Aggr_List; - Aggr : Iir; - Info : Iir; - El_Type : Iir) -6) If not possible, add a return after subprogram name: - function Translate_Predefined_TF_Array_Element - (Op : Predefined_Boolean_Logical; - Left, Right : Iir; - Res_Type : Iir; - Loc : Iir) - return O_Enode - -7) If not possible, ask yourself what is wrong! Shorten a name. - -* Rule for the 'is': one a new line only if the declarative part is not empty: - procedure Translate_Assign (Target : Mnode; Expr : Iir; Target_Type : Iir) - is - Val : O_Enode; - begin -vs - function Translate_Static_Range_Dir (Expr : Iir) return O_Cnode is - begin - -If the parametere line is too long with the 'is', put in on a separate line: - procedure Predeclare_Scope_Type - (Scope : in out Var_Scope_Type; Name : O_Ident) is - -* Generic instantiation: put the generic actual part on a new line: - procedure Free is new Ada.Unchecked_Deallocation - (Action_List, Action_List_Acc); - -* For if/then statement: -1) 'then' on the same line: - if Get_Expr_Staticness (Decl) = Locally then - -2) If not possible, 'then' is alone on its line aligned with the 'if': - if Expr = Null_Iir - or else Get_Kind (Expr) = Iir_Kind_Overflow_Literal - then - -3) For a multiline condition, 'or else' and 'and then' should start lines. - -* 'Local' variable declaration: -Do not initialize variables, constants must be declared before variables: - is - N_Info : constant Iir := Get_Sub_Aggregate_Info (Info); - Assoc : Iir; - Sub : Iir; - begin -If the initialization expression has a side effect (such as allocation), do -not use a constant. - diff --git a/doc/oldmds/gcc/INSTALL b/doc/oldmds/gcc/INSTALL deleted file mode 100644 index b341317b5..000000000 --- a/doc/oldmds/gcc/INSTALL +++ /dev/null @@ -1,21 +0,0 @@ -Install file for the binary distribution of GHDL. - -GHDL is Copyright 2002 - 2015 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 of the License, or -(at your option) any later version. - -The binary are installed in /usr/local directory. You cannot change this -default location, unless you set links. - -You must be root to install this distribution. - -To install ghdl: -$ su -# tar -C / -jxvf @TARFILE@.tar.bz2 - -Note: you must also have a C compiler and zlib installed. - -Tristan Gingold. - diff --git a/doc/oldmds/gcc/README b/doc/oldmds/gcc/README deleted file mode 100644 index c58e0f923..000000000 --- a/doc/oldmds/gcc/README +++ /dev/null @@ -1,51 +0,0 @@ -This is the README from the source distribution of GHDL. - -To get the binary distribution or more information, go to: - https://github.com/tgingold/ghdl - -Copyright: -********** -GHDL is copyright (c) 2002 - 2015 Tristan Gingold. -See the GHDL manual for more details. - -This program 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 of the License, or -(at your option) any later version. - -This program 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 this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. - - -Building GHDL from sources: -*************************** - -See BUILD.txt - -Please report bugs and issues on https://github.com/tgingold/ghdl/issues - -If you cannot compile, please report the gcc version, GNAT version and gcc -source version. - -* Note for ppc64 (and AIX ?) platform: -The object file format contains an identifier for the source language. Because -gcc doesn't know about the VHDL, gcc crashes very early. This could be fixed -with a very simple change in gcc/config/rs6000/rs6000.c, -function rs6000_output_function_epilogue (as of gcc 4.8): - else if (! strcmp (language_string, "GNU Objective-C")) - i = 14; - else -- gcc_unreachable (); -+ i = 0; - fprintf (file, "%d,", i); - - /* 8 single bit fields: global linkage (not set for C extern linkage, - -Tristan Gingold. diff --git a/doc/oldmds/mcode-README b/doc/oldmds/mcode-README deleted file mode 100644 index 1e591b0b5..000000000 --- a/doc/oldmds/mcode-README +++ /dev/null @@ -1,47 +0,0 @@ -This is the README from the source distribution of GHDL. - -To get the binary distribution or more information, go to http://ghdl.free.fr - -Copyright: -********** -GHDL is copyright (c) 2002, 2003, 2004, 2005 Tristan Gingold. -See the GHDL manual for more details. - -This program 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 of the License, or -(at your option) any later version. - -This program 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 this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. - - -Building GHDL from sources for Windows: -*************************************** - -Note: this was tested with Windows XP SP2 familly edition. - -Note: If you want to create the installer, GHDL should be built on a -FAT partition. NSIS rounds files date to be FAT compliant (seconds are always -even) and because GHDL stores dates, the files date must not be modified. - -Required: -* the Ada95 GNAT compiler (GNAT GPL 2005 is known to work). -* NSIS to create the installer. - -Unzip, -edit winbuild to use correct path for makensis, -run winbuild. - -The installer is in the windows directory. - -Send bugs and comments on https://github.com/tgingold/ghdl - -Tristan Gingold. |