[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mingw-cross-env-list] [SOLVED] : Re: Some background/help asked ...
From: |
Jos De Laender |
Subject: |
[Mingw-cross-env-list] [SOLVED] : Re: Some background/help asked ... |
Date: |
Thu, 27 Dec 2012 21:03:18 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120824 Thunderbird/15.0 |
Gents,
This was a rather stupid mistake at my end, but with very weird failure
mechanism.
I did patch the libmng.pkg as hereafter.
Mind the # XXX JDLA that I intended to be a comment, but clearly isn't
(continuation character).
How one gets from there to a libjpeg.h reference outside of the mxe tree
is not so clear, but also not important.
Removing the offending line solves everything.
Sorry for that.
Jos
define $(PKG)_BUILD
$(MAKE) -C '$(1)' -j '$(JOBS)' \
-f '$(1)'/makefiles/makefile.unix \
# XXX JDLA CC=$(TARGET)-gcc CFLAGS='-DMNG_BUILD_SO -DMNG_FULL_CMS'
CC=$(TARGET)-gcc CFLAGS='-DMNG_BUILD_SO'
$(TARGET)-ranlib '$(1)/libmng.a'
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
$(INSTALL) -m644 '$(1)/libmng.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -d '$(PREFIX)/$(TARGET)/include'
$(INSTALL) -m644 '$(1)/libmng.h' '$(1)/libmng_conf.h'
'$(1)/libmng_types.h' '$(PREFIX)/$(TARGET)/include/'
$(SED) -e 'address@hidden@^$(PREFIX)/$(TARGET)^;' \
-e 'address@hidden@^$(libmng_VERSION)^;' \
-e 'address@hidden@^-ljpeg^;' \
-e 'address@hidden@^lcms zlib^;' \
< '$(1)/libmng.pc.in' > '$(1)/libmng.pc'
$(INSTALL) -m644 '$(1)/libmng.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig/'
endef
Op 27-12-12 20:02, Jos De Laender schreef:
William,
I'm redoing (it all takes time though ...).
I guess you are right that there's no visible imagemagick->libmng
dependency.
Although one is described in :
http://lists.gnu.org/archive/html/mingw-cross-env-list/2012-09/msg00030.html
(and applied the libmng patch there described to make another project
of mine working)
For what concerns the change to my host headers (which is/was totally
unrelated to mxe) :
libjpeg.h *is* broken on my system : it lacks an include <stdio.h> and
<stdlib.h>, making it not compiling standalone, also that's a known
issue.
But I believe all of this is not the core of my problem or question.
My real question is : why does it go and look *outside* the mxe tree
anyhow ?
I would assume it is not supposed to do so for a cross build ? So how
can it happen ?
Or am I missing something ?
Do you think using the development branch would be more helpful ?
Jos
Op 27-12-12 14:51, William schreef:
Hello
On 12/27/2012 12:38 PM, Jos De Laender wrote:
I'm trying to setup mxe for a number of projects of mine and
sometimes I'm really confused about what I see.
An example :
I download the stable branch.
make qt
make graphicsmagick
make imagemagick
Apparently goes fine.
Then I realize that something went wrong with imagemagick in the
sense that lcms and lcms2 are mixed up.
Somewhere on the web one can find the solution : patch libmng.mk
file such that mng doesn't use "full cms" or something along those
lines.
So I patch that libmng.mk.
Then
make imagemagick => nothing happens even though I understood libmng
is a dependency (and it built it in the first place).
imagemagick deps are (you can find them in src/imagemagick.mk, in the
$(PKG)_DEPS line) :
gcc bzip2 ffmpeg fftw freetype jasper jpeg lcms libpng libtool
openexr pthreads tiff
it is not obvious that libmng is a dependency of imagemagick... you
could check recursively on all listed dependencies, but it is likely
it is not.
by doing :
cd src
grep "libmng" *.mk -l
I see that qt.mk uses libmng. So actually libmng is a dependency of
qt (that you asked to explicitely compile "make qt"), but not of
imagemagick.
So I go back one step
make libmng => fails because it accesses my (changed)
/usr/lib/jpeglib.h (so not the one of mxe, the one of my host !)
It is not advised to change your host headers! Everything should work
properly on itself.
I do not understand however why libmng would access
/usr/lib/jpeglib.h, because jpeg is not a "requirement" from mxe.
Maybe your patch was not appropriate ?
The 2 last steps (failing to rebuild, but especially the looking
outside of the mxe tree) concern me ....
Can someone shed some light why this is happening, what is maybe
wrong, how I should debug or produce more info ?
Somehow I'm a bit worried now of having a "good" cross environment.
- You should try to download the development branch, I personnaly
find it better, as you can get more suitable advices from mxe users.
- Cancel your libmng patches :
git status # shows you what files you changed
rm src/libmng.mk # if you changed this file
git checkout src/libmng.mk # recover the file
- in src/imagemagick.mk, try to replace in the deps line
"$(PKG)_DEPS := gcc bzip2 ffmpeg fftw freetype jasper jpeg lcms
libpng libtool openexr pthreads tiff" by "$(PKG)_DEPS := gcc bzip2
ffmpeg fftw freetype jasper jpeg lcms1 libpng libtool openexr
pthreads tiff". It is just a try...
- if that does not work, send your log (log/imagemagick) to this
mailing list, but before get sure to have a proper tree with no
internal modifications ("git status" to check)
William
--
Jos De Laender
www.jodela.be