summaryrefslogtreecommitdiff
path: root/configure.ac
AgeCommit message (Collapse)AuthorFilesLines
2014-08-18mapi: Inline shared-glapi/tests/Makefile.Matt Turner1-1/+0
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
2014-08-18mapi: Inline glapi/tests/Makefile.Matt Turner1-1/+0
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
2014-08-18mapi: Inline glapi/Makefile.Matt Turner1-1/+0
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
2014-08-18mapi: Inline es2api/Makefile.Matt Turner1-1/+0
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
2014-08-18mapi: Inline es1api/Makefile.Matt Turner1-1/+0
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
2014-08-18mapi: Inline shared-glapi/Makefile.Matt Turner1-1/+0
2014-08-14configure.ac: remove enable 32/64 bit hacksEmil Velikov1-38/+2
These two were added ages ago, with an explicit comment "Hacks ..." They have been insufficient for years and maintainers needed to explicitly handle the build themselves. Rather than lying and pretending that it works, just kill this hack and let maintainers build things the way it should be done for their distribution. Document the removal in the release notes. Suggested-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-08-14Revert "configure: Fix --enable-XX-bit flags by moving LT_INIT where it should"Emil Velikov1-8/+3
This reverts commit 2af28040d639dddbb7c258981a00eaf3dfcbcf03. The commit was resolving an issue where libtool will not setup the environment correctly when one explicitly provides --enable-{32,64}-bit at configure time. It was caused due to the "-m32,64" C{,XX}FLAGS being set too late relative to LT_INIT. At the same time this cases the enable_static to be incorrectly set, amongst others leading to build issues. Rather than being smart and trying to handle 32/64 bit build ourselves it may be better to delegate it to the builder/maintainer. The latter should now know better which is the correct(most appropriate) method. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82536 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82546 Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Brian Paul <brianp@vmware.com> Tested-by: Brian Paul <brianp@vmware.com>
2014-08-13mesa: guard better when building with sse4.1 optimisationsEmil Velikov1-0/+3
When the compiler is not capable/does not accept -msse4.1 while the target has the instruction set we'll blow up as _mesa_streaming_load_memcpy is going to be undefined. To make sure that never happens, wrap the runtime cpu check+caller in an ifdef thus do not compile that hunk of the code. Fix the android build by enabling the optimisation and adding the define where applicable. v2: autoconf conditionals end with "fi" rather than endif. v3: Wrap the definition and call to intel_miptree_{un,}map_movntdqa in if defined(USE_SSE41). Spotted by Matt. Cc: Matt Turner <mattst88@gmail.com> Cc: Adrian Negreanu <adrian.m.negreanu@intel.com> Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-08-13automake: compact gallium/target/Makefile into gallium/MakefileEmil Velikov1-1/+0
Yet another makefile less to worry about. v2: Add state_trackers and targets on a single SUBDIRS line. Requested by Matt. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-08-13automake: merge gallium/state_trackers/Makefile into gallium/MakefileEmil Velikov1-1/+0
One makefile less, with the potential of further compacting the automake build. v2: Rebase on top of vc4 changes. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-08-13automake: compact gallium/drivers and gallium/winsys makefilesEmil Velikov1-2/+1
Rather than having two separate almost empty and identical makefiles, compact them thus improving the configure and build time. Additionally this makes the automake build symmetrical to the scons and android one. v2: Rebase on top of vc4, compact drivers + winsys on a single line. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-08-12configure.ac: drop enable_dri check in gallium_gbmEmil Velikov1-4/+0
A while back we've mandated that gbm requires enable_dri, thus this check is no longer required. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-08-12configure.ac: bail out if building gallium_gbm without gallium_eglEmil Velikov1-0/+4
The former is the only user of the latter. As such building gbm without egl makes little to no sense. Cc: "10.2" <mesa-stable@lists.freedesktop.org> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-08-12configure: Fix --enable-XX-bit flags by moving LT_INIT where it shouldAlexandre Demers1-3/+8
Moving LT_INIT after setting completely (AM_)C(XX)FLAGS and LDFLAGS. LT_INIT needs them as they are expected to be used all along the compilation when the macro runs its tests to determine among other things the host type. For info, see http://www.gnu.org/software/libtool/manual/html_node/LT_005fINIT.html Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50754 Signed-off-by: Alexandre Demers <alexandre.f.demers@gmail.com> Tested-by: Tapani Palli <lemody@gmail.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-08-11configure.ac: Do not require llvm on x32Maarten Lankhorst1-0/+1
Cc: "10.2" <mesa-stable@lists.freedesktop.org> Signed-off-by: Maarten Lankhorst <dev@mblankhorst.nl>
2014-08-09configure.ac: Use LIBS rather than LDFLAGS to add -ldl to dladdr checkJon TURNEY1-3/+4
ec8ebff "Check for dladdr()" erroneously uses LDFLAGS rather than LIBS to add -ldl to the dladdr check. Replace the workaround in 39a4cc4 of explicitly checking in libdl, with a more correct approach of using LIBS. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Pali Rohár <pali.rohar@gmail.com> Cc: "10.2" <mesa-stable@lists.freedesktop.org>
2014-08-08vc4: Initial skeleton driver import.Eric Anholt1-1/+20
This mostly just takes every draw call and turns it into a sequence of commands that clear the FBO and draw a single shaded triangle to it, regardless of the actual input vertices or shaders. I copied the initial driver skeleton mostly from freedreno, and I've preserved Rob Clark's copyright for those. I also based my initial hardcoded shaders and command lists on Scott Mansell (phire)'s "hackdriver" project, though the bit patterns of the shaders emitted end up being different. v2: Rebase on gallium megadrivers changes. v3: Rebase on PIPE_SHADER_CAP_MAX_CONSTS change. v4: Rely on simpenrose actually being installed when building for simulation. v5: Add more header duplicate-include guards. v6: Apply Emil's review (protection against vc4 sim and ilo at the same time, and dropping the dricommon drm bits) and fix a copyright header (thanks, Roland)
2014-08-08configure: check for dladdr via AC_CHECK_FUNC/AC_CHECK_LIBPali Rohár1-4/+3
Use both macros as in some cases using AC_CHECK_FUNCS alone may fail. Thus HAVE_DLADDR will not be defined, and as a result most of the code in megadriver_stub.c will not be compiled. Breaking the backwards compatibility between older libGL/xserver(s) and DRI megadrivers. Cc: Jon TURNEY <jon.turney@dronecode.org.uk> Cc: "10.2" <mesa-stable@lists.freedesktop.org> [Emil Velikov] Commit message. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-08-08util: remove ralloc_testEmil Velikov1-1/+0
The tests in an empty stub, which we're currently building twice. If anyone is interested in expanding it (adding actual tests) they can always bring it back. Suggested-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-08-04util: Move the open-addressing linear-probing hash_table to src/util.Kenneth Graunke1-2/+2
This hash table is used in core Mesa, the GLSL compiler, and the i965 driver, which makes it a good candidate for the new src/util module. It's much faster than program/hash_table.[ch] (see commit 6991c2922f5 for data), and José's u_hash_table.c has a comment saying Gallium should probably consider switching to a linear probing hash table at some point. So this seems like the best candidate for a shared data structure. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> v2 (Jason Ekstrand): Pick up another hash_table use and patch up scons Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-08-04util: Move ralloc to a new src/util directory.Kenneth Graunke1-1/+3
For a long time, we've wanted a place to put utility code which isn't directly tied to Mesa or Gallium internals. This patch creates a new src/util directory for exactly that purpose, and builds the contents as libmesautil.la. ralloc seemed like a good first candidate. These days, it's directly used by mesa/main, i965, i915, and r300g, so keeping it in src/glsl didn't make much sense. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> v2 (Jason Ekstrand): More realloc uses and some scons fixes Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-08-03Remove XA state tracker support for RadeonMarek Olšák1-3/+3
We don't support this type of X acceleration and we never did. Other drivers might want to do the same thing. Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-07-30gallium: Add a dumb drm/kms winsys backed swrast providerGiovanni Campagna1-0/+5
Add a new winsys and target that can be used with a dri2 state tracker and loader instead of drisw. This allows to use gbm as a dri2/image loader and avoid the extra copy from the backbuffer to the shadow frontbuffer. The new driver is called "kms_swrast", and is loaded by gbm as a fallback, because it is only useful with the gbm platform (as no buffer sharing is possible) To force select the driver set the environment variable GBM_ALWAYS_SOFTWARE [Emil Velikov] - Rebase on top of gallium megadriver. - s/text/test/ in configure.ac (Spotted by Andreas Pokorny). - Add scons support for winsys/sw/kms-dri and fix the build. - Provide separate DriverAPI, due to different InitScreen hook. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-07-29configure: Don't override user -g or -O options for debug buildsIan Romanick1-2/+12
Principle of least surprise: --enable-debug should enable debugging. Ages ago, Mesa's build system only added -g in dri-debug builds (yay for the static Makefiles). If you forgot to change it (or wrap the build with custom scripts), you would often be disappointed when trying to gdb Mesa bugs. New developers, that may not yet have custom scripts, will have this same issue. I think we should enable experienced developers to do what they want, and make things easier for new developers. I already pass '-ggdb3 -O1' or '-ggdb3 -Og' for CFLAGS, and I don't want configure to change them for me. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-07-29configure.ac: require libdrm_radeon 2.4.56 because of the Hawaii fix thereMarek Olšák1-1/+1
2014-07-25freedreno/a3xx: enable/disable wa's based on patch-levelRob Clark1-1/+1
It seems like for the most part, different behaviors, workarounds, etc, should be conditional on GPU patch revision (ie. a320.0 vs a320.2) rather than GPU id (a320 vs a330). Signed-off-by: Rob Clark <robclark@freedesktop.org>
2014-07-18configure.ac: Add LLVM patch version to error message.Vinson Lee1-1/+1
Signed-off-by: Vinson Lee <vlee@freedesktop.org> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-07-18configure.ac: require LLVM 3.4.2 for radeonMarek Olšák1-2/+3
Needed by ARB_draw_indirect. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-07-11configure: Cygwin requires _XOPEN_SOURCE >= 700 to prototype strndup()Jon TURNEY1-1/+1
Adjust definition of _XOPEN_SOURCE appropriately for use of strndup() added with commit da3a47d6 Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2014-07-10targets/dri-swrast: Convert to static/shared pipe-driverEmil Velikov1-2/+1
Convert the final dri target to the single DRI (megadriver) library. Cleanup all the automake leftovers from the conversion stage and update the scons build. v2: Link in llvmpipe, when applicable. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-07-10st/dri: merge dri/drm and dri/sw backendsEmil Velikov1-2/+0
Move the driver_name to dri2/drisw and remove all the SPLIT_TAGETS mayhem. In the next step we'll unify the dri and dri-swrast targets, completing the gallium DRI megadriver. v2: Remove leftover st/dri Makefiles from CONFIG_FILES. Spotted by Thomas Helland. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-07-08configure: Don't special case Cygwin to use gnu99, define _XOPEN_SOURCE insteadJon TURNEY1-9/+2
Revert "build: Build on Cygwin with gnu99 instead of c99." and define _XOPEN_SOURCE appropriately. This reverts commit 53e36d333c9b619c1a5fe9a8d2d08665654b0234. Since Cygwin 1.7.18 (April 2013), it's headers correctly prototype strtoll() when using -std=c99, and correctly prototype strdup() when _XOPEN_SOURCE is defined appropriately, so this workaround is no longer needed. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Cc: Vinson Lee <vlee@freedesktop.org>
2014-07-02targets/dri-vmwgfx: Convert to static/shared pipe-driversEmil Velikov1-2/+1
Convert the final hardware driver to a single dri provider which includes all the pipe-drivers. Update the scons build and drop the unused vmw_powf.c. Cc: José Fonseca <jfonseca@vmware.com> Cc: Brian Paul <brianp@vmware.com> Cc: Jakob Bornecrantz <jakob@vmware.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-07-02targets/dri-ilo: Convert to static/shared pipe-driverEmil Velikov1-2/+1
Cc: Chia-I Wu <olv@lunarg.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-07-02targets/dri-i915: Convert to static/shared pipe-driversEmil Velikov1-2/+1
v2: - Drop inclusion of the winsys wrapper and softpipe/llvmpipe. - Remove old Makefile.am, target.c. - Correctly append i915 to the megadrivers list. Cc: Stephane Marchesin <stephane.marchesin@gmail.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-07-02targets/dri-freedreno: Convert to static/shared pipe-driversEmil Velikov1-2/+1
Now we don't need a second dri module when using kgsl :) Cc: Rob Clark <robclark@freedesktop.org> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-07-02targets/(r300|r600|radeonsi)/dri: Convert to static/shared pipe-driversEmil Velikov1-6/+3
Related to previous commit, merge the separate dri targets to a single one. This is essentially all the buildsystem mayhem required for megaradeon. Cc: Marek Olšák <marek.olsak@amd.com> Cc: Michel Dänzer <michel.daenzer@amd.com> Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com> Acked-by: Christian König <christian.koenig@amd.com>
2014-07-02targets/dri-nouveau: Convert to static/shared pipe-driversEmil Velikov1-2/+3
Similiar to other targets, we'd like to convert all the separate targets into a single one, thus we'll minimize the duplication and overall size of mesa. The conversion per API basis, with the drivers available either statically or shared. Currently the former is the default. v2: Correctly append the version script to the linker flags. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-07-02targets/dri-swrast: use drm aware dricommon when building more than swrastEmil Velikov1-9/+9
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-06-30configure.ac: (trivial) Fixing a typoAlexandre Demers1-1/+1
Signed-off-by: Alexandre Demers <alexandre.f.demers@gmail.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-06-30targets/egl-static: use inline_drm_helper and Automake.inc helpersEmil Velikov1-0/+1
Update all three build systems, and add freedreno to the android build. Pending future work on the ST we can convert egl-static to provide either static or dynamic access to the pipe-drivers. There is no functional change with this patch. v2: Don't add freedreno to android build, drop the wrapper winsys. Cc: Chia-I Wu <olv@lunarg.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-06-30targets/xa: provide alternative(static) xa targetEmil Velikov1-8/+8
Now we can build the xa target (libxatracker) with either static pipe-drivers or shared ones. Currently we default to static. - Remove the unused CFLAGS/CPPFLAGS. - Use GALLIUM_TARGET_CFLAGS where applicable. v2: Update the printout messages at configure. v3: Drop inclusion of the wrapper winsys and softpipe/llvmpipe. Cc: Jakob Bornecrantz <jakob@vmware.com> Cc: Rob Clark <robclark@freedesktop.org> Cc: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-06-26targets/radeonsi/omx: convert to static/shared pipe-driversEmil Velikov1-2/+1
The radeonsi counterpart of previous commit - now libomx-radeonsi is built into the libomx-mesa library. Providing a single library per API. v2: Include the radeon winsys only when there is a user for it. v3: Correcly include the winsys. Now with extra brown bag :\ Note: Make sure to rebuild the .omxregister file, by executing $ omxregister-bellagio This patch concludes the unification. Now libomx-mesa will be used for all hardware - r600, radeonsi and nouveau. Cc: Leo Liu <leo.liu@amd.com> Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
2014-06-26targets/r600/omx: convert to static/shared pipe-driversEmil Velikov1-2/+1
The r600 counterpart of previous commit - now the libomx-r600 is built into the libomx-mesa library. Providing a single library per API. v2: Include the radeon winsys only when there is a user for it. v3: Correcly include the winsys. Now with extra brown bag :\ Note: Make sure to rebuild the .omxregister file, by executing $ omxregister-bellagio If you have more than one omx library (libomx-radeonsi, libomx-r600), make sure to temporary move the unused one. By the end of the series there will be only one library that will be used for all hardware - r600, radeonsi and nouveau. Cc: Leo Liu <leo.liu@amd.com> Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
2014-06-26targets/omx-nouveau: convert to static/shared pipe-driversEmil Velikov1-2/+3
Similar to the vdpau/xvmc targets, we're going to convert the multiple target libraries into a single one. The library can be built with the relevant pipe-drivers statically linked in, or loaded as shared modules. Currently we default to static. Note: Make sure to rebuild the .omxregister file, by executing $ omxregister-bellagio If you have more than one omx library (libomx-radeonsi, libomx-r600), make sure to temporary move the unused one. By the end of the series there will be only one library that will be used for all hardware - r600, radeonsi and nouveau. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-06-22targets/r600/xvmc: convert to static/shared pipe-driversEmil Velikov1-2/+1
The r600 equivalent of previous commit. v2: Correctly include the radeon winsys/radeon_common. Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Tested-by: Thomas Helland <thomashelland90 at gmail.com>
2014-06-22targets/xvmc-nouveau: convert to static/shared pipe-driversEmil Velikov1-2/+3
Similar to vdpau targets, we're going to convert the individual target libraries into a single one. The library can be built with the relevant pipe-drivers statically linked in, or loaded as shared modules. Currently we default to static. Cc: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Thomas Helland <thomashelland90 at gmail.com>
2014-06-22targets/radeonsi/vdpau: convert to static/shared pipe-driversEmil Velikov1-2/+1
Similar to previous commits, this allows us to minimise some of the duplication by compacting all vdpau targets into a single library. v2: Include the radeon winsys only when there is a user for it. v3: Correcly include the winsys. Now with extra brown bag :\ Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Tested-by: Thomas Helland <thomashelland90 at gmail.com>
2014-06-22targets/r600/vdpau: convert to static/shared pipe-driversEmil Velikov1-2/+1
Similar to previous commit, this allows us to minimise some of the duplication by compacting all vdpau targets into a single library. v2: Include the radeon winsys only when there is a user for it. v3: Correcly include the winsys. Now with extra brown bag :\ Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Tested-by: Thomas Helland <thomashelland90 at gmail.com>