This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Some questions about ImageMagick and cygwin


On 2003-12-06T00:56-0500, Charles Wilson wrote:
) -release?  If not for every platform, what is the advisability of our
) cygwin maintainer making that change for his cygwin releases?  Is there
) a way to do "#if CYGWIN then libMagick_LDFLAGS = -release ..... else
) libMagick_LDFLAGS = -version-info ...." ?

While it seems to be obviated in this case, just for future reference I
thought I'd mention how I do something similar to this in the naim package.

In configure.in I use:

AC_CANONICAL_HOST
AC_MSG_CHECKING([for Cygwin])
case $host_os in
	*cygwin*)
		AC_MSG_RESULT(yes)
		AC_SUBST([cygwindocdir], ['${datadir}/doc/Cygwin'])
		AC_DEFINE(FAKE_MAIN_STUB, 1, [Define to enable a workaround on Windows for module loading])
		AC_DEFINE(DLOPEN_SELF_LIBNAIM_CORE, 1, [Define to dlopen libnaim_core rather than NULL])
		AM_CONDITIONAL(CYGWIN, true)
		;;
	*)
		AC_MSG_RESULT(no)
		AC_SUBST([cygwindocdir], [''])
		AM_CONDITIONAL(CYGWIN, false)
		;;
esac

The magic part is AM_CONDITIONAL(CYGWIN, ...).


This can be used in Makefile.am as:
if CYGWIN
libMagick_LDFLAGS = -release ...
else
libMagick_LDFLAGS = -version-info ...
endif


I use it to do some hideous things with .dll files; as best as I can tell,
dlopen()ed .dll's can't directly access symbols in the .exe that opened
them, but they can access symbols in other .dll files. So, on Cygwin I
compile what is normally "naim" into libnaim_core.dll and create a stub
naim.exe that just loads libnaim_core and executes libnaim_core's main().

-- 
Daniel Reed <n@ml.org>	http://naim-users.org/nmlorg/	http://naim.n.ml.org/
"I don't believe in making something user friendly just for the sake of
being user friendly, though; if you're decreasing the users' available
power, you're not really being all that friendly to them."

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]