xref: /openbsd/gnu/usr.bin/perl/Makefile.micro (revision e0680481)
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