3 DEFINES = -DPERL_CORE -DPERL_MICRO -DNO_MATHOMS
5 CFLAGS = $(DEFINES) $(OPTIMIZE)
16 O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udquote$(_O) udump$(_O) \
17 uglobals$(_O) ugv$(_O) uhv$(_O) umro$(_O)\
18 umg$(_O) uperlmain$(_O) uop$(_O) ureentr$(_O) \
19 upad$(_O) uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_O) \
20 upp_ctl$(_O) upp_hot$(_O) upp_sys$(_O) upp_pack$(_O) upp_sort$(_O) \
21 uregcomp$(_O) uregcomp_debug$(_O) uregcomp_invlist$(_O) \
22 uregcomp_study$(_O) uregcomp_trie$(_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) ukeywords$(_O)
28 $(LD) -o $@ $(O) $(LDFLAGS) $(LIBS)
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)
40 -rm -f $(O) microperl ugenerate_uudmap$(_X) $(generated_headers)
44 # The microconfiguration.
46 # Cannot use $$ in the command line itself, so using var expansion instead.
47 Config = '$$Config{$$1}'
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
51 regen_uconfig: uconfig.sh config_h.SH
52 $(ENV) CONFIG_SH=uconfig.sh CONFIG_H=uconfig.h sh ./config_h.SH
54 regen_uconfig64: uconfig64.sh config_h.SH
55 $(ENV) CONFIG_SH=uconfig64.sh CONFIG_H=uconfig.h sh ./config_h.SH
57 # Do not regenerate perly.c and perly.h.
60 -@echo perly.c is uptodate
63 -@echo perly.h is uptodate
65 # The microperl objects.
68 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) av.c
70 udeb$(_O): $(HE) deb.c
71 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) deb.c
73 udoio$(_O): $(HE) doio.c
74 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) doio.c
76 udoop$(_O): $(HE) doop.c
77 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) doop.c
79 udquote$(_O): $(HE) dquote.c regcomp.h regnodes.h
80 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) dquote.c
82 udump$(_O): $(HE) dump.c regcomp.h regnodes.h
83 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) dump.c
85 uglobals$(_O): $(H) globals.c INTERN.h $(generated_headers)
86 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) globals.c
89 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) gv.c
91 umro$(_O): $(HE) mro_core.c
92 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mro_core.c
95 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) hv.c
97 ukeywords$(_O): $(HE) keywords.c
98 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) keywords.c
101 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mg.c
103 uperlmain$(_O): $(HE) miniperlmain.c
104 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) miniperlmain.c
106 uop$(_O): $(HE) op.c keywords.h
107 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) -DPERL_EXTERNAL_GLOB op.c
109 ureentr$(_O): $(HE) reentr.c
110 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) reentr.c
112 upad$(_O): $(HE) pad.c
113 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pad.c
115 uperl$(_O): $(HE) perl.c
116 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perl.c
118 uperlio$(_O): $(HE) perlio.c
119 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlio.c
121 uperly$(_O): $(HE) perly.c
122 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perly.c
125 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp.c
127 upp_ctl$(_O): $(HE) pp_ctl.c
128 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_ctl.c
130 upp_hot$(_O): $(HE) pp_hot.c
131 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_hot.c
133 upp_sys$(_O): $(HE) pp_sys.c
134 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sys.c
136 upp_pack$(_O): $(HE) pp_pack.c
137 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_pack.c
139 upp_sort$(_O): $(HE) pp_sort.c
140 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sort.c
142 uregcomp$(_O): $(HE) regcomp.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
143 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
145 uregcomp_debug$(_O): $(HE) regcomp_debug.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
146 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
148 uregcomp_invlist$(_O): $(HE) regcomp_invlist.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
149 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
151 uregcomp_study$(_O): $(HE) regcomp_study.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
152 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
154 uregcomp_trie$(_O): $(HE) regcomp_trie.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
155 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
157 uregexec$(_O): $(HE) regexec.c regcomp.h regnodes.h
158 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regexec.c
160 urun$(_O): $(HE) run.c
161 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) run.c
163 uscope$(_O): $(HE) scope.c
164 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) scope.c
167 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) sv.c
169 utaint$(_O): $(HE) taint.c
170 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) taint.c
172 utime64$(_O): $(HE) time64.c time64.h time64_config.h
173 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) time64.c
175 utoke$(_O): $(HE) toke.c keywords.h
176 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) toke.c
178 ulocale$(_O): $(HE) locale.c
179 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) locale.c
181 unumeric$(_O): $(HE) numeric.c
182 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) numeric.c
184 umathoms$(_O): $(HE) mathoms.c
185 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mathoms.c
187 uuniversal$(_O): $(HE) universal.c XSUB.h
188 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) universal.c
190 uutf8$(_O): $(HE) utf8.c
191 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) utf8.c
193 uutil$(_O): $(HE) util.c
194 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) util.c
196 uuudmap.h umg_data.h: ubitcount.h
198 ubitcount.h: ugenerate_uudmap$(_X)
199 $(RUN) ./ugenerate_uudmap$(_X) $(generated_headers)
201 ugenerate_uudmap$(_O): generate_uudmap.c
202 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) generate_uudmap.c
204 ugenerate_uudmap$(_X): ugenerate_uudmap$(_O)
205 $(LD) -o ugenerate_uudmap $(LDFLAGS) ugenerate_uudmap$(_O) $(LIBS)
208 - cd t && (rm -f perl; ln -s ../microperl perl) \
209 && ./perl TEST base/*.t cmd/*.t