root/NEWT0/trunk/Makefile.in

Revision 131, 5.4 kB (checked in by gnue, 6 days ago)

make install bug fix. (this patch is contributed by Keita Yamaguti)

  • Property svn:executable set to *
Line 
1DEBUG = # -g
2
3
4srcdir = ./src
5build = ./build
6ext = ./ext
7contrib = ./contrib
8utils = $(srcdir)/utils
9parser = $(srcdir)/parser
10core = $(srcdir)/newt_core
11objdir = $(build)/obj
12yytmp = $(objdir)/yytmp
13tardir = $(shell basename `pwd`)_$(shell uname)
14docdir = $(build)/html
15headerdir = $(core)/incs
16
17DESTROOT =
18CC = @CC@
19YACC = @YACC@ -d
20LEX = @LEX@
21DEFS = @DEFS@
22LIBS = @LIBS@
23DLEXT = @DLEXT@
24EXEEXT = @EXEEXT@
25LDIMPORT = @NEWT_LDIMPORT@
26LDFLAGS = $(DEBUG) -O2 @LDFLAGS@ @NEWT_LDFLAGS@
27LDSHARED = @LIBNEWT_LDSHARED@
28
29# declarations needed to creat a static library
30LIBCOMMAND    = @LIBCOMMAND@
31LIBEXT        = @LIBEXT@
32
33prefix = @prefix@
34exec_prefix = @exec_prefix@
35bindir = @bindir@
36sitedir = ${prefix}/lib/newt0
37includedir = @includedir@/newt0
38libdir = ${prefix}/lib
39
40VPATH = $(core)
41STRIP = strip -x
42CFLAGS = $(DEBUG) $(DEFS) -O2 -pipe
43CPPFLAGS = -I. -I$(srcdir) -I$(core)/incs -I$(srcdir)/parser -I$(yytmp) @CPPFLAGS@
44
45
46NEWT          = $(build)/newt$(EXEEXT)
47
48LIBNEWT       = $(build)/libnewt$(LIBEXT)
49
50MAINOBJ       = $(objdir)/main.o
51
52UTILSOBJS     = $(objdir)/endian_utils.o
53
54COREOBJS      = $(objdir)/NewtBC.o \
55                $(objdir)/NewtEnv.o \
56                $(objdir)/NewtFile.o \
57                $(objdir)/NewtFns.o \
58                $(objdir)/NewtGC.o \
59                $(objdir)/NewtIconv.o \
60                $(objdir)/NewtIO.o \
61                $(objdir)/NewtMem.o \
62                $(objdir)/NewtNSOF.o \
63                $(objdir)/NewtPkg.o \
64                $(objdir)/NewtObj.o \
65                $(objdir)/NewtParser.o \
66                $(objdir)/NewtPrint.o \
67                $(objdir)/NewtStr.o \
68                $(objdir)/NewtVM.o
69
70PARSEROBJS    = $(yytmp)/y.tab.o \
71                $(yytmp)/lex.yy.o \
72                $(objdir)/lookup_words.o
73
74NEWTLIBS      = $(ext)/protoFILE \
75                $(ext)/protoREGEX
76
77CONTRIBLIBS   = $(contrib)/inwt \
78                $(contrib)/NewtObjC \
79                $(contrib)/NativeCalls
80
81OBJS          = $(MAINOBJ) $(UTILSOBJS) $(PARSEROBJS) $(COREOBJS)
82
83LIBOBJS       = $(UTILSOBJS) $(PARSEROBJS) $(COREOBJS)
84
85HEADERS       = $(headerdir)/NewtBC.h \
86                $(headerdir)/NewtConf.h \
87                $(headerdir)/NewtCore.h \
88                $(headerdir)/NewtEnv.h \
89                $(headerdir)/NewtErrs.h \
90                $(headerdir)/NewtFile.h \
91                $(headerdir)/NewtFns.h \
92                $(headerdir)/NewtGC.h \
93                $(headerdir)/NewtIconv.h \
94                $(headerdir)/NewtIO.h \
95                $(headerdir)/NewtLib.h \
96                $(headerdir)/NewtMem.h \
97                $(headerdir)/NewtNSOF.h \
98                $(headerdir)/NewtObj.h \
99                $(headerdir)/NewtParser.h \
100                $(headerdir)/NewtPkg.h \
101                $(headerdir)/NewtPrint.h \
102                $(headerdir)/NewtStr.h \
103                $(headerdir)/NewtType.h \
104                $(headerdir)/NewtVM.h \
105                $(headerdir)/platform.h \
106                $(srcdir)/config.h
107
108######
109
110.c.o:
111    $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
112
113
114### all
115
116all: newt libnewt @MAKE_EXT@ @MAKE_CONTRIB@
117
118### make directory
119
120$(build):
121    mkdir -p $@
122    @LINK_NEWT_APP_@
123
124$(objdir):
125    mkdir -p $@
126
127$(yytmp):
128    mkdir -p $@
129
130### newt
131
132newt: $(build) $(objdir) $(yytmp) $(NEWT) $(LDIMPORT)
133
134$(NEWT): $(OBJS)
135    $(CC) $(LDFLAGS) $(LIBS) $(OBJS) $(LIBS) -o $@
136
137
138### LIBNEWT static library
139
140libnewt: $(build) $(objdir) $(yytmp) $(LIBNEWT) $(LDIMPORT)
141
142$(LIBNEWT): $(LIBOBJS)
143    $(LIBCOMMAND) $@ $(LIBOBJS)
144
145
146### MAIN
147
148$(MAINOBJ): $(srcdir)/main.c $(srcdir)/version.h
149    $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(srcdir)/main.c
150
151
152### UTILITIES
153
154$(objdir)/endian_utils.o: $(utils)/endian_utils.c $(utils)/endian_utils.h
155    $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(utils)/endian_utils.c
156
157
158### PARSER
159
160$(yytmp)/y.tab.c $(yytmp)/y.tab.h: $(parser)/newt.y
161    $(YACC) -o $@ $(parser)/newt.y
162
163$(yytmp)/lex.yy.c: $(parser)/newt.l $(yytmp)/y.tab.h
164    $(LEX) -o$@ $(parser)/newt.l
165
166$(objdir)/lookup_words.o: $(parser)/lookup_words.c $(parser)/lookup_words.h
167    $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(parser)/lookup_words.c
168
169
170### CORE
171
172$(COREOBJS)::
173    $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $(core)/$(*F).c
174
175
176### ext
177
178ext: $(NEWTLIBS)
179
180$(NEWTLIBS)::
181    $(MAKE) -C $@
182
183contrib: $(CONTRIBLIBS)
184
185$(CONTRIBLIBS)::
186    $(MAKE) -C $@
187
188### strip (for win)
189
190strip:
191    $(STRIP) $(NEWT) $(build)/*.$(DLEXT)
192
193
194### ARCHIVE
195
196copy:
197    rm -rf $(build)/$(tardir)
198    mkdir -p $(build)/$(tardir)
199    cp $(NEWT) $(build)/$(tardir)
200    cp $(build)/*.$(DLEXT) $(build)/$(tardir)
201    cp -Rp COPYING README.* documents sample $(build)/$(tardir)
202
203
204tgz: copy
205    tar czf $(build)/$(tardir).tgz -C $(build) $(tardir)
206
207
208### DOCUMENT GENERATE
209
210doc:
211    rm -rf $(docdir)
212    mkdir -p $(docdir)
213    cd misc; doxygen doxygen.conf
214
215### INSTALL
216
217.PHONY : install install_ext install_contrib
218
219install_ext::
220    @for subdir in $(NEWTLIBS); do \
221        (cd $$subdir && $(MAKE) install) || exit 1; \
222    done
223
224install_contrib::
225    @for subdir in $(CONTRIBLIBS); do \
226        (cd $$subdir && $(MAKE) install) || exit 1; \
227    done
228
229install::
230    install -m 755 $(NEWT) $(DESTDIR)$(bindir)
231    install -m 644 $(LIBNEWT) $(DESTDIR)$(libdir)
232    install -d -m 755 $(DESTDIR)$(sitedir)
233    install -d -m 755 $(DESTDIR)$(includedir)
234    install -m 644 $(HEADERS) $(DESTDIR)$(includedir)
235    test "x@MAKE_EXT@" = x || $(MAKE) install_ext
236    test "x@MAKE_CONTRIB@" = x || $(MAKE) install_contrib
237
238### TEST
239
240test:
241    $(NEWT) -C sample test_all.newt
242
243
244### CLEAN
245
246clean_contrib::
247    @for subdir in $(CONTRIBLIBS); do \
248        (cd $$subdir && $(MAKE) clean) || exit 1; \
249    done
250
251clean:
252    rm -rf build/*
253    test "x@MAKE_CONTRIB@" = x || $(MAKE) clean_contrib
254
Note: See TracBrowser for help on using the browser.