-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.purejava
72 lines (60 loc) · 2.56 KB
/
Makefile.purejava
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
include Makefile.common
nestedvm_version := 2009-08-09
nestedvm := nestedvm-$(nestedvm_version)
WORK := target
BUILD := $(WORK)/build
default: test
test: $(BUILD)/org/sqlite/SQLite.class
$(BUILD)/$(nestedvm)/%:
$(MAKE) CFLAGS='' -C $(BUILD)/$(nestedvm) $*
$(BUILD)/dl/$(nestedvm).tgz:
@mkdir -p $(dir $@)
# cp ../archive/$(nestedvm).tgz $@
curl -o$(BUILD)/dl/$(nestedvm).tgz http://nestedvm.ibex.org/dist/$(nestedvm).tgz
$(BUILD)/dl/$(sqlite)-amal.zip:
@mkdir -p $(dir $@)
curl -o$(BUILD)/dl/$(sqlite)-amal.zip \
http://www.sqlite.org/sqlite-amalgamation-$(subst .,_,$(version)).zip
$(BUILD)/$(nestedvm)/Makefile: $(BUILD)/dl/$(nestedvm).tgz
tar xfz $(BUILD)/dl/$(nestedvm).tgz -C$(BUILD)
$(BUILD)/SQLite.mips: $(BUILD)/$(nestedvm)/Makefile $(BUILD)/$(nestedvm)/env.sh $(BUILD)/dl/$(sqlite)-amal.zip
@mkdir -p $(BUILD)
@mkdir -p $(BUILD)/$(sqlite)-nestedvm
unzip -qo $(BUILD)/dl/$(sqlite)-amal.zip -d $(BUILD)/$(sqlite)-nestedvm
cp src/main/java/org/sqlite/Nested*.c $(BUILD)/$(sqlite)-nestedvm
perl -pi -e "s/sqlite3_api;/sqlite3_api = 0;/g" \
$(BUILD)/$(sqlite)-nestedvm/sqlite3ext.h
# we need a dummy main
echo 'int main() { return 0; }' >> $(BUILD)/$(sqlite)-nestedvm/sqlite3.c
# remove utimes
perl -npe '$$_ =~ s/utimes.*//g;' -i $(BUILD)/$(sqlite)-nestedvm/sqlite3.c
# insert a code for loading extension functions
perl -pi -e "s/^opendb_out:/ if(!db->mallocFailed && rc==SQLITE_OK){ rc = RegisterExtensionFunctions(db); }\nopendb_out:/;" \
$(BUILD)/$(sqlite)-nestedvm/sqlite3.c
cat src/main/ext/*.c >> $(BUILD)/$(sqlite)-nestedvm/sqlite3.c
(. ./$(BUILD)/$(nestedvm)/env.sh; cd $(BUILD)/$(sqlite)-nestedvm; \
$$CC -c $$CFLAGS -I. -o sqlite3.o \
-DSQLITE_THREADSAFE=0 \
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT \
-DSQLITE_ENABLE_COLUMN_METADATA \
-DSQLITE_CORE \
-DSQLITE_ENABLE_FTS3 \
-DSQLITE_ENABLE_FTS3_PARENTHESIS \
-DSQLITE_ENABLE_RTREE \
-DSQLITE_ENABLE_STAT2 \
-DSQLITE_OMIT_LOAD_EXTENSION \
$(SQLITE_FLAGS) \
sqlite3.c; \
$$CC -c $$CFLAGS -o NestedDB.o Nested*.c)
./$(BUILD)/$(nestedvm)/upstream/install/bin/mips-unknown-elf-gcc \
-march=mips1 --static \
-o $@ $(BUILD)/$(sqlite)-nestedvm/sqlite3.o \
$(BUILD)/$(sqlite)-nestedvm/NestedDB.o -lm -lc
$(BUILD)/org/sqlite/SQLite.class: $(BUILD)/SQLite.mips
$(JAVA) -cp $(BUILD)/$(nestedvm)/build$(sep)$(BUILD)/$(nestedvm)/upstream/build/classgen/build \
org.ibex.nestedvm.Compiler \
-outformat class -d $(BUILD) -o unixRuntime \
org.sqlite.SQLite $(BUILD)/SQLite.mips
clean:
rm -rf $(BUILD)
# rm -rf dist