RPA Toolkit
build changes for macos. jrs is still broken - objcopy doesn't work
[rpatk.git] / rjs / build / darwin / rjs.mk
1 RLIB_SRCDIR = $(SRCDIR)/rlib
2 RVM_SRCDIR = $(SRCDIR)/rvm
3 RPA_SRCDIR = $(SRCDIR)/rpa
4 RJS_SRCDIR = $(SRCDIR)/rjs
5 RJS_LIB = $(OUTDIR)/librjs.a
6 RJS_EXEC = $(OUTDIR)/rjsexec
7
8 CFLAGS += -I$(SRCDIR)
9
10 LIBS = -L$(RLIB_SRCDIR)/build/$(OS)/$(ARCHDIR)/out 
11 LIBS += -L$(RVM_SRCDIR)/build/$(OS)/$(ARCHDIR)/out 
12 LIBS += -L$(RPA_SRCDIR)/build/$(OS)/$(ARCHDIR)/out 
13 LIBS += -L$(RJS_SRCDIR)/build/$(OS)/$(ARCHDIR)/out 
14 LIBS += -lrjs -lrpa -lrvm -lrlib -lpthread -lm --static
15
16 RJS_OBJECTS =   \
17         $(OUTDIR)/rjs.o \
18         $(OUTDIR)/rjsparser.o \
19         $(OUTDIR)/rjscompiler.o \
20         $(OUTDIR)/rjsrules.o \
21         $(OUTDIR)/rjsfile.o \
22         $(OUTDIR)/ecma262.o \
23
24
25 RJSEXEC_OBJECTS =       \
26         $(OUTDIR)/rjsexec.o \
27
28 all: $(OUTDIR) $(RJS_LIB)
29
30 $(RJS_EXEC) : $(RJSEXEC_OBJECTS) $(RJS_LIB) $(RJS_OBJECTS)
31         $(CC) $(ARCH) -o $@ $< $(LIBS)
32
33 $(OUTDIR)/%.o: $(RJS_SRCDIR)/%.c
34         $(CC) $(CFLAGS) -o $(OUTDIR)/$*.o -c $(RJS_SRCDIR)/$*.c
35
36 $(OUTDIR)/%.o: $(RJS_SRCDIR)/unix/%.c
37         $(CC) $(CFLAGS) -o $(OUTDIR)/$*.o -c $(RJS_SRCDIR)/unix/$*.c
38
39 $(RJS_LIB): $(RJS_OBJECTS)
40         $(AR) -cr $@ $^
41
42 $(RJS_SO): $(RJS_OBJECTS)
43         $(CC) $(LDFLAGS) -shared -Wl,-soname,librjs.so -o $@ $^
44
45 $(OUTDIR)/%.o: $(RJS_SRCDIR)/%.rpa
46         $(OC) --input-target binary --output-target $(ELFARCH) --binary-architecture $(BINARCH) $(RJS_SRCDIR)/$*.rpa $(OUTDIR)/$*.o
47 #       gobjcopy -I binary -O mach-o-x86-64 -B i386:x86-64 $(RJS_SRCDIR)/$*.rpa $(OUTDIR)/$*.o
48
49
50
51 $(OUTDIR):
52         @mkdir $(OUTDIR)
53
54 distclean: clean
55         @rm -f .depend
56         @rm -rf $(OUTDIR)
57
58 clean:
59         @rm -f $(RJS_LIB)
60         @rm -f $(RJS_SO)
61         @rm -f $(RJS_OBJECTS)
62         @rm -f *~
63         @rm -f $(SRCDIR)/*~
64