The Makefile
The BDL modules and forms used by the application in this chapter can be compiled and linked in Genero Studio using the Application-level Execute or Build options. If you prefer command line tools you can compile and link using a Makefile. This file is interpreted by the make utility, which is a well-known tool to build large programs based on multiple sources and forms.
The make utility reads the dependency rules defined in the Makefile for each program component, and executes the commands associated with the rules.
This section only describes the Makefile used in this example. For more details about Makefiles, see Using makefiles in the Genero Business Development Language User Guide.
01 all:: orders
02
03 orders.42m: orders.4gl
04 fglcomp -M orders.4gl
05
06 orderform.42f: orderform.per
07 fglform -M orderform.per
08
09 custlist.42m: custlist.4gl
10 fglcomp -M custlist.4gl
11
12 custlist.42f: custlist.per
13 fglform -M custlist.per
14
15 stocklist.42m: stocklist.4gl
16 fglcomp -M stocklist.4gl
17
18 stocklist.42f: stocklist.per
19 fglform -M stocklist.per
20
21 MODULES=\
22 orders.42m\
23 custlist.42m\
24 stocklist.42m
25
26 FORMS=\
27 orderform.42f\
28 custlist.42f\
29 stocklist.42f
30
31 orders:: $(MODULES) $(FORMS)
32 fgllink -o orders.42r $(MODULES)
33
34 run::
35 fglrun orders
36
37 clean::
38 rm -f *.42?- Line
01defines thealldependency rule that will be executed by default, and depends from the ruleordersdescribed on line31. You execute this rule with make all , or make since this is the first rule in the Makefile. - Lines
03and04define a dependency to compile the orders.4gl module into orders.42m. The file on the left (orders.42m) depends from the file on the right ( orders.4gl ), and the command to be executed is fglcomp -M orders.4gl . - Lines
06and07define a dependency to compile the orderform.per form. - Lines
09and10define a dependency to compile the custlist.4gl module. - Lines
12and13define a dependency to compile the custlist.per form. - Lines
15and16define a dependency to compile the stocklist.4gl module. - Lines
18and19define a dependency to compile the stocklist.per form. - Lines
21thru24define the list of compiled modules, used in the globalordersdependency rule. - Lines
26thru29define the list of compiled form files, used in the globalordersdependency rule. - Lines
31and32is the global 'orders' dependency rule, defining modules or form files to be created. - Lines
34and35define a rule and command to execute the program. You execute this rule with make run. - Lines
37and38define a rule and command to clean the directory. You execute this rule with make clean.