SlickEdit Community

General => General Programming => Topic started by: alexdedalus on June 09, 2022, 08:37:49 am

Title: POLYMAKE needed
Post by: alexdedalus on June 09, 2022, 08:37:49 am
I need the (old msdos) "polymake" program to be able to compile a program package for msdos, because the "make" program is accusing a long sequence error, and there is no way to modify it, it doesn't work. Is it possible to send it to my email alexdedalus@hotmail.com or provide a download link? I thank!
Title: Re: POLYMAKE needed
Post by: Dan on June 09, 2022, 02:32:42 pm
I don't think "polymake" was one of ours.
Title: Re: POLYMAKE needed
Post by: edwardn9 on June 09, 2022, 11:53:55 pm
Polymake was a 16-bit product by a company called INTERSOLV.  32-bit Opus Make by Opus Software is supposed to run Polymake make files.  Neither company still exists.  It may be necessary to convert the make file to use a make tool that is still available (or cross compile from Linux back to MS-DOS).
Title: Re: POLYMAKE needed
Post by: Dan on June 10, 2022, 12:02:29 am
I was pretty sure "Poly" was Intersolv/PVCS related (I think they were originally Polytron).

You could try setting up a project with SlickEdit's built-in build tool.  https://youtu.be/1I_RkocjsiU
Title: Re: POLYMAKE needed
Post by: alexdedalus on June 10, 2022, 07:32:35 am
edwardn9, Where is possible download the "32-bit Opus Make by Opus Software"?

Dan, I dont understand how to do this. Is possible help me more clear?

Does SlickEdit's compile project for msdos? That is, use it to accept Makefile.mak and compile the sources to run under msdos, as they were made to run?

Thanks!
Title: Re: POLYMAKE needed
Post by: alexdedalus on June 10, 2022, 07:39:49 am
The original MAKEFILE.MAK:

# PolyMake file

#--- C modules
#    CAVEAT -- set environment variables thusly
#      SET CL=/Od /Zi
#      SET LINK=/CO
#    The demo code was compiled with CL=/Oilt
#    Using CL=/Ox causes some problems with the zoom box...


cmod=S

array.obj    : array.c array.h data.h driver.h extmath.h graphics.h \
                screen.h serial.h
driver.obj   : driver.c driver.h data.h array.h extmath.h keyboard.h \
                screen.h scrnfile.h serial.h utility.h vertint.h zplane.h
extmath.obj  : extmath.c extmath.h driver.h
keyboard.obj : keyboard.c keyboard.h data.h driver.h array.h screen.h zplane.h
screen.obj   : screen.c screen.h data.h driver.h graphics.h keyboard.h
scrnfile.obj : scrnfile.c scrnfile.h driver.h screen.h
serial.obj   : serial.c serial.h driver.h utility.h
utility.obj  : utility.c utility.h data.h driver.h
zplane.obj   : zplane.c zplane.h data.h driver.h array.h screen.h keyboard.h

#--- ASM modules

data.obj     : data.asm defines.inc

graphics.obj : graphics.asm graphics.h defines.inc macros.inc
vertint.obj  : vertint.asm vertint.h defines.inc macros.inc


#--- LINK process

MNAME=driver

MODS1=array data extmath
MODS2=keyboard graphics scrnfile
MODS3=screen serial utility
MODS4=vertint zplane

$(MNAME).exe : $(MNAME).obj $[f,,$(MODS1),obj] $[f,,$(MODS2),obj] $[f,,$(MODS3),obj] $[f,,$(MODS4),obj]
 tm start /n /c1
 link /M /ST:4096 <@<
$[f,$(.PATH.obj),$(MNAME),obj]+
$[f,$(.PATH.obj),$(MODS1),obj]+
$[f,$(.PATH.obj),$(MODS2),obj]+
$[f,$(.PATH.obj),$(MODS3),obj]+
$[f,$(.PATH.obj),$(MODS4),obj]
$[r,$*]
$(wk)$[r,$*]
ct5_m5$(cmod);
<
 tm stop  "------link" /n /c1

--------------------------------------
XXXXXXXXXXXXXXXXXXXXXXXXX
--------------------------------------
XXXXXXXXXXXXXXXXXXXXXXXXX
-------------------------------------

I recently discovered that POLYMAKE in addition to MAKEFILE.MAK, also uses a second file, BUILTINS.MAK :

# default make procedures

#-- workaround for disappearing OBJ files...
.PRECIOUS

#-- put all OBJ files on RAM disk
.PATH.obj=g:

#-- put working files on RAM disk
wk=g:

#-- set up C model
cmod=S

#-- do single-module assembly
#--  /ZI turns on CodeView info
.asm.obj :
 tm start /n /c1
 masm /MX /N /P /T /W2 /ZI \
    $[r,$*],$(.PATH.obj)$[r,$*],$(wk)$[r,$*],NUL
 tm stop  "------masm" /n /c1

#-- single-module C compile
.c.obj :
 tm start /n /c1
 cl /Fo$(.PATH.obj) /Fs$(wk) /V"Nisley Micro Consulting" \
    /W3  /A$(cmod) /Sl132 /Sp79 /c \
    $[r,$*].c
 tm stop  "--------cl" /n /c1

#-- single-module link
.obj.exe :
 tm start /n /c1
 link /M <@<
$(.PATH.obj)$[r,$*]
$[r,$*]
$(wk)$[r,$*]
ct5_m5$(cmod)+
capi_$(cmod)+
scode_$(cmod);
<
 tm stop  "------link" /n /c1


#-- EXE file conversions
.exe.com :
        exe2bin $[r,$*] $[r,$*].COM
        del $[r,$*].exe

.exe.bin :
        exe2bin $[r,$*] $[r,$*].BIN
        del $[r,$*].exe

.exe.sys :
        exe2bin $[r,$*] $[r,$*].SYS
        del $[r,$*].exe

#-- AVMAC51 assembler to hex file, single module only!

.asm.hex :
     AVMAC51 $[r,$*] OJ=$(.PATH.obj)$[r,$*] PR=$(wk)$[r,$*] MF=$(wk)$[r,$*].MXP PW=130
     AVLINK <@<
$[r,$*].hex=$(.PATH.obj)$[r,$*].obj
< MA=$(.PATH.obj)$[r,$*].MAP SY=$[r,$*].SYM -SM -SP -SN
Title: Re: POLYMAKE needed
Post by: alexdedalus on June 13, 2022, 06:21:51 am
My version adapted to run with the traditional make of MS C 5.1 msdos.

COMP=cl
cmod=S
ARGC=/W3 /A$(cmod) /Sl132 /Sp79 /c
ASM=masm
ARGM=/MX /N /P /T /W2 /ZI
LINC=link
ARGL=/M /ST:4096

array.obj    : array.c array.h data.h driver.h extmath.h graphics.h screen.h serial.h
               $(COMP) $(ARGC) array.c

driver.obj   : driver.c driver.h data.h array.h extmath.h keyboard.h screen.h scrnfile.h serial.h utility.h vertint.h zplane.h
               $(COMP) $(ARGC) driver.c

extmath.obj  : extmath.c extmath.h driver.h
               $(COMP) $(ARGC) extmath.c

keyboard.obj : keyboard.c keyboard.h data.h driver.h array.h screen.h zplane.h
               $(COMP) $(ARGC) keyboard.c

screen.obj   : screen.c screen.h data.h driver.h graphics.h keyboard.h
               $(COMP) $(ARGC) screen.c

scrnfile.obj : scrnfile.c scrnfile.h driver.h screen.h
               $(COMP) $(ARGC) scrnfile.c

serial.obj   : serial.c serial.h driver.h utility.h
               $(COMP) $(ARGC) serial.c

utility.obj  : utility.c utility.h data.h driver.h
               $(COMP) $(ARGC) utility.c

zplane.obj   : zplane.c zplane.h data.h driver.h array.h screen.h keyboard.h
               $(COMP) $(ARGC) zplane.c

data.obj     : data.asm defines.inc
               $(ASM) $(ARGM) data.asm
 
graphics.obj : graphics.asm graphics.h defines.inc macros.inc
               $(ASM) $(ARGM) graphics.asm

vertint.obj  : vertint.asm vertint.h defines.inc macros.inc
               $(ASM) $(ARGM) vertint.asm

MNAME=driver

MODS1=array data extmath
MODS2=keyboard graphics scrnfile
MODS3=screen serial utility
MODS4=vertint zplane

$(MNAME).exe : array.obj data.obj extmath.obj keyboard.obj graphics.obj scrnfile.obj screen.obj serial.obj utility.obj vertint.obj zplane.obj
 $(LINC) /M /ST:4096 $(MODS1) $(MODS2) $(MODS3) $(MODS4),$(MNAME),ct5_m5$(cmos)+capi_$(cmod)+scode_$(cmod)

--------------------------
Why doesn't this work with the make that comes with Microsoft C 5.1?
What is wrong?
Title: Re: POLYMAKE needed
Post by: ebbe on June 13, 2022, 01:50:06 pm
I can answer your question about the make tool supplied with MS C 5.1 though: That tool nowhere near as capable as PolyMake, in fact it is not really worthy of the name 'make'.

Back in the day, I used to be able to make PolyMake jump through burning hoops. However, "Back in the day" is literally 30 years ago and I can no longer remember what the different transformation macros ($[f,...] and such) do. But let's see what we can do in this day and age:


Title: Re: POLYMAKE needed
Post by: edwardn9 on June 13, 2022, 05:30:13 pm
$[f,<path>,<list>,<ext>]   Build filename from <path>, <list>, and <ext>
$[r,<text>]                Base name of <text>
$*                         Path name of the target minus the extension


Microsoft NMAKE from back in the day will not process these.
Title: Re: POLYMAKE needed
Post by: alexdedalus on June 14, 2022, 12:13:34 am
ebbe, I'm using an 86Box emulator, but I can naturally switch to another emulator if you deem it necessary, such as PCem, DosBox, or even VMWare. I have them all installed.

I already tried to use the C Lattice compiler, but not even the make source, it managed to compile.
So not to complicate things, I'm back to MSC5.1, and I'll try to translate MAKEFILE.MAK to a version that is understandable by MASM's make (anyone up for this challenge?).

If anyone has any other "make" available, that has the executable that runs under msdos, I would be very grateful.

Some msdos repository must have a polymake for msdos, I'm still looking through the most popular repositories, but there must be hundreds of them, and maybe someone with luck will be able to find it.

These last lines in the original makefile:

$[f,$(.PATH.obj),$(MNAME),obj]+
...
...
...

, I think they are completely unnecessary, as we don't see lines like that, in traditional Makefiles, nor in UNIX. I believe they can be replaced naturally to make it compatible with the traditional makefile. Well, it's not a complication like that, which the command line of the LINK program will need to do its job.

And that's exactly what I'm doing, according to my post above, with my MAKEFILE modified, to be compatible with the traditional make of MS C and/or MASM.
Title: Re: POLYMAKE needed
Post by: alexdedalus on June 15, 2022, 05:03:34 am
I reviewed my MAKEFILE.MAK, and posted it just above. (June 13, 2022, 06:21:51 am) LOOK...

But it still doesn't work, giving error:
MAKE: warning U4014:usage...

and he ends up doing nothing.

Having nothing to do with the above error, but some programs are needing a library:
"Blaise Computing C Tools Plus", but I can't find it anywhere to download. Can someone help me?
Title: Re: POLYMAKE needed
Post by: Graeme on June 15, 2022, 07:43:20 am

There's some info about c tools here
http://www.phildavidson.com/services/ctpfunc.htm (http://www.phildavidson.com/services/ctpfunc.htm)

there's a download here but you have to register and registration isn't working for me
https://vetusware.com/download/Turbo%20C%20Tools%206.01/?id=3713 (https://vetusware.com/download/Turbo%20C%20Tools%206.01/?id=3713)

also some info about c tools here
https://ia601203.us.archive.org/13/items/Blaise_Computing_Inc_Products/Blaise_Computing_Inc_Products.pdf (https://ia601203.us.archive.org/13/items/Blaise_Computing_Inc_Products/Blaise_Computing_Inc_Products.pdf)

here's a download
https://old--dos-ru.translate.goog/index.php?page=files&mode=files&do=show&id=2095&_x_tr_sch=http&_x_tr_sl=ru&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=sc (https://old--dos-ru.translate.goog/index.php?page=files&mode=files&do=show&id=2095&_x_tr_sch=http&_x_tr_sl=ru&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=sc)
There's a link on that page to a zip download that works - I've attached to this post.
The zip file contains some "arj" files which 7 zip knows how to uncompress.
It has header files, object files and lib files - dated 1989.
Title: Re: POLYMAKE needed
Post by: alexdedalus on June 15, 2022, 11:49:30 pm
I recently discovered that POLYMAKE in addition to MAKEFILE.MAK, also uses a second file, BUILTINS.MAK: See my post up there, followed by the original MAKEFILE.MAK.

Of the two I compiled the current MAKEFILE from scratch, so that it is compatible with the traditional make used in MS C 5.1 for msdos.

But make still doesn't work, and neither does make -f MAKEFILE.MAK, Giving the same error:
MAKE: warning U4014:usage...

and he ends up doing nothing.
Title: Re: POLYMAKE needed
Post by: alexdedalus on June 15, 2022, 11:56:05 pm
Graeme, Oh my God, 1000 thanks, you're the man! You can count on me for whatever you need, Thanks!

I'll see if it works with MS C, as this library is for Turbo C. And I still have to find out why make doesn't work with my MAKEFILE.MAK.
Title: Re: POLYMAKE needed
Post by: alexdedalus on June 17, 2022, 10:19:08 pm
The MAKEFILE.MAK for some detail that I must be forgetting (some comma or sign not accepted by make), does nothing.
So I decided to compile by hand, "cl" by "cl", then "make" by "make", but when reaching the linker, it gives hundreds of errors, because maybe the LIB provided by "turbo c tools" is not compatible with the MS C.
So I guess I should keep looking for Blaise Computing's "c tools". Or find a way to make the "turbo c tools" libs compatible with MS C.

Anyone have a better idea?
Title: Re: POLYMAKE needed
Post by: Graeme on June 17, 2022, 10:45:32 pm
I tried to find the source code but was unable to.
You could try contacting this guy, looks like he worked for blaise
Phil@PhilDavidson.com
http://www.phildavidson.com/resume.htm
http://www.phildavidson.com/services/ctpfunc.htm

He's still paying for the domain name so he might respond.