diff options
| author | Andy Fiddaman <omnios@citrus-it.co.uk> | 2021-02-04 17:01:59 +0000 |
|---|---|---|
| committer | Andy Fiddaman <omnios@citrus-it.co.uk> | 2021-02-09 22:33:16 +0000 |
| commit | 44ce9f4b5e85893725f9e851530b585072ee8593 (patch) | |
| tree | cd3a6f45d429cc4269ab4b26c8fbc2acf371ca5d | |
| parent | 9250eb132f1fc3950c838b7a5746f1bcdac7eba1 (diff) | |
| download | illumos-joyent-44ce9f4b5e85893725f9e851530b585072ee8593.tar.gz | |
13492 Makefile.ast could avoid sed's -i option
Reviewed by: Robert Mustacchi <rm@fingolfin.org>
Reviewed by: Dan McDonald <danmcd@joyent.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Approved by: Gordon Ross <gordon.w.ross@gmail.com>
| -rw-r--r-- | usr/src/cmd/ast/Makefile.ast | 16 | ||||
| -rw-r--r-- | usr/src/cmd/ast/Makefile.iffe | 8 | ||||
| -rw-r--r-- | usr/src/cmd/ast/libast/Makefile.com | 14 | ||||
| -rw-r--r-- | usr/src/cmd/ast/libast/Makefile.iffe | 21 | ||||
| -rw-r--r-- | usr/src/cmd/ast/libcmd/Makefile.com | 2 | ||||
| -rw-r--r-- | usr/src/cmd/ast/libdll/Makefile.com | 2 | ||||
| -rw-r--r-- | usr/src/cmd/ast/libsum/Makefile.com | 2 |
7 files changed, 44 insertions, 21 deletions
diff --git a/usr/src/cmd/ast/Makefile.ast b/usr/src/cmd/ast/Makefile.ast index 66d799c6eb..0aeb13a09c 100644 --- a/usr/src/cmd/ast/Makefile.ast +++ b/usr/src/cmd/ast/Makefile.ast @@ -157,9 +157,19 @@ ASTCFLAGS64= $(CCVERBOSE) # # They have trailing whitespace, which is removed. -POST_PROCESS_AST = $(SED) -i ' \ +# Unfortunately, due to differences in the "sed" command implemented in +# various illumos distributions, we can't portably use 'sed -i' here. + +SEDPATTERN= \ s^$(SRC)/^^g; \ s/ *$$//; \ /def.* _def_.*_$(MACH64)/s/$(MACH64)/$(HDRGUARD)/; \ - /def.* _def_.*_$(MACH)/s/$(MACH)/$(HDRGUARD)/; \ - ' + /def.* _def_.*_$(MACH)/s/$(MACH)/$(HDRGUARD)/; + +POST_PROCESS_AST= \ + { \ + tf=$$(mktemp /tmp/ast.XXXXXXXXXX) && \ + $(SED) < "$@" > "$$tf" '$(SEDPATTERN)' && \ + $(CP) -p "$$tf" "$@" && \ + $(RM) "$$tf"; \ + } diff --git a/usr/src/cmd/ast/Makefile.iffe b/usr/src/cmd/ast/Makefile.iffe index 07bd3ab5bf..d29d4cb44a 100644 --- a/usr/src/cmd/ast/Makefile.iffe +++ b/usr/src/cmd/ast/Makefile.iffe @@ -47,7 +47,7 @@ IFFECPPFLAGS= $(ASTPLATFORMCPPFLAGS) \ -I$(ASTSRC)/include -I. IFFECFLAGS= $(CSTD_GNU99) $($(TARGETMACH)_COPTFLAG) \ $($(TARGETMACH)_C_BIGPICFLAGS) $($(TARGETMACH)_CFLAGS) -IFFELDFLAGS= $(ZASSERTDEFLIB) $(ZFATALWARNINGS) $(LDLIBS) +IFFELDFLAGS= $(ZASSERTDEFLIB) $(ZFATALWARNINGS) $(LDLIBS) IFFELIBS= -lsocket -lnsl IFFEC= $(IFFECC) $(IFFECPPFLAGS) $(IFFECFLAGS) \ $(IFFELDFLAGS) $(IFFELIBS) @@ -58,14 +58,14 @@ FEATURE/% := SHADOW_CCS= FEATURE/%: $(ASTSRC)/features/% PATH=$(AST_TOOLS):$$PATH \ $(AST_IFFE) $(IFFEFLAGS) -c '$(IFFEC)' run $< $(IFFE_EXTRA) - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) FEATURE/%: $(ASTSRC)/features/%.c PATH=$(AST_TOOLS):$$PATH \ $(AST_IFFE) $(IFFEFLAGS) -c '$(IFFEC)' run $< $(IFFE_EXTRA) - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) FEATURE/%: $(ASTSRC)/features/%.sh PATH=$(AST_TOOLS):$$PATH \ $(AST_IFFE) $(IFFEFLAGS) -c '$(IFFEC)' run $< $(IFFE_EXTRA) - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) diff --git a/usr/src/cmd/ast/libast/Makefile.com b/usr/src/cmd/ast/libast/Makefile.com index 0a29efde91..bf12413e6f 100644 --- a/usr/src/cmd/ast/libast/Makefile.com +++ b/usr/src/cmd/ast/libast/Makefile.com @@ -119,7 +119,7 @@ ast/%:= FILEMODE= 0644 $(HEADERGEN:%=ast/%): $(FEATURES:%=FEATURE/%) src=`echo $(@F:%.h=%) | sed 's/^ast_//'`; \ $(AST_PROTO) FEATURE/$$src > $@ - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) ast/prototyped.h: $(AST_TOOLS)/proto $(MKDIR) -p $(@D) @@ -127,7 +127,7 @@ ast/prototyped.h: $(AST_TOOLS)/proto ast/ast_common.h: ast/prototyped.h $(AST_PROTO) FEATURE/common | $(GREP) -v 'define _def_map_' > $@ - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) $(CP) $@ . ast/lc.h: lc.h @@ -135,23 +135,23 @@ ast/lc.h: lc.h ast/%.h: $(ASTSRC)/include/%.h $(INS.file) - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) ast/%.h: $(ASTSRC)/comp/%.h $(INS.file) - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) ast/%.h: $(ASTSRC)/cdt/%.h $(INS.file) - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) ast/%.h: $(ASTSRC)/std/%.h $(INS.file) - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) ast/ast_namval.h: $(ASTSRC)/include/namval.h $(CP) $(ASTSRC)/include/namval.h $@ - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) CLOBBERFILES += ast_common.h t.c CLOBBERFILES += ast/* diff --git a/usr/src/cmd/ast/libast/Makefile.iffe b/usr/src/cmd/ast/libast/Makefile.iffe index e1a952188c..9471e98ae7 100644 --- a/usr/src/cmd/ast/libast/Makefile.iffe +++ b/usr/src/cmd/ast/libast/Makefile.iffe @@ -19,15 +19,25 @@ include ../../Makefile.iffe GENCONF= conflim.h conftab.c conftab.h LCCONF= lc.h lctab.c -$(GENCONF): FRC +# Unfortunately, due to differences in the "sed" command implemented in +# various illumos distributions, we can't portably use 'sed -i' here. +clean_%: % + { \ + tf=$$(mktemp /tmp/iffe.XXXXXXXXXX) && \ + $(SED) < "$<" > "$$tf" '$(SEDPATTERN)' && \ + $(CP) -p "$$tf" "$<" && \ + $(RM) "$$tf"; \ + } + +conftab.c: $(ASTSRC)/comp/conf.tab PATH=$(AST_TOOLS):$$PATH \ $(SHELL) $(ASTSRC)/comp/conf.sh -v $(ASTSRC)/comp/conf.tab \ $(IFFEC) - $(POST_PROCESS_AST) conflim.h conftab.c conftab.h +conflim.h conftab.h: conftab.c -$(LCCONF): $(ASTSRC)/port/lc.tab +lctab.c: $(ASTSRC)/port/lc.tab $(AST_LCGEN) $(LCCONF) < $(ASTSRC)/port/lc.tab - $(POST_PROCESS_AST) $(LCCONF) +lc.h: lctab.c FEATURE/limits: $(GENCONF) FEATURE/float: ast/ast_common.h @@ -35,4 +45,5 @@ FEATURE/float: ast/ast_common.h cleaniffe: FRC $(RM) $(FEATURES:%=FEATURE/%) $(GENCONF) $(LCCONF) -generate: cleaniffe $(FEATURES:%=FEATURE/%) $(LCCONF) +generate: cleaniffe $(FEATURES:%=FEATURE/%) $(LCCONF) \ + .WAIT $(GENCONF:%=clean_%) $(LCCONF:%=clean_%) diff --git a/usr/src/cmd/ast/libcmd/Makefile.com b/usr/src/cmd/ast/libcmd/Makefile.com index 484fa737c7..a8a8d34f2b 100644 --- a/usr/src/cmd/ast/libcmd/Makefile.com +++ b/usr/src/cmd/ast/libcmd/Makefile.com @@ -108,7 +108,7 @@ ast/cmdext.h: $(OBJECTS:%.o=$(ASTSRC)/%.c) >> $@.tmp $(AST_PROTO) -f $@.tmp >> $@ rm -f $@.tmp - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) CLOBBERFILES += ast/* diff --git a/usr/src/cmd/ast/libdll/Makefile.com b/usr/src/cmd/ast/libdll/Makefile.com index 94cc76115f..122cba86d9 100644 --- a/usr/src/cmd/ast/libdll/Makefile.com +++ b/usr/src/cmd/ast/libdll/Makefile.com @@ -90,7 +90,7 @@ $(HEADERGEN:%=ast/%): $(FEATURES:%=FEATURE/%) src=`echo $(@F:%.h=%) | sed 's/^ast_//'`; \ [[ $$src = dlldefs ]] && src=dll; \ $(AST_PROTO) FEATURE/$$src > $@ - $(POST_PROCESS_AST) $@ + $(POST_PROCESS_AST) install_h: $(HEADERGEN:%=ast/%) diff --git a/usr/src/cmd/ast/libsum/Makefile.com b/usr/src/cmd/ast/libsum/Makefile.com index d7446cba8c..9faf39baac 100644 --- a/usr/src/cmd/ast/libsum/Makefile.com +++ b/usr/src/cmd/ast/libsum/Makefile.com @@ -96,3 +96,5 @@ _feature: FRC $(MAKE) -f Makefile.iffe generate include ../../Makefile.astmsg + +FRC: |
