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