home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
progmisc
/
nfsrc21.zip
/
NANFOR.RMK
< prev
next >
Wrap
Text File
|
1992-10-20
|
21KB
|
574 lines
/*
* File......: NANFOR.RMK
* Date......: $Date: 20 Oct 1992 01:18:38 $
* Revision..: $Revision: 1.16 $
* Log file..: $Logfile: C:/nanfor/src/nanfor.rmv $
*
* Modification history:
* ---------------------
*
* $Log: C:/nanfor/src/nanfor.rmv $
*
* Rev 1.16 20 Oct 1992 01:18:38 GLENN
* Adjusted librarian's path macros.
*
* Rev 1.15 16 Oct 1992 00:18:42 GLENN
* Deleted ATPROMPT.PRG.
*
* Rev 1.14 16 Oct 1992 00:11:16 GLENN
* Added DBFHANDL.ASM, DBTHANDL.ASM, DISPCNT.ASM, NTXHANDL.ASM, and
* SETKEYS.ASM. Removed TMENU.ASM.
*
* Rev 1.13 13 Oct 1992 20:41:38 GLENN
* Remove TMENU.*; Ted is revamping his @ prompt/menu to replacement.
*
* Rev 1.12 03 Oct 1992 02:15:02 GLENN
* Deleted ORIGIN.ASM and replaced with ORIGIN.C.
*
* Rev 1.11 03 Oct 1992 02:09:18 GLENN
* Got rid of reference to fttext.h; Steve Larsen's new mods don't
* require it.
*
* Rev 1.10 29 Sep 1992 00:42:14 GLENN
* Added support for explicit pointers to include files; and documented
* it. Reset the "rebuilding environment" to a directory structure not
* so deeply nested.
*
* Rev 1.9 28 Sep 1992 23:18:02 GLENN
* Updated the documentation to reflect the current status of the
* CompuServe forum. Removed test driver support (this wouldn't have
* ever worked anyway). Reset the default variables for the librarian's
* environment, as is his sacred right.
*
* Rev 1.8 22 Aug 1992 16:51:04 GLENN
* Added PVID.PRG.
*
* Rev 1.7 01 Jul 1992 02:20:20 GLENN
* Added SLEEP.PRG.
*
* Rev 1.6 01 Jul 1992 01:24:10 GLENN
* Added SETLASTK.ASM.
*
* Rev 1.5 16 Aug 1991 00:02:38 GLENN
* MADD.PRG and MONTH.PRG dependency lines were written incorrectly
* so these objects were being built whether they changed or not.
* Fixed.
*
* Rev 1.4 15 Aug 1991 23:09:02 GLENN
* Forest Belt proofread/edited/cleaned up doc
*
* Rev 1.3 17 Jul 1991 22:50:50 GLENN
* Added a couple last minute sources
*
* Rev 1.2 14 Jun 1991 20:28:30 GLENN
* Moved SHADOW.OBJ from MASM section to TASM section
*
* Rev 1.1 14 Jun 1991 19:58:38 GLENN
* Removed NOVCONS.OBJ pending some bug fixes.
*
* Rev 1.0 14 Jun 1991 18:46:46 GLENN
* Initial revision.
*
*/
/* ----------------------------------------------------------------------
The Nanforum Toolkit Master Makefile READ THIS BEFORE USING!!!
----------------------------------------------------------------------
This makefile will allow you to use RMAKE, provided with every
Clipper 5.01 package, to maintain your own copy of the Nanforum
Toolkit. It is also an example of one way to use RMAKE on a
large project. This is the exact copy used by the Nanforum Toolkit
librarian.
To use it, you must first understand what it does, and what your
limitations are. A discussion of MAKE utlities is beyond the scope
of this comment; read the Clipper documentation, or the Norton Guide
file, for more information on RMAKE.
*** Compilers and Assemblers you need
Note that currently, Nanforum Toolkit sources are written in
Assembly language, Clipper, and C. Within the realm of assembly
language, our contributors have submitted code that is designed
for Borland's Turbo Assembler (TASM) and Microsoft's Macro Assembler
(MASM). So, right now, in order to do a perfect re-build of
the Nanforum Toolkit, you must have these tools:
Microsoft C (v5.1 or later)
Microsoft Macro Assembler (v 5.1 or later)
Borland Turbo Assembler
Nantucket Clipper v5.01 or later
If you know much about assembly language, you can convert MASM
sources to TASM and vice versa, but that is up to you.
*** Library Utility
In addition, you must have a library utility. Microsoft supplies
LIB.EXE with its Compiler products, for example. LIB will work
fine with this makefile. Note that we assume a command line syntax
for library utilities that works like this:
lib <libname> -+objname
Note the "-+" directive, indicating "replace module." If your
library utility does not support this syntax on the command line,
then you will have to edit the relevant lines in the makefile.
A version of LIB.EXE can be found on CompuServe. Download S12776.ARC
from the MSL forum.
*** Assumptions about your environment
NANFOR.RMK makes just a few assumptions about your environment:
Assumption What to change if we're wrong
---------- -----------------------------
Microsoft C is being Look for the .C source inference
used rule below, and change it to *your*
compiler, making sure your switches
are correct. Note that some source
may not compile without MSC, so edits
may be required. Try to use MSC.
This is also where you will change the
makefile to whatever *you* call your
C compiler (CL for Microsoft C 5.1.)
Microsoft Assembler Look for all occurences of MASM in
executable is called this makefile and change them to
MASM.EXE whatever *you* call MASM.
Borland's Turbo Assembler Look for all occurences of TASM in
executable is called this makefile and change them to
TASM.EXE whatever *you* call TASM.
Clipper compiler executable Look for the .PRG source inference
is called CLIPPER.EXE rule below, and change it to whatever
*you* call Clipper.
*** Customizing the Makefile
We have tried not to assume anything about your environment except
what is described above. To achieve that flexibility, you must
check and set some macros that can be found just below this
documentation. They are:
l Path to the resulting library (i.e., \nanfor)
o Path to where .obj files should be put (i.e., \nanfor\obj)
s Path to where the source code is found (i.e., \nanfor\src)
c5 Path and name of Clipper 5.0 compiler
c5g Clipper 5 option line for include files (see below)
ma Path to Microsoft Macro Assembler .EXE
ta Path to Turbo Assembler .EXE
mc Path to Microsoft C 5.1
mcg Microsoft C option line for include files (see below)
ml Path and name of library utility (i.e., \bin\lib)
Note that directory paths should *not* end in a backslash.
If you like to keep your .obj and source files in the same
directory, simply point the paths to the same place.
Be careful not to nest your "rebuilding environment" (see below)
to deep; you could end up creating very long command lines that
will exceed DOS limits.
*** How include files are handled
The librarian maintains a few versions of Clipper on his disk
at any one time, as well as one or two versions of various
C compilers. As time went on, he realized that the SET
INCLUDE= and SET LIB= environment variables were somewhat evil.
For example, toolkit v2.1 is supposed to be built with the
exact includes supplied by Computer Associates for 5.01a, but the
librarian's INCLUDE envar points to the 5.0 includes. Resetting
these variables is easy but if one forgets, there is a potential
for version confusion.
To eliminate confusion over where the globals are, the following
was decided:
All include files shall be pointed to explicitly using
compiler command line options, and if possible, the
INCLUDE environment variable shall be ignored.
Clipper 5.x provides the /i option for this, and Microsoft C
provides both the /X option and the /I option. Read your docs
for details.
This new rule makes it necessary to create two more macros used
by this makefile:
c5g = a complete command line argument to be
supplied to Clipper 5.x telling it where
the appropriate includes are
mcg = a complete command line argument to be
supplied to Microsoft C telling it where the
appropriate includes are
Other includes used by the toolkit sources will be in the same
directory as the main source files.
*** What happens when you don't have a compiler
If RMAKE can't find the compiler in the directory you specified,
then the relevant files designed for that compiler will not be
built, and the resultant objs won't be replaced in your library.
You will get an error message.
*** Suggestions for setting up a "rebuilding environment"
Should you want to rebuild, the following is suggested:
First, make sure you keep an unmodified NANFOR.LIB, downloaded
from the forum, in a safe place. Do not modify it.
Next, create a directory structure like this
\nfbld
\obj
\rel
Put this makefile and all the source in \nfbld.
Customize the makefile in \nfbld for your environment.
The default macros below assume you're using this arrangement.
Type RMAKE NANFOR.RMK. The .obj files should be left in
\nfbld\obj, and the new NANFOR.LIB should be in \nfbld\rel
Note that as new releases of the library come out, you may have
a lot of work incorporating additions and modifications. So,
plan your rebuilding efforts carefully.
*** Problems, bugs, support
Support for this makefile can be found on CompuServe, in the
Clipper Forum (GO CLIPPER). Leave messages in section 5
"Nanforum Toolkit"). Updates and patches will be posted in
Library 5.
*/
// ------------------------------------------------------------------------
// path macros for your environment.. BE SURE TO SET THESE! THEY'RE SET FOR
// THE LIBRARIAN'S MACHINE AND WILL NOT WORK ON YOURS!
// ------------------------------------------------------------------------
l = \nfbld\rel
o = \nfbld\obj
s = \nfbld
c5 = \clip\147\bin\clipper
c5g = /i\clip\147\include
ma = \omasm
ta = \utils
mc = \c700\bin
mcg = /X /I \c700\include /I \clip\147\include
ml = \c700\bin\lib
// -----------------------------
// Kill lib response file if any
// -----------------------------
!iffile $(l)\nanfor.rsp
#! del $(l)\nanfor.rsp
!endif
// ------------------------------------------------------------------
// Note on inference Rule for ASM files:
//
// THE ACTUAL CALL TO THE ASSEMBLER IS DEFINED WITHIN THE 'ASM'
// MACRO WHICH IS DEFINED BEFORE EACH .ASM SECTION AS EITHER
// MASM OR TASM
// -------------------------------------------------------------------
.ASM.OBJ:
$(asm) /mx $(s)\$*,$(o)\$*;
echo -+$(o)\$* & >> $(l)\nanfor.rsp
// inference rule for c files
.C.OBJ:
$(mc)\cl /AL /Gs /FPa /Ox /Zl $(mcg) /c /Fo$(o)\$* $(s)\$*.c
echo -+$(o)\$* & >> $(l)\nanfor.rsp
// ------------------------------
// inference rule for prg files
// ------------------------------
.PRG.OBJ:
$(c5) $(s)\$* /m /l /n /r /w $(c5g) /o$(o)\$*
echo -+$(o)\$* & >> $(l)\nanfor.rsp
// -------------------------------
// inference rule for library
// -------------------------------
.RSP.LIB:
echo ,$(l)\nanfor.lst; >> $(l)\nanfor.rsp
if not exist $(l)\nanfor.lib $(ml) $(l)\nanfor.lib;
$(ml) $(l)\NANFOR.LIB @$(l)\nanfor.rsp
// -----------------------------------------------------------------
// MASM 5.1
// This section compiles any source files that need MASM 5.1
// -----------------------------------------------------------------
// check to see if masm.exe is found
!iffile $(ma)\masm.exe
asm = $(ma)\masm
$(o)\DISPA.OBJ : $(s)\DISPA.ASM
$(o)\ENDCAP.OBJ : $(s)\ENDCAP.ASM
$(o)\FLOPTST.OBJ : $(s)\FLOPTST.ASM
$(o)\FLUSHCAP.OBJ : $(s)\FLUSHCAP.ASM
$(o)\HANDCNT.OBJ : $(s)\HANDCNT.ASM
$(o)\KSPEED.OBJ : $(s)\KSPEED.ASM
$(o)\LOGOUT.OBJ : $(s)\LOGOUT.ASM
$(o)\NOVDMP2.OBJ : $(s)\NOVDMP2.ASM $(s)\MINTER.MAC
$(o)\NOVPURGE.OBJ : $(s)\NOVPURGE.ASM $(s)\MINTER.MAC
$(o)\NWTTS1.OBJ : $(s)\NWTTS1.ASM
$(o)\NWTTS2.OBJ : $(s)\NWTTS2.ASM
$(o)\NWTTS3.OBJ : $(s)\NWTTS3.ASM
$(o)\NWTTS4.OBJ : $(s)\NWTTS4.ASM
$(o)\NWTTS5.OBJ : $(s)\NWTTS5.ASM
$(o)\_WHEREIS.OBJ : $(s)\_WHEREIS.ASM
!else
// if masm.exe file not found
!stderr "NFMake Error: MASM.EXE file not found ... .ASM files not processed!"
!endif
// ------------------------------------------------------------------
// TASM
// This section compiles any source files that need TASM
// -------------------------------------------------------------------
// check to see if tasm.exe is found
!iffile $(ta)\tasm.exe
asm = $(ta)\tasm
$(o)\ADAPTER.OBJ : $(s)\ADAPTER.ASM
$(o)\AINT86.OBJ : $(s)\AINT86.ASM
$(o)\CHDIR.OBJ : $(s)\CHDIR.ASM
$(o)\DBFHANDL.OBJ : $(s)\DBFHANDL.ASM
$(o)\DBTHANDL.OBJ : $(s)\DBTHANDL.ASM
$(o)\DEFAULT.OBJ : $(s)\DEFAULT.ASM
$(o)\DIRFUNC.OBJ : $(s)\DIRFUNC.ASM
$(o)\DISPCNT.OBJ : $(s)\DISPCNT.ASM
$(o)\INP.OBJ : $(s)\INP.ASM
$(o)\ISPRINT.OBJ : $(s)\ISPRINT.ASM
$(o)\MKDIR.OBJ : $(s)\MKDIR.ASM
$(o)\NTXHANDL.OBJ : $(s)\NTXHANDL.ASM
$(o)\OUTP.OBJ : $(s)\OUTP.ASM
$(o)\PUTKEY.OBJ : $(s)\PUTKEY.ASM
$(o)\REBOOT.OBJ : $(s)\REBOOT.ASM
$(o)\RESTATT.OBJ : $(s)\RESTATT.ASM
$(o)\RMDIR.OBJ : $(s)\RMDIR.ASM
$(o)\SAVEATT.OBJ : $(s)\SAVEATT.ASM
$(o)\SETKEYS.OBJ : $(s)\SETKEYS.ASM
$(o)\SETLASTK.OBJ : $(s)\SETLASTK.ASM
$(o)\SHADOW.OBJ : $(s)\SHADOW.ASM
!else
// if tasm.exe file not found
!stderr "NFMake Error: TASM.EXE file not found ... .ASM files not processed!"
!endif
// ------------------------------------------------------------------
// MICROSOFT C
// This section compiles any source files that need MSC 5.1
// ------------------------------------------------------------------
// check to see if cl.exe is found
!iffile $(mc)\cl.exe
$(o)\ALT.OBJ : $(s)\ALT.C
$(o)\CAPLOCK.OBJ : $(s)\CAPLOCK.C
$(o)\CINT86.OBJ : $(s)\CINT86.C $(s)\CINT86.H
$(o)\CTRL.OBJ : $(s)\CTRL.C
$(o)\DISPC.OBJ : $(s)\DISPC.C $(s)\DISPA.ASM $(s)\DFKEY.H
$(o)\FTTEXT.OBJ : $(s)\FTTEXT.C
$(o)\GETENVRN.OBJ : $(s)\GETENVRN.C
$(o)\NUMLOCK.OBJ : $(s)\NUMLOCK.C
$(o)\ORIGIN.OBJ : $(s)\ORIGIN.C
$(o)\PEEK.OBJ : $(s)\PEEK.C
$(o)\POKE.OBJ : $(s)\POKE.C
$(o)\PROPER.OBJ : $(s)\PROPER.C
$(o)\PRTSCR.OBJ : $(s)\PRTSCR.C
$(o)\SHIFT.OBJ : $(s)\SHIFT.C
$(o)\STOD.OBJ : $(s)\STOD.C
$(o)\VIDEO1.OBJ : $(s)\VIDEO1.C
!else
// if cl.exe file not found
!stderr "NFMake Error: CL.EXE file not found ... .C files not processed!"
!endif
// --------------------------------------------------------------
// CLIPPER 5.01
// This section compiles any source files that need Clipper 5.01
// ---------------------------------------------------------------
// check to see if clipper.exe is found
!iffile $(c5).exe
$(o)\AADING.OBJ : $(s)\AADING.PRG
$(o)\AAVG.OBJ : $(s)\AAVG.PRG $(s)\ASUM.PRG
$(o)\ACCTADJ.OBJ : $(s)\ACCTADJ.PRG
$(o)\ACCTMNTH.OBJ : $(s)\ACCTMNTH.PRG
$(o)\ACCTQTR.OBJ : $(s)\ACCTQTR.PRG
$(o)\ACCTWEEK.OBJ : $(s)\ACCTWEEK.PRG
$(o)\ACCTYEAR.OBJ : $(s)\ACCTYEAR.PRG
$(o)\ACH2TB.OBJ : $(s)\ACH2TB.PRG $(s)\FT_ACH2T.CH
$(o)\ADESSORT.OBJ : $(s)\ADESSORT.PRG
$(o)\AEMAXLEN.OBJ : $(s)\AEMAXLEN.PRG
$(o)\AEMINLEN.OBJ : $(s)\AEMINLEN.PRG
$(o)\AMEDIAN.OBJ : $(s)\AMEDIAN.PRG
$(o)\ANOMATCH.OBJ : $(s)\ANOMATCH.PRG
$(o)\ANY2ANY.OBJ : $(s)\ANY2ANY.PRG
$(o)\AREDIT.OBJ : $(s)\AREDIT.PRG
$(o)\ASUM.OBJ : $(s)\ASUM.PRG
$(o)\AT2.OBJ : $(s)\AT2.PRG
$(o)\BITCLR.OBJ : $(s)\BITCLR.PRG $(s)\ISBIT.PRG
$(o)\BITSET.OBJ : $(s)\BITSET.PRG $(s)\ISBIT.PRG
$(o)\BLINK.OBJ : $(s)\BLINK.PRG
$(o)\BYT2BIT.OBJ : $(s)\BYT2BIT.PRG $(s)\ISBIT.PRG
$(o)\BYT2HEX.OBJ : $(s)\BYT2HEX.PRG
$(o)\BYTEAND.OBJ : $(s)\BYTEAND.PRG $(s)\ISBIT.PRG $(s)\BITSET.PRG
$(o)\BYTENEG.OBJ : $(s)\BYTENEG.PRG
$(o)\BYTENOT.OBJ : $(s)\BYTENOT.PRG $(s)\ISBIT.PRG $(s)\BITSET.PRG
$(o)\BYTEOR.OBJ : $(s)\BYTEOR.PRG $(s)\ISBIT.PRG $(s)\BITSET.PRG
$(o)\BYTEXOR.OBJ : $(s)\BYTEXOR.PRG $(s)\ISBIT.PRG $(s)\BITSET.PRG
$(o)\CALENDAR.OBJ : $(s)\CALENDAR.PRG
$(o)\CLRSEL.OBJ : $(s)\CLRSEL.PRG
$(o)\CNTRYSET.OBJ : $(s)\CNTRYSET.PRG
$(o)\COM34.OBJ : $(s)\COM34.PRG
$(o)\D2E.OBJ : $(s)\D2E.PRG
$(o)\DATECNFG.OBJ : $(s)\DATECNFG.PRG
$(o)\DAYOFYR.OBJ : $(s)\DAYOFYR.PRG
$(o)\DAYTOBOW.OBJ : $(s)\DAYTOBOW.PRG
$(o)\DECTOBIN.OBJ : $(s)\DECTOBIN.PRG
$(o)\DFILE.OBJ : $(s)\DFILE.PRG $(s)\DISPC.C $(s)\DISPA.ASM $(s)\DFKEY.H
$(o)\DIR2DBF.OBJ : $(s)\DIR2DBF.PRG
$(o)\DISKFUNC.OBJ : $(s)\DISKFUNC.PRG
$(o)\DISPMSG.OBJ : $(s)\DISPMSG.PRG $(s)\SHADOW.ASM
$(o)\DOSVER.OBJ : $(s)\DOSVER.PRG
$(o)\E2D.OBJ : $(s)\E2D.PRG
$(o)\EASTER.OBJ : $(s)\EASTER.PRG
$(o)\ELAPMIL.OBJ : $(s)\ELAPMIL.PRG
$(o)\ELAPSED.OBJ : $(s)\ELAPSED.PRG
$(o)\ELTIME.OBJ : $(s)\ELTIME.PRG
$(o)\EXIST.OBJ : $(s)\EXIST.PRG
$(o)\FIELD.OBJ : $(s)\FIELD.PRG
$(o)\FINDITH.OBJ : $(s)\FINDITH.PRG
$(o)\FIRSTDAY.OBJ : $(s)\FIRSTDAY.PRG
$(o)\GCD.OBJ : $(s)\GCD.PRG
$(o)\HEX2DEC.OBJ : $(s)\HEX2DEC.PRG
$(o)\INVCLR.OBJ : $(s)\INVCLR.PRG
$(o)\ISBIT.OBJ : $(s)\ISBIT.PRG
$(o)\ISBITON.OBJ : $(s)\ISBITON.PRG
$(o)\ISSHARE.OBJ : $(s)\ISSHARE.PRG
$(o)\LASTDAY.OBJ : $(s)\LASTDAY.PRG
$(o)\LINKED.OBJ : $(s)\LINKED.PRG
$(o)\MADD.OBJ : $(s)\MADD.PRG
$(o)\MENU1.OBJ : $(s)\MENU1.PRG $(s)\SHADOW.ASM
$(o)\MENUTO.OBJ : $(s)\MENUTO.PRG
$(o)\METAPH.OBJ : $(s)\METAPH.PRG
$(o)\MILTIME.OBJ : $(s)\MILTIME.PRG
$(o)\MIN2DHM.OBJ : $(s)\MIN2DHM.PRG
$(o)\MONTH.OBJ : $(s)\MONTH.PRG
$(o)\MOUSE1.OBJ : $(s)\MOUSE1.PRG
$(o)\NETPV.OBJ : $(s)\NETPV.PRG
$(o)\NOOCCUR.OBJ : $(s)\NOOCCUR.PRG
$(o)\NTOW.OBJ : $(s)\NTOW.PRG
$(o)\NWLSTAT.OBJ : $(s)\NWLSTAT.PRG
$(o)\NWSEM.OBJ : $(s)\NWSEM.PRG
$(o)\NWUID.OBJ : $(s)\NWUID.PRG
$(o)\PAGE.OBJ : $(s)\PAGE.PRG
$(o)\PCHR.OBJ : $(s)\PCHR.PRG
$(o)\PEGS.OBJ : $(s)\PEGS.PRG
$(o)\PENDING.OBJ : $(s)\PENDING.PRG
$(o)\PICKDAY.OBJ : $(s)\PICKDAY.PRG
$(o)\POPADDER.OBJ : $(s)\POPADDER.PRG
$(o)\PRTESC.OBJ : $(s)\PRTESC.PRG
$(o)\PVID.OBJ : $(s)\PVID.PRG
$(o)\QTR.OBJ : $(s)\QTR.PRG
$(o)\RAND1.OBJ : $(s)\RAND1.PRG
$(o)\RESTSETS.OBJ : $(s)\RESTSETS.PRG $(s)\CNTRYSET.PRG
$(o)\ROUND.OBJ : $(s)\ROUND.PRG
$(o)\SAVEARR.OBJ : $(s)\SAVEARR.PRG
$(o)\SAVESETS.OBJ : $(s)\SAVESETS.PRG
$(o)\SCANCODE.OBJ : $(s)\SCANCODE.PRG
$(o)\SCREGION.OBJ : $(s)\SCREGION.PRG
$(o)\SETDATE.OBJ : $(s)\SETDATE.PRG
$(o)\SETTIME.OBJ : $(s)\SETTIME.PRG
$(o)\SINKEY.OBJ : $(s)\SINKEY.PRG
$(o)\SLEEP.OBJ : $(s)\SLEEP.PRG
$(o)\SQZN.OBJ : $(s)\SQZN.PRG
$(o)\SYSMEM.OBJ : $(s)\SYSMEM.PRG
$(o)\TBWHILE.OBJ : $(s)\TBWHILE.PRG
$(o)\TEMPFILE.OBJ : $(s)\TEMPFILE.PRG
$(o)\VERTMENU.OBJ : $(s)\VERTMENU.PRG
$(o)\VIDCUR.OBJ : $(s)\VIDCUR.PRG
$(o)\VIDMODE.OBJ : $(s)\VIDMODE.PRG
$(o)\WDA.OBJ : $(s)\WDA.PRG
$(o)\WEEK.OBJ : $(s)\WEEK.PRG
$(o)\WHEREIS.OBJ : $(s)\WHEREIS.PRG
$(o)\WORKDAYS.OBJ : $(s)\WORKDAYS.PRG
$(o)\WOY.OBJ : $(s)\WOY.PRG
$(o)\XBOX.OBJ : $(s)\XBOX.PRG $(s)\SHADOW.ASM
$(o)\YEAR.OBJ : $(s)\YEAR.PRG
!else
// if clipper.exe file not found
!stderr "NFMake Error: CLIPPER.EXE file not found ... .PRG files not processed!"
!endif
// ┌─────────────────────────────────────────────────────────────┐
// │ This section invokes the library manager - it must be last! │
// └─────────────────────────────────────────────────────────────┘
//
!iffile $(ml).exe
$(l)\NANFOR.LIB : $(l)\NANFOR.RSP
!else
!stderr "NFMake Error: LIB.EXE file not found ... NANFOR.LIB not processed!"
!endif
// end of nanfor.rmk