dvadura@watdragon.waterloo.edu (Dennis Vadura) (12/01/90)
#!/bin/sh
# this is part 5 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
# file dmake-3.6-patch2 continued
#
CurArch=5
if test ! -r s2_seq_.tmp
then echo "Please unpack part 1 first!"
exit 1; fi
( read Scheck
if test "$Scheck" != $CurArch
then echo "Please unpack part $Scheck next!"
exit 1;
else exit 0; fi
) < s2_seq_.tmp || exit 1
sed 's/^X//' << 'SHAR_EOF' >> dmake-3.6-patch2
XX
XX .SWAP Under MSDOS when making a target with this
XX attribute set swap the dmake executable to disk
XX! prior to executing the recipe line. Also see
XX! the '%' recipe line flag defined in the RECIPES
XX! section.
XX
XX .SYMBOL Target is a library member and is an entry point
XX into a module in the library. This attribute is
XX***************
XX*** 632,643 ****
XX all targets in the makefile (this is equivalent to the com-
XX mon Make construct of ".IGNORE :" but has been modified to
XX the notion of an attribute instead of a special target).
XX- Not all of the attributes have global meaning. In particu-
XX- lar, .LIBRARY, .SYMBOL, and .UPDATEALL have no assigned
XX
XX
XX
XX! Version 3.50 UW 10
XX
XX
XX
XX--- 634,643 ----
XX all targets in the makefile (this is equivalent to the com-
XX mon Make construct of ".IGNORE :" but has been modified to
XX the notion of an attribute instead of a special target).
XX
XX
XX
XX! Version 3.60 UW 10
XX
XX
XX
XX***************
XX*** 646,652 ****
XX
XX
XX
XX! global meaning.
XX
XX Any attribute may be used with any target, even with the
XX special targets. Some combinations are useless (e.g.
XX--- 646,654 ----
XX
XX
XX
XX! Not all of the attributes have global meaning. In particu-
XX! lar, .LIBRARY, .SYMBOL, and .UPDATEALL have no assigned glo-
XX! bal meaning.
XX
XX Any attribute may be used with any target, even with the
XX special targets. Some combinations are useless (e.g.
XX***************
XX*** 696,707 ****
XX Macro expressions specified on the command line allow the
XX macro value to be redefined within the makefile only if the
XX macro is defined using the '+=' and '+:=' operators. Other
XX- operators will define a macro that cannot be further modi-
XX- fied.
XX
XX
XX
XX! Version 3.50 UW 11
XX
XX
XX
XX--- 698,707 ----
XX Macro expressions specified on the command line allow the
XX macro value to be redefined within the makefile only if the
XX macro is defined using the '+=' and '+:=' operators. Other
XX
XX
XX
XX! Version 3.60 UW 11
XX
XX
XX
XX***************
XX*** 710,715 ****
XX--- 710,718 ----
XX
XX
XX
XX+ operators will define a macro that cannot be further modi-
XX+ fied.
XX+
XX When dmake defines a non-environment macro it strips leading
XX and trailing white space from the macro value. Macros
XX imported from the environment via either the .IMPORT special
XX***************
XX*** 758,771 ****
XX Macro variables may be defined within the makefile, on the
XX command line, or imported from the environment.
XX
XX- dmake supports several non-standard macro expansions: The
XX- first is of the form:
XX
XX
XX
XX
XX!
XX! Version 3.50 UW 12
XX
XX
XX
XX--- 761,771 ----
XX Macro variables may be defined within the makefile, on the
XX command line, or imported from the environment.
XX
XX
XX
XX
XX
XX! Version 3.60 UW 12
XX
XX
XX
XX***************
XX*** 774,779 ****
XX--- 774,782 ----
XX
XX
XX
XX+ dmake supports several non-standard macro expansions: The
XX+ first is of the form:
XX+
XX $(macro_name:modifier_list:modifier_list:...)
XX
XX where modifier_list is chosen from the set { D or d, F or f,
XX***************
XX*** 823,835 ****
XX The second non-standard form of macro expansion allows for
XX recursive macros. It is possible to specify a $(macro_name)
XX or ${macro_name} expansion where macro_name contains more $(
XX- ... ) or ${ ... } macro expansions itself.
XX
XX
XX
XX!
XX!
XX! Version 3.50 UW 13
XX
XX
XX
XX--- 826,835 ----
XX The second non-standard form of macro expansion allows for
XX recursive macros. It is possible to specify a $(macro_name)
XX or ${macro_name} expansion where macro_name contains more $(
XX
XX
XX
XX! Version 3.60 UW 13
XX
XX
XX
XX***************
XX*** 838,843 ****
XX--- 838,845 ----
XX
XX
XX
XX+ ... ) or ${ ... } macro expansions itself.
XX+
XX For example $(CC$(_HOST)$(_COMPILER)) will first expand
XX CC$(_HOST)$(_COMPILER) to get a result and use that result
XX as the name of the macro to expand. This is useful for
XX***************
XX*** 872,878 ****
XX test/{f1 f2}.o --> test/f1.o test/f2.o
XX test/ {f1 f2}.o --> test/ f1.o f2.o
XX test/{f1 f2} .o --> test/f1 test/f2 .o
XX! test/{ --> test/f1.o test/.o
XX
XX and
XX
XX--- 874,880 ----
XX test/{f1 f2}.o --> test/f1.o test/f2.o
XX test/ {f1 f2}.o --> test/ f1.o f2.o
XX test/{f1 f2} .o --> test/f1 test/f2 .o
XX! test/{ "f1" "" }.o --> test/f1.o test/.o
XX
XX and
XX
XX***************
XX*** 887,899 ****
XX RULES AND TARGETS
XX A makefile contains a series of entries that specify depen-
XX dencies. Such entries are called target/prerequisite or
XX! rule definitions. Each rule definition is optionally fol-
XX! lowed by a set of lines that provide a recipe for updating
XX! any targets defined by the rule. Whenever dmake attempts to
XX
XX
XX
XX! Version 3.50 UW 14
XX
XX
XX
XX--- 889,899 ----
XX RULES AND TARGETS
XX A makefile contains a series of entries that specify depen-
XX dencies. Such entries are called target/prerequisite or
XX! rule definitions. Each rule definition is optionally
XX
XX
XX
XX! Version 3.60 UW 14
XX
XX
XX
XX***************
XX*** 902,911 ****
XX
XX
XX
XX! bring a target up to date and an explicit recipe is provided
XX! with a rule defining the target, that recipe is used to
XX! update the target. A rule definition begins with a line
XX! having the following syntax:
XX
XX <targets> [<attributes>] <ruleop> [<prerequisites>] [;<recipe>]
XX
XX--- 902,913 ----
XX
XX
XX
XX! followed by a set of lines that provide a recipe for updat-
XX! ing any targets defined by the rule. Whenever dmake
XX! attempts to bring a target up to date and an explicit recipe
XX! is provided with a rule defining the target, that recipe is
XX! used to update the target. A rule definition begins with a
XX! line having the following syntax:
XX
XX <targets> [<attributes>] <ruleop> [<prerequisites>] [;<recipe>]
XX
XX***************
XX*** 951,963 ****
XX the specified targets. In general, it is not useful to
XX specify ^ with an empty list of prerequisites.
XX
XX- - says to clear the previous list of prerequisites before
XX- adding the new prerequisites. Thus,
XX
XX
XX
XX
XX! Version 3.50 UW 15
XX
XX
XX
XX--- 953,963 ----
XX the specified targets. In general, it is not useful to
XX specify ^ with an empty list of prerequisites.
XX
XX
XX
XX
XX
XX! Version 3.60 UW 15
XX
XX
XX
XX***************
XX*** 966,971 ****
XX--- 966,974 ----
XX
XX
XX
XX+ - says to clear the previous list of prerequisites before
XX+ adding the new prerequisites. Thus,
XX+
XX .SUFFIXES :
XX .SUFFIXES : .a .b
XX
XX***************
XX*** 1015,1027 ****
XX
XX Targets defined using a single `:' operator with a recipe
XX may be redefined again with a new recipe by using a `:'
XX- operator with a `:' modifier. This is equivalent to a tar-
XX- get having been initially defined with a rule using a `:'
XX- modifier. Once a target is defined using a `:' modifier it
XX
XX
XX
XX! Version 3.50 UW 16
XX
XX
XX
XX--- 1018,1027 ----
XX
XX Targets defined using a single `:' operator with a recipe
XX may be redefined again with a new recipe by using a `:'
XX
XX
XX
XX! Version 3.60 UW 16
XX
XX
XX
XX***************
XX*** 1030,1035 ****
XX--- 1030,1038 ----
XX
XX
XX
XX+ operator with a `:' modifier. This is equivalent to a tar-
XX+ get having been initially defined with a rule using a `:'
XX+ modifier. Once a target is defined using a `:' modifier it
XX may not be defined again with a recipe using only the `:'
XX operator with no `:' modifier. In both cases the use of a
XX `:' modifier creates a new list of prerequisites and makes
XX***************
XX*** 1074,1091 ****
XX when dmake tries to make the target and fails. This silence
XX is maintained for rules that are terminated by a semicolon
XX and have no following recipe lines, for targets listed on
XX! the command line, and for the first target found in the
XX! makefile.
XX
XX- RECIPES
XX- The traditional format used by most versions of Make defines
XX- the recipe lines as arbitrary strings that may contain macro
XX- expansions. They follow a rule definition line and may be
XX- spaced apart by comment or blank lines. The list of recipe
XX
XX
XX!
XX! Version 3.50 UW 17
XX
XX
XX
XX--- 1077,1091 ----
XX when dmake tries to make the target and fails. This silence
XX is maintained for rules that are terminated by a semicolon
XX and have no following recipe lines, for targets listed on
XX! the command line, for the first target found in the
XX! makefile, and for any target having no recipe but containing
XX! a list of prerequisites (see the COMPATIBILITY section for
XX! an exception to this rule if AUGMAKE special target handling
XX! is enabled).
XX
XX
XX
XX! Version 3.60 UW 17
XX
XX
XX
XX***************
XX*** 1094,1099 ****
XX--- 1094,1104 ----
XX
XX
XX
XX+ RECIPES
XX+ The traditional format used by most versions of Make defines
XX+ the recipe lines as arbitrary strings that may contain macro
XX+ expansions. They follow a rule definition line and may be
XX+ spaced apart by comment or blank lines. The list of recipe
XX lines defining the recipe is terminated by a new target
XX definition, a macro definition, or end-of-file. Each recipe
XX line MUST begin with a <TAB> character which may optionally
XX***************
XX*** 1141,1155 ****
XX target :
XX [
XX first recipe line
XX- second recipe line
XX- all of these recipe lines are fed to a
XX- single copy of a shell for execution.
XX- ]
XX
XX
XX
XX!
XX! Version 3.50 UW 18
XX
XX
XX
XX--- 1146,1155 ----
XX target :
XX [
XX first recipe line
XX
XX
XX
XX! Version 3.60 UW 18
XX
XX
XX
XX***************
XX*** 1158,1163 ****
XX--- 1158,1169 ----
XX
XX
XX
XX+ second recipe line
XX+ all of these recipe lines are fed to a
XX+ single copy of a shell for execution.
XX+ ]
XX+
XX+
XX TEXT DIVERSIONS
XX dmake supports the notion of text diversions. If a recipe
XX line contains the macro expression
XX***************
XX*** 1172,1178 ****
XX
XX data can be any text and must be separated from the 'mktmp'
XX portion of the macro name by white-space. The only restric-
XX! tion on the data text is that it must contain an balanced
XX number of parentheses of the same kind as are used to ini-
XX tiate the $(mktmp ...) expression. For example:
XX
XX--- 1178,1184 ----
XX
XX data can be any text and must be separated from the 'mktmp'
XX portion of the macro name by white-space. The only restric-
XX! tion on the data text is that it must contain a balanced
XX number of parentheses of the same kind as are used to ini-
XX tiate the $(mktmp ...) expression. For example:
XX
XX***************
XX*** 1188,1202 ****
XX
XX ${mktmp text (to dump to file}
XX
XX! which works as expected. Since the temporary file is opened
XX! when the macro containg the text diversion expression is
XX! expanded, diversions may now be nested and any diversions
XX! that are created as part of ':=' macro expansions persist
XX! for the duration of the dmake run. The diversion text may
XX! contain the same escape codes as those described in the MAC-
XX! ROS section. Thus if the data text is to contain new lines
XX! they must be inserted using the \n escape sequence. For
XX! example the expression:
XX
XX all:
XX cat $(mktmp this is a\n\
XX--- 1194,1207 ----
XX
XX ${mktmp text (to dump to file}
XX
XX! Since the temporary file is opened when the macro containg
XX! the text diversion expression is expanded, diversions may
XX! now be nested and any diversions that are created as part of
XX! ':=' macro expansions persist for the duration of the dmake
XX! run. The diversion text may contain the same escape codes
XX! as those described in the MACROS section. Thus if the data
XX! text is to contain new lines they must be inserted using the
XX! \n escape sequence. For example the expression:
XX
XX all:
XX cat $(mktmp this is a\n\
XX***************
XX*** 1206,1219 ****
XX
XX cat /tmp/mk12294AA
XX
XX- where the temporary file contains two lines both of which
XX- are terminated by a new-line. If the data text spans multi-
XX- ple lines in the makefile then each line must be continued
XX- via the use of a \. A second more illustrative example
XX
XX
XX!
XX! Version 3.50 UW 19
XX
XX
XX
XX--- 1211,1219 ----
XX
XX cat /tmp/mk12294AA
XX
XX
XX
XX! Version 3.60 UW 19
XX
XX
XX
XX***************
XX*** 1222,1228 ****
XX
XX
XX
XX! generates a response file to an MSDOS link command:
XX
XX OBJ = fred.obj mary.obj joe.obj
XX all : $(OBJ)
XX--- 1222,1232 ----
XX
XX
XX
XX! where the temporary file contains two lines both of which
XX! are terminated by a new-line. If the data text spans multi-
XX! ple lines in the makefile then each line must be continued
XX! via the use of a \. A second more illustrative example gen-
XX! erates a response file to an MSDOS link command:
XX
XX OBJ = fred.obj mary.obj joe.obj
XX all : $(OBJ)
XX***************
XX*** 1271,1283 ****
XX to the appropriate value based on the current shell and
XX whether it will be used to execute the recipe.
XX
XX- Previous versions of dmake defined text diversions using <+,
XX- +> strings, where <+ started a text diversion and +> ter-
XX- minated one. dmake is backward compatible with this
XX
XX
XX!
XX! Version 3.50 UW 20
XX
XX
XX
XX--- 1275,1283 ----
XX to the appropriate value based on the current shell and
XX whether it will be used to execute the recipe.
XX
XX
XX
XX! Version 3.60 UW 20
XX
XX
XX
XX***************
XX*** 1286,1294 ****
XX
XX
XX
XX! construct if the <+ and +> appear literally on the same
XX! recipe line or in the same macro value string. In such
XX! instances the expression:
XX
XX <+data text+>
XX
XX--- 1286,1297 ----
XX
XX
XX
XX! Previous versions of dmake defined text diversions using <+,
XX! +> strings, where <+ started a text diversion and +> ter-
XX! minated one. dmake is backward compatible with this con-
XX! struct if the <+ and +> appear literally on the same recipe
XX! line or in the same macro value string. In such instances
XX! the expression:
XX
XX <+data text+>
XX
XX***************
XX*** 1335,1347 ****
XX .IMPORT Prerequisite names specified for this target
XX are searched for in the environment and
XX defined as macros with their value taken from
XX- the environment. If the name cannot be found
XX- in the environment an error message is issued.
XX- .IMPORT accepts the .IGNORE attribute. When
XX
XX
XX
XX! Version 3.50 UW 21
XX
XX
XX
XX--- 1338,1347 ----
XX .IMPORT Prerequisite names specified for this target
XX are searched for in the environment and
XX defined as macros with their value taken from
XX
XX
XX
XX! Version 3.60 UW 21
XX
XX
XX
XX***************
XX*** 1350,1355 ****
XX--- 1350,1358 ----
XX
XX
XX
XX+ the environment. If the name cannot be found
XX+ in the environment an error message is issued.
XX+ .IMPORT accepts the .IGNORE attribute. When
XX given, it causes dmake to ignore the above
XX error. See the MACROS section for a descrip-
XX tion of the processing of imported macro
XX***************
XX*** 1399,1411 ****
XX .SOURCE The prerequisite list of this target defines a
XX set of directories to check when trying to
XX locate a target file name. See the section on
XX- BINDING of targets for more information.
XX
XX
XX
XX!
XX!
XX! Version 3.50 UW 22
XX
XX
XX
XX--- 1402,1411 ----
XX .SOURCE The prerequisite list of this target defines a
XX set of directories to check when trying to
XX locate a target file name. See the section on
XX
XX
XX
XX! Version 3.60 UW 22
XX
XX
XX
XX***************
XX*** 1414,1419 ****
XX--- 1414,1421 ----
XX
XX
XX
XX+ BINDING of targets for more information.
XX+
XX .SOURCE.suff The same as .SOURCE, except that the
XX .SOURCE.suff list is searched first when try-
XX ing to locate a file matching the a target
XX***************
XX*** 1467,1475 ****
XX
XX
XX
XX!
XX!
XX! Version 3.50 UW 23
XX
XX
XX
XX--- 1469,1475 ----
XX
XX
XX
XX! Version 3.60 UW 23
XX
XX
XX
XX***************
XX*** 1533,1539 ****
XX
XX
XX
XX! Version 3.50 UW 24
XX
XX
XX
XX--- 1533,1539 ----
XX
XX
XX
XX! Version 3.60 UW 24
XX
XX
XX
XX***************
XX*** 1597,1603 ****
XX
XX
XX
XX! Version 3.50 UW 25
XX
XX
XX
XX--- 1597,1603 ----
XX
XX
XX
XX! Version 3.60 UW 25
XX
XX
XX
XX***************
XX*** 1661,1667 ****
XX
XX
XX
XX! Version 3.50 UW 26
XX
XX
XX
XX--- 1661,1667 ----
XX
XX
XX
XX! Version 3.60 UW 26
XX
XX
XX
XX***************
XX*** 1725,1731 ****
XX
XX
XX
XX! Version 3.50 UW 27
XX
XX
XX
XX--- 1725,1731 ----
XX
XX
XX
XX! Version 3.60 UW 27
XX
XX
XX
XX***************
XX*** 1789,1795 ****
XX
XX
XX
XX! Version 3.50 UW 28
XX
XX
XX
XX--- 1789,1795 ----
XX
XX
XX
XX! Version 3.60 UW 28
XX
XX
XX
XX***************
XX*** 1853,1859 ****
XX
XX
XX
XX! Version 3.50 UW 29
XX
XX
XX
XX--- 1853,1859 ----
XX
XX
XX
XX! Version 3.60 UW 29
XX
XX
XX
XX***************
XX*** 1917,1923 ****
XX
XX
XX
XX! Version 3.50 UW 30
XX
XX
XX
XX--- 1917,1923 ----
XX
XX
XX
XX! Version 3.60 UW 30
XX
XX
XX
XX***************
XX*** 1981,1987 ****
XX
XX
XX
XX! Version 3.50 UW 31
XX
XX
XX
XX--- 1981,1987 ----
XX
XX
XX
XX! Version 3.60 UW 31
XX
XX
XX
XX***************
XX*** 2045,2051 ****
XX
XX
XX
XX! Version 3.50 UW 32
XX
XX
XX
XX--- 2045,2051 ----
XX
XX
XX
XX! Version 3.60 UW 32
XX
XX
XX
XX***************
XX*** 2109,2115 ****
XX
XX
XX
XX! Version 3.50 UW 33
XX
XX
XX
XX--- 2109,2115 ----
XX
XX
XX
XX! Version 3.60 UW 33
XX
XX
XX
XX***************
XX*** 2173,2179 ****
XX
XX
XX
XX! Version 3.50 UW 34
XX
XX
XX
XX--- 2173,2179 ----
XX
XX
XX
XX! Version 3.60 UW 34
XX
XX
XX
XX***************
XX*** 2237,2243 ****
XX
XX
XX
XX! Version 3.50 UW 35
XX
XX
XX
XX--- 2237,2243 ----
XX
XX
XX
XX! Version 3.60 UW 35
XX
XX
XX
XX***************
XX*** 2301,2307 ****
XX
XX
XX
XX! Version 3.50 UW 36
XX
XX
XX
XX--- 2301,2307 ----
XX
XX
XX
XX! Version 3.60 UW 36
XX
XX
XX
XX***************
XX*** 2365,2371 ****
XX
XX
XX
XX! Version 3.50 UW 37
XX
XX
XX
XX--- 2365,2371 ----
XX
XX
XX
XX! Version 3.60 UW 37
XX
XX
XX
XX***************
XX*** 2429,2435 ****
XX
XX
XX
XX! Version 3.50 UW 38
XX
XX
XX
XX--- 2429,2435 ----
XX
XX
XX
XX! Version 3.60 UW 38
XX
XX
XX
XX***************
XX*** 2493,2499 ****
XX
XX
XX
XX! Version 3.50 UW 39
XX
XX
XX
XX--- 2493,2499 ----
XX
XX
XX
XX! Version 3.60 UW 39
XX
XX
XX
XX***************
XX*** 2557,2563 ****
XX
XX
XX
XX! Version 3.50 UW 40
XX
XX
XX
XX--- 2557,2563 ----
XX
XX
XX
XX! Version 3.60 UW 40
XX
XX
XX
XX***************
XX*** 2621,2627 ****
XX
XX
XX
XX! Version 3.50 UW 41
XX
XX
XX
XX--- 2621,2627 ----
XX
XX
XX
XX! Version 3.60 UW 41
XX
XX
XX
XX***************
XX*** 2685,2691 ****
XX
XX
XX
XX! Version 3.50 UW 42
XX
XX
XX
XX--- 2685,2691 ----
XX
XX
XX
XX! Version 3.60 UW 42
XX
XX
XX
XX***************
XX*** 2707,2716 ****
XX correctly.
XX
XX 5. When defining special targets for the inference
XX! rules and the AUGMAKE special target mapping is
XX enabled then the special target .X is equivalent to
XX the %-rule "% : %.X".
XX
XX LIMITS
XX In some environments the length of an argument string is
XX restricted. (e.g. MSDOS command line arguments cannot be
XX--- 2707,2732 ----
XX correctly.
XX
XX 5. When defining special targets for the inference
XX! rules and the AUGMAKE special target handling is
XX enabled then the special target .X is equivalent to
XX the %-rule "% : %.X".
XX
XX+ 6. Makefiles that utilize virtual targets to force mak-
XX+ ing of other targets work as expected if AUGMAKE
XX+ special target handling is enabled. For example:
XX+
XX+ FRC:
XX+ myprog.o : myprog.c $(FRC) ; ...
XX+
XX+ Works as expected if you issue the command
XX+
XX+ 'dmake -A FRC=FRC'
XX+
XX+ but fails with a 'don't know how to make FRC' error
XX+ message if you do not specify AUGMAKE special target
XX+ handling via the -A flag (or by setting AUGMAKE:=yes
XX+ internally).
XX+
XX LIMITS
XX In some environments the length of an argument string is
XX restricted. (e.g. MSDOS command line arguments cannot be
XX***************
XX*** 2730,2735 ****
XX--- 2746,2763 ----
XX example the same make script can be used for SYSV and BSD
XX but with different macro definitions.
XX
XX+
XX+
XX+
XX+ Version 3.60 UW 43
XX+
XX+
XX+
XX+
XX+ DMAKE(p) Unsupported Software DMAKE(p)
XX+
XX+
XX+
XX To write a makefile that is portable between UNIX and MSDOS
XX requires both features since in almost all cases you will
XX need to define new recipes for making targets. The recipes
XX***************
XX*** 2744,2763 ****
XX Use the .IF ... .ELSE ... .END conditionals to supply dif-
XX ferent make scripts as necessary.
XX
XX-
XX-
XX-
XX-
XX-
XX- Version 3.50 UW 43
XX-
XX-
XX-
XX-
XX- DMAKE(p) Unsupported Software DMAKE(p)
XX-
XX-
XX-
XX FILES
XX Makefile, makefile, startup.mk (use dmake -V to tell you
XX where the startup file is)
XX--- 2772,2777 ----
XX***************
XX*** 2799,2816 ****
XX
XX
XX
XX!
XX!
XX!
XX!
XX!
XX!
XX!
XX!
XX!
XX!
XX!
XX!
XX!
XX!
XX! Version 3.50 UW 44
XX--- 2813,2816 ----
XX
XX
XX
XX! Version 3.60 UW 44
XX*** /u2/dvadura/src/generic/dmake/dmake36-pl2/makefile.mk Tue Oct 30 12:24:08 1990
XX--- makefile.mk Sun Nov 11 16:26:57 1990
XX***************
XX*** 43,48 ****
XX--- 43,56 ----
XX TARGET = dmake$E
XX CFLAGS += -DHELP -I. -Icommon
XX
XX+ # Meta rule for making .o's from .c's (give our own so we can move object
XX+ # to objects directory in a portable, compiler independent way)
XX+ # Define it before the .INCLUDE so that different OS combinations can redefine
XX+ # it.
XX+ %$O : %.c
XX+ %$(CC) -c $(CFLAGS) $<
XX+ mv $(@:f) $(OBJDIR)
XX+
XX # Pull in the proper configuration file, based on the value of OS.
XX .INCLUDE : $(OS)/config.mk
XX
XX***************
XX*** 64,77 ****
XX # Other obvious targets...
XX $(OBJDIR):;+-mkdir $@
XX
XX- # Meta rule for making .o's from .c's (give our own so we can move object
XX- # to objects directory in a portable, compiler independent way)
XX- %$O : %.c
XX- %$(CC) -c $(CFLAGS) $<
XX- mv $(@:f) $(OBJDIR)
XX-
XX # remaining dependencies should be automatically generated
XX sysintf$O : $(OS)/sysintf.h
XX $(OBJECTS) : $(HDR)
XX .SOURCE.h : common
XX
XX--- 72,80 ----
XX # Other obvious targets...
XX $(OBJDIR):;+-mkdir $@
XX
XX # remaining dependencies should be automatically generated
XX sysintf$O : $(OS)/sysintf.h
XX+ ruletab$O : $(OS)/startup.h #khc 01NOV90 - dependency was missing
XX $(OBJECTS) : $(HDR)
XX .SOURCE.h : common
XX
XX***************
XX*** 157,164 ****
XX MS_n = MAKESTARTUP=$(@:s/swp-/-/:s,-,/,:s/scripts/startup.mk/)
XX SH = $(SH_n:s/c40d/cd/:s/c50d/cd/:s/c51d/cd/:s/c60d/cd/)
XX MS = $(MS_n:s/c40d/cd/:s/c50d/cd/:s/c51d/cd/:s/c60d/cd/)
XX
XX! scripts: unix-scripts atari-tos-scripts msdos-scripts
XX
XX # To add a new environment for UNIX, simply create the appropriate entry
XX # in the style below for the macro which contains the OS, OSRELEASE and
XX--- 160,168 ----
XX MS_n = MAKESTARTUP=$(@:s/swp-/-/:s,-,/,:s/scripts/startup.mk/)
XX SH = $(SH_n:s/c40d/cd/:s/c50d/cd/:s/c51d/cd/:s/c60d/cd/)
XX MS = $(MS_n:s/c40d/cd/:s/c50d/cd/:s/c51d/cd/:s/c60d/cd/)
XX+ FIX-SH = $(SH:s,fix/,,)
XX
XX! scripts: unix-scripts atari-tos-scripts msdos-scripts os2-scripts
XX
XX # To add a new environment for UNIX, simply create the appropriate entry
XX # in the style below for the macro which contains the OS, OSRELEASE and
XX***************
XX*** 188,194 ****
XX $(MAKE) SCRIPTFILE=make.sh tos--scripts
XX
XX # We make the standard dos scripts here, but we have to go and fix up the
XX! # make.bat file since it contains names of temporary files for the response
XX # files required by the linker. We need to also construct the response file
XX # contents. These two functions are performed by the fix-msdos-%-scripts
XX # meta-target.
XX--- 192,198 ----
XX $(MAKE) SCRIPTFILE=make.sh tos--scripts
XX
XX # We make the standard dos scripts here, but we have to go and fix up the
XX! # mkXX.bat file since it contains names of temporary files for the response
XX # files required by the linker. We need to also construct the response file
XX # contents. These two functions are performed by the fix-msdos-%-scripts
XX # meta-target.
XX***************
XX*** 208,237 ****
XX msdos-msc60dos-scripts-flags= $(msdos-cf) OSRELEASE=mscdos SWAP=n MSC_VER=6.0
XX msdos-msc60dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=6.0
XX
XX! msdos-scripts: clean tcc-scripts msc-scripts;
XX
XX! tcc-scripts .SWAP :
XX $(MAKE) SCRIPTFILE=mk.bat msdos-tccdos-scripts
XX $(MAKE) SCRIPTFILE=mkswp.bat msdos-tccdosswp-scripts
XX
XX! msc-scripts .SWAP :! 40 50 51 60
XX $(MAKE) SCRIPTFILE=mk$?.bat msdos-msc$?dos-scripts
XX $(MAKE) SCRIPTFILE=mk$?swp.bat msdos-msc$?dosswp-scripts
XX- 40 50 51 60:;
XX
XX msdos-%-scripts .SWAP :
XX $(MAKE) -nus $(MS) $($@-flags) >$(SH)
XX $(MAKE) -s $(MAKEMACROS) $(MS) $($@-flags) fix-msdos-$*-scripts
XX
XX MAPOBJ = obj$(SWAP:s/y/swp/:s/n//).rsp
XX MAPLIB = lib$(SWAP:s/y/swp/:s/n//).rsp
XX OBJRSP = $(SH:s,fix/,,:s,${SCRIPTFILE},${MAPOBJ},)
XX LIBRSP = $(SH:s,fix/,,:s,${SCRIPTFILE},${MAPLIB},)
XX DOSOBJ = $(CSTARTUP) $(OBJDIR)/{$(OBJECTS)}
XX! fix-msdos-%-scripts:
XX sed -e 's,/tmp/mkA..[0-9]*,$(OBJRSP),'\
XX! -e 's,/tmp/mkB..[0-9]*,$(LIBRSP),'\
XX! -e 's,/,\\,g' <$(SH:s,fix/,,) >tmp-out
XX! mv -f tmp-out $(SH:s,fix/,,)
XX mv <+$(DOSOBJ:s,/,\\,:t"+\n")\n+> $(OBJRSP)
XX mv <+$(LDLIBS:s,/,\\,:t"+\n")\n+> $(LIBRSP)
XX--- 212,280 ----
XX msdos-msc60dos-scripts-flags= $(msdos-cf) OSRELEASE=mscdos SWAP=n MSC_VER=6.0
XX msdos-msc60dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=6.0
XX
XX! msdos-scripts: clean msdos-tcc-scripts msdos-msc-scripts;
XX
XX! msdos-tcc-scripts .SWAP :
XX $(MAKE) SCRIPTFILE=mk.bat msdos-tccdos-scripts
XX $(MAKE) SCRIPTFILE=mkswp.bat msdos-tccdosswp-scripts
XX
XX! msdos-msc-scripts .SWAP :! 40 50 51 60
XX $(MAKE) SCRIPTFILE=mk$?.bat msdos-msc$?dos-scripts
XX $(MAKE) SCRIPTFILE=mk$?swp.bat msdos-msc$?dosswp-scripts
XX
XX msdos-%-scripts .SWAP :
XX $(MAKE) -nus $(MS) $($@-flags) >$(SH)
XX $(MAKE) -s $(MAKEMACROS) $(MS) $($@-flags) fix-msdos-$*-scripts
XX
XX+
XX+ # We make the standard OS/2 scripts here, but we have to go and fix up the
XX+ # mkXX.bat file since it contains names of temporary files for the response
XX+ # files required by the linker. We need to also construct the response file
XX+ # contents. These two functions are performed by the fix-msdos-%-scripts
XX+ # meta-target.
XX+ #
XX+ # To add a new OS/2 environment just do what is described for adding a new
XX+ # unix environment, and then make certain that the fix-msdos-%-scripts target
XX+ # performs the correct function for the new environment.
XX+ os2-cf = OS=os2 OSENVIRONMENT=
XX+ os2-msc40dos-scripts-flags= $(os2-cf) OSRELEASE=mscdos SWAP=n MSC_VER=4.0
XX+ os2-msc50dos-scripts-flags= $(os2-cf) OSRELEASE=mscdos SWAP=n MSC_VER=5.0
XX+ os2-msc51dos-scripts-flags= $(os2-cf) OSRELEASE=mscdos SWAP=n MSC_VER=5.1
XX+ os2-msc60dos-scripts-flags= $(os2-cf) OSRELEASE=mscdos SWAP=n MSC_VER=6.0
XX+
XX+ os2-scripts: clean os2-msc-scripts;
XX+
XX+ os2-msc-scripts .SWAP :! 40 50 51 60
XX+ $(MAKE) SCRIPTFILE=mk$?.cmd os2-msc$?dos-scripts
XX+
XX+ os2-%-scripts .SWAP :
XX+ $(MAKE) -nus $(MS) $($@-flags) >$(SH)
XX+ $(MAKE) -s $(MAKEMACROS) $(MS) $($@-flags) fix-os2-$*-scripts
XX+
XX+ # Signify NULL targets for the various MSC compiler versions.
XX+ 40 50 51 60:;
XX+
XX+ # Go over the created script file and make sure all the '/' that are in
XX+ # filenames are '\', and make sure the final link command line looks
XX+ # reasonable.
XX MAPOBJ = obj$(SWAP:s/y/swp/:s/n//).rsp
XX MAPLIB = lib$(SWAP:s/y/swp/:s/n//).rsp
XX OBJRSP = $(SH:s,fix/,,:s,${SCRIPTFILE},${MAPOBJ},)
XX LIBRSP = $(SH:s,fix/,,:s,${SCRIPTFILE},${MAPLIB},)
XX DOSOBJ = $(CSTARTUP) $(OBJDIR)/{$(OBJECTS)}
XX! fix-%-scripts:
XX! tail -r $(FIX-SH) >tmp-sh-r
XX! tail +2 tmp-sh-r | sed -e 's,/,\\,g' >tmp-out
XX! tail -r tmp-out >$(FIX-SH)
XX! head -1 tmp-sh-r |\
XX sed -e 's,/tmp/mkA..[0-9]*,$(OBJRSP),'\
XX! -e 's,/tmp/mkB..[0-9]*,$(LIBRSP),' |\
XX! sed -e 's,$(OS)/,$(OS)\\,g'\
XX! -e 's,$(OS)/$(OSRELEASE)/,$(OS)\\$(OSRELEASE)\\,g'\
XX! -e 's,$(OS)\\$(OSRELEASE)/,$(OS)\\$(OSRELEASE)\\,g'\
XX! -e 's,$(OS)/$(OSRELEASE)\\,$(OS)\\$(OSRELEASE)\\,g' >>$(FIX-SH)
XX! rm -f tmp-sh-r tmp-out
XX mv <+$(DOSOBJ:s,/,\\,:t"+\n")\n+> $(OBJRSP)
XX mv <+$(LDLIBS:s,/,\\,:t"+\n")\n+> $(LIBRSP)
XX+
XX+
XX*** /u2/dvadura/src/generic/dmake/dmake36-pl2/makefile Tue Oct 30 12:23:40 1990
XX--- makefile Sun Nov 25 11:07:00 1990
XX***************
XX*** 15,22 ****
XX @echo " make dynix - Sequent DYNIX system"
XX @echo " make ultrix - Ultrix 3.0 system"
XX @echo " make mips - Any MIPS box"
XX! @echo " make 386ix - 386/ix (SysV R3) [NOTE: not tested]"
XX @echo " make xenix - 386 Xenix box"
XX @echo " make tos - Atari-ST TOS using GCC as compiler"
XX @echo " make tcc - DOS with tcc 2.0"
XX @echo " make tccswp - swapping DOS version with tcc 2.0"
XX--- 15,26 ----
XX @echo " make dynix - Sequent DYNIX system"
XX @echo " make ultrix - Ultrix 3.0 system"
XX @echo " make mips - Any MIPS box"
XX! @echo " make 386ix - 386/ix (SysV R3)"
XX @echo " make xenix - 386 Xenix box"
XX+ @echo " make os2msc40 - OS/2 using MSC 4.0 compiler"
XX+ @echo " make os2msc50 - OS/2 using MSC 5.0 compiler"
XX+ @echo " make os2msc51 - OS/2 using MSC 5.1 compiler"
XX+ @echo " make os2msc60 - OS/2 using MSC 6.0 compiler"
XX @echo " make tos - Atari-ST TOS using GCC as compiler"
XX @echo " make tcc - DOS with tcc 2.0"
XX @echo " make tccswp - swapping DOS version with tcc 2.0"
XX***************
XX*** 34,39 ****
XX--- 38,47 ----
XX sysvr1 sysvr3 bsd43 386ix :; /bin/sh -x < unix/$@/make.sh
XX ultrix xenix: sysvr3;
XX tos :; sh -x tos/make.sh
XX+
XX+ # Various OS/2 targets.
XX+ OS2_VER = os2msc40 os2msc50 os2msc51 os2msc60
XX+ $(OS2_VER) :; make.cmd $(@:s/os2//)
XX
XX # DOS with some form of make and sh
XX # Note if you do not have a 'make and/or sh' program under MSDOS then
XX*** /u2/dvadura/src/generic/dmake/dmake36-pl2/make.c Mon Oct 29 13:27:50 1990
XX--- make.c Thu Nov 29 21:51:48 1990
XX***************
XX*** 1,4 ****
XX! /* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/make.c,v 1.1 90/10/06 12:03:59 dvadura Exp $
XX -- SYNOPSIS -- perform the update of all outdated targets.
XX --
XX -- DESCRIPTION
XX--- 1,4 ----
XX! /* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/make.c,v 1.4 90/11/29 21:51:17 dvadura Exp $
XX -- SYNOPSIS -- perform the update of all outdated targets.
XX --
XX -- DESCRIPTION
XX***************
XX*** 42,47 ****
XX--- 42,59 ----
XX --
XX -- LOG
XX -- $Log: make.c,v $
XX+ * Revision 1.4 90/11/29 21:51:17 dvadura
XX+ * Ignore targets with no recipe if Augmake set.
XX+ *
XX+ * Revision 1.3 90/11/07 14:06:44 dvadura
XX+ * Enahncec Augmake compatibility to assume NULL recipe for targets that
XX+ * have prerequisites.
XX+ *
XX+ * Revision 1.2 90/10/30 23:02:41 dvadura
XX+ * Add Push_dir test and call immediately after inferring a recipe for a
XX+ * target. This catches and handles properly the case when a target cell
XX+ * infers a recipe from a %-meta rule that has a .SETDIR attribute.
XX+ *
XX * Revision 1.1 90/10/06 12:03:59 dvadura
XX * dmake Release, Version 3.6
XX *
XX***************
XX*** 244,251 ****
XX cp->ce_time, cp->ce_attr, cp->ce_flag) );
XX
XX if( !(cp->ce_flag & F_TARGET) && (cp->ce_time == (time_t) 0L) )
XX! if( Makemkf )
XX! DB_RETURN( -1 );
XX else
XX Fatal( "`%s' not found, and can't be made", cp->CE_NAME );
XX
XX--- 256,270 ----
XX cp->ce_time, cp->ce_attr, cp->ce_flag) );
XX
XX if( !(cp->ce_flag & F_TARGET) && (cp->ce_time == (time_t) 0L) )
SHAR_EOF
echo "End of part 5, continue with part 6"
echo "6" > s2_seq_.tmp
exit 0
--
--------------------------------------------------------------------------------
"This is almost worth the HIGH blood pressure!" he |Dennis Vadura
thought as yet another mosquito exploded.-R.Patching|dvadura@dragon.uwaterloo.ca
================================================================================