1cymake(1) BSD General Commands Manual cymake(1)
2
4 cymake, cymake-0.9.11 — A make like build tool for Curry programs.
5
7 cymake [option ...] target ...
8
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
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
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
126 cyc(1), cyi(1)
127
128BSD June 22, 2019 BSD