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