1cymake(1)                 BSD General Commands Manual                cymake(1)
2

NAME

4     cymake, cymake-0.9.11 — A make like build tool for Curry programs.
5

SYNOPSIS

7     cymake [option ...] target ...
8

DESCRIPTION

10     cymake is a make(1) like tool for compiling Curry programs. Dependencies
11     are automatically extracted from the source files; there is no need to
12     construct or maintain a Makefile.
13
14     cymake accepts options and file names on the command line in an arbitrary
15     order. The file arguments determine what to compile. If target is the
16     name of an executable (i.e. it has no extension), target.lcurry or
17     target.curry is assumed to contain the main module of the program. All
18     modules it depends on are compiled (if necessary) and linked to an exe‐
19     cutable. If target is the name of a source module (i.e. it ends in
20     .lcurry or .curry or an object module (i.e. it ends in .o) then the
21     object file for that module is generated. Archive files and shared
22     libraries (i.e. files ending with .a, .so, .dylib, or .dll) are not tar‐
23     gets, but passed as additional arguments to the linker.
24
25     cymake allows several programs to reside in the same directory. Modules
26     can be shared between several programs. Directories to search for modules
27     can be specified with the -i flag, in the same way as for cyc(1).  In
28     addition, directories which are searched for interfaces of library mod‐
29     ules can be specified with the -P flag.
30
31     cymake correctly handles the fact that the Curry compiler generates two
32     files, an object file and an interface file, for each module compiled.
33
34   Options
35     cymake understands the following options:
36
37     -n       No execution mode. Print commands but do not execute them.
38
39     -q       Quiet mode. Do not print commands before executing them.
40
41     -M       Output a Makefile compatible dependency list on the standard
42              output.
43
44     --find   For each command line target t, cymake will print a line of the
45              form t: f, where f is the name of the source or interface file
46              corresponding to t.  If t is a module name, cymake will look for
47              the source or interface file first in the current directory and
48              then along the search path. If no file is found, f is empty.
49
50     -a       Always link the executable, even if it is not out of date with
51              respect to its object files. This is useful if only the goal to
52              be evaluated by the program is changed.
53
54     -e goal  Evaluate goal instead of function main.  This option cannot be
55              used when compiling more than one module.
56
57     -T goal  Compute the type of goal.  This option cannot be used when com‐
58              piling more than one module.
59
60     --debug  Compile the program for use with the debugger. As object files
61              compiled with --debug cannot be linked with object files com‐
62              piled without --debug, cymake uses the suffix .d.o instead of .o
63              for object files when this option is specified.
64
65     -i dir   Add directory dir to the list of paths used to locate imported
66              modules. By default, the compiler searches only the current
67              directory for source files. Note that the current directory is
68              always searched first.
69
70              The directory dir is also added to the list of paths used to
71              locate C header files, as if -I dir was present on the command
72              line.
73
74     -P dir   Add directory dir to the list of paths used to locate interface
75              files for library modules. By default, the compiler searches for
76              interface files in its standard library directory
77              /usr/lib64/curry-0.9.11.
78
79              The directory dir is also added to the lists of paths used to
80              locate C header files and libraries, respectively, as if -I dir
81              and -L dir were present on the command line.
82
83              The compiler scans the directories specified with -P before the
84              installation directory; thus, it is possible to hide the inter‐
85              faces of the standard library by using this option.
86
87     -o file  Puts the executable file in file.  This option cannot be used
88              when compiling more than one module. This option is ignored if
89              compiling to an object file.
90
91     --clean  Remove all compiled files for a program. If specified in con‐
92              junction with --debug only the object files for the debugger,
93              i.e. with suffix .d.o, are removed.
94     Most other flags are assumed to be compiler options and are passed to cyc
95     when compiling and linking modules.
96

ENVIRONMENT

98     CURRY_PATH
99              The environment variable CURRY_PATH is used to locate the auxil‐
100              iary executables used by cymake.  The default value is
101              /usr/lib64/curry-0.9.11.
102
103     CURRY_IMPORT_PATH
104     CURRY_INCLUDE_PATH
105     CURRY_LIBRARY_PATH
106              The environment variables CURRY_IMPORT_PATH, CURRY_INCLUDE_PATH,
107              and CURRY_LIBRARY_PATH contain colon-separated lists of directo‐
108              ries that are searched for imported interfaces, included header
109              files, and library files, respectively. Their default value is
110              $CURRY_PATH.
111

FILES

113     /usr/bin/cyc-0.9.11
114              The Curry compiler.
115
116     /usr/lib64/curry-0.9.11/cymk
117              Dependency generator for Curry programs.
118
119     /usr/lib64/curry-0.9.11/newer
120              Helper program to determine if a target of out of date.
121
122     /usr/lib64/curry-0.9.11/*.icurry
123              Interface files for the standard library.
124

SEE ALSO

126     cyc(1), cyi(1)
127
128BSD                              June 22, 2019                             BSD
Impressum