many of the problems you report below are based at looking at uwin through
windows
specifically, using ``cl'' directly on the command line,
and reporting workarounds using DOS paths and CMD.EXE command lines
all of the non uwin source packages on the sw/download site are for unix-like
systems
uwin is one of those
windows is not
the uwin and ast source packages build with uwin cc(1) and uwin at&t nmake(1)
(or more generally by the package(1) command) from a uwin ksh(1) prompt
there's no surprise that the unix-like source fails to build from a
raw cl command line -- it was not intended to build that way
even to build native windows executables, like the ast ratz for sears
(self extracting archives) you use the uwin ncc(1) from a ksh(1) prompt
here are the steps to build the uwin and non uwin source packages
(1) install the { uwin-base uwin-dev } binary packages
(2) mkdir -p /usr/lib/package/tgz
(3) copy the source .tgz files to /usr/lib/package/tgz
start with { INIT ast-open }
(4) cd /usr
(5) package read
(6) package make
this is a viewpath build
all generated files will be in the /usr/arch/win32.i386 directory tree,
viewpathed on the /usr tree
see the sw/download FAQ for more info on viewpathing
when that works you can try the uwin source package and some other packages
but note that ast-open covers most of the other sw/download packages
coverage is noted on the main sw/download package list
I'm glad you are digging into uwin
but you will make a better connection with the uwin audience
if you do the digging from the unix side
of course, with the exception of bootstrap install/uninstall problems
like the rmdir problems you noted below
thanks
On Fri, 11 Apr 2008 06:54:15 +0000 Jay wrote:
> I'm still experimenting with building from source and a /minimal/ base -- l=
> ike Visual C++ and the INIT package maybe.
> Here is the first thing I notice, building ratz.
> There are /some/ minimal toolsets without Windows headers.To be "malicious"=
> I removed the Windows stuff from %LIB% and %INCLUDE%.
> If the dependency had been large, I'd just add them back. But they weren't.
> cl \net\att\uwin\*ratz*c=20
> I got an error about missing windows.h, so I did:
> echo. > windows.h cl \net\att\uwin\*ratz*c -I.=20
> I got an error about errno. So I did:
> C:\uwin>type windows.h #define errno (*_errno()) int* _errno();=20
> cl \net\att\uwin\*ratz*c -I.
> It works. This is very hacky and /might/ be wrong for other Win32 toolsets.
> What you should probably do:
> 1) add #include <errno.h> somewhere=20
> 2) move the #include windows.h to within the#if defined(_SEAR_SEEK) || defi=
> ned(_SEAR_EXEC)
> or similar, since that appears to need it, but by default it appears not ne=
> eded.
> To get a few fewer warnings, also
> #define _CRT_SECURE_NO_DEPRECATEand #if _MSC_VER >=3D something #pragma w=
> arning(disable:4996) /* ignore deprecations */ #endif
> Where "something" is whatever version doesn't complain.I've got a bunch, le=
> t's see:
> Visual C++ 2.0:warning C4616: #pragma warning : warning number '4996' out o=
> f range, must be between '4001' and '4799'
> Visual C++ 4.0 no problem, so:
> #if _MSC_VER >=3D 1000
> or merely:
> #ifdef _MSC_VER#pragma warning(disable:4616) /* ignore warning out of range=
> */#pragma warning(disable:4996) /* ignore deprecations */#endif
> works -- even with 1.5/8.0 (16 bit)
> I can send a diff if you really need but this is trivial..
> =20
> ok, something like:
> =20
> C:\uwin>diff -c \net\att\uwin\ratz.2008-02-02.c \net\att\uwin\ratz.c*** \ne=
> t\att\uwin\ratz.2008-02-02.c Thu Apr 10 23:57:28 2008--- \net\att\uwin\=
> ratz.c Thu Apr 10 23:56:51 2008****************** 86,98 ****--- 86,1=
> 06 ---- #if !defined(_WINIX) && (_UWIN || __CYGWIN__ || __EMX__) #define =
> _WINIX 1 #endif++ #ifdef _MSC_VER+ #pragma warning(disable:=
> 4616) /* ignore warning out of range on older versions */+ #pragma warning(=
> disable:4996) /* ignore deprecations on newer versions */+ #endif
> #if _WIN32 && !_WINIX
> #include <direct.h> #include <io.h> #include <fcntl.h>+ #include <errno=
> .h>+ #if defined(_SEAR_SEEK) || defined(_SEAR_EXEC) #include <windows.h>+ =
> #endif
> #define mkdir(a,b) mkdir(a)
> =20
> Aha, with this, you don't need the #define nodeprecate.
> - Jay=
_______________________________________________
uwin-users mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/uwin-users