home *** CD-ROM | disk | FTP | other *** search
- /*
- * File......: NANFOR.RMK
- * Date......: $Date: 16 Aug 1991 00:02:38 $
- * Revision..: $Revision: 1.5 $
- * Log file..: $Logfile: E:/nanfor/src/nanfor.rmv $
- *
- * Modification history:
- * ---------------------
- *
- * $Log: E:/nanfor/src/nanfor.rmv $
- *
- * 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 how 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 MSOFT forum.
-
- *** Assumptions about your environment
-
- NANFOR.RMK makes just a few assumptions about your environment:
-
- Assumption What to change if we're wrong
- ---------- -----------------------------
-
- Relevant environment Either edit the makefile to
- variables for each compiler/ set the envars, or setup your
- assembler are already autoexec.bat to set them on bootup.
- set (i.e., LIB=, INCLUDE=) See your compiler doc.
-
- 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
- ma Path to Microsoft Macro Assembler .EXE
- ta Path to Turbo Assembler .EXE
- mc Path to Microsoft C 5.1
- 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.
-
- *** 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
-
- \nanfor
- \obj
- \src
-
- Put this makefile in \nanfor, and all source code into
- \nanfor\src.
-
- Customize the makefile in \nanfor for your environment.
- The default macros below assume you're using this arrangement.
-
- Type RMAKE NANFOR.RMK. The .obj files should be left in
- \nanfor\obj, and the new NANFOR.LIB should be in \nanfor.
-
- 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
- Nantucket Forum (NANFORUM). Leave messages in section 5 ("User
- Lib"). Updates and patches will be posted in Library 7.
- */
-
- // ------------------------------------------------------------------------
- // 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 = \nansrc
- o = \nansrc\obj
- s = \nansrc
- c5 = d:\dbin\clipper
- ma = d:\dbin
- ta = d:\dbin
- mc = d:\dbin
- ml = d:\os2\lib
-
-
- // -----------------------------
- // Kill lib response file if any
- // -----------------------------
-
-
- !iffile $(l)\nanfor.rsp
- #! del $(l)\nanfor.rsp
- !endif
-
-
- /* ----------------------------------------------------------------
-
- Here we set up the test macros if FT_TEST is defined on the
- command line.
-
- A note here: This may look convenient, but in practice you
- wouldn't rebuild a library with all the modules' FT_TEST drivers
- compiled in. Therefore, as librarian, I caution you not to use
- this feature <g>.
-
- If you want to use the demos and tests supplied within #ifdef
- FT_TEST directives, then compile the individual source file
- from the command line, e.g.,:
-
- clipper xbox /n /dFT_TEST
-
- then link from the command line:
-
- rtlink fi xbox
-
- Then you can run XBOX.EXE to see what gives.
-
-
- */
-
-
- !ifdef FT_TEST
- T = /DFT_TEST
- !else
- T =
- !endif
-
- //
- // INFERENCE RULE FOR MASM 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 $(t) $(s)\$*,$(o)\$*;
- echo -+$(o)\$* & >> $(l)\nanfor.rsp
-
- // inference rule for c files
-
- .C.OBJ:
- $(mc)\cl /AL /Gs /FPa /Ox /Zl /c $(t) /Fo$(o)\$* $(s)\$*.c
- echo -+$(o)\$* & >> $(l)\nanfor.rsp
-
- // inference rule for prg files
-
- .PRG.OBJ:
- $(c5) $(s)\$* /m /l /n /r /w $(t) /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)\ORIGIN.OBJ : $(s)\ORIGIN.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)\DEFAULT.OBJ : $(s)\DEFAULT.ASM
- $(o)\DIRFUNC.OBJ : $(s)\DIRFUNC.ASM
- $(o)\INP.OBJ : $(s)\INP.ASM
- $(o)\ISPRINT.OBJ : $(s)\ISPRINT.ASM
- $(o)\MKDIR.OBJ : $(s)\MKDIR.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)\SHADOW.OBJ : $(s)\SHADOW.ASM
- $(o)\TMENU.OBJ : $(s)\TMENU.ASM $(s)\TMENU.INC
-
- !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 $(s)\FTTEXT.H
- $(o)\GETENVRN.OBJ : $(s)\GETENVRN.C
- $(o)\NUMLOCK.OBJ : $(s)\NUMLOCK.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)\ATPROMPT.OBJ : $(s)\ATPROMPT.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)\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)\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
-