Skip to content

Commit 4878ac3

Browse files
author
Lefteris Koutsofios
committed
added missed 'cc' and 'ar' scripts
1 parent e8b3274 commit 4878ac3

File tree

4 files changed

+284
-0
lines changed

4 files changed

+284
-0
lines changed

Diff for: lib/package/CONVERT.mk

+260
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,260 @@
1+
/*
2+
* {automake|configure} => {nmake|iffe} conversion support
3+
*
4+
* The first command line target overrides the default original source
5+
* directory name $(MAKEFILE:D). The hard work is in the makefile using
6+
* these assertions, since it must (manually) provide the nmake makefiles
7+
* and config equivalent iffe scripts. The conversion makefile is typically
8+
* named lib/package/PACKAGE.cvt in an ast package $PACKAGEROOT directory,
9+
* and the conversion is run from the $PACKAGEROOT directory, e.g.:
10+
*
11+
* nmake -I lib/package -f PACKAGE-VERSION/PACKAGE.cvt
12+
*
13+
* The conversion requires the ast nmake, pax and tw commands.
14+
*
15+
* After the conversion you will be liberated from ./configure, *.in,
16+
* *.am, automake, autom4te, libtool, make depend, and makefile
17+
* recursion ordering. You can build from $PACKAGEROOT using the ast
18+
* package(1) (which sets up the { HOSTTYPE PATH VPATH } environment):
19+
*
20+
* package make
21+
*
22+
* or cd into any arch/$HOSTTYPE/src subdirectory and rebuild that portion
23+
* of the hierarchy with the ast nmake(1) (after setting PATH and VPATH):
24+
*
25+
* nmake
26+
*
27+
* The conversion assertions are:
28+
*
29+
* package :CONVERT: file ...
30+
*
31+
* files in the original source directory are copied
32+
* and converted into the ./src and ./lib subdirectories
33+
* the default original source directory is ./original
34+
*
35+
* package package name
36+
* file original source file that must exist
37+
*
38+
* :OMIT: pattern
39+
*
40+
* files matching pattern are not copied into the converted
41+
* directory
42+
*
43+
* pattern ksh pattern of files to omit
44+
*
45+
* :COPY: from to [ file ... ]
46+
*
47+
* files in the from directory are copied to the to directory
48+
* the action may contain :MOVE: exceptions to the copy
49+
*
50+
* from original directory subdirectory
51+
* . names the original directory
52+
* .. names the
53+
* to converted subdirectory
54+
* libNAME => src/lib/libNAME
55+
* NAME => src/cmd/NAME
56+
* file files or files in subdirectories to be copied;
57+
* explicit files are copied to the to directory;
58+
* if no files are specified then the from hierarchy
59+
* is recursively copied to the converted directory
60+
*
61+
* :MOVE: to file ...
62+
*
63+
* :COPY: assertion exceptions placed in the assertion's action
64+
*
65+
* to files or subdirectory files are copied to this directory
66+
* file file or files in subdirectories to be copied
67+
*
68+
* :FILE: to file <<!
69+
* contents
70+
* !
71+
*
72+
* the :FILE: action is copied to the named file in the to directory
73+
* the :FILE: action is usually specified using the here syntax to
74+
* avoid make comment, quote and variable expansion
75+
*
76+
* :EDIT: to file ... | - pattern <<!
77+
* edit script
78+
* !
79+
*
80+
* the :EDIT: action is an ed(1) script applied to each file in the
81+
* to directory after it has been copied from the original source
82+
* directory; if to is - then the :EDIT: action is a sed(1) script
83+
* that is applied to all files matching the file pattern during the
84+
* copy from the original source directory; a file may be subject to
85+
* both a sed(1) and ed(1) :EDIT:; the :EDIT: action is usually
86+
* specified using the here syntax to avoid make comment, quote and
87+
* variable expansion
88+
*/
89+
90+
.CONVERT.ID. = "@(#)$Id: CONVERT (AT&T Research) 2004-03-19 $"
91+
92+
set nojobs noscan nowriteobject writestate=$$(MAKEFILE).ms
93+
94+
package = $(PWD:B)
95+
here = !-=-=-=-=-!
96+
hierarchy = src src/cmd src/lib
97+
omit = .*|*.?(l)[ao]
98+
original = $(MAKEFILE:D)
99+
showedit = $(-debug:?p??)
100+
101+
CPFLAGS = -u
102+
PAXFLAGS = -u -v
103+
STDEDFLAGS = -
104+
TW = tw
105+
TWFLAGS = -CP
106+
107+
all : .VIRTUAL file
108+
file : .VIRTUAL edit
109+
edit : .VIRTUAL copy
110+
copy : .VIRTUAL init
111+
init : .VIRTUAL
112+
113+
.MAKEINIT : .cvt.init
114+
115+
.cvt.init : .MAKE .VIRTUAL .FORCE
116+
local D
117+
if D = "$(~.ARGS:O=1)"
118+
if "$(D:T>FD)"
119+
original := $(D)
120+
.ARGS : .CLEAR $(~.ARGS:O>1)
121+
end
122+
end
123+
124+
.cvt.filter =
125+
.cvt.package =
126+
127+
.cvt.atom : .FUNCTION
128+
local N V
129+
V := $(%:O=1)
130+
let .cvt.$(V) = .cvt.$(V) + 1
131+
return .cvt.$(V).$(.cvt.$(V))
132+
133+
.cvt.omit : .FUNCTION
134+
return -s',^\(\(?K)?(*/)($(omit))?(/*))$,,$(showedit)'
135+
136+
.cvt.to : .FUNCTION
137+
if "$(%)" == "."
138+
return src
139+
end
140+
if "$(%)" == "*/*"
141+
return src/$(%)
142+
end
143+
if "$(%)" == "lib*"
144+
return src/lib/$(%)
145+
end
146+
return src/cmd/$(%)
147+
148+
":CONVERT:" : .MAKE .OPERATOR
149+
local I
150+
package := $(<)
151+
I := $(hierarchy:C,$,/Makefile)
152+
init : .cvt.verify $(I)
153+
$(I) : .ACCEPT
154+
test -d $(<:D) || $(MKDIR) -p $(<:D)
155+
echo :MAKE: > $(<)
156+
.cvt.verify : .MAKE .FORCE .REPEAT
157+
local I
158+
if I = "$(.cvt.package:T!=F)"
159+
error 3 $(original): not a $(package) source directory: missing $(I)
160+
end
161+
.cvt.package := $(>:C,^,$$(original)/,)
162+
163+
":COPY:" : .MAKE .OPERATOR
164+
local F T I A
165+
F := $(>:O=1)
166+
T := $(.cvt.to $(>:O=2))
167+
A := $(.cvt.atom copy)
168+
copy : $(A)
169+
$(A) : .VIRTUAL
170+
if F == "."
171+
$(A) : $(T)
172+
$(T) :
173+
test -d $(<) || $(MKDIR) -p $(<)
174+
for I $(>:O>2)
175+
eval
176+
$$(A) : $(I:D=$(T):B:S)
177+
$(I:D=$(T):B:S) : $$(original)/$(I)
178+
$$(CP) $$(CPFLAGS) $$(*) $$(<)
179+
end
180+
end
181+
elif "$(F:T=FF)" || "$(F:N=*.(pax|t[bg]z))"
182+
eval
183+
$$(A) : $$(F)
184+
test -d $(T) || $$(MKDIR) -p $(T)
185+
cd $(T)
186+
$$(PAX) $$(PAXFLAGS) -rf $$(*:P=A) -s ',^$(>:O=2)/*,,' $(.cvt.omit) $(.cvt.filter)
187+
end
188+
else
189+
F := $$(original)/$(F)
190+
if ! "$(@:V)"
191+
eval
192+
$$(A) : .FORCE
193+
test -d $(T) || $$(MKDIR) -p $(T)
194+
cd $(F:V)
195+
$$(TW) $$(TWFLAGS) | $$(PAX) $$(PAXFLAGS) -rw $(.cvt.omit) $(.cvt.filter) $(T:P=A)
196+
end
197+
else
198+
.cvt.move =
199+
: $(@:V:@R)
200+
eval
201+
$$(A) : .FORCE
202+
test -d $(T) || $$(MKDIR) -p $(T)
203+
cd $(F:V)
204+
$$(TW) $$(TWFLAGS) | $$(PAX) $$(PAXFLAGS) -rw $(.cvt.omit) $(.cvt.move) $(.cvt.filter) $(T:P=A)
205+
end
206+
end
207+
end
208+
209+
":EDIT:" : .MAKE .OPERATOR
210+
local A D F
211+
D := $(>:O=1)
212+
if D == "-"
213+
A := ^$(>:O=2)^$$(SED) -e $(@:Q:/'\n'/ -e /G)
214+
.cvt.filter += --action=$(A:@Q)
215+
else
216+
D := $(.cvt.to $(D))
217+
F := $(>:O>1:C,^,$(D)/,)
218+
edit : $(F)
219+
eval
220+
$$(F) :
221+
$$(STDED) $$(STDEDFLAGS) $$(<) <<'$(here)'
222+
$(@:V)
223+
w
224+
q
225+
$(here)
226+
end
227+
end
228+
229+
":FILE:" : .MAKE .OPERATOR
230+
local ( D F ) $(>)
231+
local A
232+
A := $(.cvt.atom file)
233+
$(A) := $(@:V)
234+
D := $(.cvt.to $(D))
235+
file : $(D)/$(F)
236+
eval
237+
$$(D)/$$(F) :
238+
test -d $$(<:D) || $$(MKDIR) -p $$(<:D)
239+
cat > $$(<) <<'$(here)'
240+
$$($(A):V)
241+
$(here)
242+
end
243+
244+
":MOVE:" : .MAKE .OPERATOR
245+
local T I
246+
T := ../../../$(.cvt.to $(>:O=1))
247+
for I $(>:O>1)
248+
if I == "*/"
249+
.cvt.move += -s',^\(\(?K)$(I)),$(T)/,$(showedit)'
250+
.cvt.move += -s',^\(\(?K)$(I:C%/$%%))$,,$(showedit)'
251+
else
252+
.cvt.move += -s',^\(\(?K)$(I))$,$(T)/$(I:B:S),$(showedit)'
253+
end
254+
end
255+
256+
":OMIT:" : .MAKE .OPERATOR
257+
local P
258+
for P $(>)
259+
omit := $(omit)|$(P)
260+
end

Diff for: src/cmd/INIT/ar.linux.i386-64

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
: stupid stupid stupid to require a non-standard option for ar to work : 2009-10-06 :
2+
3+
case $1 in
4+
*x*) /usr/bin/ar "$@" ;;
5+
*) /usr/bin/ar U"$@" ;;
6+
esac

Diff for: src/cmd/INIT/cc.linux.aarch64

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
: linux.aarch64 cc wrapper : 2006-02-14 :
2+
3+
HOSTTYPE=linux.aarch64
4+
5+
case " $* " in
6+
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
7+
esac
8+
9+
/usr/bin/cc -P "$@"

Diff for: src/cmd/INIT/cc.linux.i386-64

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
: linux.i386-64 cc wrapper : 2006-02-14 :
2+
3+
HOSTTYPE=linux.i386-64
4+
5+
case " $* " in
6+
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
7+
esac
8+
9+
/usr/bin/cc -P "$@"

0 commit comments

Comments
 (0)