LD = $(CC)
CCFLAGS = -c
-DEFINES = -DPERL_CORE -DPERL_MICRO -DSTANDARD_C -DPERL_USE_SAFE_PUTENV
+DEFINES = -DPERL_CORE -DPERL_MICRO -DSTANDARD_C -DPERL_USE_SAFE_PUTENV \
+ -DNO_MATHOMS
OPTIMIZE =
CFLAGS = $(DEFINES) $(OPTIMIZE)
LDFLAGS =
uregcomp$(_O) uregexec$(_O) urun$(_O) \
uscope$(_O) usv$(_O) utaint$(_O) utoke$(_O) \
unumeric$(_O) ulocale$(_O) umathoms$(_O) \
- uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) uxsutils$(_O)
+ uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) ukeywords$(_O)
microperl: $(O)
$(LD) -o $@ $(O) $(LDFLAGS) $(LIBS)
+generated_headers = uuudmap.h ubitcount.h umg_data.h
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 \
- thread.h unixish.h utf8.h util.h uudmap.h warnings.h
+ thread.h unixish.h utf8.h util.h warnings.h $(generated_headers)
HE = $(H) EXTERN.h
clean:
- -rm -f $(O) microperl generate_uudmap$(_X) uudmap.h
+ -rm -f $(O) microperl ugenerate_uudmap$(_X) $(generated_headers)
distclean: clean
# 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
+ $(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
-regen_uconfig uconfig.h: uconfig.sh
+regen_uconfig: uconfig.sh config_h.SH
$(ENV) CONFIG_SH=uconfig.sh CONFIG_H=uconfig.h sh ./config_h.SH
+regen_uconfig64: uconfig64.sh config_h.SH
+ $(ENV) CONFIG_SH=uconfig64.sh CONFIG_H=uconfig.h sh ./config_h.SH
+
# Do not regenerate perly.c and perly.h.
perly.c: perly.y
udump$(_O): $(HE) dump.c regcomp.h regnodes.h
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) dump.c
-uglobals$(_O): $(H) globals.c INTERN.h perlapi.h
+uglobals$(_O): $(H) globals.c INTERN.h perlapi.h $(generated_headers)
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) globals.c
ugv$(_O): $(HE) gv.c
uhv$(_O): $(HE) hv.c
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) hv.c
+ukeywords$(_O): $(HE) keywords.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) keywords.c
+
umg$(_O): $(HE) mg.c
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) mg.c
uperlapi$(_O): $(HE) perlapi.c perlapi.h
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlapi.c
-uxsutils$(_O): $(HE) xsutils.c
- $(CC) $(CCFLAGS) -o $@ $(CFLAGS) xsutils.c
+uuudmap.h umg_data.h: ubitcount.h
-uudmap.h: generate_uudmap$(_X)
- $(RUN) ./generate_uudmap$(_X) >uudmap.h
+ubitcount.h: ugenerate_uudmap$(_X)
+ $(RUN) ./ugenerate_uudmap$(_X) $(generated_headers)
-generate_uudmap$(_O): generate_uudmap.c
+ugenerate_uudmap$(_O): generate_uudmap.c
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) generate_uudmap.c
-generate_uudmap$(_X): generate_uudmap$(_O)
- $(LD) -o generate_uudmap $(LDFLAGS) generate_uudmap$(_O) $(LIBS)
+ugenerate_uudmap$(_X): ugenerate_uudmap$(_O)
+ $(LD) -o ugenerate_uudmap $(LDFLAGS) ugenerate_uudmap$(_O) $(LIBS)
+
+microtest: microperl
+ - cd t && (rm -f perl; ln -s ../microperl perl) \
+ && ./perl TEST base/*.t cmd/*.t
# That's it, folks!