X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.micro;h=be89251e53886d9d6c5e75da9c918168618a74e3;hb=d5d3e0f0cac42b271aa6d30a69d6eff7e2c063c2;hp=ae9f48b90a91678335bccf8c658e9457157fb5ff;hpb=077a72a91697decae2d5c3d613a9ee58ec6493c1;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Makefile.micro b/Makefile.micro index ae9f48b..be89251 100644 --- a/Makefile.micro +++ b/Makefile.micro @@ -1,30 +1,32 @@ LD = $(CC) -DEFINES = -DPERL_CORE -DPERL_MICRO -OPTIMIZE = +DEFINES = -DPERL_CORE -DPERL_MICRO -DSTANDARD_C -DPERL_USE_SAFE_PUTENV +OPTIMIZE = CFLAGS = $(DEFINES) $(OPTIMIZE) 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) \ - uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_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) \ - uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) + unumeric$(_O) ulocale$(_O) umathoms$(_O) \ + uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) uxsutils$(_O) microperl: $(O) $(LD) -o $@ $(O) $(LIBS) 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 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 thread.h unixish.h utf8.h util.h \ - warnings.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 warnings.h HE = $(H) EXTERN.h @@ -32,10 +34,26 @@ clean: -rm -f $(O) microperl distclean: clean - -rm -f uconfig.h -uconfig.h: uconfig.sh config_h.SH - CONFIG_SH=uconfig.sh CONFIG_H=uconfig.h sh ./config_h.SH +# The microconfiguration. + +# 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. + +perly.c: perly.y + -@echo perly.c is uptodate + +perly.h: perly.y + -@echo perly.h is uptodate + +# The microperl objects. uav$(_O): $(HE) av.c $(CC) -c -o $@ $(CFLAGS) av.c @@ -58,6 +76,9 @@ uglobals$(_O): $(H) globals.c INTERN.h perlapi.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 @@ -68,11 +89,14 @@ uperlmain$(_O): $(HE) miniperlmain.c $(CC) -c -o $@ $(CFLAGS) miniperlmain.c uop$(_O): $(HE) op.c keywords.h - $(CC) -c -o $@ $(CFLAGS) op.c + $(CC) -c -o $@ $(CFLAGS) -DPERL_EXTERNAL_GLOB op.c ureentr$(_O): $(HE) reentr.c $(CC) -c -o $@ $(CFLAGS) reentr.c +upad$(_O): $(HE) pad.c + $(CC) -c -o $@ $(CFLAGS) pad.c + uperl$(_O): $(HE) perl.c $(CC) -c -o $@ $(CFLAGS) perl.c @@ -127,6 +151,9 @@ ulocale$(_O): $(HE) locale.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 @@ -139,4 +166,7 @@ uutil$(_O): $(HE) util.c uperlapi$(_O): $(HE) perlapi.c perlapi.h $(CC) -c -o $@ $(CFLAGS) perlapi.c +uxsutils$(_O): $(HE) xsutils.c + $(CC) -c -o $@ $(CFLAGS) xsutils.c +# That's it, folks!