Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/src/hmake/HISTORY

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


12-Jan-00:
	This file is getting very out-of-date.  There have been numerous
	improvements, bugfixes, and so on since the last entry.  hmake
	now works with all Haskell compilers, including ghc, hbc, and
	nhc98.  It is thus distributed separately from the nhc98 compiler
	now.

13-Jun-98:
	A major overhaul of everything.  The script now uses /bin/sh instead
	of tcsh, and recognises a better set of options.  The programs NhcMk
	and Older now compile cleanly with nhc13.  I have added an option to
	search for (and generate) object files in a separate target directory.
	I have added a simple parser for cpp-directives in source files, as
	these can alter which `import' lines are seen.

30-Oct-97:
	Files with a .gc extension are now recognised (they use the GreenCard
	preprocessor) and treated as normal .hs files.  (nhc13 does the
	actual pre-processing, but nhc13make extracts the import declarations.)

5-Mar-96:
	If the interface files is taken from a directory specified
        with -I ocr -P, then the corresponding object file is also
        taken from that directory. This didn't work before

6-June-94:
       	nhcmake now use different environment variables for binaries
	and interface files.

29-Mar-94:
	nhcmake can now be compiled with either hbc or nhc. The flag
	-O is changed to -D.

20-Feb-94:
        hbcmake/lmlmake is translated into Haskell and changed so that it compiles
        under nhc. A lot of the extra bells and whistles are removed and the default 
        compiler is nhc. NhcMk make works both under RISC OS and (with the flagg -unix)
        under Unix.

17-Nov-93:
        hbcmake now uses the script "hbcmakehbc" to compile. The script
        allows per file compilation flags to be specified in the file "Flags".

28-Oct-93:
        LDFLAGS are now extracted from Makefile too.
        All flags found in the environment variables LDFLAGS and
        HBCFLAGS/LMLFLAGS, in a Makefile, and on the
        command line are now passed to the compiler/linker.
        An environment variable can no longer be used to override
        Makefile definitions.
        Man pages updated.

13-Oct-93:
        Some small updates to the man pages.
        Improved extraction of LMLFLAGS/HBCFLAGS from Makefile.

11-Oct-93:
        Changed cmds.m to generate commands for sh instead of csh. This
        solves a problem with very long `quotes`.
        Changed hbcmake/lmlmake scripts to run output from lmlmk through
        sh instead of csh.

13-Jul-93:
        Added some new environment variables: HBC & LMLC to specify alternate
        compilers to hbc and lmlc; LMLMK_CONFIG to make it possible to compile
        languages other than Haskell/LML. Set it to
                
                s_ext:ls_ext:i_ext:inc:comp:compflags:pathvar
        
        where s_ext is the source file extension
              ls_ext is the extension for literate style source files
              i_ext is the interface file extension
              inc specifies how to extract dependencies (haskell or cpp)
              compflags specifies compiler flags to use
              pathvar is the name of an env var containg the include path
        
        The two configs for LML and Haskell built in to lmlmk are:

                .m:.lm:.t:cpp:lmlc:LMLFLAGS:LMLINCPATH
                .hs:.lhs:.hi:haskell:hbc:HBCFLAGS:HBCINCPATH

1-Mar-93:
        lmlmake used to die with "Fail: hd on []" if a ".t" file without a
        corresponding ".m" file was encountered.
        Now it doesn't die anymore, but instead it tries to compile the
        ".t" file. (Harmless, but should be fixed.)

22-Jan-93:
        Corrected what directories are searched when compiling a file that
        is not in the current directory. Hope I got it right this time.
        E.g.    lmlxmake -Ifoo bar/main.m
                        main.m: #include "sub.t" -- searches bar and foo

17-Jan-93:
        New flag: -strip to produce a stripped executable
        New flag: -o name to specify the name of the executable

8-Jan-93:
        Corrected what directories are searched when compiling a file that
        is not in the current directory.
        E.g.    lmlxmake -Ifoo bar/main.m
                        main.m: #include "sub.t" -- searches bar and bar/foo
        E.g.    lmlxmake -I/foo bar/main.m
                        main.m: #include "sub.t" -- searches bar and /foo

25-Jul-92:
        LMLINCLUDE env var now used internally only. Setting it from outside
        has no effect.

24-Jul-92:
        Included ".h" files are now checked for further depencencies (applies
        only to LML programs).
        Support for -I flag and a new env variable LMLINCLUDE added.

23-Apr-92:
        hbcmake is now aware of that modules can be imported from hbc_libraries.
        If a module isn't found in the current directory, but found in the
        library, it is ignored and assumed to be linked in automatically.
        -i flag added to hbcmake, works as for hbc & lmlc.
        hbcmake and lmlmk uses HBCINCPATH.
        lmlmk uses LMLINCPATH when compiling LML programs.

12-Mar-92:
        Fast hack: you can now put the word "lmlmake_ignore" after an include
        directive to tell lmlmake to ignore the dependence on that module.
        (You have to include the appropriate object files in LDFLAGS)

25-Feb-92:
        lmlmk now works better in the presence of links (inode numbers are used
        to identify source files). When two links refer to the same file, one of
        them is ignored. This means that only one .o and one .t file is created
        and this can cause problems! (To be fixed)

12-Feb-92:
        lmlmk now adds $LDFLAGS at end of link commands. -l args handled in
        lmlmake/hbcmake script by adding them to LDFLAGS.
        lmlmk now generates commands to compile independent modules in parallel
        if env var PARALLEL is set.

8-Jan-92:
        New script file hbcmake to compile Haskell programs.
        lmlmk uses environment variable LMLMK_LANG, which can be set
        to "lml" or "hbc".

7-Jan-92:
        Fixed two bugs in the parsing of file names. One caused names like
        "../../papp/tstmenu" to parsed as a file called "../." with the
        extension "/papp/tstmenu". The other caused "../../x" and "./../x"
        to be treated as equal to "x".

27-Dec-91: first release

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].