summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: b0eecdf9969544bf6f8d2dc2a8faefbd420dd308 (plain)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120

TOP = $(shell readlink -f .)
ARCH	= x86-linux64

LOCAL_BUILD_PATH = $(TOP)/build.$(ARCH)
LOCAL_INST_PATH = $(TOP)/install.$(ARCH)

VERSION=3.19.2
PACKAGE_NAME = sqlite3-$(VERSION)

CROSS_PATH 	= /opt/gcc-suite/1.0.0/x86-linux64/mingw64
CROSS_PREFIX	= x86_64-w64-mingw32

CC	= "gcc -m64 -static-libgcc"
CXX	= "g++ -m64 -static-libgcc -static-libstdc++"

all: sqlite test pack
	
ifneq (,$(findstring x86-mingw,$(ARCH)))

sqlite:
	rm -Rf $(LOCAL_BUILD_PATH)
	rm -Rf $(LOCAL_INST_PATH)
	mkdir -p $(LOCAL_BUILD_PATH)
	mkdir -p $(LOCAL_INST_PATH)
	cd $(LOCAL_BUILD_PATH) && \
	tar -zxf $(PWD)/SOURCES/sqlite-$(VERSION).tar.gz 
	cd $(LOCAL_BUILD_PATH)/sqlite-* && \
	export PATH=$(CROSS_PATH)/bin:$$PATH && \
	CFLAGS="-m64 -DSQLITE_MAX_COLUMN=32767 -DSQLITE_MAX_VARIABLE_NUMBER=32768 -fpic" \
	LDFLAGS="-static-libgcc" \
	./configure \
		--host=$(CROSS_PREFIX) \
		--target=$(CROSS_PREFIX) \
		--disable-static \
		--enable-shared \
		--disable-readline \
		--prefix=$(LOCAL_INST_PATH)/sqlite-$(VERSION) && \
	$(MAKE) && $(MAKE) clean all install && \
	CFLAGS="-m64 -DSQLITE_MAX_COLUMN=32767 -DSQLITE_MAX_VARIABLE_NUMBER=32768 -fpic" \
	LDFLAGS="-static-libgcc" \
	./configure \
		--host=$(CROSS_PREFIX) \
		--target=$(CROSS_PREFIX) \
		--enable-static \
		--disable-shared \
		--disable-readline \
		--prefix=$(LOCAL_INST_PATH)/sqlite-$(VERSION) && \
	$(MAKE) && $(MAKE) clean all install
	rm -Rf $(LOCAL_INST_PATH)/sqlite-$(VERSION)/lib/pkgconfig
	cp -f $(LOCAL_INST_PATH)/sqlite-$(VERSION)/bin/*.dll $(LOCAL_INST_PATH)/sqlite-$(VERSION)/lib

pack:
	cd $(LOCAL_INST_PATH) && \
	zip -qr $(TOP)/$(PACKAGE_NAME)-$(ARCH).zip .

test:
	@echo "Nothing to test"
else

sqlite: 
	rm -Rf $(LOCAL_BUILD_PATH)
	rm -Rf $(LOCAL_INST_PATH)
	mkdir -p $(LOCAL_BUILD_PATH)
	mkdir -p $(LOCAL_INST_PATH)
	cd $(LOCAL_BUILD_PATH) && \
	tar -zxf $(PWD)/SOURCES/sqlite-$(VERSION).tar.gz
	cd $(LOCAL_BUILD_PATH)/sqlite-* && \
		export PATH=$(GCC_PATH)/bin:$$PATH && \
		export LD_LIBRARY_PATH=$(GCC_PATH)/lib && \
		CC=$(CC) CXX=$(CXX) \
		CFLAGS="-DSQLITE_MAX_COLUMN=32767 -DSQLITE_MAX_VARIABLE_NUMBER=32768 -fpic" \
		./configure \
			--enable-shared \
			--disable-static \
			--disable-readline \
			--prefix=$(LOCAL_INST_PATH)/sqlite-$(VERSION) && \
	$(MAKE) && $(MAKE) clean all install
	cd $(LOCAL_BUILD_PATH)/sqlite-* && \
		export PATH=$(GCC_PATH)/bin:$$PATH && \
		export LD_LIBRARY_PATH=$(GCC_PATH)/lib && \
		CC=$(CC) CXX=$(CXX) \
		CFLAGS="-DSQLITE_MAX_COLUMN=32767 -DSQLITE_MAX_VARIABLE_NUMBER=32768 -fpic" \
		./configure \
			--disable-shared \
			--enable-static \
			--disable-readline \
			--prefix=$(LOCAL_INST_PATH)/sqlite-$(VERSION) && \
	$(MAKE) && $(MAKE) clean all install

$(PWD)/test.$(ARCH).exe:
	@gcc -I$(PWD)/install.$(ARCH)/sqlite-$(VERSION)/include \
		-o $(PWD)/test.$(ARCH).exe \
		$(PWD)/SOURCES/test.c \
		$(PWD)/install.$(ARCH)/sqlite-$(VERSION)/lib/libsqlite3.a \
		-lpthread -ldl

test: $(PWD)/test.$(ARCH).exe
	@echo "TESTING MAX_COLUMN ..."
	@rm -f $(PWD)/test.$(ARCH).exe
	@if [ "$(shell $(PWD)/test.$(ARCH).exe)" = "32767" ]; then \
		echo "SQLITE successfully increased MAX_COLUMN to 32767" ; \
	else \
		echo "MAX_COLUMN Patch failed" ; \
		exit 1; \
	fi
	@rm -f $(PWD)/test.$(ARCH).exe
	

pack:
	cd $(LOCAL_INST_PATH) && \
	tar -zcf $(TOP)/$(PACKAGE_NAME)-$(ARCH).tgz .
	
endif	

clean:
	rm -Rf $(LOCAL_BUILD_PATH)
	rm -Rf $(LOCAL_INST_PATH)
	rm -f $(TOP)/$(PACKAGE_NAME)*.tgz
	rm -f $(TOP)/$(PACKAGE_NAME)*.zip