Skip to content

jithinthoppil/timetagger

 
 

Repository files navigation

TimeTagger

Modified README written by D. Pinto, University of Stuttgart

Building on Linux for Windows 32/64 bit systems.

Dependencies (RPM)

Dependencies (for RPM based systems) are stored in requirements_rpm.txt and can be installed using # dnf install $(cat requirements_rpm.txt)

Source-tree

config.mak			- configuration file for the build process
backend				- the TimeTagger backend
	doc				- api documentation
core				- vhdl core of the fpga
examples			- programming examples
doc				    - latex manual
timetaggerd			- the timetagger web server daemon
	httpd			- http library
arm-linux			- linux arm build
win32				- windows 32 build
	config.mak		- configuration file for the win32 build process
	build-depends	- files needed for cross compiling
	include			- include files for native windows build 
	lib				- libraries generated by vstudio
	vstudio			- native windows build environment
win64				- windows 64 build
	config.mak		- configuration file for the win32 build process
	build-depends	- files needed for cross compiling
	include			- include files for native windows build 
	lib				- libraries generated by vstudio
setup				- win 32 and win 64 installer.exe

Make targets:

all:			- build backend, timetaggerd and documentation
clean:			- cleanup sourcetree for clean build
dist-clean		- tidy sourcetree for repository check-in (see Issues)
dist:			- collect ditribution files
install:		- install backend (linux only)

Make options

I586_LINUX			set, for linux build. on the root level, this should always be set.

WITH_WIN32			set to use mingw win32 cross compile
WITH_WIN64			set to use mingw win64 cross compile
ARM_LINUX:			set for cross compile for ARM. **not tested** 

WITH_PYTHON			set to build python bindings
WITH_DOXYGEN		set to build documentation files

THREAD_PTHREADS		set to use PTHREAD threading library
THREAD_BOOST		set to use BOOST threading library

WITH_EMBEDDED_DOCS 	set to embedd htms/css/image files into the timetaggerd binary

SOURCE_ROOT			location of source tree for cross compiling 

Output

A packaged file in timetagger/dist/TimeTagger.zip. This file should (generally) be placed under <Drive>:\\Program Files (x86)\SwabianInstruments\.

Or optionally, a Windows executable located in timetagger/setup/TimeTagger-x.x.exe. To build a Windows executable: Modify timetagger/setup/timetagger.nsi to correct Python version (default 2.7) Run make all in timetagger/setup

Python bindings

By default Python 2 will be used. However, Python 3.5 bindings are also supported. Uncomment WITH_PYTHON35 in the relevant config.mak files to enable.

Issues

Compilation tends to fail after running dist-clean. This is likely due to the system being unable to rebuild an index for the required build. Currently the recommended solution is to avoid using make dist-clean entirely. Use make clean instead.

Original document INSTALL.txt

on linux: the frontpanel libraray must be located either: - in the searchpath - in the local directory

the fpga bitfile must be located either
- in the local directory
- in ~/.timertaggerd/firmware

on windows: the frontpanel libraray must be located either: - in the searchpath - in the local directory - in \windows\system32 (setup will copy here)

the fpga bitfile must be located 
- in ~/$INSTALLDIR/firmware

On windows, the vstudio redistributables (vcredist_x86.exe) must be installed. Also, the okFrontPanel Driver must be installed, too. the setup will take care for this prequesites. Just to be save, both the vcredist_x86.exe and the opal kelly driver are part of the installation.

also note: on 64bit windows, the driver must be installed manually!

The build process

Though win32 ist supported as a target, the build process is strictly linux centristic. There is no native buildscript for Windows yet.

dependencies

on the buildhost: the gnu compiler suite (gcc,g++) doxygen if you want to build the documentation mingw-w64 if you want to build for windows okFrontPanel libraries for target platforms Python 2.7 and swig if you want to build the python bindings nsis nullsoft installer if you want to build a windows installer package

sourcetree: config.mak - configuration file for the build process backend - the TimeTagger backend doc - api documentation core - vhdl core of the fpga example - programming examples doc - latex manual timetaggerd - the timetagger web server daemon httpd - http library arm-linux - linux arm build win32 - windows 32 build config.mak - configuration file for the win32 build process build-depends - files needed for cross compiling include - include files for native windows build lib - libraries generated by vstudio vstudio - native windows build environment win64 - windows 64 build config.mak - configuration file for the win32 build process build-depends - files needed for cross compiling include - include files for native windows build lib - libraries generated by vstudio setup - win 32 and win 64 installer.exe

make targets:

all: - build backend, timetaggerd and documentation clean: - cleanup sourcetree for clean build dist-clean - tidy sourcetree for repository checkin dist: - collect ditribution files install: - install backend (linux only)

On linux 'make dist-clean all' will build the complete dist tree. Edit config.mak to configure as needed:

I586_LINUX set, for linux build. on the root level, this sould always be set. WITH_WIN32 set to use mingw win32 cross compile WITH_WIN64 set to use mingw win64 cross compile ARM_LINUX: set for cross compile for ARM. not tested

WITH_PYTHON set to build python bindings WITH_DOXYGEN set to build documentation files

THREAD_PTHREADS set to use BOOST threading library THREAD_BOOST set to use BOOST threading library

WITH_EMBEDDED_DOCS set to embedd htms/css/image files into the timetaggerd binary

SOURCE_ROOT location of source tree for cross compiling

cross compiling

The sourcetree and makefiles are ready for cross compiling. Cross compiling must be done in a seperate directory tree below the repository root. Each crossbuild has its own config.mak and one main makefile. During build, package makefiles are linked into the cross tree. Refer to the arm-linux directory for reference.

building for windows

windows build two steps:

the first step, building the python binding and the timetagger daemon, is done under linux. if you set 'WITH_WIN32' in the root config.mak, just 'make all' will do the work for you. Otherwise do 'cd WIN32; make'.

This will build the timetagger daemon and the python bindings. As a result all files needed for the next buildstep are collected to WIN32/dist.

go to folder setup run "makensis timetagger.nsi" copy resulting setup file TimeTagger-0.9.exe to windows machine and install

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 64.0%
  • C++ 23.3%
  • JavaScript 8.0%
  • Verilog 2.4%
  • HTML 1.2%
  • Makefile 0.4%
  • Other 0.7%