LIBS = -lm
_O = .o
ENV = env
+PERL = perl
all: microperl
O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udump$(_O) \
- uglobals$(_O) ugv$(_O) uhv$(_O) \
+ uglobals$(_O) ugv$(_O) uhv$(_O) umro$(_O)\
umg$(_O) uperlmain$(_O) uop$(_O) ureentr$(_O) \
upad$(_O) uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_O) \
upp_ctl$(_O) upp_hot$(_O) upp_sys$(_O) upp_pack$(_O) upp_sort$(_O) \
H = av.h uconfig.h cop.h cv.h embed.h embedvar.h form.h gv.h handy.h \
hv.h intrpvar.h iperlsys.h mg.h op.h opcode.h opnames.h pad.h \
patchlevel.h perl.h perlsdio.h perlvars.h perly.h pp.h \
- pp_proto.h proto.h reentr.h regexp.h scope.h sv.h thrdvar.h \
+ pp_proto.h proto.h reentr.h regexp.h scope.h sv.h \
thread.h unixish.h utf8.h util.h warnings.h
HE = $(H) EXTERN.h
# The microconfiguration.
-regen_uconfig:
+# Cannot use $$ in the command line itself, so using var expansion instead.
+Config = '$$Config{$$1}'
+patch_uconfig:
+ $(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.shx
+
+regen_uconfig uconfig.h: uconfig.sh
$(ENV) CONFIG_SH=uconfig.sh CONFIG_H=uconfig.h sh ./config_h.SH
# Do not regenerate perly.c and perly.h.
ugv$(_O): $(HE) gv.c
$(CC) -c -o $@ $(CFLAGS) gv.c
+umro$(_O): $(HE) mro.c
+ $(CC) -c -o $@ $(CFLAGS) mro.c
+
uhv$(_O): $(HE) hv.c
$(CC) -c -o $@ $(CFLAGS) hv.c