If your mod was just to one .prg file, then the 'make' is pretty much redundant - you can just compile you .prg to make the obj. So long as you know what options to use; such as -m or what ever.
I'm not sure if there is a standard for make file extensions, I use .MK5 yours might be .rmk or .mak or something else.
Essentially you'd be calling the rmake utility with that file as the parameter:
Code:
c:\utils\rmake myfile.mk5
This will then (probably) call a batch file to compile each .prg with a command line something like:
In turn that will probably have something like this in it:
Code:
c:\lang\cl50\bin\clipper %1.prg -m %2 %3 %4 -ustd.ch -oOBJ\%1.obj
This assumes that the clipper compiler is in the c:\lang\cl50\bin folder.
%1 would be the parameter passed to the batch file with the .prg name (the .prg itself being omitted deliberately)
-m means compile the files specified in a module
-ustd.ch tells the compiler to look in std.ch for any odd command preprocessor instructions
-oOBJ\%1.obj tells the compiler to use the file name specified in the parameter again to direct the compiler output to a file in a subfolder called OBJ and to put the .obj extension on it!
%2 %3 %4 are just in case extra parameters are uses to include extra .prg files.
After that we have linking!
I use another script for this in my case with a .lk5 extension - but there is a standard for this one! it is .lnk and it will typically contain something like this:
Code:
BLINKER EXECUTABLE CLIPPER F225;E0;
#BLINKER HOST MESSAGE ON
BLINKER INCREMENTAL OFF
BLINKER EXECUTABLE EXTENDED
# output file
OUTPUT \apps\myprog\WORK\myprog
OVERLAY CODE,$CONSTANTS
# burn in the clipper variables...
# core part in memory
FI obj\myprog
FI obj\DOSPROC
FI obj\genproc
FI OBJ\ARRAPROC
FI OBJ\TBROPROC
FI OBJ\ERRORSYS
search C:\LANG\cl50\lib\BLXCLP50
LIB C:\LANG\cl50\lib\clipper
search C:\LANG\cl50\lib\EXTEND
search C:\LANG\cl50\lib\dbfntx
search C:\LANG\cl50\lib\terminal
# search cl
BEGINAREA
SECTION FI OBJ\PRINFUNC
SECTION FI OBJ\PROJPROC
SECTION FI OBJ\CONTPROC
SECTION FI OBJ\CNTRPROC
ENDAREA
The example is for Blinker - but is similar to RTLink (I think)
You might not need the environment variables, because the paths etc are specified in the .lnk/.lk5 file.
So you are just left invoking the whole thing:
Code:
c:\utils\blinker @mylink.lk5
The @ tells the linker to take it's instructions from the specified file
I hope this all helps and good luck to you
Regards
Griff
Keep [Smile]ing