1LD = $(CC) 2CCFLAGS = -c 3DEFINES = -DPERL_CORE -DPERL_MICRO -DPERL_USE_SAFE_PUTENV -DNO_MATHOMS 4OPTIMIZE = 5CFLAGS = $(DEFINES) $(OPTIMIZE) 6LDFLAGS = 7LIBS = -lm 8_O = .o 9ENV = env 10PERL = perl 11_X = 12RUN = 13 14all: microperl 15 16O = 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) uregexec$(_O) urun$(_O) \ 22 uscope$(_O) usv$(_O) utaint$(_O) utime64$(_O) utoke$(_O) \ 23 unumeric$(_O) ulocale$(_O) umathoms$(_O) \ 24 uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) ukeywords$(_O) 25 26microperl: $(O) 27 $(LD) -o $@ $(O) $(LDFLAGS) $(LIBS) 28 29generated_headers = uuudmap.h ubitcount.h umg_data.h 30H = av.h uconfig.h cop.h cv.h embed.h embedvar.h form.h gv.h handy.h \ 31 hv.h hv_func.h intrpvar.h iperlsys.h mg.h op.h opcode.h opnames.h pad.h \ 32 patchlevel.h perl.h perlsdio.h perlvars.h perly.h pp.h \ 33 pp_proto.h proto.h reentr.h regexp.h scope.h sv.h \ 34 thread.h unixish.h utf8.h util.h warnings.h $(generated_headers) 35 36HE = $(H) EXTERN.h 37 38clean: 39 -rm -f $(O) microperl ugenerate_uudmap$(_X) $(generated_headers) 40 41distclean: clean 42 43# The microconfiguration. 44 45# Cannot use $$ in the command line itself, so using var expansion instead. 46Config = '$$Config{$$1}' 47patch_uconfig: 48 $(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 49 50regen_uconfig: uconfig.sh config_h.SH 51 $(ENV) CONFIG_SH=uconfig.sh CONFIG_H=uconfig.h sh ./config_h.SH 52 53regen_uconfig64: uconfig64.sh config_h.SH 54 $(ENV) CONFIG_SH=uconfig64.sh CONFIG_H=uconfig.h sh ./config_h.SH 55 56# Do not regenerate perly.c and perly.h. 57 58perly.c: perly.y 59 -@echo perly.c is uptodate 60 61perly.h: perly.y 62 -@echo perly.h is uptodate 63 64# The microperl objects. 65 66uav$(_O): $(HE) av.c 67 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) av.c 68 69udeb$(_O): $(HE) deb.c 70 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) deb.c 71 72udoio$(_O): $(HE) doio.c 73 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) doio.c 74 75udoop$(_O): $(HE) doop.c 76 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) doop.c 77 78udquote$(_O): $(HE) dquote.c regcomp.h regnodes.h 79 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) dquote.c 80 81udump$(_O): $(HE) dump.c regcomp.h regnodes.h 82 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) dump.c 83 84uglobals$(_O): $(H) globals.c INTERN.h perlapi.h $(generated_headers) 85 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) globals.c 86 87ugv$(_O): $(HE) gv.c 88 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) gv.c 89 90umro$(_O): $(HE) mro_core.c 91 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mro_core.c 92 93uhv$(_O): $(HE) hv.c 94 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) hv.c 95 96ukeywords$(_O): $(HE) keywords.c 97 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) keywords.c 98 99umg$(_O): $(HE) mg.c 100 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mg.c 101 102uperlmain$(_O): $(HE) miniperlmain.c 103 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) miniperlmain.c 104 105uop$(_O): $(HE) op.c keywords.h 106 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) -DPERL_EXTERNAL_GLOB op.c 107 108ureentr$(_O): $(HE) reentr.c 109 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) reentr.c 110 111upad$(_O): $(HE) pad.c 112 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pad.c 113 114uperl$(_O): $(HE) perl.c 115 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perl.c 116 117uperlio$(_O): $(HE) perlio.c 118 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlio.c 119 120uperly$(_O): $(HE) perly.c 121 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perly.c 122 123upp$(_O): $(HE) pp.c 124 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp.c 125 126upp_ctl$(_O): $(HE) pp_ctl.c 127 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_ctl.c 128 129upp_hot$(_O): $(HE) pp_hot.c 130 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_hot.c 131 132upp_sys$(_O): $(HE) pp_sys.c 133 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sys.c 134 135upp_pack$(_O): $(HE) pp_pack.c 136 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_pack.c 137 138upp_sort$(_O): $(HE) pp_sort.c 139 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sort.c 140 141uregcomp$(_O): $(HE) regcomp.c regcomp.h regnodes.h INTERN.h 142 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c 143 144uregexec$(_O): $(HE) regexec.c regcomp.h regnodes.h 145 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regexec.c 146 147urun$(_O): $(HE) run.c 148 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) run.c 149 150uscope$(_O): $(HE) scope.c 151 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) scope.c 152 153usv$(_O): $(HE) sv.c 154 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) sv.c 155 156utaint$(_O): $(HE) taint.c 157 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) taint.c 158 159utime64$(_O): $(HE) time64.c time64.h time64_config.h 160 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) time64.c 161 162utoke$(_O): $(HE) toke.c keywords.h 163 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) toke.c 164 165ulocale$(_O): $(HE) locale.c 166 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) locale.c 167 168unumeric$(_O): $(HE) numeric.c 169 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) numeric.c 170 171umathoms$(_O): $(HE) mathoms.c 172 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mathoms.c 173 174uuniversal$(_O): $(HE) universal.c XSUB.h 175 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) universal.c 176 177uutf8$(_O): $(HE) utf8.c 178 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) utf8.c 179 180uutil$(_O): $(HE) util.c 181 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) util.c 182 183uperlapi$(_O): $(HE) perlapi.c perlapi.h 184 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlapi.c 185 186uuudmap.h umg_data.h: ubitcount.h 187 188ubitcount.h: ugenerate_uudmap$(_X) 189 $(RUN) ./ugenerate_uudmap$(_X) $(generated_headers) 190 191ugenerate_uudmap$(_O): generate_uudmap.c 192 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) generate_uudmap.c 193 194ugenerate_uudmap$(_X): ugenerate_uudmap$(_O) 195 $(LD) -o ugenerate_uudmap $(LDFLAGS) ugenerate_uudmap$(_O) $(LIBS) 196 197microtest: microperl 198 - cd t && (rm -f perl; ln -s ../microperl perl) \ 199 && ./perl TEST base/*.t cmd/*.t 200 201# That's it, folks! 202