The below manual process is the temporary solution for cross-compiling
pcb-rnd to windows. The steps marked with * are due to bugs that will
eventually be fixed. (There is another node about
cross-compiling more recent versions)
- download the binary development pack of hidlib.w32
(alternatively: cross-compile it)
- install the hidlib.w32 pack; this document assumes it is installed
under ~/w32-rnd, but it can be placed anywhere
- make an svn checkout of pcb-rnd from svn://repo.hu/pcb-rnd/trunk
- copy configure.w in trunk/scconfig/configure.w
and make it executable (chmod 775 configure.w)
- copy crossw32.conf in trunk/scconfig/crossw32.conf
- * edit crossw32.conf: replace any ~/w32-rnd/ with the path where
hidlib.w32 got copied to. Note: do not use ~ in the path, replace
it with full path, e.g. /home/... or /usr/lib or /tmp; ~ or shell
variables like $HOME will not work.
- * cd trunk/scconfig; apply this patch
- * cd trunk/src_3rd/puplug; apply this patch
- * cd trunk/src_3rd/libfungw; apply this patch
- * cd trunk/src; apply this patch
- * cd trunk/src_plugins; apply this patch
- cd trunk/scconfig; ./configure.w
- * edit trunk/config.h: path separator "\" and '\' should be "\\" and '\\'
- * edit trunk/config.h, replace original paths with:
#define PCB_PREFIX pcb_w32_root
#define PCBSHAREDIR pcb_w32_sharedir
#define PCBLIBDIR pcb_w32_libdir
#define BINDIR pcb_w32_bindir
- * edit src/Makefile and remove -Dinline= from any CFLAG* variable
- cd trunk/src ; make all_exe
This will probably fail at some stage because of two bugs that
need to be manually fixed up:
- * cd trunk/src_3rd/puplug; recursively delete every *.o and *.a file
then: CC=i686-w64-mingw32-gcc make; make sure util/puplug remains
a host-executable elf
- * cd trunk/src_3rd/libminuid ; CC=i686-w64-mingw32-gcc make
Once these are done:
- * rm trunk/src/buildin.h
- * cd trunk/src ; make all_exe
This should produce trunk/src/pcb-rnd.exe.
The whole, zippable pack is produced by pcb-rnd.w32.pack.sh:
it should be copied to trunk/ and ran from there. It contains configuration
at the top of the script (paths should be changed).