1 |
LD = $(CC) |
2 |
CCFLAGS = -c |
3 |
DEFINES = -DPERL_CORE -DPERL_MICRO -DSTANDARD_C -DPERL_USE_SAFE_PUTENV \ |
4 |
-DNO_MATHOMS |
5 |
OPTIMIZE = |
6 |
CFLAGS = $(DEFINES) $(OPTIMIZE) |
7 |
LDFLAGS = |
8 |
LIBS = -lm |
9 |
_O = .o |
10 |
ENV = env |
11 |
PERL = perl |
12 |
_X = |
13 |
RUN = |
14 |
|
15 |
all: microperl |
16 |
|
17 |
O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udquote$(_O) udump$(_O) \ |
18 |
uglobals$(_O) ugv$(_O) uhv$(_O) umro$(_O)\ |
19 |
umg$(_O) uperlmain$(_O) uop$(_O) ureentr$(_O) \ |
20 |
upad$(_O) uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_O) \ |
21 |
upp_ctl$(_O) upp_hot$(_O) upp_sys$(_O) upp_pack$(_O) upp_sort$(_O) \ |
22 |
uregcomp$(_O) uregexec$(_O) urun$(_O) \ |
23 |
uscope$(_O) usv$(_O) utaint$(_O) utime64$(_O) utoke$(_O) \ |
24 |
unumeric$(_O) ulocale$(_O) umathoms$(_O) \ |
25 |
uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) ukeywords$(_O) |
26 |
|
27 |
microperl: $(O) |
28 |
$(LD) -o $@ $(O) $(LDFLAGS) $(LIBS) |
29 |
|
30 |
generated_headers = uuudmap.h ubitcount.h umg_data.h |
31 |
H = av.h uconfig.h cop.h cv.h embed.h embedvar.h form.h gv.h handy.h \ |
32 |
hv.h hv_func.h intrpvar.h iperlsys.h mg.h op.h opcode.h opnames.h pad.h \ |
33 |
patchlevel.h perl.h perlsdio.h perlvars.h perly.h pp.h \ |
34 |
pp_proto.h proto.h reentr.h regexp.h scope.h sv.h \ |
35 |
thread.h unixish.h utf8.h util.h warnings.h $(generated_headers) |
36 |
|
37 |
HE = $(H) EXTERN.h |
38 |
|
39 |
clean: |
40 |
-rm -f $(O) microperl ugenerate_uudmap$(_X) $(generated_headers) |
41 |
|
42 |
distclean: clean |
43 |
|
44 |
# The microconfiguration. |
45 |
|
46 |
# Cannot use $$ in the command line itself, so using var expansion instead. |
47 |
Config = '$$Config{$$1}' |
48 |
patch_uconfig: |
49 |
$(PERL) -MConfig -pi -e "s/^((?:short|int|long(?:dbl|long)?|ptr|double|[iun]v|u?quad|[iu]\d+|fpos|lseek)(?:size|type)|byteorder|d_quad|quadkind|use64.+)=.*/\\1='"$(Config)"'/g" uconfig.sh |
50 |
|
51 |
regen_uconfig: uconfig.sh config_h.SH |
52 |
$(ENV) CONFIG_SH=uconfig.sh CONFIG_H=uconfig.h sh ./config_h.SH |
53 |
|
54 |
regen_uconfig64: uconfig64.sh config_h.SH |
55 |
$(ENV) CONFIG_SH=uconfig64.sh CONFIG_H=uconfig.h sh ./config_h.SH |
56 |
|
57 |
# Do not regenerate perly.c and perly.h. |
58 |
|
59 |
perly.c: perly.y |
60 |
-@echo perly.c is uptodate |
61 |
|
62 |
perly.h: perly.y |
63 |
-@echo perly.h is uptodate |
64 |
|
65 |
# The microperl objects. |
66 |
|
67 |
uav$(_O): $(HE) av.c |
68 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) av.c |
69 |
|
70 |
udeb$(_O): $(HE) deb.c |
71 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) deb.c |
72 |
|
73 |
udoio$(_O): $(HE) doio.c |
74 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) doio.c |
75 |
|
76 |
udoop$(_O): $(HE) doop.c |
77 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) doop.c |
78 |
|
79 |
udquote$(_O): $(HE) dquote.c regcomp.h regnodes.h |
80 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) dquote.c |
81 |
|
82 |
udump$(_O): $(HE) dump.c regcomp.h regnodes.h |
83 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) dump.c |
84 |
|
85 |
uglobals$(_O): $(H) globals.c INTERN.h perlapi.h $(generated_headers) |
86 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) globals.c |
87 |
|
88 |
ugv$(_O): $(HE) gv.c |
89 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) gv.c |
90 |
|
91 |
umro$(_O): $(HE) mro_core.c |
92 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) mro_core.c |
93 |
|
94 |
uhv$(_O): $(HE) hv.c |
95 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) hv.c |
96 |
|
97 |
ukeywords$(_O): $(HE) keywords.c |
98 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) keywords.c |
99 |
|
100 |
umg$(_O): $(HE) mg.c |
101 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) mg.c |
102 |
|
103 |
uperlmain$(_O): $(HE) miniperlmain.c |
104 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) miniperlmain.c |
105 |
|
106 |
uop$(_O): $(HE) op.c keywords.h |
107 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) -DPERL_EXTERNAL_GLOB op.c |
108 |
|
109 |
ureentr$(_O): $(HE) reentr.c |
110 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) reentr.c |
111 |
|
112 |
upad$(_O): $(HE) pad.c |
113 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) pad.c |
114 |
|
115 |
uperl$(_O): $(HE) perl.c |
116 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) perl.c |
117 |
|
118 |
uperlio$(_O): $(HE) perlio.c |
119 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlio.c |
120 |
|
121 |
uperly$(_O): $(HE) perly.c |
122 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) perly.c |
123 |
|
124 |
upp$(_O): $(HE) pp.c |
125 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp.c |
126 |
|
127 |
upp_ctl$(_O): $(HE) pp_ctl.c |
128 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_ctl.c |
129 |
|
130 |
upp_hot$(_O): $(HE) pp_hot.c |
131 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_hot.c |
132 |
|
133 |
upp_sys$(_O): $(HE) pp_sys.c |
134 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sys.c |
135 |
|
136 |
upp_pack$(_O): $(HE) pp_pack.c |
137 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_pack.c |
138 |
|
139 |
upp_sort$(_O): $(HE) pp_sort.c |
140 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sort.c |
141 |
|
142 |
uregcomp$(_O): $(HE) regcomp.c regcomp.h regnodes.h INTERN.h |
143 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c |
144 |
|
145 |
uregexec$(_O): $(HE) regexec.c regcomp.h regnodes.h |
146 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regexec.c |
147 |
|
148 |
urun$(_O): $(HE) run.c |
149 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) run.c |
150 |
|
151 |
uscope$(_O): $(HE) scope.c |
152 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) scope.c |
153 |
|
154 |
usv$(_O): $(HE) sv.c |
155 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) sv.c |
156 |
|
157 |
utaint$(_O): $(HE) taint.c |
158 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) taint.c |
159 |
|
160 |
utime64$(_O): $(HE) time64.c time64.h time64_config.h |
161 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) time64.c |
162 |
|
163 |
utoke$(_O): $(HE) toke.c keywords.h |
164 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) toke.c |
165 |
|
166 |
ulocale$(_O): $(HE) locale.c |
167 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) locale.c |
168 |
|
169 |
unumeric$(_O): $(HE) numeric.c |
170 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) numeric.c |
171 |
|
172 |
umathoms$(_O): $(HE) mathoms.c |
173 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) mathoms.c |
174 |
|
175 |
uuniversal$(_O): $(HE) universal.c XSUB.h |
176 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) universal.c |
177 |
|
178 |
uutf8$(_O): $(HE) utf8.c |
179 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) utf8.c |
180 |
|
181 |
uutil$(_O): $(HE) util.c |
182 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) util.c |
183 |
|
184 |
uperlapi$(_O): $(HE) perlapi.c perlapi.h |
185 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlapi.c |
186 |
|
187 |
uuudmap.h umg_data.h: ubitcount.h |
188 |
|
189 |
ubitcount.h: ugenerate_uudmap$(_X) |
190 |
$(RUN) ./ugenerate_uudmap$(_X) $(generated_headers) |
191 |
|
192 |
ugenerate_uudmap$(_O): generate_uudmap.c |
193 |
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) generate_uudmap.c |
194 |
|
195 |
ugenerate_uudmap$(_X): ugenerate_uudmap$(_O) |
196 |
$(LD) -o ugenerate_uudmap $(LDFLAGS) ugenerate_uudmap$(_O) $(LIBS) |
197 |
|
198 |
microtest: microperl |
199 |
- cd t && (rm -f perl; ln -s ../microperl perl) \ |
200 |
&& ./perl TEST base/*.t cmd/*.t |
201 |
|
202 |
# That's it, folks! |