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) \
uregcomp$(_O) uregexec$(_O) urun$(_O) \
uscope$(_O) usv$(_O) utaint$(_O) utoke$(_O) \
- unumeric$(_O) ulocale$(_O) \
+ unumeric$(_O) ulocale$(_O) umathoms$(_O) \
uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) uxsutils$(_O)
microperl: $(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
-rm -f $(O) microperl
distclean: clean
- -rm -f uconfig.h
# The microconfiguration.
-uconfig.h: uconfig.sh config_h.SH
+# 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
unumeric$(_O): $(HE) numeric.c
$(CC) -c -o $@ $(CFLAGS) numeric.c
+umathoms$(_O): $(HE) mathoms.c
+ $(CC) -c -o $@ $(CFLAGS) mathoms.c
+
uuniversal$(_O): $(HE) universal.c XSUB.h
$(CC) -c -o $@ $(CFLAGS) universal.c