You must have a working build system before you even can think about hacking the source code. Make sure you can build a git clone.
Try building the sources from git before you try anything else.
The wiki page http://wiki.geda-project.org/geda:developer shows the git command to get the geda-gaf repository. We are talking about pcb here.
For pcb we need to do:
git clone git://git.geda-project.org/pcb.git
For the other repositories take a look at http://git.geda-project.org/
Next get your build system working. http://wiki.geda-project.org/geda:gaf_building_git_version
While working on the pcb sources remember that PCB uses The AutoTools as there build system.
This isn't as daunting as it sounds, for the newbie developer.
The PCB development team has made it easy for us.
Generally just run:
./autogen.sh
and the scary part is over
Then do the usual:
./configure make
The autogen.sh script is usually only needed once, after a git clone or if a file is added to be build into PCB. See Example on when to use the autogen.sh script.
For more information on the AutoTools take a look at: https://www.gnu.org/software/automake/manual/html_node/Autotools-Introduction.html
If you want to know more about git take a look at: https://git-scm.com/docs/gittutorial
PCB is a open source program and it uses open source libraries and tools to do what it does.
Doing a repoquery –requires pcb
on my Fedora 20 system show the following dependencies:
perl | libdl.so.2() | libm.so.6(GLIBC_2.2.5) |
wish | libdl.so.2(GLIBC_2.2.5) | libpango-1.0.so.0() |
libGL.so.1() | libfontconfig.so.1() | libpangocairo-1.0.so.0() |
libGLU.so.1() | libfreetype.so.6() | libpangoft2-1.0.so.0() |
libICE.so.6() | libgd.so.3() | libpangox-1.0.so.0() |
libSM.so.6() | libgdk-x11-2.0.so.0() | libpng16.so.16() |
libX11.so.6() | libgdk_pixbuf-2.0.so.0() | libpthread.so.0() |
libXinerama.so.1() | libgdkglext-x11-1.0.so.0() | libpthread.so.0(GLIBC_2.2.5) |
libXmu.so.6() | libgio-2.0.so.0() | libtiff.so.5() |
libXpm.so.4() | libglib-2.0.so.0() | libvpx.so.1() |
libXrender.so.1() | libgmodule-2.0.so.0() | libz.so.1() |
libXt.so.6() | libgobject-2.0.so.0() | m4 |
libatk-1.0.so.0() | libgtk-x11-2.0.so.0() | perl(File::Basename) |
libc.so.6(GLIBC_2.14) | libgtkglext-x11-1.0.so.0() | perl(File::Copy) |
libcairo.so.2() | libjpeg.so.62() | rtld(GNU_HASH) |
libdbus-1.so.3() | libm.so.6() |