You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by "David N. Welton" <da...@dedasys.com> on 2003/07/05 16:29:59 UTC

Windows makefile

Hi,

Pat Thoyts was kind enough to create some makefiles for windows, which
I have checked in:

	* src/rivetWWW.c (snprintf): Added snprintf define from Pat.

	* src/rivetParser.h: Added bit of defines for windows builds,
	declared some of the functions EXTERN's here.

	* src/rivetList.c: Make list commands created here 'static' - Pat.

	* src/rivetCrypt.c: Use ap_config.h to grab other header files we
	might need, like crypt.h.  This is not an ideal solution, because
	it adds a dependency we didn't have before.  Added change by Pat
	to conditionally compile or not the 'Rivet_Crypt' command.

	* src/rivet.h: Added EXTERN definitions for functions.

	* src/parserPkgInit.c (Rivetparser_Init): Added EXTERN decleration
	for win builds.

	* win/rules.vc: New file: include file for Microsoft makefile.

	* win/rivet.dsp: New file: Microsoft Developer Studio Project
	File.

	* win/nmakehlp.c: New file: helper for windows building.

	* win/makefile.vc: New file: makefile for windows.  All from Pat
	Thoyts <pa...@users.sourceforge.net>.

The noteworthy change here is the crypt functionality.  In 2.0, which
Pat optimistically attempted to use, they have APR, which has defines
to let you know if there is a crypt.h or not, however, ap_config.h
from 1.3 seems to know enough to grab the right information.

I don't like this dependency, but it seems to at least make things
compile ok.  Dmitry, would you check and see if this works on openbsd
as well?

A question for Pat - did you try and give up on make.tcl or... what
was the problem?  I had hoped that it would work as a cross platform
builder.

In any case, a big thanks to Pat for his work!

-- 
David N. Welton
   Consulting: http://www.dedasys.com/
     Personal: http://www.dedasys.com/davidw/
Free Software: http://www.dedasys.com/freesoftware/
   Apache Tcl: http://tcl.apache.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org


Re: Windows makefile

Posted by "David N. Welton" <da...@dedasys.com>.
Pat Thoyts <Pa...@zsplat.freeserve.co.uk> writes:

> davidw@dedasys.com (David N. Welton) writes:

> >A question for Pat - did you try and give up on make.tcl or... what
> >was the problem?  I had hoped that it would work as a cross
> >platform builder.

> >In any case, a big thanks to Pat for his work!

> I tried and eventually gave up on it. My hacks were getting out of
> hand though I could probably revisit it. In general I think it's
> better to stick to the TEA2 configure/make format as much as
> possible. The files I've contributed here are the MSVC equivalents
> (modified from the tcl win sources). A more normal TEA configure.in
> wouldn't be much more work really, then I could use msys+mingw gcc
> or cygwin.

My goal with the Tcl stuff is to make it more cross platform, instead
of requiring that one have cygwin.  Although maybe most windows users
just want a binary anyway...

> Issues I had with make.tcl:
>  * Apache for Win32 doesn't provide apxs

Ouch.

>  * MSVC generates difference suffixes: .lib, .obj and .dll and we
>  don't normally prepend lib to libraries.

Ok.  The right one for "librivet.so" would be [info
sharedlibextension] though, right? And that would be .dll?

>  * link.exe has different option names from ld

Except for the -o, this should just grab things from tclConfig.sh:

    sh {$TCL_SHLIB_LD -o $MOD_SHLIB $MOD_OBJECTS $TCL_LIB_SPEC $TCL_LIBS}

>  * clean - we don't have rm

Fixed.

>  * install - dunno - installed to /opt/tcl/lib/tcllib1.4/rivet !?!

Hrm.  I'm still not even sure exactly where files should go (in terms
of available variables) on Unix.

>  * distclean - hah hah - yeah xargs :)

Mostly meant for my own convenience, but... we should do that in Tcl
too:-)

> Don't forget though - while this builds, it doesn't actually run
> usefully under Windows Apache 1.3.27. It's still looping around in
> the early initialisation.

Well, thanks the same though, at least now others can have a go at
debugging it.

I wonder what it's getting stuck on:-/

Thanks,
-- 
David N. Welton
   Consulting: http://www.dedasys.com/
     Personal: http://www.dedasys.com/davidw/
Free Software: http://www.dedasys.com/freesoftware/
   Apache Tcl: http://tcl.apache.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org


Re: Windows makefile

Posted by Pat Thoyts <Pa...@zsplat.freeserve.co.uk>.
davidw@dedasys.com (David N. Welton) writes:

>
>A question for Pat - did you try and give up on make.tcl or... what
>was the problem?  I had hoped that it would work as a cross platform
>builder.
>
>In any case, a big thanks to Pat for his work!

I tried and eventually gave up on it. My hacks were getting out of
hand though I could probably revisit it. In general I think it's
better to stick to the TEA2 configure/make format as much as
possible. The files I've contributed here are the MSVC equivalents
(modified from the tcl win sources). A more normal TEA configure.in
wouldn't be much more work really, then I could use msys+mingw gcc or
cygwin.

Issues I had with make.tcl:
 * Apache for Win32 doesn't provide apxs
 * MSVC generates difference suffixes: .lib, .obj and .dll and we don't
 normally prepend lib to libraries.
 * link.exe has different option names from ld
 * clean - we don't have rm
 * install - dunno - installed to /opt/tcl/lib/tcllib1.4/rivet !?!
 * distclean - hah hah - yeah xargs :)

Don't forget though - while this builds, it doesn't actually run
usefully under Windows Apache 1.3.27. It's still looping around in the
early initialisation.

Pat Thoyts

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org