Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
howtos:install_gschem_on_s11 [2015/12/24 12:25] admin [Compiling gschem, pcb, gerbv on 11.3sru2] |
howtos:install_gschem_on_s11 [2017/02/18 10:40] (current) admin [Deploy from tarball, version 4.0.0] |
||
---|---|---|---|
Line 8: | Line 8: | ||
Since I wanted to build pcb with documentation which requires LaTeX, I had to deploy LaTeX first. It was in fact straightforward, went with [[http://www.tug.org/texlive/|TeX Live]] which is an easy way to deploy TeX/LaTeX on Unix systems. | Since I wanted to build pcb with documentation which requires LaTeX, I had to deploy LaTeX first. It was in fact straightforward, went with [[http://www.tug.org/texlive/|TeX Live]] which is an easy way to deploy TeX/LaTeX on Unix systems. | ||
And since I wanted to build with [[http://www.oracle.com/technetwork/server-storage/solarisstudio/overview/index.html|Oracle Solaris Studio]], I had to install that as well. Went with 12.4 release installed from Oracle package repository. | And since I wanted to build with [[http://www.oracle.com/technetwork/server-storage/solarisstudio/overview/index.html|Oracle Solaris Studio]], I had to install that as well. Went with 12.4 release installed from Oracle package repository. | ||
- | ===== Installation from source ===== | + | ===== Deploy from git ===== |
* obtain the latest bits from Git repository | * obtain the latest bits from Git repository | ||
<code> | <code> | ||
$ git clone git://git.geda-project.org/pcb.git pcb-git | $ git clone git://git.geda-project.org/pcb.git pcb-git | ||
</code> | </code> | ||
- | * compile and install | + | * build and install |
<code> | <code> | ||
$ cd pcb-git | $ cd pcb-git | ||
Line 22: | Line 22: | ||
$ sudo make install | $ sudo make install | ||
</code> | </code> | ||
+ | ===== Deploy from tarball, version 4.0.0 ===== | ||
+ | * download the tarball | ||
+ | <code> | ||
+ | $ wget https://sourceforge.net/projects/pcb/files/pcb/pcb-4.0.0/pcb-4.0.0.tar.gz | ||
+ | $ tar xvpf pcb-4.0.0.tar.gz | ||
+ | </code> | ||
+ | * minor tweaks required to build with Oracle Solaris Studio (version 12.4) | ||
+ | <code> | ||
+ | $ diff -u pcb-4.0.0-orig/src/global.h pcb-4.0.0/src/global.h | ||
+ | --- pcb-4.0.0-orig/src/global.h Sun Jan 15 19:40:45 2017 | ||
+ | +++ pcb-4.0.0/src/global.h Sat Feb 18 10:33:55 2017 | ||
+ | @@ -177,7 +177,7 @@ | ||
+ | #define ANYOBJECTFIELDS \ | ||
+ | BoxType BoundingBox; \ | ||
+ | long int ID; \ | ||
+ | - FlagType Flags; \ | ||
+ | + FlagType Flags | ||
+ | // struct LibraryEntryType *net | ||
+ | |||
+ | /* Lines, pads, and rats all use this so they can be cross-cast. */ | ||
+ | |||
+ | $ diff -u pcb-4.0.0-orig/src/layerflags.h pcb-4.0.0/src/layerflags.h | ||
+ | --- pcb-4.0.0-orig/src/layerflags.h Mon Oct 31 07:44:21 2016 | ||
+ | +++ pcb-4.0.0/src/layerflags.h Sat Feb 18 10:34:12 2017 | ||
+ | @@ -31,10 +31,10 @@ | ||
+ | #ifndef PCB_LAYERFLAGS_H | ||
+ | #define PCB_LAYERFLAGS_H | ||
+ | |||
+ | -unsigned int string_to_layertype (const char *typestring, | ||
+ | +LayertypeType string_to_layertype (const char *typestring, | ||
+ | int (*error) (const char *msg)); | ||
+ | -const char *layertype_to_string (unsigned int type); | ||
+ | -unsigned int guess_layertype (const char *name, | ||
+ | +const char *layertype_to_string (LayertypeType type); | ||
+ | +LayertypeType guess_layertype (const char *name, | ||
+ | int layer_number, | ||
+ | DataType *data); | ||
+ | </code> | ||
+ | * build and install (built 64-bit on s11u3sru16 with Oracle Solaris Studio 12.4) | ||
+ | <code> | ||
+ | $ cd pcb-4.0.0 | ||
+ | $ export PATH=/usr/local/texlive/2015/bin/i386-solaris:/usr/gnu/bin:$PATH | ||
+ | $ CC=/opt/SUNWspro/bin/cc CXX=/opt/SUNWspro/bin/CC CFLAGS="-m64" LDFLAGS="-L/usr/lib/amd64" GDLIB_CFLAGS="-I/usr/include/gd2" GDLIB_LIBS="-lXpm -lX11 -ljpeg -lfontconfig -lfreetype -lpng -lz -lm -lgd" ./configure --disable-gl --disable-toporouter | ||
+ | $ make | ||
+ | $ sudo make install | ||
+ | </code> | ||
+ | |||
===== Gotchas ===== | ===== Gotchas ===== | ||
- | ==== Missing locale.h header file ==== | + | ==== Missing locale.h header file (fixed in pcb 4.0.0) ==== |
Compilation fails, since following files are missing <locale.h> header file: | Compilation fails, since following files are missing <locale.h> header file: | ||
<code> | <code> | ||
$ git status -s | $ git status -s | ||
- | M src/hid/gtk/gui-config.c | ||
- | M src/hid/gtk/gui-misc.c | ||
- | M src/hid/gtk/gui-netlist-window.c | ||
M src/main.c | M src/main.c | ||
M src/print.c | M src/print.c | ||
- | M src/report.c | + | M src/gettext.h |
</code> | </code> | ||
Adding following line to those files fixes the problem: | Adding following line to those files fixes the problem: | ||
Line 38: | Line 82: | ||
#include <locale.h> | #include <locale.h> | ||
</code> | </code> | ||
+ | I filed [[https://bugs.launchpad.net/pcb/+bug/1529233|bug 1529233]] to track this problem. | ||
==== Broken texi2dvi(1) utility ==== | ==== Broken texi2dvi(1) utility ==== | ||
**texi2dvi(1)** utility is used to convert document from Texinfo to PDF or TeX DVI format. However, it fails on Oracle Solaris: | **texi2dvi(1)** utility is used to convert document from Texinfo to PDF or TeX DVI format. However, it fails on Oracle Solaris: |