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

Reply via email to