RPA Toolkit
Added support for ARM architecture.
[rpatk.git] / rjs / build / unix / rjs.mk
1 RLIB_SRCDIR = $(ROOT_DIR)/rlib
2 RVM_SRCDIR = $(ROOT_DIR)/rvm
3 RPA_SRCDIR = $(ROOT_DIR)/rpa
4 RJS_SRCDIR = $(ROOT_DIR)/rjs
5 RJS_LIB = $(OUTDIR)/librjs.a
6 RJS_SO = $(OUTDIR)/librjs.so.1.0
7 RJS_EXEC = $(OUTDIR)/rjsexec
8 LDFLAGS_RJSEXEC = $(LDFLAGS)
9 ifeq ($(OS), linux)
10 LDFLAGS_RJSEXEC += --static
11 endif
12
13 ifeq ($(OS), darwin)
14 ECMA262_SECTION = -sectcreate rpa ecma262 $(RJS_SRCDIR)/ecma262.rpa
15 endif
16
17 CFLAGS += -I$(ROOT_DIR)
18
19 LIBS = -L$(RLIB_SRCDIR)/build/unix/$(ARCHDIR)/out 
20 LIBS += -L$(RVM_SRCDIR)/build/unix/$(ARCHDIR)/out 
21 LIBS += -L$(RPA_SRCDIR)/build/unix/$(ARCHDIR)/out 
22 LIBS += -L$(RJS_SRCDIR)/build/unix/$(ARCHDIR)/out 
23 LIBS += -lrjs -lrpa -lrvm -lrlib -lpthread -lm
24
25 RJS_OBJECTS += $(OUTDIR)/rjs.o
26 RJS_OBJECTS += $(OUTDIR)/rjsparser.o
27 RJS_OBJECTS += $(OUTDIR)/rjscompiler.o
28 RJS_OBJECTS += $(OUTDIR)/rjsrules.o
29 RJS_OBJECTS += $(OUTDIR)/rjsfile.o
30 RJS_OBJECTS +=  $(OUTDIR)/rvmoperator.o
31 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorbin.o
32 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatoradd.o
33 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorand.o
34 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatoreq.o
35 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatornoteq.o
36 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorlogicor.o
37 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorlogicand.o
38 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorlogicnot.o
39 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorless.o
40 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorlesseq.o
41 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorgreater.o
42 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorgreatereq.o
43 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorxor.o
44 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatoror.o
45 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorcmp.o
46 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorcmn.o
47 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorlsl.o
48 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorlsr.o
49 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorlsru.o
50 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorcast.o
51 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorcat.o
52 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatorsub.o
53 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatormul.o
54 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatordiv.o
55 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatormod.o
56 RJS_OBJECTS +=  $(OUTDIR)/rvmoperatornot.o
57
58
59 ifeq ($(OS), linux)
60 RJS_OBJECTS += $(OUTDIR)/ecma262.o
61 endif
62
63 RJSEXEC_OBJECTS =       \
64         $(OUTDIR)/rjsexec.o \
65
66
67
68 ifeq ($(OS), linux)
69 all: $(OUTDIR) $(RJS_LIB) $(RJS_SO) $(RJS_EXEC)
70 else
71 all: $(OUTDIR) $(RJS_LIB) $(RJS_EXEC)
72 endif
73
74 $(RJS_EXEC) : $(RJSEXEC_OBJECTS) $(RJS_LIB) $(RJS_OBJECTS)
75         $(CC) -o $@ $< $(LIBS) $(LDFLAGS_RJSEXEC) $(ECMA262_SECTION)
76
77 $(OUTDIR)/%.o: $(RJS_SRCDIR)/%.c
78         $(CC) $(CFLAGS) -o $(OUTDIR)/$*.o -c $(RJS_SRCDIR)/$*.c
79
80 ifeq ($(OS), darwin)
81 $(OUTDIR)/%.o: $(RJS_SRCDIR)/darwin/%.c
82         $(CC) $(CFLAGS) -o $(OUTDIR)/$*.o -c $(RJS_SRCDIR)/darwin/$*.c
83 endif
84
85 $(OUTDIR)/%.o: $(RJS_SRCDIR)/unix/%.c
86         $(CC) $(CFLAGS) -o $(OUTDIR)/$*.o -c $(RJS_SRCDIR)/unix/$*.c
87
88 $(RJS_LIB): $(RJS_OBJECTS)
89         $(AR) -cr $@ $^
90
91 $(RJS_SO): $(RJS_OBJECTS)
92         $(CC) $(LDFLAGS) -shared -Wl,-soname,librjs.so -o $@ $^
93
94 $(OUTDIR)/%.o: $(RJS_SRCDIR)/%.rpa
95         $(OBJCOPY) $(OCFLAGS_TXT)  $(RJS_SRCDIR)/$*.rpa $(OUTDIR)/$*.o
96
97 $(OUTDIR):
98         @mkdir $(OUTDIR)
99
100 distclean: clean
101         -rm -f .depend
102         -rm -rf $(OUTDIR)
103
104 clean:
105         -rm -f $(RJS_LIB)
106         -rm -f $(RJS_SO)
107         -rm -f $(RJS_OBJECTS)
108         -rm -f $(RJS_EXEC)
109         -rm -f *~
110         -rm -f $(ROOT_DIR)/*~
111