aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
AgeCommit message (Collapse)Author
2013-01-09Move device_info handling into a new 'device.c' fileGravatar Linus Torvalds
The legacy nickname wrappers (that use the device_info structure) are left in gtk-gui.c. We can slowly start moving away from them, we don't want to start exporting that thing as some kind of generic interface. This isn't a pure code movement - because we leave the legacy interfaces alone, there are a few new interfaces in device.c (like "create a new device_info entry") that were embedded into the legacy "create nickname" code, and needed to be abstracted out. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-01-07Move planner UI into planner.cGravatar Dirk Hohndel
There should be NO other changes in this commit - just moving the code and adjusting the includes (and adding the entry point to display-gtk.h). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-01-04First stab at simplistic dive planningGravatar Dirk Hohndel
This comes with absolutely no gui - so the plan literally needs to be compiled into Subsurface. Not exactly a feature, but this allowed me to focus on the planning part instead of spending time on tedious UI work. A new menu "Planner" with entry "Test Planner" calls into the hard-coded function in planner.c. There a simple dive plan can be constructed with calls to plan_add_segment(&diveplan, duration, depth at the end, fO2, pO2) Calling plan(&diveplan) does the deco calculations and creates deco stops that keep us below the ceiling (with the GFlow/high values currently configured). The stop levels used are defined at the top of planner.c in the stoplevels array - there is no need to do the traditional multiples of 3m or anything like that. The dive including the ascents and deco stops all the way to the surface is completed and then added as simulated dive to the end of the divelist (I guess we could automatically select it later) and can be viewed. This is crude but shows the direction we can go with this. Envision a nice UI that allows you to simply enter the segments and pick the desired stops. What is missing is the ability to give the algorithm additional gases that it can use during the deco phase - right now it simply keeps using the last gas used in the diveplan. All that said, there are clear bugs here - and sadly they seem to be in the deco calculations, as with the example given the ceiling that is calculated makes no sense. When displayed in smooth mode it has very strange jumps up and down that I wouldn't expect. For example with GF 35/75 (the default) the deco ceiling when looking at the simulated dive jumps from 16m back up to 13m around 14:10 into the dive. That seems very odd. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-01-03First stab at deco calculationsGravatar Dirk Hohndel
This seems to give us roughly the right data but needs a lot more testing. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-12-05Make it easier to pass macro definitions from makeGravatar Dirk Hohndel
This small change to the Makefile allows you to call make CLCFLAGS=-DDEBUG or some other define directly from the command line. It gets added to the CFLAGS without overwriting the CFLAGS. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-11-25Improve on divecomputer data handlingGravatar Linus Torvalds
This simplifies the vendor/product fields into just a single "model" string for the dive computer, since we can't really validly ever use it any other way anyway. Also, add 'deviceid' and 'diveid' fields: they are just 32-bit hex values that are unique for that particular dive computer model. For libdivecomputer, they are basically the first word of the SHA1 of the data that libdivecomputer gives us. (Trying to expose it in some other way is insane - different dive computers use different models for the ID, so don't try to do some kind of serial number or something like that) For the Uemis Zurich, which doesn't use the libdivecomputer import, we currently only set the model name. The computer does have some kind of device ID string, and we could/should just do the same "SHA1 over the ID" to give it a unique ID, but the pseudo-xml parsing confuses me, so I'll let Dirk fix that up. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-11-19Makefile hack to allow building with uninstalled libdivecomputerGravatar Dirk Hohndel
Simply call "make LIBDCDEVEL=1" and the libdivecomputer includefiles are expected in ../libdivecomputer/include and the actual library is linked from ../libdivecomputer/src/.libs Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-11-10Create the correct ceiling events for Uemis ZurichGravatar Dirk Hohndel
The hold_depth field is rather misleading as it normally gives the safety stop depth and only when the p_amb_tol goes "below the surface" does it switch to showing the first deco stop depth. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-22Bump version to 2.1v2.1Gravatar Dirk Hohndel
Getting ready for the release Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-21Bump version to 2.1-rc3Gravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-20Finally a fully working Mac dmgGravatar Dirk Hohndel
The Makefile change simply gets us the same setup with make install-macosx that we are getting from the gtk-mac-bundler - with the launcher script and subsurface installed as subsurface-bin. The changes in the README are what make the difference for getting a working dmg - there are a bunch of .so files that are part of gtk that didn't have their dependency load paths updated - and those made the application either crash or at least not display its own icon correctly. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-19Yet more changes to create localized builds for MacGravatar Dirk Hohndel
It turns out that we need aliases for all the languages. And more fiddling when creating the dmg. And a specialized MacPorts build with the install path as prefix. What this basically means is that our app will be correctly localized iff run as /Applications/Subsurface.app Otherwise the gtk default texts (on buttons for example) may or may not be translated. One remaining issue is that apparently Gtk's Mac integration triggers on the untranslated name Help the Menu tree in order to work. Yet we can't easily tell the app not to translate that word as the translations are done internally in gtk - we'd basicall have to build special subsurface.mo files for Mac that don't contain a translation of the word "Help" for this to work. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-19Add temporary locate files to the "clean" target.Gravatar Henrik Brautaset Aronsen
The update-po-files target creates backup files. Let's add them to the "clean" target. Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-18Bumped version to 2.1-rc2Gravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-18Add Makefile target to update po filesGravatar Dirk Hohndel
This is a bit of a hack to make my life easier. make update-po-files will extract the translation strings and merge them with the existing translations - for all existing translations. For good measure this commit includes the latest update of the po files (but no new translations should be needed). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-17Install all .mo files on all targetsGravatar Henrik Brautaset Aronsen
Linux didn't have a locale install target, and Windows didn't install aliased locale files. Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-16Fix typo and make variable name more logicalGravatar Dirk Hohndel
[the macos/macosx typo was also found and a patch submitted by Henrik Brautaset Aronsen <subsurface@henrik.synth.no>] Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-16Redoing the Mac bundlingGravatar Dirk Hohndel
With the right tools in place you can now create a bundle from the Makefile by calling "make create-macos-bundle" In the process of this I also moved the locale directory where we stage our .mo files to share/locale (which is much more logical). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-16Adjust locale path for install-macosx targetGravatar Henrik Brautaset Aronsen
gtk-mac-bundler uses Contents/Resources/share/locale, and the install-macosx target should do the same. Also quiet down the make process a bit Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-16Update version to 2.1-rc1Gravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-16Support for language aliases.Gravatar Henrik Brautaset Aronsen
Some languages have identifiers that gettext can't determine automatically in all OS'es. An example is Norwegian (no_NO, deprecated) with its Bokmål (nb_NO) and Nynorsk (nn_NO) form. Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-16Improved packaging for WindowsGravatar Dirk Hohndel
This commit adds an install-cross-windows target to the Makefile that creates a staging directory for us under packaging/windows that contains the required .mo files. This currently fails for the Norwegian translation because of the no_NO.UTF-8 vs nb issue - right now we just use the first component of our own localization filename to find the matching Windows localization and that fails. The subsurface.nsi file is updated accordingly and this now appears to create working installers with sane paths for the localization files. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-15Merge branch 'gettext'Gravatar Dirk Hohndel
Bring all the localization changes into master in preparation for Subsurface 2.1
2012-10-15Support for gettext in MacOSX application bundleGravatar Henrik Brautaset Aronsen
The MacOSX applications bundle needs to be told where to bind the text domain from. Also copy the gettext .mo files in the install-macosx target. [Dirk Hohndel: minor change in main(): move the path declaration to the beginning of the function] Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-12Better gettext buildGravatar Henrik Brautaset Aronsen
My previous take at adding gettext to the Makefile wasn't very good, since it always relinked the subsurface executable. Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-11Basic gettext support when buildingGravatar Henrik Brautaset Aronsen
Added basic support for building gettext locales in the Makefile. The po file name should match the target locale. [Dirk Hohndel: Used git mv to rename the German .po file] Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-11More gtk-mac-bundler improvementsGravatar Henrik Brautaset Aronsen
Without "-headerpad_max_install_names", gtk-mac-bundler would complain with "changing install names or rpaths can't be redone for: /Applications/.subsurface.app/Contents/MacOS/subsurface-bin (for architecture x86_64) because larger updated load commands do not fit" Also, libdivecomputer needs to be configured with --with-prefix=/opt/local Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-07Bump version to 2.0.1v2.0.1Gravatar Dirk Hohndel
That crash is far too easy to hit for people just trying out subsurface. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-09-26Getting ready for the 2.0 releaseGravatar Dirk Hohndel
Changing the version to 2.0-rc1 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-09-26First implementation of native Uemis downloaderGravatar Dirk Hohndel
This includes one major hack that uses a private data structure from libdivecomputer to allow us to show the Uemis Zurich as one computer the user can import from. Once the user has chosen the Uemis we don't use libdivecomputer but our own downloader. Just like in the libdicecomputer case this runs in its own thread and updates the import dialog with progress information. The code also keeps track of the last dive that has been downloaded from a Uemis computer so we only import new dives on subsequent downloads. And since the Uemis Zurich gives us its device id, we make this a "per divecomputer" property for people who dive with multiple Uemis Zurich computers. This uses the debugfile infrastructure to allow easily collecting debugging output - especially on Windows where by default console output is lost. Known limitations: when the Uemis runs out of space (it uses its filesystem for communication with the host computer) we have no graceful way to reset things. This is why the code doesn't try to download ALL dives on the computer but instead download them in increments of ten dives. This clearly needs to be addressed once I understand how to reset the device. The Cancel button of the import dialog isn't correctly hooked up, yet. I still need to figure out how to gracefully shut down a download without potentially hanging the device. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-09-19Use a 64-bit 'timestamp_t' for all timestamps, rather than 'time_t'Gravatar Linus Torvalds
This makes the time type unambiguous, and we can use G_TYPE_INT64 for it in the divelist too. It also implements a portable (and thread-safe) "utc_mkdate()" function that acts kind of like gmtime_r(), but using the 64-bit timestamp_t. It matches our original "utc_mktime()". Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-09-13make clean should remove subsurface.exe as wellGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-07-10Update for libdivecomputer pkg-config include file changesGravatar Linus Torvalds
Subsurface doesn't compile on OS X any more, because libdivecomputer changed the way the header inclusion works: the include path from pkg-config no longer includes the final "libdivecomputer" component, and instead of doing #include <header.h> for libdivecomputer headers, we're now supposed to do #include <libdivecomputer/header.h> instead. Which is cleaner anyway. The reason this only bit us on OS X is that I never trusted pkg-config that much for non-system libraries on Linux (maybe it works, maybe it doesn't, I've seen it go both ways), so on Linux we just used our own version of the include path, and thus weren't affected by the libdivecomputer config change. Clean up the includes while at it - we no longer need (or want) the device-specific header files, since we just use the generic functions. Reported-by: Grischa Toedt <toedt@embl.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-01-27Add some initial cochran CAN file parsingGravatar Linus Torvalds
It's broken, and currently only writes out a debug output file per dive. I'm not sure I'll ever really be able to decode the mess that is the Cochran ANalyst stuff, but I have a few test files, along with separate depth info from a couple of the dives in question, so in case this ever works I can at least validate it to some degree. The file format is definitely very intentionally obscured, though. Annoying. It's not like the Cochran software is actually all that good (it's really quite a horribly nasty Windows-only app, I'm told). Cochran Analyst is very much not the reason why people would buy those computers. So Cochran making their computers harder to use with other software is just stupid. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-01-26Add "native" Suunto SDE zip file readingGravatar Linus Torvalds
You need to have libzip-devel installed, and pkg-config needs to know about it for the build to pick up on it. On at least Fedora, a simple "yum install libzip-devel" will make things work, although you may need to force a rebuild of subsurface too (the "file.o" file in particular - the Makefile doesn't track system dependencies). Then, you can just do subsurface my-dives.SDE to read the data directly from the SDE file. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-01-26Split up file reading from 'parse-xml.c' into 'file.c'Gravatar Linus Torvalds
We're going to eventually import non-xml files too, so let's begin splitting the logic up. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-01-15Link with libm for 'pow()'Gravatar Cristian Ionescu-Idbohrn
Solves suddenly revealed linking error: divelist.c:400: error: undefined reference to 'pow' Signed-off-by: Cristian Ionescu-Idbohrn <cii@axis.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-01-03More Mac improvementsGravatar Henrik Brautaset Aronsen
The startup shell script workaround isn't needed anymore. The preferences hotkey didn't work. Remove left-over menu separators. Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
2012-01-01First try at converting user-manual to AsciiDocGravatar Linus Torvalds
You can do "make doc" in the main directory to create the html version, and if you want to play around with it, do "make show" in the Documentation subdirectory to start firefox on the end result. It's by no means perfect, but it gives somewhat reasonable results, and this is enough initial work for people to play around with, I think. NOTE! You need "asciidoc" installed to do this: it's a python program, so it should be pretty easy even on non-Linux platforms. And on Linux, most distributions package it, so you just have to do something like yum install asciidoc to get it (replace with apt-get/zypper/whatever). Asciidoc can generate other output too (man-pages, LaTeX, etc), maybe people want to play with that part too. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-01-01Turn subsurface into a real Mac applicationGravatar Dirk Hohndel
To do this a few things needed to move into the os specific files, but the overall change is fairly small and the difference on the Mac is amazing. Subsurface now becomes a Mac app with Mac toolbar and useful default fonts. Changed the CFBundleIdentifier to be the reverse DNS of the subsurface site (sadly, 'torvalds' is not yet a TLD). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-12-14Improve Makefile for MacOSGravatar Dirk Hohndel
Some macs appear to need "-framework CoreFoundation" added to the linking step, others (which appear to have the exact same OS and tools installed), don't. But as it doesn't appeart to hurt, I unconditionally add this. Switched to using pkgconfig to find libdivecomputer on the Mac. Tried to clean up the Makefile a bit Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Acked-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
2011-12-08Subsurface 1.2v1.2Gravatar Linus Torvalds
With the whole UI change (three-paned window and different look with new colors), let's just make a new release, as Dirk points out. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-11-27makefile: use dumpmachine instead of grep for TargetGravatar Martin Gysel
grep for Target doesn't work on non english platforms -dumpmachine is (hopefully) supposed to always return the target machine tuple Signed-off-by: Martin Gysel <me@bearsh.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-11-24Improve cross compile support and fix windows.cGravatar Dirk Hohndel
This should make the Makefile much more robust when cross compiling. The windows.c code is now compile tested but not functionally tested. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-11-24Split reading/writing preferences into OS specific filesGravatar Dirk Hohndel
This adds tested code for Linux and Mac OS, implementing the api that Linus suggested. The Windows code was moved into its own file, but hasn't even been compile tested, yet. In order to have just one interface to set or get a preference value we encode TRUE as (void *) 1 and FALSE as NULL. This works consistently on all platforms and regardless of whether we have 32 or 64 bit. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-11-19Fix the Makefile '-c' location, add XML2CFLAGSGravatar Terrance Stanfield
I was getting the following error: dive.h:8:25: fatal error: libxml/tree.h: No such file or directory compilation terminated. So I updated the Makefile to fix that error and follow the standard in the file. Signed-off-by: Terrance Stanfield <t@hollowcranium.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-11-05Use XSLT file to open JDiveLog logsGravatar Miika Turkia
Open JDiveLog files by translating them to subsurface format using XSLT. These files are identified by the name of the first element (JDiveLog) and transform is applied to only these. The XSLT feature is compiled in only if libxslt is installed. The transformation files are installed globally in Linux under /usr/share/subsurface/xslt. Windows and OSX still need appropriate Makefile changes and testing. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-11-02Add Info & Stats page to the notebookGravatar Dirk Hohndel
This provides the relevant information for the currently selected dive plus a bunch of statistics over all dives in the dive_table. The visual design has lots of room for improvement - right now the different fields change size - it might be nice to have a more modern look for the entries - the O2/He field is odd - for most divers the He value will always be 0, so maybe we should only show He if there's at least one dive that uses He? Also, we simply do a comma separated list of gases for all the tanks used Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-10-31Merge branch 'macosx-app-bundle-1' of git://github.com/henrik242/subsurfaceGravatar Linus Torvalds
* 'macosx-app-bundle-1' of git://github.com/henrik242/subsurface: Use the new packaging directory for MacOSX specific files, and provide shell script workaround to make the svg icon reachable. Ignore process serial number argument when run as native MacOSX app Add basic MacOSX app bundle install target
2011-10-31Don't run gtk-update-icon-cache if DESTDIR is setGravatar Roland Dreier
We don't want to run gtk-update-icon-cache during a package build, when we're installing into a staging directory just to create a tree that will be packaged up and really installed later. The standard heuristic seems to be to skip gtk-update-icon-cache if DESTDIR is set (ie we're installing to a different location than we're configured to run from). Signed-off-by: Roland Dreier <roland@digitalvampire.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>