This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regen/feature.pl - use regen/HeaderParser to parse perl.h
[perl5.git] / Makefile.micro
CommitLineData
12ae5dfc 1LD = $(CC)
4d7c7898 2CCFLAGS = -c
ae6b6b71 3DEFINES = -DPERL_CORE -DPERL_MICRO -DNO_MATHOMS
2f42fcb0 4OPTIMIZE =
a24ffc0b 5CFLAGS = $(DEFINES) $(OPTIMIZE)
4d7c7898 6LDFLAGS =
12ae5dfc
JH
7LIBS = -lm
8_O = .o
2f42fcb0 9ENV = env
2eacba2f 10PERL = perl
4d7c7898
JH
11_X =
12RUN =
12ae5dfc
JH
13
14all: microperl
15
a55c5245 16O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udquote$(_O) udump$(_O) \
e1a479c5 17 uglobals$(_O) ugv$(_O) uhv$(_O) umro$(_O)\
530ffa68
JH
18 umg$(_O) uperlmain$(_O) uop$(_O) ureentr$(_O) \
19 upad$(_O) uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_O) \
84d4ea48 20 upp_ctl$(_O) upp_hot$(_O) upp_sys$(_O) upp_pack$(_O) upp_sort$(_O) \
85900e28
YO
21 uregcomp$(_O) uregcomp_debug$(_O) uregcomp_invlist$(_O) \
22 uregcomp_study$(_O) uregcomp_trie$(_O) uregexec$(_O) urun$(_O) \
f832b29a 23 uscope$(_O) usv$(_O) utaint$(_O) utime64$(_O) utoke$(_O) \
7ee2227d 24 unumeric$(_O) ulocale$(_O) umathoms$(_O) \
8c3a0f6c 25 uuniversal$(_O) uutf8$(_O) uutil$(_O) ukeywords$(_O)
12ae5dfc
JH
26
27microperl: $(O)
4d7c7898 28 $(LD) -o $@ $(O) $(LDFLAGS) $(LIBS)
12ae5dfc 29
dde5ec2c 30generated_headers = uuudmap.h ubitcount.h umg_data.h
12ae5dfc 31H = av.h uconfig.h cop.h cv.h embed.h embedvar.h form.h gv.h handy.h \
4d3a042d 32 hv.h hv_func.h intrpvar.h iperlsys.h mg.h op.h opcode.h opnames.h pad.h \
dd2155a4 33 patchlevel.h perl.h perlsdio.h perlvars.h perly.h pp.h \
897d3989 34 pp_proto.h proto.h reentr.h regexp.h scope.h sv.h \
d8bc13fd 35 thread.h unixish.h utf8.h util.h warnings.h $(generated_headers)
12ae5dfc
JH
36
37HE = $(H) EXTERN.h
38
39clean:
dde5ec2c 40 -rm -f $(O) microperl ugenerate_uudmap$(_X) $(generated_headers)
12ae5dfc
JH
41
42distclean: clean
12ae5dfc 43
44914417
JH
44# The microconfiguration.
45
2eacba2f
JH
46# Cannot use $$ in the command line itself, so using var expansion instead.
47Config = '$$Config{$$1}'
48patch_uconfig:
61ce2c64 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
2eacba2f 50
a0eb549b 51regen_uconfig: uconfig.sh config_h.SH
2f42fcb0 52 $(ENV) CONFIG_SH=uconfig.sh CONFIG_H=uconfig.h sh ./config_h.SH
12ae5dfc 53
c13bf28c
NC
54regen_uconfig64: uconfig64.sh config_h.SH
55 $(ENV) CONFIG_SH=uconfig64.sh CONFIG_H=uconfig.h sh ./config_h.SH
56
44914417
JH
57# Do not regenerate perly.c and perly.h.
58
59perly.c: perly.y
54d0ee51 60 -@echo perly.c is uptodate
44914417
JH
61
62perly.h: perly.y
54d0ee51 63 -@echo perly.h is uptodate
44914417
JH
64
65# The microperl objects.
66
12ae5dfc 67uav$(_O): $(HE) av.c
4d7c7898 68 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) av.c
12ae5dfc
JH
69
70udeb$(_O): $(HE) deb.c
4d7c7898 71 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) deb.c
12ae5dfc
JH
72
73udoio$(_O): $(HE) doio.c
4d7c7898 74 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) doio.c
12ae5dfc
JH
75
76udoop$(_O): $(HE) doop.c
4d7c7898 77 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) doop.c
12ae5dfc 78
a55c5245
JH
79udquote$(_O): $(HE) dquote.c regcomp.h regnodes.h
80 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) dquote.c
81
12ae5dfc 82udump$(_O): $(HE) dump.c regcomp.h regnodes.h
4d7c7898 83 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) dump.c
12ae5dfc 84
8c3a0f6c 85uglobals$(_O): $(H) globals.c INTERN.h $(generated_headers)
4d7c7898 86 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) globals.c
12ae5dfc
JH
87
88ugv$(_O): $(HE) gv.c
4d7c7898 89 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) gv.c
12ae5dfc 90
8b371338
KW
91umro$(_O): $(HE) mro_core.c
92 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mro_core.c
e1a479c5 93
12ae5dfc 94uhv$(_O): $(HE) hv.c
4d7c7898 95 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) hv.c
12ae5dfc 96
26ea9e12
NC
97ukeywords$(_O): $(HE) keywords.c
98 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) keywords.c
99
12ae5dfc 100umg$(_O): $(HE) mg.c
4d7c7898 101 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mg.c
12ae5dfc
JH
102
103uperlmain$(_O): $(HE) miniperlmain.c
4d7c7898 104 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) miniperlmain.c
12ae5dfc
JH
105
106uop$(_O): $(HE) op.c keywords.h
4d7c7898 107 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) -DPERL_EXTERNAL_GLOB op.c
12ae5dfc 108
077a72a9 109ureentr$(_O): $(HE) reentr.c
4d7c7898 110 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) reentr.c
077a72a9 111
530ffa68 112upad$(_O): $(HE) pad.c
4d7c7898 113 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pad.c
530ffa68 114
12ae5dfc 115uperl$(_O): $(HE) perl.c
4d7c7898 116 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perl.c
12ae5dfc
JH
117
118uperlio$(_O): $(HE) perlio.c
4d7c7898 119 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlio.c
12ae5dfc
JH
120
121uperly$(_O): $(HE) perly.c
4d7c7898 122 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perly.c
12ae5dfc
JH
123
124upp$(_O): $(HE) pp.c
4d7c7898 125 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp.c
12ae5dfc
JH
126
127upp_ctl$(_O): $(HE) pp_ctl.c
4d7c7898 128 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_ctl.c
12ae5dfc
JH
129
130upp_hot$(_O): $(HE) pp_hot.c
4d7c7898 131 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_hot.c
12ae5dfc
JH
132
133upp_sys$(_O): $(HE) pp_sys.c
4d7c7898 134 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sys.c
12ae5dfc 135
a6ec74c1 136upp_pack$(_O): $(HE) pp_pack.c
4d7c7898 137 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_pack.c
a6ec74c1 138
84d4ea48 139upp_sort$(_O): $(HE) pp_sort.c
4d7c7898 140 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sort.c
84d4ea48 141
85900e28
YO
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
4d7c7898 155 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
12ae5dfc
JH
156
157uregexec$(_O): $(HE) regexec.c regcomp.h regnodes.h
4d7c7898 158 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regexec.c
12ae5dfc
JH
159
160urun$(_O): $(HE) run.c
4d7c7898 161 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) run.c
12ae5dfc
JH
162
163uscope$(_O): $(HE) scope.c
4d7c7898 164 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) scope.c
12ae5dfc
JH
165
166usv$(_O): $(HE) sv.c
4d7c7898 167 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) sv.c
12ae5dfc
JH
168
169utaint$(_O): $(HE) taint.c
4d7c7898 170 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) taint.c
12ae5dfc 171
f832b29a
JH
172utime64$(_O): $(HE) time64.c time64.h time64_config.h
173 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) time64.c
174
12ae5dfc 175utoke$(_O): $(HE) toke.c keywords.h
4d7c7898 176 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) toke.c
12ae5dfc 177
53a62437 178ulocale$(_O): $(HE) locale.c
4d7c7898 179 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) locale.c
53a62437
JH
180
181unumeric$(_O): $(HE) numeric.c
4d7c7898 182 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) numeric.c
53a62437 183
7ee2227d 184umathoms$(_O): $(HE) mathoms.c
4d7c7898 185 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mathoms.c
7ee2227d 186
acfe0abc 187uuniversal$(_O): $(HE) universal.c XSUB.h
4d7c7898 188 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) universal.c
12ae5dfc
JH
189
190uutf8$(_O): $(HE) utf8.c
4d7c7898 191 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) utf8.c
12ae5dfc
JH
192
193uutil$(_O): $(HE) util.c
4d7c7898 194 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) util.c
12ae5dfc 195
dde5ec2c 196uuudmap.h umg_data.h: ubitcount.h
c5caff6b 197
dde5ec2c
NC
198ubitcount.h: ugenerate_uudmap$(_X)
199 $(RUN) ./ugenerate_uudmap$(_X) $(generated_headers)
4d7c7898 200
dde5ec2c 201ugenerate_uudmap$(_O): generate_uudmap.c
4d7c7898
JH
202 $(CC) $(CCFLAGS) -o $@ $(CFLAGS) generate_uudmap.c
203
dde5ec2c
NC
204ugenerate_uudmap$(_X): ugenerate_uudmap$(_O)
205 $(LD) -o ugenerate_uudmap $(LDFLAGS) ugenerate_uudmap$(_O) $(LIBS)
a1055377 206
1295f46c
NC
207microtest: microperl
208 - cd t && (rm -f perl; ln -s ../microperl perl) \
209 && ./perl TEST base/*.t cmd/*.t
210
2f42fcb0 211# That's it, folks!