summaryrefslogtreecommitdiff
path: root/config.mk
AgeCommit message (Collapse)Author
2018-04-11Bump version to 4Laslo Hunhold
Foremost this release finally includes a fix for the little mistake I made in the Makefile regarding the order of arguments passed to cc which package managers had to fix with a small patch. It now also compiles on OpenBSD without problems. Apart from that, I made error reporting much more consistent by putting everything into util.c, which makes the code much more readable, and cleared up all LICENSE matters and minor details in the build system. At this point, farbfeld is very stable and unless another tool is added the codebase in general is very low on the Kelvin scale right now. Thanks for all the feedback!
2017-08-13Update MANPREFIX according to FHSLaslo Hunhold
http://www.pathname.com/fhs/2.2/fhs-4.11.html
2017-08-02config.mk: small style changeLaslo Hunhold
2017-05-01Rename TOOL-LDFLAGS to TOOL-LDLIBS, fix order and add explicit .c.oLaslo Hunhold
The tool-specific flags were LDLIBS and not LDFLAGS, because we specify the libraries we want to link in, not flags to the linker itself. The order was broken as it didn't allow -Wl,--as-needed or other things highly dependent on the order of arguments. I also wanted to add an explicit .c.o suffix rule. This way, it is clearer what is happening in the Makefile and the form of compilation output is controllable.
2017-04-14Bump version to 3Laslo Hunhold
This is more or less a refactoring release, but with deep changes in the tools that I was hoping to look into for a long time. The codebase is in a very consistent state now, also thanks to the introduction of a set of common utility-functions. What really makes me think is the fact that it takes so many iterations and a high level of detail to get the library handling and I/O right. It just makes you wonder how much software is out there that is full of little subtle bugs that might blow up in your face some day. Thanks for all the feedback!
2017-04-14Add PNG-LDFLAGS and JPG-LDFLAGS in config.mkLaslo Hunhold
instead of per-tool-settings.
2017-04-12Also print extra warningsLaslo Hunhold
2017-04-02config.mk: C89 -> C99Laslo Hunhold
We are using stdint.h, which is a C99 feature. Syntactically, the code is C89 though.
2017-03-30Make Makefile strictly POSIX compliantLaslo Hunhold
Thanks Hiltjo for the feedback! GNUisms need to be avoided like a plague, even if it means having to be a little more creative. Strict POSIX compliance means that I just worked within the bounds of the POSIX specification, hopefully without using any GNU or BSD extensions. If I did, please let me know. Tip to all Linux users: Test your Makefiles with pmake(1) instead of make(1) (= GNU make) and refer to the newest POSIX 2016 make specification[0]. [0]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html
2017-03-29Overhaul Build-systemLaslo Hunhold
I didn't like the current Makefiles. They were too crufted and not elegant. Additionally, given I'm planning to put some utility functions into a util.{c|h}-prerequisite, I wrote this new Makefile with PREREQs in mind.
2016-05-18Makefile improvementsHiltjo Posthuma
- fix: rebuild on source change. - allow to override dependency flag per tool (the ones that have deps). - rebuild on config.mk or headers change.
2016-04-03don't link against unneeded libsHiltjo Posthuma
- jpg2ff requires libjpeg - ff2png, png2ff requires libpng (and libz) - ff2ppm has no dependencies
2016-03-14Bump version to 2FRIGN
There have been quite considerable changes since version 1. The conversion tools have had a considerable performance boost of around 75% by using a row-buffer instead of reading each R-G-B-A-chunk individually. Also, 2ff(1) somehow called "xconvert" instead of "convert", rendering it useless for anything other than png's and jpg's. There was a small excursion to color spaces and ICC color profile handling, but this has been dismissed (it was a difficult decision). Thanks for all the feedback!
2016-01-29Back to the roots.FRIGN
Talking with even more people and weighing the benefits, I've made the decision to remove color spaces from farbfeld again (as it currently is handled in version 1) and recommend sRGB, not force it. Thing is the following: We are not ready yet for this step. Neither the people working with the images nor the hardware to display extended colors. Using greater colorspaces also removes the "hackability" of farbfeld. As it was previously possible to easily create gradients in plain C, you have to keep multiple things in mind with linear ProPhoto RGB. The first thing is that not all colors are "real", and there are imaginary colors. This doesn't happen with sRGB because all the colors it describes are "real". The second thing is the linear gamma curve, which makes the gradients look perceptually inconsistent. In the interest of creating a good and simple interchange format, we can't only weigh in points of professionals. This little excursion has shown that aiming for the 99% is still the way to go. And as often as you could repeat that sRGB will meet its fate in the future when screens become better, it is surprising how badly the industry has caught up to it. I also must honestly say that we can't solve the color space issue using RGB and should look at other formats to explore (CIELUV, CIELAB), which I will probably give a talk about at slcon3. Before releasing version 2, my aim is to make the I/O a bit more effective (as far as possible) so it's even easier to use. I know people will be pissed off, but fuck it, I'm the maintainer! Live with it.
2016-01-17Mandate "ProPhoto RGB" color space for farbfeld and handle ICC profilesFRIGN
I've literally been thinking about this for quite a while now. The initial motivation behind defaulting to sRGB was the idea that most data on the web was in sRGB anyway. However, my assumption was weakened in the sense that the development is clearly moving towards images with supplied ICC profiles and software slowly catching up to handle this. My tests have shown that more and more people even do that on the web, even though it's been a "tradition" that Photoshop users "Save for Web" and convert the gamut lossy into sRGB to bring a consistent color-"experience" even to those clients not supporting ICC profiles and which always assume sRGB. What made this decision so difficult is that converting to "ProPhoto RGB" requires some advanced knowledge on this topic, however, I came to the conclusion to implement it given the *2ff- and ff2*-tools handle it silently and well in the background, and given the little cms library is actually quite okay to use. When converting from ff to png, a proper "Pro Photo RGB" ICC V4-profile is automatically included in the exported png by ff2png. V4 is not as widespread as V2, but in the worst case (no V4 support somewhere) the colors will just be a little off. As an added bonus, any input files for png2ff which include ICC profiles are also correctly handled and the color space conversions are executed as expected. Accordingly, the FORMAT-specification has been changed. While at it, I added the note on alpha-multiplication. Now the format is very exact and shouldn't leave any ambiguities. jpeg supports ICC profiles as well, but I hadn't had the chance to look into it (not as trivial as PNG probably, help appreciated :)), so I'm always assuming sRGB here. Rationale --------- It is not obvious why one would go through the lenghts of supporting this big-gamut colorspace and not just stick with sRGB. In 99% of the cases, there's no reason to do that, but with even more extreme developments in the OLED-sector and other advances display hardware is slowly getting more powerful than sRGB, asking for color information which is suitable for the task and actually uses the full potential. The decision in this regard was not difficult in farbfeld because we always use 16-Bit anyway and won't have to fear posterization in a big- gamut color-space.
2016-01-06Bump version to 1FRIGN
And add a makerule to create a tarball via make dist.
2016-01-06Install manpages in $PREFIX/man not $PREFIX/share/manFRIGN
Real men use /man and don't /share/man
2016-01-05Also be consistent in config.mkFRIGN
2016-01-05Fix Makefile+config.mkFRIGN
I forgot that we can't just cd. It has to be a &&-statement. Also, uncomplicate the output.
2016-01-04Update config.mkFRIGN
-Wno-clobbered is not supported on OpenBSD. Let's remove it and Wextra with all its stupid warnings.
2015-11-23JPG Code cleanupFRIGN
2015-11-23(Re)add jpg2ffFRIGN
Thanks z3bra for porting this! Also change 2ff to use case instead of if-blocks.
2015-11-17Make config.mk easier to edit on different systemssin
This should also allow one to build the tools on both BSD and Linux probably without modifying config.mk at all.
2015-11-10Overhaul buildsystemFRIGN
2015-11-09imagefile -> farbfeldFRIGN
- Rename the format - Change the format specification - Drop old tools waiting to be fixed on a later date, just keep fixed png for now - Simplify other stuff This is a direct consequence of my slcon2-talk on this topic. At first I planned to have 64 bits per channel, but this is overkill.
2015-07-31config.mk: use c99, not -c90+ansi, unrecognized on OpenBSDHiltjo Posthuma
2014-07-31config.mk: add CPPFLAGS and commented debug flagsHiltjo Posthuma
2014-07-29add gif2ifHiltjo Posthuma
2014-07-29add jpg2ifHiltjo Posthuma
2014-07-29Don't bother to cleanup in error casessin
These tools are "one-shot", nobody cares about memory leaks while the program is running. Bring back -Os, no more false positives because there's no interaction between gotos and setjmp/longjmp.
2014-07-29Fix type inconsistencies and remove hacky compiler optionssin
-Os generates lots of false positives and it is not worth it much for such a small set of tools.
2014-07-22It is -Wno-clobbered not -Wno-clobbersin
2014-07-20Don't warn about clobbered pointers.FRIGN
2014-07-19Initial commitFRIGN